/* GOV-015, FRT-008 : thème et écrans ECR-S01 à ECR-S04 issus de la maquette. */
:root { --bs-body-font-family: 'Avenir Next', Avenir, 'Trebuchet MS', Arial, sans-serif; --bs-body-color: #2b1d2c; --bs-body-bg: #fff8f5; --forest:#cc1a47; --ink:#2b1d2c; --muted:#6e5f68; --line:#f1e1dd; --lime:#ffe3d6; --sage:#fdeeea; --paper:#fff8f5; }
body {margin:0} a {color:inherit} h1,h2,h3 {font-weight:800;letter-spacing:-.035em} .panel {background:white;border:1px solid var(--line);border-radius:24px;box-shadow:0 12px 28px -22px #7a1f3466}
.logo {display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--forest);font-size:30px;font-weight:850;letter-spacing:-1.5px}.logo-dot{color:#ff7956}
.button {display:inline-flex;gap:12px;align-items:center;justify-content:center;border:0;border-radius:100px;min-height:46px;padding:12px 24px;color:white;background:linear-gradient(135deg,#e0264a,#cf3d23);font-weight:700;box-shadow:0 8px 16px -8px #cc1a4766}.button:hover,.button:focus {color:white;background:#b91d3f}.micro{font-size:14px}.form-error{color:#a51f35!important}.form-control{border-color:#ddcecb;border-radius:9px;min-height:48px;padding:12px 14px}.form-control:focus{border-color:#8c6ac4;box-shadow:0 0 0 3px #8c6ac433} :focus-visible{outline:3px solid #8c6ac4;outline-offset:4px}.badge{background:var(--sage);color:#3c6544;font-size:13px;padding:8px;justify-self:start}
.access-card section{display:grid;gap:20px}.access-qr{background:white}.access-steps{margin-bottom:4px!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Écrans d’accès (USR-46) : connexion, code, enregistrement du téléphone, activation. */
.access-page {
  min-height: 100vh;
  display: grid;
  align-content: start;
  justify-items: center;
  gap: 20px;
  padding: 48px 16px;
  background: var(--paper);
}
.access-demo {
  max-width: 560px;
  margin: 0;
  text-align: center;
  color: var(--muted);
  font-size: 14px;
}
.access-card {
  width: min(100%, 520px);
  padding: 32px;
  display: grid;
  gap: 20px;
  outline: none;
}
.access-card > .logo {
  justify-self: start;
}
.access-card > .badge {
  justify-self: start;
}
.access-form {
  display: grid;
  gap: 16px;
}
.access-form h1,
.access-card > h1 {
  font-size: clamp(26px, 6vw, 32px);
  line-height: 1.15;
  margin: 0;
}
.access-form p,
.access-card > p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}
.access-form label {
  display: grid;
  gap: 8px;
  font-weight: 600;
}
.access-form label small {
  font-weight: 400;
  color: var(--muted);
}
.access-form input[name='code'] {
  font-size: 24px;
  letter-spacing: 0.3em;
  font-variant-numeric: tabular-nums;
}
.access-form .button {
  justify-self: stretch;
  justify-content: center;
}
.access-icon {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: var(--sage);
  color: var(--forest);
}
.access-back {
  justify-self: center;
}
.access-account {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-wrap: anywhere;
}
.access-steps {
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: step;
}
.access-steps li {
  flex: 1;
  padding-top: 10px;
  border-top: 4px solid var(--line);
  color: var(--muted);
  font-size: 14px;
  counter-increment: step;
}
.access-steps li::before {
  content: counter(step) '. ';
}
.access-steps li.done {
  border-color: var(--lime);
}
.access-steps li.active {
  border-color: var(--forest);
  color: var(--ink);
  font-weight: 700;
}
.access-instructions {
  margin: 0;
  padding-left: 22px;
  display: grid;
  gap: 8px;
  line-height: 1.5;
}
.access-enrollment {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.access-enrollment > div {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.access-enrollment code {
  font-size: 16px;
  overflow-wrap: anywhere;
  user-select: all;
}
.access-qr {
  width: 148px;
  height: 148px;
  color: var(--ink);
  border-radius: 8px;
}
.invitation-record > .badge {
  margin-bottom: 10px;
}
.invitation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
@media (max-width: 520px) {
  .access-card {
    padding: 24px 18px;
  }
  .access-enrollment {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
}
.admin-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin-bottom: 28px;
}
.admin-overview-card {
  padding: 26px;
  text-align: left;
  color: inherit;
  cursor: pointer;
}
.admin-overview-card > strong {
  display: block;
  font-size: 36px;
  margin: 18px 0 8px;
}
.admin-overview-card h2 {
  font-size: 19px;
}
.admin-overview-card p,
.admin-quick-actions p {
  color: var(--muted);
  line-height: 1.6;
}
.admin-overview-card > span {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
}
.admin-quick-actions,
.admin-directory {
  padding: 24px;
}
.admin-quick-actions h2 {
  margin-bottom: 20px;
}
.admin-directory > label {
  display: grid;
  gap: 8px;
  max-width: 460px;
  margin-bottom: 24px;
}
.admin-records {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.admin-record {
  border: 1px solid var(--line, #e9e3e2);
  border-radius: 16px;
  padding: 20px;
  min-width: 0;
  overflow-wrap: anywhere;
}
.admin-record h2 {
  font-size: 19px;
  margin-bottom: 10px;
}
.admin-record a {
  display: block;
  margin: 8px 0;
}
.admin-record p {
  margin: 8px 0;
}
.admin-create-form label {
  display: grid;
  gap: 8px;
}
.training-dialog-backdrop {position: fixed; inset: 0; z-index: 30; background: #2b1d2c88; display: grid; place-items: center; padding: 20px}
.training-dialog {width: min(100%, 1150px); max-height: min(94vh, 980px); overflow: auto; border-radius: 18px}
.training-dialog-header {display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 28px; border-bottom: 1px solid var(--line)}
.training-dialog-header h1 {font-size: 19px; margin: 0}
.training-dialog-header a {font-size: 28px; text-decoration: none; line-height: 1}
.training-editor {padding: clamp(20px, 3vw, 36px)}
.training-note {background: #fff0ed; border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-bottom: 24px}
.training-editor legend {font-size: 18px; font-weight: 750; float: none; width: auto}
.training-editor-skills {background: #f1f5ff; border: 1px solid #dce5f5; border-radius: 14px; padding: 20px}
.training-editor-skills p {color: var(--muted)}
.training-skill {padding: 10px 0; border-bottom: 1px solid #dce5f5}
.training-editor label {display: grid; gap: 7px; font-weight: 650}
.training-editor .d-flex label {display: inline-flex; font-weight: 500}
@media (max-width: 700px) {.training-dialog-backdrop {padding: 0}.training-dialog {height: 100dvh; max-height: 100dvh; border-radius: 0}.training-dialog-header {padding: 18px}}
@media (max-width: 700px) {
  .admin-overview,
  .admin-records {
    grid-template-columns: 1fr;
  }
  .admin-quick-actions .exception-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

.sidebar{position:fixed;inset:0 auto 0 0;width:246px;background:white;border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column;gap:28px}.workspace{background:var(--paper);padding:16px;border:1px solid var(--line);border-radius:12px;display:grid;font-size:14px}.workspace small{color:var(--muted)}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:12px;text-decoration:none;padding:13px 16px;border-radius:40px;font-size:14px}.sidebar nav a.active{background:linear-gradient(135deg,#e0264a,#cf3d23);color:white;font-weight:750}.sidebar-note{margin-top:auto;background:#fff0f2;padding:20px;border:1px solid var(--line);border-radius:12px}.sidebar-note h2{font-size:18px}.sidebar-note p{font-size:13px;color:var(--muted);margin:0}.workspace-main{margin-left:246px}.workspace-header{height:80px;background:white;border-bottom:1px solid var(--line);padding:20px 40px;display:flex;justify-content:space-between;align-items:center;font-size:14px}.workspace-main main{padding:36px 40px;outline:none}.page-heading{margin-bottom:28px}.page-heading h1{font-size:32px}.page-heading p{color:var(--muted);margin:12px 0 0}.admin-overview-card{text-decoration:none}.admin-overview-card>span:first-child{margin:0}.admin-overview-card p{font-size:13px}.admin-quick-actions h2{font-size:21px}.workspace-main footer{margin:0 40px;padding:24px 0;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
@media(max-width:800px){.sidebar{position:static;width:auto;padding:16px;gap:14px}.sidebar>.workspace,.sidebar-note{display:none}.sidebar nav{display:flex;overflow-x:auto}.sidebar nav a{flex-shrink:0;padding:10px}.sidebar form{align-self:end}.workspace-main{margin:0}.workspace-header{height:auto;padding:16px}.workspace-main main{padding:24px 16px}.workspace-main footer{margin:0 16px}.page-heading h1{font-size:28px}}

/* ECR-C01 et ECR-C08 : espace conseiller, adapté aux deux largeurs de référence. */
.adviser-scope{color:var(--forest)!important;font-size:14px;margin-bottom:14px!important}
.adviser-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;margin-bottom:24px;background:#fae7e4;box-shadow:none}
.adviser-hero h2{font-size:25px;line-height:1.25;margin:20px 0 12px}
.adviser-hero p{margin:0;color:var(--muted)}
.adviser-hero-mark{font-size:110px;line-height:1;color:#9f4c6d;min-width:200px;text-align:center}
.adviser-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:28px}
.adviser-stats a{display:grid;gap:10px;padding:24px;text-decoration:none;color:var(--ink)}
.adviser-stats strong{font-size:30px}.adviser-stats span{font-weight:700}.adviser-stats small,.adviser-next p{color:var(--muted)}
.adviser-next{padding:26px}.adviser-next h2{font-size:22px}.adviser-next a{color:var(--forest);font-weight:700}
.adviser-company-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.adviser-company-heading h1{max-width:680px}
.adviser-search{display:flex;gap:10px;margin:24px 0 12px}.adviser-search input{min-height:50px;flex:1}.adviser-search button{border-radius:10px}.adviser-count{font-size:14px;color:var(--muted);margin:0 0 20px}
.adviser-partner-list{display:grid;gap:18px}.adviser-partner{padding:24px;display:flex;gap:22px;align-items:center;min-width:0}
.adviser-monogram{flex:none;width:76px;height:76px;display:grid;place-items:center;border-radius:16px;background:#fae7e4;color:var(--forest);font-size:32px;font-weight:800}
.adviser-partner-copy{min-width:0;flex:1}.adviser-partner-copy h2{font-size:21px;margin:12px 0 6px}.adviser-partner-copy p{margin:2px 0;color:var(--muted)}.adviser-partner-copy small{display:block;margin-top:14px;color:var(--muted)}
.adviser-partner-actions{display:flex;gap:12px;flex-wrap:wrap}.adviser-partner-actions .btn{border-color:var(--line);color:var(--forest);font-weight:700;padding:10px 18px}
.adviser-mobile-nav{display:none}
@media(max-width:800px){.adviser-sidebar{display:none}.adviser-main .workspace-header{height:80px}.adviser-main main{padding:32px 24px 110px}.adviser-company-heading{align-items:flex-start;flex-direction:column}.adviser-stats{grid-template-columns:1fr}.adviser-hero-mark{display:none}.adviser-partner{align-items:flex-start}.adviser-partner-actions{align-self:end}.adviser-mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:10px 4px 18px;background:white;border-top:1px solid var(--line);z-index:10}.adviser-mobile-nav a{display:grid;justify-items:center;gap:2px;min-width:56px;color:var(--muted);font-size:21px;text-decoration:none}.adviser-mobile-nav a.active{color:var(--forest);font-weight:750}.adviser-mobile-nav small{font-size:12px}}
@media(max-width:540px){.adviser-partner{display:grid;grid-template-columns:64px 1fr;gap:14px}.adviser-monogram{width:64px;height:64px;font-size:25px}.adviser-partner-actions{grid-column:1/-1}.adviser-company-heading h1{font-size:29px}.adviser-hero{padding:22px}}

/* ECR-E11 : coordonnées et sites de l’entreprise. */
.company-profile{padding:26px}.company-profile h2{font-size:22px;margin-bottom:22px}.company-profile h3{font-size:18px;margin:28px 0 8px}.company-profile>p{color:var(--muted)}
.company-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.company-profile-grid>div{display:grid;gap:8px;min-width:0}
.company-profile-grid span,.company-profile-grid label{font-weight:700;font-size:14px}.company-profile-grid label{display:grid;gap:8px;min-width:0}.company-profile-grid strong{padding:13px 15px;border:1px solid #ddcecb;border-radius:9px;font-weight:500;overflow-wrap:anywhere}.company-profile form>button{margin-top:20px}
.company-sites{display:grid;gap:12px;margin:16px 0 26px;padding:0;list-style:none}.company-sites li{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 16px;border:1px solid var(--line);border-radius:10px}.company-sites p{margin:4px 0 0;color:var(--muted)}
.company-add-site form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end;margin-top:20px}.company-add-site label{display:grid;gap:8px;font-weight:700}.company-add-site form button{grid-column:1/-1;justify-self:start}
@media(max-width:800px){.company-sidebar{display:none}.company-main main{padding:32px 24px 110px}.company-mobile-nav{display:flex}}
.company-mobile-header{display:none}.company-current{display:flex;align-items:center;gap:16px;margin:0 0 28px;font-size:13px}.company-current span{font-weight:700}.company-current strong{display:block;padding:11px 14px;min-width:240px;border:1px solid var(--line);border-radius:9px;background:white;font-size:15px;font-weight:500}
@media(max-width:800px){.company-main .workspace-header{height:72px;padding:12px 22px}.company-breadcrumb,.company-header-avatar{display:none}.company-mobile-header{display:flex;align-items:center;gap:12px;width:100%}.company-mobile-header .logo{display:flex;align-items:center;gap:8px;margin-right:auto;font-size:23px;font-weight:900;text-decoration:none;color:var(--forest)}.company-mobile-header>span{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13px}.company-mobile-header>a:last-child{font-size:24px;color:var(--ink);text-decoration:none}.company-current{display:grid;gap:8px;margin-bottom:30px}.company-current strong{width:100%}}
@media(max-width:540px){.company-profile{padding:20px}.company-profile-grid,.company-add-site form{grid-template-columns:1fr}.company-sites li{align-items:flex-start;flex-direction:column}}

/* ECR-E01 : la phrase libre précède les trois accès chiffrés de l’accueil. */
.company-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px;padding:34px;margin:26px 0;background:linear-gradient(115deg,#fff0e5,#f9d9e1);box-shadow:none}
.company-hero h2{font-size:clamp(30px,3vw,45px);line-height:1.12;margin:18px 0}.company-hero h2 em{font-style:normal;color:var(--forest)}
.company-hero p{color:var(--muted)}.company-hero form{display:flex;gap:12px;align-items:stretch;margin-top:24px}.company-hero textarea{min-height:80px;resize:vertical;flex:1}.company-hero form button{flex:none}.company-hero small{display:block;margin-top:8px;color:var(--muted)}
.company-hero-cards{align-self:center;position:relative;height:210px}.company-hero-cards span{position:absolute;display:grid;place-items:center;width:118px;height:178px;border:5px solid white;border-radius:24px;background:#f7a683;color:white;font-size:54px;box-shadow:0 14px 22px #7a1f3433;transform:rotate(-15deg);left:10px;top:20px}.company-hero-cards span:nth-child(2){background:#ef7185;transform:rotate(0);left:65px;top:12px}.company-hero-cards span:nth-child(3){background:#8d65ad;transform:rotate(15deg);left:115px;top:20px}
.company-home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.company-home-stats a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px;color:var(--ink);text-decoration:none}.company-home-stats strong{font-size:27px;color:var(--forest)}.company-adviser{padding:24px;margin-top:24px}.company-adviser h2{font-size:19px}.company-adviser a{color:var(--forest);font-weight:700}
@media(max-width:1100px){.company-hero{grid-template-columns:1fr}.company-hero-cards{display:none}}
@media(max-width:800px){.company-home-stats{grid-template-columns:1fr}}
@media(max-width:540px){.company-hero{padding:22px}.company-hero form{flex-direction:column}.company-hero form button{align-self:stretch}}

/* ECR-C09 : invitation du partenaire dans le contexte du conseiller. */
.adviser-invite-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#2b1d2c80;z-index:20;overflow-y:auto}
.adviser-invite-dialog{width:min(100%,630px);max-height:calc(100vh - 40px);overflow:auto;border-radius:18px;background:white}
.adviser-invite-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:24px 28px;border-bottom:1px solid var(--line)}.adviser-invite-head h1{font-size:18px;margin:0}.adviser-invite-head a{font-size:27px;text-decoration:none}
.adviser-invite-dialog form{display:grid;gap:18px;padding:28px}.adviser-invite-dialog label{display:grid;gap:8px;font-weight:700;font-size:14px}.adviser-invite-dialog form p{font-size:13px;color:var(--muted);margin:0}
.adviser-invite-names{display:grid;grid-template-columns:1fr 1fr;gap:16px}.adviser-invite-actions{display:flex;justify-content:space-between;gap:12px;padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:540px){.adviser-invite-backdrop{padding:0}.adviser-invite-dialog{height:100vh;max-height:none;border-radius:0}.adviser-invite-head,.adviser-invite-dialog form{padding:20px}.adviser-invite-names{grid-template-columns:1fr}}

/* ECR-C02 et ECR-C03 : brouillons et dépôt de CV. */
.student-list{display:grid;gap:0}.student-list article{display:flex;gap:16px;align-items:center;padding:16px 4px;border-top:1px solid var(--line)}.student-list article>div:nth-child(2){flex:1}.student-list h3{font-size:17px;margin:0}.student-list p{margin:4px 0;color:var(--muted)}
.cv-upload{display:grid;justify-items:center;gap:12px;padding:34px 20px;border:1px dashed #ceb8b6;border-radius:12px;background:#fff8f5;text-align:center}.cv-upload input{max-width:100%;font-weight:400}.cv-upload small{font-weight:400;color:var(--muted)}
.student-filters{display:flex;gap:12px;align-items:end;margin:18px 0}.student-filters label{display:grid;gap:6px;flex:1;font-size:14px;font-weight:700}.student-filters label:nth-child(2){flex:0 0 160px}.student-filters button{min-height:48px}.student-pagination{display:flex;justify-content:flex-end;gap:18px;flex-wrap:wrap;padding-top:18px;color:var(--muted);font-size:14px}.student-pagination a{color:var(--forest);font-weight:700}
@media(max-width:540px){.student-list article{display:grid;grid-template-columns:56px 1fr}.student-list .adviser-monogram{width:56px;height:56px}.student-list article>a{grid-column:1/-1}}
@media(max-width:540px){.student-filters{align-items:stretch;flex-direction:column}.student-filters label:nth-child(2){flex:auto}.student-pagination{justify-content:space-between}}

/* ECR-E02 à ECR-E04 : la confirmation est visible et précède la découverte. */
.back-link{display:inline-block;margin-bottom:20px;color:var(--forest);font-weight:700;text-decoration:none}.need-steps{display:flex;gap:28px;list-style:none;padding:0;margin:0 0 32px;color:var(--muted);font-size:14px}.need-steps .active{color:var(--forest);font-weight:800}.need-steps .done{color:#3c6544}
.need-form{display:grid;gap:22px;padding:26px;max-width:820px}.need-form>label,.need-fields label{display:grid;gap:8px;font-weight:700}.need-form>p,.need-form fieldset>p,.need-form small{color:var(--muted)}
.need-form fieldset{border:0;padding:0;margin:0}.need-form legend{font-size:16px;font-weight:800;margin-bottom:10px}.need-form textarea{resize:vertical}.need-form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:18px}.need-form-footer span{font-size:14px;color:var(--muted)}
.need-brief-layout{display:grid;grid-template-columns:minmax(0,820px) minmax(200px,250px);align-items:start;gap:24px}.need-missions{display:grid;gap:10px}.need-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.need-checks{display:flex;gap:12px;flex-wrap:wrap}.need-checks label{border:1px solid var(--line);border-radius:10px;padding:10px 14px}.need-confirm{display:flex!important;align-items:flex-start;gap:12px}.need-confirm input{margin-top:5px}
.need-assurance{padding:26px;border-radius:18px;background:#fae7e4}.need-assurance>span{font-size:50px;color:var(--forest)}.need-assurance h2{font-size:22px;line-height:1.3;margin:20px 0}.need-assurance p,.need-assurance li{color:var(--muted)}.need-assurance ul{display:grid;gap:14px;list-style:none;padding:0;margin:20px 0 0}
.needs-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.needs-list a{padding:24px;text-decoration:none;color:var(--ink)}.needs-list h2{font-size:21px;margin:16px 0 8px}.needs-list p{color:var(--muted)}.needs-list a>span:last-child{color:var(--forest);font-weight:700}
@media(max-width:1100px){.need-brief-layout{grid-template-columns:1fr}.need-assurance{display:none}}
@media(max-width:700px){.need-steps{gap:10px;justify-content:space-between;font-size:12px}.need-form{padding:20px}.need-form-footer{align-items:stretch;flex-direction:column}.need-fields,.needs-list{grid-template-columns:1fr}}

/* ECR-C04 : fiche du conseiller, rubriques accessibles au clavier et sur mobile. */
.student-editor-backdrop{position:fixed;inset:0;background:#2b1d2c80;z-index:30;display:grid;place-items:center;padding:24px}.student-editor{width:min(100%,1000px);height:min(840px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden;border-radius:18px}
.student-editor-head{display:flex;align-items:center;justify-content:space-between;padding:24px 26px;border-bottom:1px solid var(--line)}.student-editor-head h1{font-size:18px;margin:0}.student-editor-head a{font-size:28px;text-decoration:none}
.student-editor-person{display:flex;align-items:center;gap:16px;padding:18px 26px;border-bottom:1px solid var(--line)}.student-editor-person>div:nth-child(2){display:grid;gap:4px;flex:1}.student-editor-person strong{font-size:20px}.student-editor-person small{color:var(--muted)}
.student-editor-body{display:grid;grid-template-columns:235px 1fr;min-height:0;flex:1}.student-editor-tabs{display:grid;align-content:start;gap:6px;padding:16px;background:#fff8f5;border-right:1px solid var(--line);overflow:auto}.student-editor-tabs a{padding:12px 16px;border-radius:12px;color:var(--ink);font-weight:700;text-decoration:none}.student-editor-tabs a.active{background:white;color:var(--forest);box-shadow:0 4px 15px #7a1f3420}
.student-editor-content{overflow:auto;padding:24px 26px}.student-editor-content h2{font-size:20px}.student-editor-content p{color:var(--muted)}.student-editor-content form{display:grid;gap:18px;max-width:620px;margin-top:24px}.student-editor-content form label{display:grid;gap:8px;font-weight:700}.student-editor-content form button{justify-self:start}.student-editor-content dl{display:grid;grid-template-columns:130px 1fr;gap:8px}.student-editor-content dt{color:var(--muted)}.student-editor-content dd{font-weight:700}.student-editor-content details form{padding:18px;border:1px solid var(--line);border-radius:12px}
.student-skills{padding:0;list-style:none;display:grid;gap:8px}.student-skills li{display:flex;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:10px}.student-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 26px;border-top:1px solid var(--line);background:white}.student-editor-footer>a:first-child{color:var(--forest);font-weight:700;text-decoration:none}
@media(max-width:800px){.student-editor-backdrop{padding:0}.student-editor{width:100%;height:100vh;max-height:none;border-radius:0}.student-editor-body{display:flex;flex-direction:column}.student-editor-head{padding:20px}.student-editor-person{padding:14px 20px}.student-editor-tabs{display:flex;flex:none;overflow-x:auto;white-space:nowrap;padding:12px;border-bottom:1px solid var(--line);border-right:0}.student-editor-tabs a{flex:none;border:1px solid var(--line);border-radius:100px}.student-editor-tabs a.active{background:var(--ink);color:white}.student-editor-content{padding:24px 20px}.student-editor-footer{padding:12px 20px}}

/* ECR-E05 à ECR-E08 : parcours de découverte des fiches publiées. */
.discovery-need-picker{display:flex;align-items:center;gap:16px;max-width:580px;padding:16px 20px;margin-bottom:16px}.discovery-need-picker label{white-space:nowrap;font-weight:700}.discovery-need-picker select{max-width:360px}
.confirmed-brief{display:flex;align-items:center;gap:16px;padding:20px 24px;border-radius:100px;margin:22px 0}.confirmed-brief span{flex:1;color:var(--muted)}.confirmed-brief a{color:var(--forest);font-weight:700}
.discovery-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0 18px}.discovery-tabs a{padding:12px 20px;border:1px solid var(--line);border-radius:100px;background:white;text-decoration:none;color:var(--ink);font-weight:700}.discovery-tabs a.active{background:var(--ink);color:white}.discovery-tabs a span{margin-left:5px;color:var(--forest)}
.discovery-swipe{max-width:920px;margin:26px auto}.discovery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin:24px 0}.talent-card{overflow:hidden}.discovery-swipe .talent-card{display:grid;grid-template-columns:minmax(220px,42%) 1fr}.talent-portrait{display:grid;place-items:center;min-height:240px;background:linear-gradient(140deg,#ffb79d,#ee6781)}.talent-portrait span{display:grid;place-items:center;width:150px;height:150px;border-radius:50%;border:8px solid #ffffff80;background:#6f4f5f;color:white;font-size:80px;font-weight:800}.talent-content{padding:24px}.talent-content h2{font-size:28px;margin:8px 0}.talent-content p{color:var(--muted)}.talent-content .talent-explanation{color:var(--ink)}.talent-skills{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px}.talent-skills li{border-radius:100px;padding:5px 10px;background:#fff1ef;font-size:12px}.talent-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.talent-actions form{margin:0}.profile-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.profile-section,.profile-actions{padding:26px}.profile-section h2{font-size:20px}.profile-section h3{font-size:17px}.profile-section li{margin:10px 0}.profile-actions{margin-top:20px}.selection-card{padding:22px;display:flex;gap:16px}.selection-card h2{font-size:20px}.selection-card p{color:var(--muted)}.talent-avatar{display:grid;place-items:center;width:56px;height:56px;flex:none;border-radius:50%;background:#ffe2da;color:var(--forest);font-weight:800;font-size:24px}.empty-panel{padding:32px;margin:24px 0}
@media(max-width:700px){.discovery-need-picker{display:grid}.confirmed-brief{display:grid;border-radius:20px}.discovery-tabs a{padding:10px 13px}.discovery-swipe .talent-card{grid-template-columns:1fr}.discovery-swipe .talent-portrait{min-height:220px}.profile-layout{grid-template-columns:1fr}}
.request-card{padding:24px}.request-card h2{font-size:20px;margin-top:16px}.request-card p{color:var(--muted)}.request-card form{display:grid;gap:10px;margin-top:16px}.request-card form label{font-weight:700}.request-card form button{justify-self:start}.empty-panel>form{margin-top:16px}

/* FRT-008, L0-20 : alignement sur les styles calculés de la maquette (ECR-A01, ECR-S01). */
.icon {flex-shrink: 0; vertical-align: -0.2em}
h1, h2, h3 {letter-spacing: -0.02em}
h1 {font-weight: 700}
h2, h3 {font-weight: 600}
.sidebar-note h2, .admin-overview-card > strong {font-weight: 700}
.sidebar nav a {font-weight: 500; color: #706269}
.sidebar nav a.active {font-weight: 700; color: #fff}
.workspace-header strong {font-weight: 500}
.btn.btn-outline-secondary {background: #fff; border-color: #ecd3cd; color: #cc1a47; font-weight: 600; border-radius: 999px}
.btn.btn-outline-secondary:hover, .btn.btn-outline-secondary:focus-visible {background: #fef1ee; border-color: #c9a8a2; color: #cc1a47}

/* FRT-008, L0-20 : sur mobile, l’administrateur suit ECR-A01 (barre inférieure à cinq entrées).
   UX-016 : la déconnexion, absente de la maquette, est dans l’en-tête mobile de chaque espace (USR-57). */
.mobile-workspace-header, .admin-mobile-nav {display: none}
@media (max-width: 800px) {
  .admin-sidebar {display: none}
  .admin-main main {padding: 32px 24px 110px}
  .admin-main .workspace-header > span:first-child, .admin-header-avatar {display: none}
  .mobile-workspace-header {display: flex; align-items: center; gap: 12px; width: 100%}
  .mobile-workspace-header .logo {display: flex; align-items: center; gap: 8px; margin-right: auto; font-size: 23px; font-weight: 900; text-decoration: none; color: var(--forest)}
  .mobile-workspace-header > span {padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; font-size: 13px}
  .mobile-logout {display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink)}
  .admin-mobile-nav {display: flex}
}
#enrollment-secret {color: var(--ink)}
@media (max-width: 800px) {
  .adviser-main .workspace-header > span:first-child, .adviser-header-avatar {display: none}
  .company-mobile-header .mobile-logout {display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink)}
}
