:root{--bg:#f5f7fa;--card:#fff;--text:#18212f;--muted:#667085;--line:#dfe5ec;--accent:#1f6feb;--danger:#b42318;--success:#157347}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}.topbar{height:62px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px}.brand{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}.brand-mark{width:32px;height:32px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center}.topbar nav{display:flex;gap:18px}.topbar a{color:var(--text);text-decoration:none;font-size:14px}.container{max-width:1120px;margin:0 auto;padding:40px 24px}.page-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:26px}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--accent);font-weight:700}.muted{color:var(--muted)}h1{font-size:34px;margin:8px 0}h2{font-size:20px;margin:0 0 10px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.card,.panel,.auth-card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 14px rgba(16,24,40,.04)}.card{padding:22px}.label{font-size:13px;color:var(--muted);margin-bottom:10px}.big-number{font-size:32px;font-weight:700}.panel{padding:22px}.auth-card{max-width:460px;margin:70px auto;padding:30px}.auth-card h1{font-size:28px}label{display:block;font-weight:600;font-size:14px;margin:18px 0}input{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:15px}.button{border:0;border-radius:10px;padding:12px 16px;font-weight:700;cursor:pointer}.button.primary{background:var(--accent);color:white;width:100%}.alert{padding:12px;border-radius:10px;margin:14px 0;font-size:14px}.alert.danger{background:#fff1f0;color:var(--danger)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);font-size:14px}th{color:var(--muted);font-weight:700;background:#fafbfc}.footer{text-align:center;color:var(--muted);font-size:12px;padding:28px}
@media (max-width:760px){.cards{grid-template-columns:1fr}.topbar{padding:0 15px}.topbar nav{gap:10px}.container{padding:25px 15px}}

.auth-links{display:flex;gap:.55rem;justify-content:center;margin-top:1rem;font-size:.9rem}
.auth-links a{color:#486fe0;text-decoration:none}
.auth-links a:hover{text-decoration:underline}
.small{font-size:.92rem}
.button-link{display:block;text-align:center;text-decoration:none;margin-top:1rem}
.alert.info{background:#eef5ff;border:1px solid #cbdcff;color:#27406f}

.card-link{display:block;color:inherit;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}
.card-link:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(16,24,40,.08)}
.card-action{margin-top:14px;color:var(--accent);font-size:13px;font-weight:700}

.table-link{color:var(--text);text-decoration:none}
.table-link:hover{color:var(--accent);text-decoration:underline}
.secondary-link{display:inline-block;color:var(--text);background:#fff;border:1px solid var(--line);text-decoration:none}
.small-number{font-size:24px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.detail-list{margin:0}
.detail-list div{display:grid;grid-template-columns:180px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.detail-list div:last-child{border-bottom:0}
.detail-list dt{color:var(--muted);font-size:13px}
.detail-list dd{margin:0;font-weight:600}
.metric-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}
.metric-row:last-of-type{border-bottom:0}
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}
@media (max-width:760px){.two-col{grid-template-columns:1fr}.detail-list div{grid-template-columns:1fr;gap:4px}}

.cards-4{grid-template-columns:repeat(4,1fr)}
.contact-hero{margin-bottom:18px}
.contact-actions{display:flex;flex-wrap:wrap;gap:14px;margin:8px 0 0}
.contact-actions a{color:var(--accent);text-decoration:none;font-weight:600}
.contact-actions a:hover{text-decoration:underline}
.compact-details{margin-bottom:18px}
.compact-details summary{cursor:pointer;font-weight:700;list-style:none}
.compact-details summary::-webkit-details-marker{display:none}
@media (max-width:980px){.cards-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.cards-4{grid-template-columns:1fr}}

.page-head-actions{display:flex;align-items:center}

.session-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.session-grid>div{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}
.session-grid .label{display:block;margin-bottom:6px}
.status-badge{padding:7px 11px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:700}
/* Identification compacte : priorité au suivi des actions */
.session-summary-panel{padding:14px 22px;margin-bottom:18px}
.session-summary{display:flex;align-items:center;gap:0;min-width:0;overflow-x:auto}
.session-summary-main,.session-summary-item{display:flex;flex-direction:column;gap:4px;padding:2px 18px;border-right:1px solid var(--line);white-space:nowrap}
.session-summary-main{padding-left:0;min-width:220px}
.session-summary-item strong,.session-summary-main strong{font-size:14px;overflow:hidden;text-overflow:ellipsis}
.summary-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.session-summary-status{margin-left:18px;flex:0 0 auto}
@media (max-width:900px){.session-summary{align-items:stretch}.session-summary-main{min-width:190px}.session-summary-item{padding:2px 14px}}
@media (max-width:650px){.session-summary-panel{padding:14px}.session-summary{flex-wrap:wrap;overflow:visible;gap:10px}.session-summary-main,.session-summary-item{width:calc(50% - 5px);padding:6px 0;border-right:0}.session-summary-status{margin:0}}

.client-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.client-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fbfcfe}
.client-card h3{margin:0 0 8px}
.client-card p{margin:5px 0}
@media (max-width:900px){.session-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:650px){.session-grid,.client-cards{grid-template-columns:1fr}}

.of-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}
.of-action-card{display:flex;gap:14px;align-items:flex-start;padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);text-decoration:none}
.of-action-card:hover{box-shadow:0 7px 20px rgba(16,24,40,.07);transform:translateY(-1px)}
.of-action-card.primary{border-color:var(--accent)}
.of-action-card.attention{border-color:#e0a400}
.of-action-icon{font-size:24px;line-height:1}
.of-action-card strong{display:block;font-size:16px;margin-bottom:5px}
.of-action-card small{display:block;color:var(--muted);line-height:1.4}
.of-upcoming{margin-bottom:20px}
.of-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.of-small-link{color:inherit;text-decoration:none}
.of-small-link h2{margin:6px 0}
.of-small-link p{margin:0;color:var(--muted)}
.simple-placeholder{max-width:760px}
@media (max-width:900px){.of-actions{grid-template-columns:1fr}.of-bottom{grid-template-columns:1fr}}

.attention-panel{border-left:4px solid #e0a400}
.progress-summary{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.progress-summary strong{font-size:26px}
.progress-track{height:8px;background:#eef1f5;border-radius:99px;overflow:hidden}
.progress-bar{height:100%;background:var(--accent);border-radius:99px}
.task-list,.document-list,.alert-list{display:flex;flex-direction:column;gap:8px}
.task-row,.document-row,.alert-row,.decision-row,.communication-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid var(--line)}
.task-row:last-child,.document-row:last-child,.alert-row:last-child{border-bottom:0}
.task-row small,.document-row small{display:block;color:var(--muted);margin-top:3px}
.task-state{width:10px;height:10px;border-radius:50%;margin-top:5px;background:#b8c0cc}
.state-done{background:#4b8b5a}.state-in_progress{background:#c58a00}.state-waiting{background:#6b7280}.state-blocked{background:#b33a3a}
.doc-status{font-size:12px;font-weight:700}
.alert-row{grid-template-columns:1fr auto}.alert-row b{font-size:12px}
.severity-critical{border-left:3px solid #b33a3a;padding-left:10px}
.severity-warning{border-left:3px solid #c58a00;padding-left:10px}
.decision-row,.communication-row{display:block}
.decision-row span,.communication-row span{float:right;color:var(--muted);font-size:12px}
.decision-row p,.communication-row p{margin:6px 0}

.phase-panel{margin-bottom:18px}
.phase-track{display:flex;align-items:center;gap:10px}
.phase-step{display:flex;align-items:center;gap:8px;min-width:0}
.phase-step strong{font-size:13px;letter-spacing:.02em}
.phase-step small{display:block;color:var(--muted);font-size:11px}
.phase-dot{width:25px;height:25px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);font-size:12px;font-weight:700;background:#fff}
.phase-step.current .phase-dot{border-color:var(--accent);background:var(--accent);color:#fff}
.phase-step.complete .phase-dot{border-color:var(--accent)}
.phase-line{height:1px;flex:1;background:var(--line)}
.phase-current{margin-top:13px;padding-top:11px;border-top:1px solid var(--line);font-size:14px}
@media (max-width:760px){.phase-track{align-items:flex-start}.phase-step{flex-direction:column;text-align:center}.phase-line{margin-top:12px}}

.task-table{width:100%;display:flex;flex-direction:column}
.task-table-head,.task-table-row{display:grid;grid-template-columns:1.25fr .8fr 1.7fr;column-gap:24px;align-items:center}
.task-table-head{padding:0 0 10px;border-bottom:1px solid var(--line);font-weight:700}
.task-table-row{padding:14px 0;border-bottom:1px solid var(--line)}
.task-table-row:last-child{border-bottom:0}
.task-action{font-size:16px}
.task-state-cell{display:flex;align-items:center;gap:9px;white-space:nowrap}
.task-info{font-weight:600}
.task-empty{padding:18px 0;color:var(--muted)}
@media (max-width:760px){
  .task-table-head,.task-table-row{grid-template-columns:1fr}
  .task-table-head span:not(:first-child){display:none}
  .task-table-row{gap:7px}
  .task-state-cell{margin-top:2px}
}
.request-form{max-width:980px}.request-form h2{margin-top:28px}.choice-row{display:flex;gap:18px;flex-wrap:wrap}.choice-row label{padding:12px 15px;border:1px solid var(--border,#ddd);border-radius:10px;background:#fff}.upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.upload-grid label{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px dashed #b9c4cc;border-radius:10px;font-weight:600}.upload-grid input{font-weight:400}.request-form textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #ccd5db;border-radius:8px;font:inherit}.request-summary{margin:24px 0;padding:16px 20px;border-left:4px solid #5f7f91;background:#f6f9fa}.success-panel{max-width:720px}.success-panel h2{margin-top:0}

.request-followup{margin-bottom:20px}.request-legend{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 18px}.legend-item{padding:9px 12px;border-radius:999px;font-size:13px;border:1px solid var(--line)}.legend-item.green{border-color:#9fc8aa}.legend-item.orange{border-color:#e3bf70}.legend-item.red{border-color:#dda3a3}.request-status{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:13px}.request-status i{width:10px;height:10px;border-radius:50%;display:inline-block}.request-status.green i{background:#4b8b5a}.request-status.orange i{background:#c58a00}.request-status.red i{background:#b33a3a}@media(max-width:760px){.request-legend{flex-direction:column;align-items:flex-start}}

/* V5 - analyse de demande : vérification plutôt que ressaisie */
.analysis-form{max-width:1080px}.analysis-section{padding:4px 0 24px;margin-bottom:22px;border-bottom:1px solid var(--line)}.analysis-section:last-child{border-bottom:0;margin-bottom:0}.analysis-section h2{margin-top:0}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 18px}.status-grid label{margin:0}.analysis-form select,.analysis-form textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;background:#fff;color:var(--text)}.analysis-form textarea{resize:vertical}.document-list{margin:10px 0 0;padding-left:22px}.document-list li{padding:4px 0}.decision-section{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.decision-section h2{width:100%;margin-bottom:0}.decision-section select{max-width:360px;margin-top:0}.decision-section .button{margin:0}.analysis-section p{margin-top:0}@media(max-width:700px){.status-grid{grid-template-columns:1fr}.decision-section select{max-width:none}.decision-section .button{width:100%}}

.validation-error{border:1px solid #c62828;background:#fff5f5;margin-bottom:18px;}
.validation-error strong{color:#b71c1c;}
.success-message{margin-bottom:18px;}

/* V8 - affectation assistants */
.assignment-form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.assignment-form select{min-width:320px;max-width:620px;padding:11px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}.assignment-state{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line)}.inline-form{display:flex;gap:8px;align-items:center}.inline-form .button{padding:8px 11px;font-size:13px;margin:0}@media(max-width:700px){.assignment-form select{min-width:100%;width:100%}.inline-form{flex-wrap:wrap}}

/* V11 - liste de travail et actions à faire */
.sessions-worklist{padding:20px 24px}
.sessions-table{width:100%;display:flex;flex-direction:column}
.sessions-table-head,.sessions-table-row{display:grid;grid-template-columns:1.55fr 1.15fr 1.15fr 1.1fr .8fr 1.05fr;gap:20px;align-items:center}
.sessions-table-head{padding:0 0 14px;border-bottom:1px solid var(--line);font-weight:700;color:var(--muted)}
.sessions-table-row{padding:17px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;transition:background .15s ease,padding .15s ease}
.sessions-table-row:hover{background:#fafcff;padding-left:10px;padding-right:10px}
.sessions-table-row:last-child{border-bottom:0}
.session-name strong{display:block;font-size:16px}.session-name small{display:block;margin-top:4px;color:var(--muted);font-size:11px;letter-spacing:.04em}
.sessions-table-row .request-status{justify-self:start;font-size:14px}
.state-todo{background:#c58a00}
@media(max-width:900px){.sessions-table-head{display:none}.sessions-table-row{grid-template-columns:1fr 1fr;gap:10px;padding:16px 0}.sessions-table-row>span:nth-child(2)::before{content:'OF · ';color:var(--muted);font-size:12px}.sessions-table-row>span:nth-child(3)::before{content:'Client · ';color:var(--muted);font-size:12px}.sessions-table-row>span:nth-child(4)::before{content:'Formation · ';color:var(--muted);font-size:12px}.sessions-table-row>span:nth-child(5)::before{content:'Date · ';color:var(--muted);font-size:12px}}
@media(max-width:600px){.sessions-table-row{grid-template-columns:1fr}.sessions-table-row .request-status{margin-top:4px}}
.assistant-followup{margin-top:20px}.assistant-task-list{margin-top:20px;border-top:1px solid var(--line)}.assistant-task{border-bottom:1px solid var(--line);padding:0}.assistant-task summary{list-style:none;display:grid;grid-template-columns:1.5fr auto auto 1.3fr;gap:18px;align-items:center;padding:18px 0;cursor:pointer}.assistant-task summary::-webkit-details-marker{display:none}.assistant-task summary small{display:block;color:var(--muted);font-weight:400;margin-top:5px}.task-next{font-weight:600}.task-edit-form{background:#fafbfc;border:1px solid var(--line);border-radius:12px;padding:18px;margin:0 0 18px}.task-edit-form label{margin:0 0 14px}.task-edit-form select,.task-edit-form textarea,.task-edit-form input{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:11px;font:inherit;background:#fff}.task-form-grid{display:grid;grid-template-columns:1fr 220px;gap:16px}.task-edit-form .button{background:var(--accent);color:#fff}.success-message{margin-bottom:18px;color:#166534}@media(max-width:700px){.assistant-task summary{grid-template-columns:1fr auto;gap:8px}.task-next{grid-column:1/-1}.task-form-grid{grid-template-columns:1fr}}

/* V15 – harmonisation des espaces */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.info-grid div{padding:14px;border:1px solid #e5e7eb;border-radius:10px}.info-grid span{display:block;font-size:.85rem;color:#6b7280;margin-bottom:4px}
.assistant-profile-link{margin-top:16px;max-width:300px}
.main-nav a{white-space:nowrap}
@media(min-width:1000px){
 body{background:#f6f7f9}.topbar{position:fixed;left:0;top:0;bottom:0;width:260px;display:flex;flex-direction:column;align-items:stretch;padding:18px 12px}.brand{padding:10px 12px}.main-nav{display:flex;flex-direction:column;gap:5px;margin-top:18px}.main-nav a{padding:10px 12px;border-radius:9px}.container{margin-left:260px;max-width:calc(100% - 260px);padding:28px 34px}.topbar .main-nav a:last-child{margin-top:auto}
}
@media(max-width:999px){.main-nav{display:flex;flex-wrap:wrap;gap:6px}.main-nav a{font-size:.9rem}}


/* V16 - correction navigation latérale et cache */
@media (min-width: 1000px) {
  html, body { min-height: 100%; }
  body { padding-left: 270px; }
  .topbar {
    position: fixed !important;
    z-index: 1000;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 270px !important;
    height: 100vh !important;
    min-height: 100vh;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    padding: 22px 14px !important;
    border-right: 1px solid var(--line);
    border-bottom: 0 !important;
    overflow-y: auto;
  }
  .topbar .brand {
    flex: 0 0 auto;
    padding: 12px 10px 24px !important;
  }
  .topbar nav.main-nav,
  .topbar .main-nav {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    width: 100% !important;
    margin: 12px 0 0 !important;
  }
  .topbar nav.main-nav a,
  .topbar .main-nav a {
    display: block !important;
    width: 100% !important;
    padding: 13px 14px !important;
    border-radius: 10px !important;
    font-size: 15px !important;
  }
  .topbar nav.main-nav a:last-child,
  .topbar .main-nav a:last-child {
    margin-top: auto !important;
  }
  main.container,
  .container {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 34px 40px !important;
  }
}


/* V17 – tableau de pilotage des actions assistant(e) */
.assistant-actions-table{
  width:100%;
  margin-top:22px;
  border-top:1px solid var(--line);
}
.assistant-actions-head,
.assistant-action-row{
  display:grid;
  grid-template-columns:1.15fr .72fr 1.2fr .9fr .65fr;
  gap:18px;
  align-items:center;
}
.assistant-actions-head{
  padding:14px 12px;
  font-weight:700;
  border-bottom:1px solid var(--line);
}
.assistant-action-row{
  padding:18px 12px;
  border-bottom:1px solid var(--line);
}
.assistant-action-title strong,
.assistant-next strong{
  display:block;
}
.assistant-action-title small,
.assistant-next small{
  display:block;
  margin-top:5px;
  color:#6b7280;
}
.assistant-state{
  display:flex;
  align-items:center;
  gap:10px;
  white-space:nowrap;
}
.assistant-note{
  line-height:1.5;
}
.assistant-row-edit{
  justify-self:start;
}
.assistant-row-edit summary{
  cursor:pointer;
  font-weight:600;
  white-space:nowrap;
  list-style:none;
}
.assistant-row-edit summary::-webkit-details-marker{display:none}
.assistant-row-edit[open]{
  grid-column:1 / -1;
  justify-self:stretch;
}
.assistant-row-edit[open] summary{
  margin-bottom:14px;
}
.assistant-row-edit .task-edit-form{
  max-width:100%;
  padding:18px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafafa;
}
@media(max-width:900px){
  .assistant-actions-head{display:none}
  .assistant-action-row{
    grid-template-columns:1fr 1fr;
    gap:14px;
  }
  .assistant-action-title,
  .assistant-note,
  .assistant-next,
  .assistant-row-edit{grid-column:1 / -1}
}

/* V19 — tableau unique de suivi, pleine largeur, commun aux trois profils */
.active-actions-panel{width:100%;margin-bottom:20px}
.session-actions-table{width:100%;display:flex;flex-direction:column}
.session-actions-table .task-table-head,.session-actions-table .task-table-row{display:grid;grid-template-columns:1.35fr .8fr 1.6fr 1.15fr .75fr;column-gap:24px;align-items:center}
.session-actions-table.is-of-view .task-table-head,.session-actions-table.is-of-view .task-table-row{grid-template-columns:1.6fr .9fr 1.5fr}
.session-actions-table .task-table-head{padding:0 0 12px;border-bottom:1px solid var(--line);font-weight:700}
.session-actions-table .task-table-row{padding:18px 0;border-bottom:1px solid var(--line)}
.session-actions-table .task-table-row:last-child{border-bottom:0}
.session-actions-table .task-info{line-height:1.45}
.task-row-action a{font-weight:600;text-decoration:none}
@media (max-width:900px){.session-actions-table .task-table-head,.session-actions-table .task-table-row,.session-actions-table.is-of-view .task-table-head,.session-actions-table.is-of-view .task-table-row{grid-template-columns:1fr}.session-actions-table .task-table-head span:not(:first-child){display:none}.session-actions-table .task-table-row{gap:8px}.session-actions-table .task-row-action{margin-top:4px}}
/* V23 – habillage test réel */
:root{--brand:#1f6b57;--brand2:#e8913a;--copper:#b8753c;--bg:#f5f7f8;--card:#fff;--text:#24303a;--muted:#66717b;--line:#dde3e7}body{background:var(--bg);color:var(--text)}.topbar,.sidebar{background:var(--brand)!important}.sidebar{box-shadow:2px 0 12px rgba(0,0,0,.08)}.sidebar a{border-radius:10px;margin:3px 8px}.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.13)}.panel,.card,.stat-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px rgba(25,40,50,.05)}.button,button[type=submit]{background:var(--brand);border-radius:9px}.button:hover,button[type=submit]:hover{filter:brightness(.94)}.secondary-link{background:#fff!important;color:var(--brand)!important;border:1px solid var(--line)}table{border-radius:12px;overflow:hidden;background:#fff}th{background:#eef4f2;color:#36584f}.page-head{margin-bottom:22px}.eyebrow{color:var(--brand);font-weight:700}.success-message{background:#edf8f2;border:1px solid #cce9da;border-radius:10px;padding:12px 15px;margin:12px 0}.badge,.status{border-radius:999px;padding:5px 10px;font-weight:600}@media(max-width:850px){.sidebar{box-shadow:none}.panel,.card{border-radius:10px}}


/* V23.1 – corrections contraste et lisibilite */
.topbar,.sidebar{background:var(--brand)!important;color:#fff!important}
.topbar a,.sidebar a,.sidebar .brand,.sidebar .brand *, .sidebar nav, .sidebar nav *{color:#fff!important}
.sidebar a{font-weight:500;transition:background .15s ease,color .15s ease}
.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.16)!important;color:#fff!important}
.sidebar .brand-mark{background:#fff!important;color:var(--brand)!important}
.button,button[type=submit],.button.primary{background:var(--brand)!important;color:#fff!important}
.button:hover,button[type=submit]:hover,.button.primary:hover{background:#185545!important;color:#fff!important}
.button.secondary,.secondary-link{background:#fff!important;color:var(--brand)!important;border:1px solid var(--brand)!important}

/* V25 – espace assistant simplifié */
.mission-phases{display:flex;align-items:center;gap:14px;padding:18px 24px;margin-bottom:14px}
.phase-step{display:flex;align-items:center;gap:10px;min-width:190px;opacity:.55}
.phase-step span{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-weight:700;background:#fff}
.phase-step strong,.phase-step small{display:block}.phase-step small{font-size:12px;color:var(--muted);margin-top:2px}
.phase-step.active{opacity:1}.phase-step.active span{background:var(--brand);color:#fff;border-color:var(--brand)}
.phase-step.done{opacity:1}.phase-step.done span{background:#edf8f2;color:var(--brand);border-color:#cce9da}
.phase-line{height:1px;background:var(--line);flex:1}
.mission-summary{padding:0}
.mission-summary-row{display:flex;align-items:center;gap:0;padding:14px 18px}
.mission-summary-row>div{padding:0 16px;border-right:1px solid var(--line);min-width:130px}
.mission-summary-row .label{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}
.mission-summary-row strong{display:block}
.mission-details{margin-left:auto;padding-left:16px}
.mission-details summary{cursor:pointer;color:var(--brand);font-weight:700;white-space:nowrap}
.mission-details-grid{margin-top:16px;min-width:720px}
.assistant-work-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.add-task-details{min-width:220px}
.add-task-details summary{list-style:none;cursor:pointer;white-space:nowrap;text-align:center}
.add-task-details summary::-webkit-details-marker{display:none}
.add-task-details[open]{min-width:360px}
.add-task-details .task-edit-form{margin-top:12px}
.add-task-form label{display:block;margin-bottom:10px}
@media(max-width:1000px){
  .mission-phases{align-items:stretch;gap:8px}.phase-step{min-width:0;flex:1}.phase-line{display:none}
  .mission-summary-row{flex-wrap:wrap;gap:14px}.mission-summary-row>div{border-right:0;padding:0}
  .mission-details{width:100%;margin-left:0;padding-left:0}.mission-details-grid{min-width:0}
}
@media(max-width:700px){
  .mission-phases{display:block}.phase-step{margin:10px 0}.mission-summary-row{display:block}.mission-summary-row>div{margin:10px 0}
  .assistant-work-head{display:block}.add-task-details,.add-task-details[open]{min-width:0;margin-top:14px}
}
/* V26 – alertes, calendrier et liens outils */
.mission-tools-dates{padding:20px 24px;margin:14px 0}.dates-block{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.session-identity-actions{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;justify-content:flex-end}.compact-action{position:relative}.compact-action summary{cursor:pointer;color:var(--brand);font-weight:800;list-style:none;padding:13px 18px;border-radius:12px;border:1px solid var(--line);background:#fff;box-shadow:0 2px 7px rgba(20,30,40,.05);white-space:nowrap}.compact-action summary::-webkit-details-marker{display:none}.compact-action-date summary{color:#fff;background:#b27a1d;border-color:#b27a1d}.compact-action-formation summary{color:#fff;background:#486b9b;border-color:#486b9b}.compact-action[open]{min-width:440px}.compact-action[open] summary{margin-bottom:10px}.compact-action .task-edit-form{margin-top:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(20,30,40,.10)}.compact-action small{display:block;color:var(--muted);margin:7px 0}.session-date-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.session-date-pills>span{padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#fafafa}.date-pill{color:var(--brand);font-weight:600}.external-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.external-tools .eyebrow{width:100%}
.assistant-row-actions{display:flex;align-items:flex-start;gap:12px;justify-self:start}.task-alert summary{cursor:pointer;color:#9a6500;font-weight:700;white-space:nowrap;list-style:none}.task-alert summary::-webkit-details-marker{display:none}.task-alert[open]{position:relative;z-index:2}.task-alert[open] .task-edit-form{position:absolute;right:0;top:30px;width:360px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(20,30,40,.14)}
@media(max-width:900px){.dates-block{display:block}.session-identity-actions{justify-content:flex-start;margin-top:14px}.compact-action[open]{min-width:0;margin-top:12px}.task-alert[open] .task-edit-form{position:static;width:auto;margin-top:10px}.assistant-row-actions{grid-column:1 / -1}}
/* V26.1 – correction affichage du détail de session */
.mission-summary-row{flex-wrap:wrap}.mission-details[open]{order:2;width:100%;margin-left:0;padding:18px 0 0;border-top:1px solid var(--line);margin-top:14px}.mission-details[open] .mission-details-grid{min-width:0;width:100%;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}


/* V30 – gestion documentaire simplifiée */
.document-workspace{max-width:1400px;margin:0 auto}.document-search-bar{display:flex;gap:12px;margin:18px 0 22px}.document-search-bar input,.file-search-local input{flex:1;min-width:0}.folder-table-wrap{overflow:auto;border:1px solid var(--line,#dbe2e8);border-radius:14px;background:#fff}.folder-table{width:100%;border-collapse:collapse}.folder-table th,.folder-table td{padding:16px 18px;border-bottom:1px solid var(--line,#e5e7eb);text-align:left;vertical-align:middle}.folder-table th{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.folder-table tr:last-child td{border-bottom:0}.file-count{display:inline-flex;padding:5px 10px;border-radius:999px;background:#eef4f2;font-weight:700;color:#315c51}.folder-breadcrumb{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:6px 0 18px}.folder-breadcrumb a{color:inherit}.file-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin:10px 0 16px}.upload-box{display:none;padding:18px;border:1px dashed #7b9f95;border-radius:14px;background:#f7faf9;margin:12px 0 18px}.upload-box.is-open{display:block}.upload-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;margin-bottom:14px}.upload-box label,.client-folder-form label{display:flex;flex-direction:column;gap:7px;font-weight:700}.upload-box small{font-weight:400;color:#64748b}.client-folder-form{display:flex;align-items:end;gap:14px;padding:16px;border-radius:14px;background:#f7faf9;border:1px solid #d8e5e0;margin:14px 0}.client-folder-form label{flex:1}.file-search-local{display:flex;justify-content:flex-end;margin:14px 0}.file-search-local input{max-width:360px}.success-message{margin:14px 0}@media(max-width:800px){.document-search-bar,.file-page-head,.client-folder-form{flex-direction:column;align-items:stretch}.upload-grid{grid-template-columns:1fr}.folder-table th:nth-child(2),.folder-table td:nth-child(2){display:none}.folder-table th,.folder-table td{padding:12px}.file-search-local input{max-width:none;width:100%}}
/* V31 - autorisations simples et téléchargement du dossier */
.document-head-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.document-head-actions{justify-content:flex-start}.document-head-actions .button{width:100%;text-align:center}}

/* =========================================================================
   V33 — Habillage "pro" : arrière-plan imagé, header d'infos, pied fixe
   =========================================================================
   Tout ce bloc est ajouté à la fin exprès : en CSS, à sélecteur équivalent,
   c'est la dernière règle écrite qui l'emporte. Ça évite de devoir toucher
   aux blocs précédents (V1 à V31) qui fonctionnent déjà.
   ========================================================================= */

/* --- 1. Arrière-plan imagé -------------------------------------------- */
/* Plutôt qu'une photo (fichier lourd, à héberger, parfois soumise à droits
   d'auteur), j'utilise un motif vectoriel (SVG) très discret, dans les
   couleurs de la marque. Il donne du relief à l'écran sans jamais gêner
   la lecture, et ne dépend d'aucune image externe à charger.
   -> Si vous préférez une vraie photo (locaux, équipe, secteur formation),
   envoyez-la-moi et je l'intègre à la place de ce motif. */
body{
  background-color:var(--paper,#f5f7f8);
  background-image:
    radial-gradient(circle at 100% 0%, rgba(31,107,87,.06), transparent 45%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><g fill='none' stroke='%231f6b57' stroke-opacity='0.06' stroke-width='1'><path d='M0 60 L120 60 M60 0 L60 120'/><circle cx='60' cy='60' r='2' fill='%231f6b57' fill-opacity='0.10' stroke='none'/></g></svg>");
  background-attachment:fixed;
  background-repeat:repeat;
}

/* --- 2. Bandeau de coordonnées (au-dessus du header) -------------------- */
.topbar-info{
  position:sticky;top:0;z-index:31; /* reste visible même quand on descend dans la page */
  display:flex;justify-content:flex-end;gap:22px;
  background:#0f342a; /* vert de marque, plus sombre que le header pour bien le distinguer */
  color:#e8f1ee;
  font-size:12.5px;font-weight:600;
  padding:6px 28px;
}
.topbar-info a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.topbar-info a:hover{text-decoration:underline}

/* Le header principal passe aussi en "sticky" pour rester collé sous le
   bandeau de coordonnées pendant le défilement de la page. */
.topbar{position:sticky;top:29px;z-index:30}

/* --- 3. Couleur du texte adaptée au nouvel arrière-plan ------------------ */
/* Le motif de fond reste très clair (opacité 6-10%) : le texte foncé
   existant (--text) garde un bon contraste. Seuls les blocs sur fond
   sombre (bandeau du haut, pied de page) passent en texte clair ci-dessous. */

/* --- 4. Pied de page fixe, présent sur toutes les pages ----------------- */
.footer{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
  gap:6px 24px;
  padding:12px 28px;
  background:#0f342a;
  color:#dbe9e4;
  text-align:left;
  box-shadow:0 -3px 14px rgba(0,0,0,.12);
}
.footer-contact{display:flex;gap:10px;align-items:center;font-weight:600}
.footer-contact a{color:#fff;text-decoration:none}
.footer-contact a:hover{text-decoration:underline}

/* Comme le pied de page est maintenant fixe, il flotte par-dessus le bas
   de la page : on ajoute donc de la place sous le contenu pour qu'aucun
   bouton ou tableau ne se retrouve caché derrière. */
.container{padding-bottom:76px}
.auth-card{margin-bottom:96px}

@media (max-width:760px){
  .topbar-info{padding:6px 15px;gap:14px;font-size:11.5px}
  /* Sur petit écran, on simplifie : seul le bandeau d'infos reste collé en
     haut, le header défile normalement (évite tout chevauchement de hauteurs
     variables entre mobile et desktop). */
  .topbar{position:static}
  .footer{padding:10px 15px;justify-content:center;text-align:center}
  .container{padding-bottom:96px}
}


/* V39 — Ergonomie : menu latéral vert + profil visible dans le header */
:root{--brand:#1f6b57;--brand-dark:#0f342a}
body{min-height:100vh}
.app-shell{display:flex;min-height:calc(100vh - 29px)}
.sidebar{position:fixed;left:0;top:29px;bottom:0;width:260px;background:var(--brand)!important;color:#fff;display:flex;flex-direction:column;z-index:40;box-shadow:2px 0 12px rgba(0,0,0,.08);overflow-y:auto}
.sidebar-brand{display:flex;align-items:center;gap:11px;padding:20px 22px 18px;font-size:22px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-brand .brand-mark{background:#fff!important;color:var(--brand)!important;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:22px}
.sidebar-profile{padding:16px 22px 12px;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-profile-label{display:block;font-size:10px;letter-spacing:.12em;opacity:.72;margin-bottom:4px}
.sidebar-profile strong{font-size:14px}
.sidebar-nav{display:flex;flex-direction:column;padding:12px 10px;gap:3px}
.sidebar-nav a,.sidebar-logout{display:flex;align-items:center;gap:12px;padding:12px 12px;border-radius:10px;color:#fff!important;text-decoration:none;font-size:15px;font-weight:500;transition:background .15s ease}
.sidebar-nav a:hover,.sidebar-nav a.active,.sidebar-logout:hover{background:rgba(255,255,255,.14)!important}
.sidebar-bottom{margin-top:auto;padding:14px 10px 18px;border-top:1px solid rgba(255,255,255,.12)}
.sidebar-user-name{padding:0 12px 8px;font-size:12px;opacity:.78;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-main{width:calc(100% - 260px);margin-left:260px;min-width:0}
.app-main .topbar{position:sticky;top:29px;z-index:30;height:82px;min-height:82px;background:#fff!important;color:var(--text);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;overflow:visible}
.topbar-page-brand{font-size:18px;font-weight:700;color:var(--brand)}
.topbar-profile{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);min-width:0;white-space:nowrap}
.topbar-profile .profile-role{color:var(--muted)}
.topbar-profile strong{color:var(--brand)}
.profile-separator{color:var(--line);padding:0 2px}
.topbar-public{margin-top:0}
.app-main>.container{max-width:none;margin:0;padding:40px 32px 76px}
.topbar-info{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;background:var(--brand-dark);color:#e8f1ee;font-size:12.5px;font-weight:600;padding:6px 28px;height:29px}
.topbar-info a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.topbar-info a:hover{text-decoration:underline}
@media(max-width:900px){
  .sidebar{width:220px}.app-main{width:calc(100% - 220px);margin-left:220px}.app-main>.container{padding-left:22px;padding-right:22px}
}
@media(max-width:700px){
  .app-shell{display:block}.sidebar{position:static;width:100%;min-height:0}.sidebar-brand{padding:12px 16px}.sidebar-profile{padding:10px 16px}.sidebar-nav{display:grid;grid-template-columns:repeat(2,1fr);padding:8px}.sidebar-bottom{margin-top:0}.app-main{width:100%;margin-left:0}.app-main .topbar{position:static;padding:0 16px}.topbar-profile{font-size:12px}.topbar-page-brand{display:none}.app-main>.container{padding:25px 15px 76px}.topbar-info{position:static;padding:6px 15px;justify-content:flex-end}.topbar-info-spacer{display:none}.topbar-info-contact{display:flex;gap:12px}.topbar-info-contact a:first-child{display:none}
}


/* V40 — Harmonisation de la charte navigation + profil toujours visible */
:root{--brand:#0f342a;--brand-dark:#0f342a}
.sidebar{background:var(--brand)!important;color:#fff!important}
.sidebar-brand{color:#fff!important}
.sidebar-profile{color:#fff!important}
.sidebar-profile-label{color:#dbe9e4!important}
.sidebar-nav a,.sidebar-bottom,.sidebar-bottom a,.sidebar-user-name{color:#fff!important}
.sidebar-nav a:hover,.sidebar-nav a.active{background:rgba(255,255,255,.14)!important;color:#fff!important}
.sidebar .brand-mark{background:#fff!important;color:var(--brand)!important}
.app-main>.topbar{background:var(--brand)!important;color:#fff!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
.topbar-page-brand{color:#fff!important}
.topbar-page-brand{display:flex;align-items:center;gap:11px;white-space:nowrap}.topbar-page-brand .brand-mark{width:38px;height:38px;border-radius:10px;background:#fff!important;color:var(--brand)!important;display:grid;place-items:center;font-size:22px;font-weight:700;flex:0 0 auto}
.topbar-profile{color:#fff!important}
.topbar-profile .profile-role{color:#dbe9e4!important}
.topbar-profile strong{color:#fff!important}
.profile-separator{color:rgba(255,255,255,.45)!important}
.topbar-info{background:var(--brand)!important}
@media(max-width:700px){
  .app-main .topbar{background:var(--brand)!important;color:#fff!important}
  .topbar-profile .profile-role{color:#dbe9e4!important}
  .topbar-profile strong{color:#fff!important}
}

/* V41 — Alignement du shell : suppression du doublon de marge et des éléments cachés */
@media (min-width: 701px) {
  /* Le menu latéral est fixe : le body ne doit plus lui réserver une seconde marge. */
  html, body { padding-left: 0 !important; }
  .app-shell { width: 100%; min-width: 0; }
  .sidebar { left: 0 !important; width: 260px !important; border-right: 0 !important; box-shadow: none !important; }
  /* Le nom ExtrAdmin du header était redondant derrière le menu : on le masque sur desktop. */
  .app-main .topbar-page-brand { display: none !important; }
  .app-main { width: calc(100% - 260px) !important; margin-left: 260px !important; min-width: 0; }
  .app-main .topbar { width: 100%; }
  .app-main > .container { width: 100%; max-width: none; margin: 0; }
}

@media (min-width: 901px) {
  .sidebar { width: 260px !important; }
  .app-main { width: calc(100% - 260px) !important; margin-left: 260px !important; }
}

@media (max-width: 900px) and (min-width: 701px) {
  .sidebar { width: 220px !important; }
  .app-main { width: calc(100% - 220px) !important; margin-left: 220px !important; }
}

/* V42 — Espace avant le footer + accent chaleureux lié au vert de marque */
/* Les tableaux de bord ont désormais une respiration suffisante avant le
   pied de page fixe, y compris lorsque le dernier bloc arrive en bas de vue. */
.app-main > .container{
  padding-bottom:110px !important;
}
.app-main > .container > :last-child{
  margin-bottom:24px !important;
}

/* Accent cuivre/bronze : plus chaleureux que le bleu précédent et cohérent
   avec le vert foncé de la charte. Utilisé principalement pour les actions
   visibles dans les cartes. */
.card-action{
  color:#94602a !important;
}
.card-link:hover .card-action,
.card-action:hover{
  color:#7f4f20 !important;
}

@media(max-width:700px){
  .app-main > .container{
    padding-bottom:125px !important;
  }
  .app-main > .container > :last-child{
    margin-bottom:18px !important;
  }
}

/* V43 — Équilibre du formulaire Organisme de formation */
.task-edit-form[action*="of/"] .task-form-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px;
}
.task-edit-form[action*="of/"] .task-form-grid > label{
  min-width:0;
}
@media(max-width:700px){
  .task-edit-form[action*="of/"] .task-form-grid{
    grid-template-columns:1fr;
  }
}

/* V44 — Titres/libellés des champs : accent cuivre/bronze */
form label,
.field-label,
.form-label {
  color: var(--copper) !important;
}

/* V45 — circuit de clôture */
.closure-panel{margin-top:18px}
.closure-check{display:flex;align-items:flex-start;gap:10px}
.closure-check input{width:auto;margin-top:3px;display:inline-block}

/* V46 — Suivi des sessions OF : filtres, états et lecture visuelle */
.session-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:10px 12px;background:#f7faf9;border:1px solid var(--line);border-radius:12px}
.filter-title{font-weight:700;color:var(--text);margin-right:4px}
.session-filter{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--brand);text-decoration:none;font-weight:700;font-size:13px}
.session-filter:hover,.session-filter.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.of-session-table tbody tr{transition:background .15s ease}
.of-session-table tbody tr.session-phase-preparation{background:#fffdf8}
.of-session-table tbody tr.session-phase-suivi{background:#f4f9ff}
.of-session-table tbody tr.session-phase-cloture{background:#fff6f8}
.of-session-table tbody tr:hover{filter:brightness(.985)}
.session-phase-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line)}
.session-phase-badge.preparation{background:#fffaf0;color:#8a6500;border-color:#ead9a6}
.session-phase-badge.suivi{background:#eef6ff;color:#315d8f;border-color:#bfd7f1}
.session-phase-badge.cloture{background:#fff0f3;color:#91495a;border-color:#e5bac5}
@media(max-width:800px){.session-filter-bar{align-items:flex-start}.session-filter{font-size:12px;padding:7px 10px}.of-session-table th,.of-session-table td{padding:11px 9px}}

/* V47 — états métier de clôture */
.of-session-table tbody tr.session-phase-a_cloturer{background:#fffaf0}
.of-session-table tbody tr.session-phase-cloturee{background:#fff6f8}
.session-phase-badge.a_cloturer{background:#fff7e8;color:#8a5b00;border-color:#ead5a4}
.session-phase-badge.cloturee{background:#fff0f3;color:#91495a;border-color:#e5bac5}

/* V49 — tableaux de sessions communs aux espaces Assistant / Admin */
.dashboard-session-panel { margin-top: 24px; }
.dashboard-session-panel .table-wrap { margin-top: 16px; }
.dashboard-session-panel .session-state-link { display: inline-block; text-decoration: none; }
.dashboard-session-panel .session-state-link:hover { text-decoration: none; transform: translateY(-1px); }

/* V50 — demande de clôture Assistant → OF */
.closure-alert-row { border-left: 4px solid #b88a44; }
.closure-alert-row .button { display: inline-block; margin-top: 10px; }


/* V51 — présentation des alertes et confirmation de clôture */
.closure-alert-row{padding:20px 22px;border-left:5px solid #b88a44;background:linear-gradient(90deg,#fffaf0 0%,#fffdf9 100%);border-radius:12px}
.closure-alert-row .alert-kicker{display:block;margin-bottom:5px;color:var(--copper);font-size:12px;font-weight:800;letter-spacing:.12em}
.closure-alert-row .alert-title-large{display:block;font-size:20px;color:var(--text)}
.closure-alert-row .section-head{margin-bottom:12px}
.closure-alert-message{margin:12px 0 16px;padding:14px 16px;background:rgba(255,255,255,.72);border:1px solid #eadfca;border-radius:10px}
.closure-alert-message p{margin:6px 0 8px}
.closure-alert-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.closure-alert-actions .button{margin-top:0}
.closure-confirmation{display:flex;align-items:flex-start;gap:14px;margin-top:18px;padding:16px 18px;background:#eef8f0;border:1px solid #cce4d0;color:#3f6f48}
.closure-confirmation-icon{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#294238;color:#fff;font-weight:800}
.closure-confirmation strong{display:block;font-size:17px;color:#315f3a}
.closure-confirmation p{margin:4px 0 0;color:#4c6f54}
@media(max-width:700px){.closure-alert-actions{align-items:flex-start;flex-direction:column;gap:10px}.closure-alert-row{padding:16px}}

/* V52 — Harmonisation visuelle des sessions sur tous les tableaux */
.sessions-table-row.session-phase-row-preparation{background:#fffdf8}
.sessions-table-row.session-phase-row-suivi{background:#f4f9ff}
.sessions-table-row.session-phase-row-a_cloturer{background:#fffaf0}
.sessions-table-row.session-phase-row-cloturee{background:#fff6f8}
.sessions-table-row.session-phase-row-preparation:hover,.sessions-table-row.session-phase-row-suivi:hover,.sessions-table-row.session-phase-row-a_cloturer:hover,.sessions-table-row.session-phase-row-cloturee:hover{filter:brightness(.985)}
.sessions-table-row .session-phase-status{justify-self:start}

/* V52.1 — Harmonisation effective des tableaux de sessions des dashboards */
.of-session-table tbody tr.session-phase-row-preparation{background:#fffdf8}
.of-session-table tbody tr.session-phase-row-suivi{background:#f4f9ff}
.of-session-table tbody tr.session-phase-row-a_cloturer{background:#fffaf0}
.of-session-table tbody tr.session-phase-row-cloture{background:#fffaf0}
.of-session-table tbody tr.session-phase-row-cloturee{background:#fff6f8}
.of-session-table tbody tr[class*="session-phase-row-"]{transition:background .15s ease}
.of-session-table tbody tr[class*="session-phase-row-"]:hover{filter:brightness(.985)}

/* V53 — accueil, demandes d’accès et activation des comptes */
.auth-home-card,.auth-request-card{max-width:560px}
.auth-home-card{margin-top:70px}
.auth-identity{margin:18px 0;padding:14px 16px;background:#f7faf9;border:1px solid var(--line);border-radius:12px}
.auth-identity span{display:block;font-size:12px;color:var(--copper);font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.auth-identity strong{font-size:16px}
.auth-next-step{margin-top:18px;padding:16px;background:#fffaf0;border:1px solid #ead9a6;border-radius:12px}
.auth-next-step.info{background:#eef8f0;border-color:#cce4d0}
.auth-next-step strong{display:block;color:var(--text);font-size:15px}
.auth-next-step p{margin:6px 0 12px;color:var(--muted)}
.auth-next-step .button{width:auto}
.auth-back{display:block;margin-top:18px;text-align:center;color:var(--brand);text-decoration:none;font-weight:700}
.auth-back:hover{text-decoration:underline}
.auth-request-card textarea,.account-request-detail textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;resize:vertical}
.auth-request-card select,.account-request-detail select{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:15px;background:#fff}
.request-success{display:flex;gap:14px;align-items:flex-start;margin:20px 0;padding:18px;background:#eef8f0;border:1px solid #cce4d0;border-radius:12px;color:#315f3a}
.request-success-icon{width:34px;height:34px;flex:0 0 34px;border-radius:50%;background:#294238;color:#fff;display:grid;place-items:center;font-weight:800}
.request-success strong{font-size:17px}.request-success p{margin:5px 0 0;color:#4c6f54}
.access-request-card{border-color:#d7e4dc}
.account-request-status{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--line);white-space:nowrap}
.account-request-status.pending{background:#fffaf0;color:#8a6500;border-color:#ead9a6}
.account-request-status.approved{background:#eef8f0;color:#3f7048;border-color:#cce4d0}
.account-request-status.rejected{background:#fff1f0;color:#a13c33;border-color:#efc4bf}
.account-request-detail{margin-bottom:20px}
.account-motivation{margin-top:20px;padding:18px;background:#f7faf9;border:1px solid var(--line);border-radius:12px}
.account-motivation p{margin:8px 0 0;line-height:1.55}
.request-decision-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.request-decision-actions .button{width:auto}
.danger-button{background:#fff1f0!important;color:#9e3b32!important;border:1px solid #e8c2bd!important}
@media(max-width:700px){.auth-home-card,.auth-request-card{margin-top:30px}.request-decision-actions{flex-direction:column}.request-decision-actions .button{width:100%}}

/* V53.1 — Choix du profil par cartes */
.role-choice-group{border:0;padding:0;margin:18px 0 20px;min-width:0}
.role-choice-group legend{font-weight:600;font-size:14px;margin-bottom:10px;padding:0}
.role-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.role-choice{display:block;margin:0;cursor:pointer;font-weight:400}
.role-choice input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;margin:0}
.role-choice-card{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:104px;padding:16px;border:1.5px solid var(--line);border-radius:13px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;}
.role-choice-card:hover{border-color:var(--brand);box-shadow:0 3px 12px rgba(25,40,50,.07)}
.role-choice-icon{width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#eef4f2;display:grid;place-items:center;font-size:20px}
.role-choice-content{display:block;padding-right:20px}
.role-choice-content strong{display:block;color:var(--text);font-size:15px;margin:2px 0 6px}
.role-choice-content small{display:block;color:var(--muted);font-size:12px;line-height:1.45;font-weight:400}
.role-choice-check{position:absolute;right:12px;top:12px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);color:transparent;font-size:12px;font-weight:800;background:#fff}
.role-choice input:checked + .role-choice-card{border-color:var(--brand);background:#f3f8f6;box-shadow:0 3px 12px rgba(25,40,50,.06)}
.role-choice input:checked + .role-choice-card .role-choice-icon{background:var(--brand);color:#fff}
.role-choice input:checked + .role-choice-card .role-choice-check{background:var(--brand);border-color:var(--brand);color:#fff}
.role-choice input:focus-visible + .role-choice-card{outline:3px solid rgba(31,107,87,.2);outline-offset:2px}
@media(max-width:700px){.role-choice-grid{grid-template-columns:1fr}.role-choice-card{min-height:0}}

/* V54 — interface de test SMTP */
.notice{padding:15px 18px;border-radius:12px;margin:0 0 18px;border:1px solid var(--line)}
.notice-success{background:#edf8f2;color:#356b45;border-color:#cce9da}
.notice-warning{background:#fff8e8;color:#7a5b1c;border-color:#ead9a7}
.notice-error{background:#fff1f0;color:#8a3d38;border-color:#e8c4c0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}
.form-grid .field label{margin-top:0}
button:disabled{opacity:.5;cursor:not-allowed}
code{background:#f1f4f3;border-radius:6px;padding:2px 6px}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}}

/* V55 — Centre de notifications */
.notification-bell{position:relative;display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:inherit;font-weight:700;margin-right:16px}
.notification-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#b98b2f;color:#fff;font-size:11px;line-height:1;font-weight:800}
.notification-list{display:grid;gap:12px}
.notification-card{display:flex;gap:14px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff}
.notification-card.notification-unread{box-shadow:0 2px 10px rgba(25,40,50,.06)}
.notification-dot{width:10px;height:10px;flex:0 0 10px;border-radius:50%;margin-top:7px;background:#7d8790}
.notification-info .notification-dot{background:#6f94d9}
.notification-warning .notification-dot{background:#b98b2f}
.notification-critical .notification-dot{background:#b75c63}
.notification-body{flex:1;min-width:0}
.notification-topline{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.notification-topline strong{font-size:16px;color:var(--text)}
.notification-topline time{font-size:12px;color:var(--muted);white-space:nowrap}
.notification-body p{margin:8px 0 12px;color:var(--muted);line-height:1.55}
.notification-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.notification-link-button{border:0;background:none;padding:0;font:inherit;cursor:pointer}
.notification-read-button{border:0;background:none;padding:0;color:var(--muted);font:inherit;cursor:pointer;text-decoration:underline}
.notification-mail-warning{display:block;margin-top:10px;color:#8a5b1d}
.notification-mail-ok{display:block;margin-top:10px;color:#4b7c59}
.notifications-empty{text-align:center;padding:55px 20px}
.notifications-empty-icon{width:46px;height:46px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:#edf6ef;color:#4f7b59;font-weight:800;font-size:20px}
.secondary-button{background:#fff;color:var(--text);border:1px solid var(--line)}
@media(max-width:700px){.notification-topline{display:block}.notification-topline time{display:block;margin-top:5px}.notification-card{padding:15px}.notification-bell{margin-right:8px}}

/* V57 — Tableau de bord Admin : hiérarchie des actions et notifications */
.dashboard-attention-card{position:relative;overflow:hidden}
.dashboard-attention-card.has-attention{border-color:#e4d19a;background:#fffaf0}
.dashboard-attention-card.has-attention::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#b98b2f}
.dashboard-attention-card.is-clear{background:#fbfdfc;border-color:#d9e6df}
.dashboard-attention-card.is-clear::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#78a889}
.dashboard-attention-card.has-attention .big-number{color:#7d5c19}
.dashboard-attention-card.is-clear .big-number{color:#315f4d}
.card-state{margin-top:7px;font-size:12px;font-weight:700;color:var(--muted)}
.dashboard-attention-card.has-attention .card-state{color:#8a6500}
.dashboard-attention-card.is-clear .card-state{color:#4f765f}
.dashboard-notification-panel{margin-top:24px}
.dashboard-notification-list{display:flex;flex-direction:column}
.dashboard-notification-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:13px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.dashboard-notification-item:last-child{border-bottom:0}
.dashboard-notification-item:hover{background:#fafcfb}
.dashboard-notification-item.is-unread .dashboard-notification-content strong{font-weight:800}
.dashboard-notification-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;background:#7d8790}
.dashboard-notification-dot.notification-info{background:#6f94d9}
.dashboard-notification-dot.notification-warning{background:#b98b2f}
.dashboard-notification-dot.notification-critical{background:#b75c63}
.dashboard-notification-dot.notification-success{background:#5d8b69}
.dashboard-notification-content{display:flex;flex-direction:column;gap:4px;min-width:0}
.dashboard-notification-content strong{font-size:14px;color:var(--text)}
.dashboard-notification-content span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-notification-item time{font-size:12px;color:var(--muted);white-space:nowrap}
.dashboard-notification-footer{margin-top:10px;color:#7d5c19;font-size:12px;font-weight:700}
.dashboard-notifications-empty{padding:22px 4px;color:var(--muted)}
.dashboard-work-panel{margin-top:24px}
.work-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.work-summary-card{display:flex;align-items:center;gap:15px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none;background:#fff}
.work-summary-card.has-attention{border-color:#ead9a6;background:#fffaf0}
.work-summary-card.is-clear{border-color:#d9e6df;background:#fbfdfc}
.work-summary-number{font-size:28px;font-weight:800;min-width:34px}
.work-summary-card.has-attention .work-summary-number{color:#7d5c19}
.work-summary-card.is-clear .work-summary-number{color:#315f4d}
.work-summary-card strong,.work-summary-card small{display:block}
.work-summary-card small{margin-top:4px;color:var(--muted)}
.work-summary-card:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(25,40,50,.06)}
@media(max-width:700px){.dashboard-notification-item{grid-template-columns:auto 1fr}.dashboard-notification-item time{grid-column:2}.work-summary-grid{grid-template-columns:1fr}}

/* V58 — Demandes Admin : vue de travail par défaut + filtres + états colorés */
.admin-request-worklist{overflow:hidden}
.admin-request-filter-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:4px 0 16px;border-bottom:1px solid var(--line)}
.admin-request-filter-bar .filter-title{font-weight:700;color:var(--muted);margin-right:3px}
.admin-request-filter{display:inline-flex;align-items:center;padding:9px 15px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);text-decoration:none;font-weight:700;font-size:13px;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.admin-request-filter:hover{transform:translateY(-1px);border-color:#aebbc1;text-decoration:none}
.admin-request-filter.active{background:var(--brand);border-color:var(--brand);color:#fff}
.admin-request-legend{display:flex;gap:16px;flex-wrap:wrap;padding:14px 0 4px}
.admin-request-legend-item{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:700}
.admin-request-legend-item i{width:9px;height:9px;border-radius:50%;display:inline-block}
.admin-request-legend-item.todo i{background:#c58a00}.admin-request-legend-item.progress i{background:#6f94d9}.admin-request-legend-item.done i{background:#5d8b69}.admin-request-legend-item.closed i{background:#b75c63}
.admin-request-table{margin-top:12px}.admin-request-table tbody tr{transition:background .15s ease}
.admin-request-table tbody tr.todo{background:#fffaf0}.admin-request-table tbody tr.progress{background:#f6f9ff}.admin-request-table tbody tr.done{background:#f6fbf7}.admin-request-table tbody tr.closed{background:#fff7f7}.admin-request-table tbody tr:hover{filter:brightness(.985)}
.admin-request-status{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--line);white-space:nowrap}
.admin-request-status i{width:8px;height:8px;border-radius:50%;display:inline-block}
.admin-request-status.todo{background:#fff7df;color:#8a6500;border-color:#ead9a6}.admin-request-status.todo i{background:#c58a00}
.admin-request-status.progress{background:#f0f5ff;color:#4d6ea8;border-color:#cbd9f0}.admin-request-status.progress i{background:#6f94d9}
.admin-request-status.done{background:#edf8f0;color:#4f7659;border-color:#cce4d0}.admin-request-status.done i{background:#5d8b69}
.admin-request-status.closed{background:#fff0f0;color:#9a4c49;border-color:#ebc9c7}.admin-request-status.closed i{background:#b75c63}
.admin-request-empty{text-align:center;padding:42px 20px!important}
@media(max-width:850px){.admin-request-table th:nth-child(3),.admin-request-table td:nth-child(3){display:none}.admin-request-filter-bar{align-items:flex-start}.admin-request-filter{padding:8px 12px}}
@media(max-width:650px){.admin-request-legend{flex-direction:column;gap:8px}.admin-request-table th:nth-child(4),.admin-request-table td:nth-child(4){display:none}.admin-request-table .request-actions{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.admin-request-table .request-actions .button{width:auto}}

/* V59.2 — Action Admin : libellé court « Attribuer » */
.admin-request-table .request-actions{white-space:nowrap}
.admin-request-table .request-actions .button{white-space:nowrap}


/* V62.4 — Correction du positionnement public
   Les anciennes versions utilisaient .topbar comme menu latéral fixe.
   Les pages publiques utilisent encore la classe .topbar : on neutralise
   explicitement les anciennes propriétés de sidebar pour éviter que /login
   se retrouve avec un faux menu vertical à gauche. */
.topbar-public{
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:100% !important;
  flex-direction:row !important;
}

/* V62.3 — Correction du bandeau public : le logo ne doit plus être recouvert
   par le bandeau de coordonnées. Sur les pages publiques, la marque et les
   coordonnées vivent dans un seul header autonome. */
.topbar-public{
  position:sticky !important;
  top:0 !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  z-index:60 !important;
  width:100% !important;
  height:68px !important;
  min-height:68px !important;
  margin:0 !important;
  padding:0 28px !important;
  background:var(--brand) !important;
  color:#fff !important;
  border-bottom:1px solid rgba(255,255,255,.12) !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
}
.topbar-public .topbar-page-brand{
  display:flex !important;
  align-items:center !important;
  gap:11px !important;
  color:#fff !important;
  font-size:20px !important;
  font-weight:700 !important;
  white-space:nowrap;
}
.topbar-public .topbar-page-brand .brand-mark{
  width:44px !important;
  height:44px !important;
  min-width:44px;
  border-radius:11px !important;
  background:#fff !important;
  color:var(--brand) !important;
  display:grid !important;
  place-items:center !important;
  font-size:26px !important;
  font-weight:700 !important;
  flex:0 0 auto;
}
.topbar-public-contact{
  display:flex;
  align-items:center;
  gap:12px;
  color:#fff;
  font-size:13px;
  font-weight:600;
}
.topbar-public-contact a{color:#fff !important;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.topbar-public-contact a:hover{text-decoration:underline}

@media(max-width:700px){
  .topbar-public{position:sticky !important;top:0 !important;left:auto !important;right:auto !important;bottom:auto !important;width:100% !important;height:auto !important;min-height:62px !important;padding:10px 15px !important;gap:12px;flex-direction:row !important}
  .topbar-public .topbar-page-brand{font-size:17px !important}
  .topbar-public .topbar-page-brand .brand-mark{width:38px !important;height:38px !important;min-width:38px;font-size:22px !important}
  .topbar-public-contact{font-size:11px;gap:8px}
  .topbar-public-contact a:first-child{display:none}
}


/* V62.5 — Bandeau supérieur : hauteur et alignement
   Hauteur légèrement augmentée pour laisser respirer les notifications et
   les informations de profil, sans modifier le bandeau public. */
.app-main .topbar{height:82px;min-height:82px}
.app-main .topbar-profile{min-height:100%;align-items:center}

/* V62.6 — Correction de superposition du bandeau supérieur authentifié
   Le menu latéral (.sidebar) possède un z-index supérieur au header.
   Sur certaines largeurs, il recouvrait donc la zone Notifications du header.
   Le header doit rester au-dessus du contenu et du menu latéral sur sa propre
   zone, tout en conservant la largeur de .app-main. */
@media (min-width: 701px) {
  .app-main .topbar {
    position: sticky !important;
    top: 29px !important;
    z-index: 60 !important;
    isolation: isolate;
  }

  .app-main .topbar-profile {
    position: relative;
    z-index: 61;
  }
}

/* V62.7 — Statut d'une demande d'accès lors de la connexion */
.auth-next-step.success{background:#edf8f2;border-color:#cce9da}
.auth-next-step.danger{background:#fff3f2;border-color:#f0c8c3}
.auth-next-step.danger strong{color:#9a3328}

/* V62.8 — Stabilisation définitive du shell authentifié
   Le menu latéral est fixe : il ne doit pas participer à la largeur Flex du
   contenu. On neutralise les anciennes règles héritées et on applique un seul
   décalage horizontal au contenu principal. Cela évite le décalage double et
   le grand espace vide observé sur certaines pages. */
@media (min-width: 701px) {
  html, body {
    width: 100%;
    max-width: 100%;
    padding-left: 0 !important;
    overflow-x: hidden;
  }

  .app-shell {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  .sidebar {
    left: 0 !important;
    width: 260px !important;
  }

  .app-main {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin-left: 260px !important;
    margin-right: 0 !important;
    min-width: 0 !important;
  }

  .app-main .topbar {
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  .app-main > .container {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}

@media (min-width: 701px) and (max-width: 900px) {
  .sidebar { width: 220px !important; }
  .app-main { margin-left: 220px !important; }
  .app-main > .container {
    padding-left: 22px !important;
    padding-right: 22px !important;
  }
}


/* V63 — Bandeau unique : notifications + coordonnées
   Le profil et le nom de l'utilisateur restent exclusivement dans le menu
   latéral. On supprime ainsi le second bandeau sombre qui créait un grand
   espace vide et des décalages lors du balayage horizontal. */
@media (min-width: 701px) {
  .topbar-info {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    z-index: 100 !important;
    padding: 0 28px !important;
    justify-content: flex-end !important;
    box-sizing: border-box !important;
  }

  .topbar-info-contact {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 18px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
  }

  .topbar-info .notification-bell-top {
    margin-right: 0 !important;
    color: inherit !important;
    font-weight: 700 !important;
  }

  .app-shell {
    min-height: calc(100vh - 38px) !important;
  }

  .sidebar {
    top: 38px !important;
  }

  /* Plus de second header vide dans la zone de contenu. */
  .app-main > .topbar {
    display: none !important;
  }

  .app-main > .container {
    padding-top: 40px !important;
  }
}

@media (max-width: 700px) {
  .topbar-info {
    height: auto !important;
    min-height: 38px !important;
    padding: 8px 15px !important;
    justify-content: flex-end !important;
  }

  .topbar-info-contact {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
  }

  .notification-bell-top {
    margin-right: 0 !important;
  }

  .app-main > .topbar {
    display: none !important;
  }
}


/* V66 — Cohérence visuelle des tableaux Assistant */
.assistant-cases-panel{padding:0;overflow:hidden}
.assistant-cases-table tbody tr{transition:background .15s ease}
.assistant-cases-table tbody tr.assistant-case-phase-proposed{background:#f7f4ff}
.assistant-cases-table tbody tr.assistant-case-phase-preparation{background:#fffdf8}
.assistant-cases-table tbody tr.assistant-case-phase-suivi{background:#f4f9ff}
.assistant-cases-table tbody tr.assistant-case-phase-a_cloturer{background:#fffaf0}
.assistant-cases-table tbody tr.assistant-case-phase-cloturee{background:#fff6f8}
.assistant-cases-table tbody tr:hover{filter:brightness(.985)}
.assistant-case-badge{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line)}
.assistant-case-badge.proposed{background:#f0ecff;color:#5b4a8f;border-color:#d6cdf2}
.assistant-case-badge.preparation{background:#fffaf0;color:#8a6500;border-color:#ead9a6}
.assistant-case-badge.suivi{background:#eef6ff;color:#315d8f;border-color:#bfd7f1}
.assistant-case-badge.a_cloturer{background:#fff7e8;color:#8a5b00;border-color:#ead5a4}
.assistant-case-badge.cloturee{background:#fff0f3;color:#91495a;border-color:#e5bac5}
.assistant-case-subtitle{margin-top:5px;font-size:12px;color:var(--muted)}
@media(max-width:800px){
  .assistant-cases-table th,.assistant-cases-table td{padding:11px 9px}
  .assistant-case-badge{font-size:11px;padding:5px 9px}
}

/* V67 — Édition des tâches assistant directement sous la ligne */
.assistant-task-entry{border-bottom:1px solid var(--line)}
.assistant-task-entry:last-of-type{border-bottom:0}
.assistant-action-row{border-bottom:0}
.assistant-task-entry .assistant-action-row{padding-bottom:16px}
.assistant-task-editor{display:block;border-top:1px solid var(--line);background:#f8faf9}
.assistant-task-editor:not([open]){display:none}
.assistant-task-editor-trigger{list-style:none;cursor:pointer;padding:12px 18px;color:var(--brand);font-weight:700}
.assistant-task-editor-trigger::-webkit-details-marker{display:none}
.assistant-task-editor .task-edit-form{margin:0;padding:22px 24px;border:0;border-radius:0;background:transparent;max-width:none}
.assistant-task-form-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}
.assistant-task-form-grid label,.assistant-task-planning label{margin:0}
.assistant-task-planning{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.assistant-task-planning.is-hidden{display:none}
.assistant-planning-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.assistant-planning-head strong{font-size:15px;color:var(--brand)}
.assistant-planning-head span{font-size:13px;color:var(--muted)}
.assistant-task-form-actions{margin-top:20px;display:flex;justify-content:flex-start}
.assistant-row-edit summary{padding:7px 12px;border:1px solid var(--brand);border-radius:9px;color:var(--brand);background:#fff}
.assistant-row-edit summary:hover{background:#eef6f3}
.assistant-row-edit[open]{grid-column:auto;justify-self:start}
.assistant-row-edit[open] summary{margin-bottom:0}
@media(max-width:900px){
  .assistant-task-form-grid{grid-template-columns:1fr}
  .assistant-task-entry .assistant-row-actions{grid-column:1 / -1}
  .assistant-task-editor{grid-column:1 / -1}
}
@media(max-width:700px){
  .assistant-task-editor .task-edit-form{padding:16px}
  .assistant-planning-head{display:block}
  .assistant-planning-head span{display:block;margin-top:4px}
}

/* V71 — accès direct au détail depuis le nom et le statut des sessions */
.sessions-table-row .session-name-link{
  color:inherit;
  text-decoration:none;
}
.sessions-table-row .session-name-link:hover{
  text-decoration:underline;
}
.sessions-table-row .session-state-link{
  justify-self:start;
  display:inline-block;
  color:inherit;
  text-decoration:none;
}
.sessions-table-row .session-state-link:hover{
  text-decoration:none;
  transform:translateY(-1px);
}
.sessions-table-row .session-state-link .request-status{
  cursor:pointer;
}


/* Admin request: documents reçus - mise en évidence ergonomique */
.documents-received-section{
  padding:18px 0 24px;
}
.documents-received-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 16px;
  margin-bottom:10px;
  border:1px solid #f0dfc5;
  border-radius:14px;
  background:linear-gradient(90deg,#fffaf2 0%,#fff 100%);
}
.documents-received-title{
  display:flex;
  align-items:center;
  gap:15px;
  min-width:0;
}
.documents-received-title h2{
  margin:0 0 4px;
  color:#7a2b2b;
}
.documents-received-title p{
  margin:0;
}
.documents-folder-icon{
  width:52px;
  height:52px;
  flex:0 0 52px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#fff1d7;
  color:#d99a2b;
  font-size:30px;
}
.documents-count{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  padding:8px 12px;
  border-radius:999px;
  background:#fff0f0;
  color:#a52d2d;
  border:1px solid #f0caca;
  font-size:14px;
  font-weight:700;
}
.document-list-enhanced{
  list-style:none;
  padding:0;
  margin:0;
  gap:10px;
}
.document-list-enhanced li{
  padding:0;
}
.document-item-link{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 16px;
  text-decoration:none;
  color:var(--text);
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
}
.document-item-link:hover{
  transform:translateY(-1px);
  border-color:#dfaaaa;
  box-shadow:0 5px 14px rgba(165,45,45,.08);
}
.document-pdf-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#fff0f0;
  color:#d82f2f;
  font-size:26px;
}
.document-item-content{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.document-item-content strong{
  color:var(--text);
  overflow-wrap:anywhere;
}
.document-item-meta{
  color:var(--muted);
  font-size:13px;
}
.documents-empty{
  display:flex;
  align-items:center;
  gap:10px;
  padding:15px 16px !important;
  border:1px dashed #d7dde2;
  border-radius:12px;
  background:#fafbfc;
}
.documents-empty i{
  color:#d99a2b;
  font-size:22px;
}
@media(max-width:700px){
  .documents-received-head{align-items:flex-start;flex-direction:column}
  .documents-count{align-self:flex-start}
  .documents-folder-icon{width:46px;height:46px;flex-basis:46px;font-size:26px}
}

/* V70.4 — réponse à une demande de complément : priorité à l'action attendue */
.request-reply-panel{
  border:1px solid #e6c36a;
  background:linear-gradient(180deg,#fffdf7 0%,#fff 100%);
}
.request-message-box{
  margin:18px 0 22px;
  padding:18px 20px;
  border-left:5px solid #c8942d;
  border-radius:10px;
  background:#fff8e8;
}
.request-message-label{
  margin-bottom:9px;
  font-weight:800;
  color:#76551b;
}
.request-reply-section{
  margin:0 0 22px;
}
.request-reply-section h3{
  margin:0 0 7px;
}
.request-reply-section textarea{
  width:100%;
  box-sizing:border-box;
  min-height:150px;
  padding:14px;
  border:1px solid #cbd5db;
  border-radius:10px;
  font:inherit;
  resize:vertical;
}
.optional-label{
  font-size:.82em;
  font-weight:500;
  color:var(--muted);
}
.request-reply-button{
  min-width:250px;
}
.request-status-panel .section-head{
  align-items:center;
}
.request-information-panel .request-subsection-title{
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--line,#e1e6e9);
}
.request-edit-panel details summary{
  cursor:pointer;
  font-weight:700;
  color:var(--text);
  padding:4px 0;
}
.request-edit-panel details[open] summary{
  margin-bottom:20px;
}
.request-edit-panel .request-form{
  margin-top:8px;
}
@media(max-width:700px){
  .request-reply-button{width:100%;}
  .request-status-panel .section-head{align-items:flex-start;flex-direction:column;}
}


/* V70.6 — lisibilité des coordonnées client et formateur */
.request-contact-detail{margin:8px 0 18px}
.request-contact-detail > div{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:baseline;padding:7px 0;border-bottom:0}
.request-contact-detail dt{color:var(--muted);font-size:14px;font-weight:400}
.request-contact-detail dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.request-subsection-title{margin-top:24px!important;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:700px){.request-contact-detail > div{grid-template-columns:1fr;gap:2px;padding:6px 0}.request-contact-detail dt{font-weight:600}.request-contact-detail dd{padding-left:0}}


/* V81 — Refonte visuelle de l'écran de connexion ExtrAdmin */
:root{
  --extr-login-dark:#142532;
  --extr-login-dark-2:#1d3445;
  --extr-login-green:#3da56d;
  --extr-login-green-2:#70c66a;
  --extr-login-blue:#3f628d;
  --extr-login-panel:#ffffff;
}
body:has(.auth-login-shell){
  background:#eef2f0;
}
body:has(.auth-login-shell) .topbar-public,
body:has(.auth-login-shell) .footer{
  display:none!important;
}
body:has(.auth-login-shell) main.container{
  max-width:none;
  width:100%;
  margin:0;
  padding:0;
}
.auth-login-shell{
  width:100%;
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.68fr) minmax(390px,.9fr);
  overflow:hidden;
  background:var(--extr-login-panel);
}
.auth-login-visual{
  position:relative;
  min-height:100vh;
  padding:70px 7vw 44px;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 86% 8%,rgba(77,158,121,.16) 0 9%,transparent 9.2%),
    radial-gradient(circle at 10% 86%,rgba(62,109,86,.18) 0 8%,transparent 8.2%),
    linear-gradient(145deg,var(--extr-login-dark-2) 0%,var(--extr-login-dark) 60%,#10202b 100%);
}
.auth-login-visual::before,
.auth-login-visual::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.auth-login-visual::before{
  width:430px;height:430px;right:-180px;top:-230px;
  border:1px solid rgba(127,188,147,.11);
  box-shadow:0 0 0 80px rgba(127,188,147,.03),0 0 0 160px rgba(127,188,147,.02);
}
.auth-login-visual::after{
  width:340px;height:340px;left:-240px;bottom:-220px;
  border:1px solid rgba(127,188,147,.08);
}
.auth-login-brand{
  position:relative;z-index:2;
  display:flex;align-items:center;gap:15px;
  margin-bottom:64px;
}
.auth-login-brand-mark{
  width:54px;height:54px;border-radius:15px;
  display:grid;place-items:center;
  background:rgba(116,203,122,.14);
  border:1px solid rgba(116,203,122,.28);
  color:#7bdb7b;font-size:26px;
  box-shadow:0 12px 26px rgba(0,0,0,.12);
}
.auth-login-brand strong{
  display:block;font-size:25px;line-height:1.05;letter-spacing:-.02em;
}
.auth-login-brand small{
  display:block;margin-top:5px;font-size:10px;letter-spacing:.16em;color:#a8bbc8;font-weight:700;
}
.auth-login-copy{position:relative;z-index:2;max-width:700px}
.auth-login-eyebrow,
.auth-login-form-eyebrow{
  font-size:12px;font-weight:800;letter-spacing:.16em;
}
.auth-login-eyebrow{color:#9fb3c1;margin-bottom:16px}
.auth-login-copy h1{
  max-width:780px;
  margin:0;
  font-size:clamp(34px,3.5vw,60px);
  line-height:1.04;
  letter-spacing:-.035em;
  color:#fff;
}
.auth-login-copy h1 span{color:#79d370}
.auth-login-copy p{
  max-width:630px;
  margin:24px 0 0;
  font-size:17px;
  line-height:1.7;
  color:#afbdc8;
}
.auth-login-illustration{
  position:relative;
  z-index:2;
  width:min(680px,100%);
  height:360px;
  margin:24px auto 0;
}
.auth-orbit{
  position:absolute;
  left:50%;top:48%;
  width:470px;height:250px;
  transform:translate(-50%,-50%) rotate(-8deg);
  border:1px dashed rgba(120,210,127,.4);
  border-radius:50%;
}
.auth-orbit-two{width:570px;height:300px;opacity:.36;transform:translate(-50%,-50%) rotate(12deg)}
.auth-dashboard-card{
  position:absolute;left:50%;top:54%;
  width:470px;height:270px;
  transform:translate(-50%,-50%);
  border-radius:18px;
  border:1px solid rgba(220,236,245,.2);
  background:linear-gradient(145deg,#274253,#142c3a);
  box-shadow:0 28px 65px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06);
  overflow:hidden;
}
.auth-dashboard-bar{height:27px;padding:9px 11px;display:flex;gap:5px;background:#19313e}
.auth-dashboard-bar span{width:6px;height:6px;border-radius:50%;background:#93a9b5;opacity:.8}
.auth-dashboard-content{display:grid;grid-template-columns:90px 1fr;height:calc(100% - 27px)}
.auth-dashboard-sidebar{background:#122733;border-right:1px solid rgba(255,255,255,.05)}
.auth-dashboard-main{padding:28px 20px}
.auth-dashboard-title{width:140px;height:10px;border-radius:4px;background:rgba(255,255,255,.34);margin-bottom:26px}
.auth-dashboard-row{display:flex;align-items:center;justify-content:space-between;gap:14px;height:34px;margin-bottom:12px;padding:0 10px;border-radius:8px;background:rgba(255,255,255,.05)}
.auth-dashboard-row span{width:46%;height:7px;border-radius:4px;background:rgba(255,255,255,.2)}
.auth-dashboard-row b{width:12px;height:12px;border-radius:50%;background:#70cf7c;box-shadow:0 0 0 5px rgba(112,207,124,.08)}
.auth-flow-card{
  position:absolute;
  z-index:3;
  display:flex;align-items:center;gap:10px;
  min-width:122px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.95);
  color:#25323e;
  box-shadow:0 18px 35px rgba(0,0,0,.22);
  font-size:13px;font-weight:700;
  border:1px solid rgba(255,255,255,.6);
}
.auth-flow-card i{font-size:18px}
.auth-flow-folder{left:20px;top:80px}.auth-flow-folder i{color:#4ea76e}
.auth-flow-file{right:28px;top:26px}.auth-flow-file i{color:#4d88ca}
.auth-flow-calendar{right:8px;bottom:56px}.auth-flow-calendar i{color:#c98b43}
.auth-flow-check{left:70px;bottom:18px}.auth-flow-check i{color:#41a969}
.auth-floating-paper{
  position:absolute;z-index:4;right:110px;bottom:0;
  width:60px;height:72px;
  display:grid;place-items:center;
  border-radius:11px 11px 15px 15px;
  background:#fff;
  color:#4cad68;
  font-size:24px;
  transform:rotate(6deg);
  box-shadow:0 20px 30px rgba(0,0,0,.24);
}
.auth-login-values{
  position:relative;z-index:2;
  display:flex;flex-wrap:wrap;gap:12px 28px;
  margin-top:8px;
}
.auth-login-values div{display:flex;align-items:center;gap:9px;color:#bbc9d3;font-size:13px}
.auth-login-values i{color:#72c875}
.auth-login-panel{
  display:flex;align-items:center;justify-content:center;
  padding:40px 50px;
  background:#fff;
}
.auth-login-form-wrap{width:min(460px,100%)}
.auth-login-mobile-brand{display:none}
.auth-login-form-eyebrow{color:#6683a1;margin-bottom:13px}
.auth-login-form-wrap h2{
  margin:0;
  color:#243444;
  font-size:38px;
  line-height:1.05;
  letter-spacing:-.03em;
}
.auth-login-form-subtitle{margin:10px 0 28px;color:#768498;font-size:15px}
.auth-login-form label{margin:0 0 19px;color:#2d3d4d;font-size:13px;font-weight:800}
.auth-input-wrap{position:relative;margin-top:8px}
.auth-input-wrap > i{
  position:absolute;left:15px;top:50%;transform:translateY(-50%);
  color:#8da0b4;font-size:15px;pointer-events:none;
}
.auth-login-form input{
  margin:0;
  height:52px;
  padding:13px 15px 13px 43px;
  border:1px solid #d7e0e7;
  border-radius:11px;
  background:#fff;
  color:#253545;
  box-shadow:0 2px 7px rgba(31,54,73,.03);
  outline:none;
}
.auth-login-form input:focus{
  border-color:#79aa8b;
  box-shadow:0 0 0 4px rgba(77,164,109,.11);
}
.auth-login-form input::placeholder{color:#a8b3bf}
.auth-login-submit{
  min-height:53px;
  display:flex;align-items:center;justify-content:center;gap:8px;
  border-radius:11px!important;
  background:linear-gradient(135deg,#2f6b4f,#2e8a60)!important;
  box-shadow:0 12px 22px rgba(46,138,96,.17);
  font-size:15px;
}
.auth-login-submit:hover{transform:translateY(-1px);box-shadow:0 15px 26px rgba(46,138,96,.22)}
.auth-login-submit span{font-size:19px;line-height:1}
.auth-login-links{margin-top:18px;font-size:13px}
.auth-login-links a{color:#46698c}
.auth-login-identity{margin:0 0 20px;background:#f4f8f5;border:1px solid #d7e8dc;padding:14px 16px;border-radius:11px}
.auth-login-identity span{color:#6e9279}
.auth-login-alert{margin:0 0 18px}
.auth-login-next{margin-top:20px}
.auth-login-next .button{width:auto}
.auth-login-footer-note{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:36px;color:#a2adba}
.auth-login-footer-note span{height:1px;background:#e9edf0}
.auth-login-footer-note p{margin:0;font-size:11px;text-align:center;white-space:nowrap}

@media(max-width:1050px){
  .auth-login-shell{grid-template-columns:1fr 420px}
  .auth-login-visual{padding-left:42px;padding-right:42px}
  .auth-login-copy h1{font-size:44px}
  .auth-dashboard-card{width:390px;height:230px}
  .auth-orbit{width:410px;height:220px}.auth-orbit-two{width:490px;height:260px}
  .auth-login-values{display:none}
}
@media(max-width:800px){
  .auth-login-shell{display:block;min-height:100vh}
  .auth-login-visual{min-height:auto;padding:34px 28px 30px}
  .auth-login-brand{margin-bottom:34px}
  .auth-login-copy h1{font-size:38px}
  .auth-login-copy p{font-size:15px;margin-top:17px}
  .auth-login-illustration{height:245px;margin-top:8px;transform:scale(.88);transform-origin:top center;margin-bottom:-25px}
  .auth-login-panel{padding:36px 28px 44px}
  .auth-login-mobile-brand{display:block;color:#2d4a63;font-size:15px;font-weight:800;margin-bottom:22px}
  .auth-login-footer-note{margin-top:28px}
}
@media(max-width:560px){
  .auth-login-visual{padding:27px 20px 22px}
  .auth-login-brand{margin-bottom:28px}
  .auth-login-brand-mark{width:46px;height:46px;font-size:21px}
  .auth-login-brand strong{font-size:21px}
  .auth-login-copy h1{font-size:31px}
  .auth-login-copy p{font-size:14px;line-height:1.55}
  .auth-login-illustration{height:205px;transform:scale(.67);width:150%;margin-left:-25%;margin-top:-4px;margin-bottom:-45px}
  .auth-login-panel{padding:30px 20px 38px}
  .auth-login-form-wrap h2{font-size:32px}
  .auth-login-footer-note{grid-template-columns:1fr;gap:10px}
  .auth-login-footer-note span{display:none}
  .auth-login-footer-note p{white-space:normal}
}

/* V83 — Tableau de bord : titres de blocs plus lisibles et accent latéral */
.dashboard-notification-panel .section-head h2,
.dashboard-work-panel .section-head h2,
.dashboard-session-panel .section-head h2{
  position:relative;
  margin:0 0 6px;
  padding:3px 0 3px 12px;
  border-left:4px solid var(--brand);
  font-size:20px;
  line-height:1.25;
  font-weight:800;
  color:var(--text);
}

.dashboard-notification-panel .section-head .muted,
.dashboard-work-panel .section-head .muted,
.dashboard-session-panel .section-head .muted{
  margin-left:16px;
}

.dashboard-notification-panel .section-head,
.dashboard-work-panel .section-head,
.dashboard-session-panel .section-head{
  align-items:flex-start;
}

@media(max-width:700px){
  .dashboard-notification-panel .section-head,
  .dashboard-work-panel .section-head,
  .dashboard-session-panel .section-head{
    display:block;
  }

  .dashboard-notification-panel .section-head h2,
  .dashboard-work-panel .section-head h2,
  .dashboard-session-panel .section-head h2{
    font-size:19px;
  }
}

/* V84 — Tableau de bord : cartes KPI plus compactes + repères visuels Font Awesome */
.cards-4{gap:14px}
.cards-4 .card{padding:15px 17px;min-height:148px}
.dashboard-card-head{display:flex;align-items:center;gap:10px;min-height:30px}
.dashboard-card-head .label{margin:0;font-size:13px;font-weight:700;color:var(--text)}
.dashboard-card-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:9px;background:#eef5f1;color:var(--brand);font-size:13px}
.cards-4 .big-number{font-size:28px;line-height:1.05;margin-top:11px}
.cards-4 .card-state{margin-top:5px;line-height:1.25}
.cards-4 .card-action{margin-top:8px;font-size:12.5px}

/* Les formations restent accessibles depuis les écrans métier ; elles ne sont
   plus affichées comme un indicateur prioritaire sur le dashboard Super Admin. */

@media(max-width:980px){
  .cards-4 .card{min-height:142px}
}
@media(max-width:700px){
  .cards-4 .card{min-height:0;padding:14px 15px}
  .cards-4 .big-number{margin-top:9px;font-size:27px}
}


/* V84.2 — Tableau de bord : regroupement des KPI et carte profil */
.dashboard-kpi-group{margin:0 0 20px}
.dashboard-kpi-group-head{margin:0 0 9px;padding-left:2px}
.dashboard-kpi-group-head .eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--muted)}
.dashboard-kpi-group .cards-4{gap:12px;margin:0}
.dashboard-kpi-group .cards-4 .card{min-height:118px;padding:13px 15px}
.dashboard-attention-group .dashboard-attention-card{border-left:4px solid #72a985}
.dashboard-attention-group .dashboard-attention-card.has-attention{border-left-color:var(--brand)}
.dashboard-info-group .dashboard-info-card{border-left:1px solid var(--line)}
.dashboard-kpi-group .dashboard-card-head{min-height:28px;gap:9px}
.dashboard-kpi-group .dashboard-card-icon{width:28px;height:28px;flex-basis:28px;font-size:12px;border-radius:8px}
.dashboard-kpi-group .big-number{font-size:26px!important;line-height:1;margin-top:8px!important}
.dashboard-kpi-group .card-state{font-size:12px;margin-top:4px!important}
.dashboard-kpi-group .card-action{font-size:12px;margin-top:6px!important}
.dashboard-profile-name{margin-top:9px;font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-profile-card .dashboard-card-icon{background:#f0f4f2}
@media(max-width:980px){
  .dashboard-kpi-group .cards-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .dashboard-kpi-group .cards-4{grid-template-columns:1fr}
  .dashboard-kpi-group .cards-4 .card{min-height:0;padding:13px 14px}
}

/* =========================================================
   V84.3 — STABILISATION INTERFACE
   Styles strictement scopes aux écrans Profil et Connexion.
   Objectif : éviter que les finitions du dashboard n'impactent
   d'autres pages.
   ========================================================= */

/* ---------- PROFIL : retour à la composition 2 colonnes ---------- */
.profile-page-head{align-items:center;margin-bottom:22px}
.profile-role-text{font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap}
.profile-alert{margin-bottom:16px}
.profile-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:20px;align-items:start}
.profile-card{padding:22px}
.profile-card-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}
.profile-card-head .eyebrow{margin-bottom:5px}
.profile-card-head h2{margin:0;font-size:20px;color:#23302d}
.profile-card label{font-weight:700;color:#344943;margin:14px 0}
.profile-card label:first-child{margin-top:0}
.profile-card input,.profile-card select{margin-top:6px}
.profile-card .two-col{align-items:start;gap:16px;margin-bottom:4px}
.profile-help{line-height:1.35}
.profile-security-note{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.5}
.profile-password-help{margin-top:6px}
.profile-password-wrap{position:relative;display:flex;align-items:center}
.profile-password-wrap input{padding-right:46px;width:100%}
.profile-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:#6f8179;cursor:pointer;font-size:14px;display:grid;place-items:center}
.profile-password-toggle:hover,.profile-password-toggle.is-visible{background:#eef4f1;color:#274b40}
.profile-form-actions-left{justify-content:flex-start;margin-top:14px}
.profile-form-actions .button{min-width:240px}
.profile-of-card{margin-top:18px}
.profile-of-card .profile-card-head{margin-bottom:16px}
.profile-edit-card{max-width:none}
.profile-address-block{margin-top:2px;padding-top:2px}
.profile-subtitle{margin:0 0 8px}
.profile-address-cp-city{margin:0;grid-template-columns:140px 1fr;gap:16px}

/* ---------- CONNEXION : visuel plus contenu ---------- */
.auth-login-visual{padding:48px 6vw 28px}
.auth-login-brand{margin-bottom:46px}
.auth-login-copy h1{max-width:720px}
.auth-login-copy p{max-width:600px;margin-top:18px}
.auth-login-illustration{width:min(610px,88%);height:300px;margin:10px auto 0}
.auth-orbit{width:430px;height:225px}
.auth-orbit-two{width:520px;height:270px}
.auth-dashboard-card{width:430px;height:240px}
.auth-flow-folder{left:10px;top:64px}
.auth-flow-file{right:14px;top:18px}
.auth-flow-calendar{right:0;bottom:42px}
.auth-flow-check{left:54px;bottom:8px}
.auth-floating-paper{right:82px;bottom:-2px;width:56px;height:66px}

/* Bouton œil : fonctionnement normal si le HTML utilise le wrapper.
   Le second bloc couvre aussi l'ancien markup où le bouton était
   positionné comme frère direct du champ. */
.auth-password-wrap{position:relative;display:flex;align-items:center;margin-top:8px}
.auth-password-wrap input{padding-right:52px;width:100%}
.auth-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:9px;background:transparent;color:#77899a;display:grid;place-items:center;cursor:pointer;padding:0;margin:0;z-index:2}
.auth-password-toggle:hover{background:#f2f6f4;color:#2e6f51}
.auth-password-toggle:focus-visible{outline:2px solid #79aa8b;outline-offset:2px}
.auth-login-form label:has(> input[type="password"] + .auth-password-toggle),
.auth-login-form label:has(> input[type="password"] ~ .auth-password-toggle){position:relative}
.auth-login-form label > input[type="password"] + .auth-password-toggle,
.auth-login-form label > input[type="password"] ~ .auth-password-toggle{position:absolute;right:9px;top:35px;transform:none;width:38px;height:38px;display:grid;place-items:center}

@media(max-width:980px){
  .profile-grid{grid-template-columns:1fr}
  .auth-login-visual{padding-left:42px;padding-right:42px}
  .auth-login-illustration{width:min(560px,92%);height:285px}
  .auth-dashboard-card{width:390px;height:225px}
}

@media(max-width:800px){
  .auth-login-visual{min-height:auto;padding:34px 28px 30px}
  .auth-login-brand{margin-bottom:34px}
  .auth-login-illustration{width:100%;height:245px;margin-top:8px;transform:scale(.88);transform-origin:top center;margin-bottom:-25px}
}

@media(max-width:560px){
  .profile-card{padding:18px}
  .profile-card .two-col,.profile-address-cp-city{grid-template-columns:1fr}
  .profile-form-actions-left{display:block}
  .profile-form-actions-left .button{width:100%;min-width:0}
  .auth-login-visual{padding:27px 20px 22px}
  .auth-login-brand{margin-bottom:28px}
  .auth-login-copy h1{font-size:31px}
  .auth-login-illustration{height:205px;transform:scale(.67);width:100%;margin-left:0;margin-top:-4px;margin-bottom:-45px}
}

/* V84.4 — Notifications : titres plus sobres et discrets */
.notification-topline strong{
  font-size:15px;
  font-weight:700;
  letter-spacing:-0.01em;
}
.notification-body p{
  font-size:14px;
  line-height:1.45;
}
.notification-topline time{
  font-size:11.5px;
}
@media(max-width:700px){
  .notification-topline strong{font-size:15px}
}

/* V84.7 — Stabilisation du bandeau supérieur authentifié
   Objectif : le bandeau Notifications / téléphone / e-mail reste fixé en haut
   pendant le défilement, sans déplacer les autres écrans. */
@media (min-width: 701px) {
  html, body { overflow-x: hidden; }

  .topbar-info {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: 29px !important;
    min-height: 29px !important;
    z-index: 1000 !important;
    box-sizing: border-box !important;
  }

  .app-shell {
    padding-top: 29px !important;
    box-sizing: border-box !important;
  }

  .sidebar {
    top: 29px !important;
    z-index: 990 !important;
  }
}

@media (max-width: 700px) {
  .topbar-info {
    position: static !important;
    width: 100% !important;
  }

  .app-shell {
    padding-top: 0 !important;
  }
}


/* V-next — présentation sobre de l'analyse des demandes admin (CSS uniquement) */
.page-head:has(+ .analysis-form) {
  align-items:flex-start;
  gap:20px;
  margin-bottom:18px;
}
.analysis-form{
  max-width:none;
  padding:24px;
  background:#fff;
  border:1px solid #e3e8e4;
  border-radius:16px;
  box-shadow:0 5px 18px rgba(30,48,39,.045);
}
.analysis-form .analysis-section{
  padding:20px 22px 22px;
  margin:0 0 16px;
  border:1px solid #e5eae6;
  border-radius:13px;
  background:#fff;
}
.analysis-form .analysis-section h2{
  margin:0 0 15px;
  padding-bottom:10px;
  border-bottom:1px solid #edf0ed;
  color:#293a32;
  font-size:19px;
  line-height:1.35;
}
.analysis-form .analysis-section > .muted{
  line-height:1.55;
}
.request-contact-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.request-contact-summary > div{
  min-width:0;
  padding:12px 14px;
  border:1px solid #e7ece8;
  border-radius:10px;
  background:#f7f9f7;
}
.request-contact-summary .muted{
  display:block;
  margin-bottom:4px;
  font-size:13px;
}
.request-contact-summary strong{
  display:block;
  overflow-wrap:anywhere;
  line-height:1.45;
}
.analysis-form .status-grid{
  gap:14px;
}
.analysis-form .status-grid label{
  display:block;
  padding:13px;
  border:1px solid #e5eae6;
  border-radius:10px;
  background:#f8faf8;
  font-weight:600;
}
.analysis-form .status-grid select{
  font-weight:400;
}
.analysis-form .decision-section{
  display:block;
  padding:22px;
  border:1px solid #dce6de;
  background:#f5f8f5;
}
.analysis-form .decision-section h2{
  margin-bottom:15px;
}
.analysis-form .decision-section > label{
  display:block;
  max-width:520px;
}
.analysis-form .decision-section .button{
  margin-top:16px;
}
@media(max-width:760px){
  .analysis-form{padding:14px}
  .analysis-form .analysis-section{padding:16px;margin-bottom:12px}
  .request-contact-summary{grid-template-columns:1fr}
  .documents-received-head{align-items:flex-start;flex-direction:column}
}
