/* JOB212 — système responsive global ordinateur, tablette et mobile. */
:root{--j212-page-pad:clamp(16px,4vw,76px);--j212-reading:1500px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{width:100%;min-width:320px;max-width:100%;overflow-x:hidden}
body{min-height:100vh;min-height:100dvh}
img,picture,video,canvas{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;min-width:0}

/* Accueil, recherche et contenus publics. */
body .site-header,body .home-shell,body .company-strip,body .companies,body .site-footer{width:100%;max-width:none}
body .offers-shell{width:min(100%,1500px);max-width:none;margin-inline:auto;padding:clamp(24px,4vw,64px)}
body .offers-shell h1{font-size:clamp(30px,3vw,52px)}
body .offers-empty{padding:clamp(24px,4vw,52px)}

/* Choix d’espace et pages publiques candidat/recruteur. */
body .orientation-main{width:min(100%,1500px);max-width:none;padding-inline:var(--j212-page-pad)}
body .portal-header{width:100%}
body .candidate-hero,body .recruiter-hero{width:100%;padding-inline:var(--j212-page-pad)}
body .candidate-features,body .recruiter-features{width:100%;padding-inline:var(--j212-page-pad)}

/* Tableaux de bord. */
body .dashboard-layout{width:100%;max-width:none}
body .dashboard-main,body .dashboard-aside{min-width:0}
body .recruiter-layout{width:100%;max-width:none;margin-inline:0}
body .recruiter-main,body .recruiter-aside{min-width:0}

/* Tableau de bord recruteur : densité fluide, sans effet miniature. */
@media(min-width:1450px){
  body .recruiter-layout{grid-template-columns:minmax(0,2.15fr) minmax(390px,.85fr);gap:clamp(24px,2vw,42px);padding:clamp(34px,2.4vw,52px) var(--j212-page-pad) 52px}
  body .recruiter-welcome{min-height:158px;padding:28px 32px;border-radius:20px}
  body .recruiter-welcome>div>span{font-size:10px}body .recruiter-welcome h1{font-size:38px}body .recruiter-welcome h1 i{font-size:29px}body .recruiter-welcome p{font-size:14px}
  body .recruiter-welcome>a{min-width:270px;height:78px;padding:14px 17px;border-radius:14px}body .recruiter-welcome>a>svg{width:29px;height:29px}body .recruiter-welcome>a strong{font-size:13px}body .recruiter-welcome>a small{font-size:10px}
  body .recruiter-actions{gap:18px;margin-top:20px}body .recruiter-actions>a{min-height:138px;padding:23px;border-radius:18px;gap:18px}body .recruiter-actions>a>span{width:58px;height:58px}body .recruiter-actions svg{width:31px;height:31px}body .recruiter-actions small{font-size:9px}body .recruiter-actions strong{font-size:18px}body .recruiter-actions p{font-size:12px}body .recruiter-actions>a>b{font-size:11px;padding:12px 14px}
  body .recruiter-stats{gap:15px;margin-top:20px}body .recruiter-stats article{min-height:126px;padding:19px;border-radius:16px;gap:15px}body .stat-icon{width:50px;height:50px}body .stat-icon svg{width:25px;height:25px}body .recruiter-stats small{font-size:11px}body .recruiter-stats strong{font-size:30px}body .recruiter-stats em{font-size:10px}
  body .recruiter-services{margin-top:29px}body .section-heading{margin-bottom:15px}body .section-heading h2{font-size:23px}body .section-heading p{font-size:13px}body .section-heading>a{font-size:12px}
  body .recruiter-service-grid{gap:15px}body .recruit-service{height:122px;padding:18px;border-radius:16px;gap:15px}body .recruit-service .service-icon{width:54px;height:54px}body .recruit-service .service-icon svg{width:27px;height:27px}body .recruit-service strong{font-size:13px}body .recruit-service small{font-size:11px}body .recruit-service>i{width:32px;height:32px;font-size:16px}
  body .recruiter-aside{gap:19px}body .company-panel{padding:23px}body .company-panel,body .recent-panel{border-radius:18px}body .company-heading>span{width:52px;height:52px}body .company-heading small{font-size:9px}body .company-heading h2{font-size:18px}body .company-progress{padding:18px;margin-top:19px}body .company-progress>div{font-size:12px}body .company-progress p{font-size:11px}body .company-panel>a{height:50px;font-size:12px}
  body .recent-panel{padding:19px}body .panel-heading h2{font-size:16px}body .panel-heading a{font-size:11px}body .recent-candidate{min-height:72px}body .recent-candidate>span{width:44px;height:44px;font-size:11px}body .recent-candidate strong{font-size:12px}body .recent-candidate small{font-size:10px}body .recent-candidate em{font-size:9px}body .empty-recent{min-height:205px}body .empty-recent strong{font-size:13px}body .empty-recent small{font-size:11px}
  body .talent-banner{min-height:126px;padding:22px;border-radius:18px}body .talent-banner small{font-size:9px}body .talent-banner strong{font-size:18px}body .talent-banner>span{font-size:10px;padding:12px}
}

@media(min-width:1900px){
  body .recruiter-layout{grid-template-columns:minmax(0,2.2fr) minmax(455px,.8fr);gap:46px;padding-inline:clamp(72px,5vw,118px)}
  body .recruiter-header{height:86px;padding-inline:clamp(55px,5vw,110px)}body .recruiter-header .dashboard-logo{width:178px;height:68px}body .recruiter-header .dashboard-logo img{width:214px}body .recruiter-header nav a{font-size:14px}
  body .recruiter-welcome{min-height:178px}body .recruiter-welcome h1{font-size:44px}body .recruiter-welcome p{font-size:15px}
  body .recruiter-actions>a{min-height:154px}body .recruiter-actions strong{font-size:20px}body .recruiter-actions p{font-size:13px}
  body .recruiter-stats article{min-height:140px}body .recruit-service{height:136px}body .recruit-service strong{font-size:15px}body .recruit-service small{font-size:12px}
}

/* Profil, CV, candidatures, alertes, messages et outils RH. */
body .module-shell{width:100%;max-width:none;margin:0;grid-template-columns:clamp(210px,14vw,285px) minmax(0,1fr);gap:clamp(22px,2.2vw,42px);padding:clamp(24px,3vw,58px) var(--j212-page-pad)}
body .module-content{width:100%;max-width:none}
body .module-card,body .list-card,body .candidate-list{width:100%;max-width:none}
body .module-title h1{font-size:clamp(30px,2.4vw,46px)}
body .module-header{width:100%;padding-inline:var(--j212-page-pad)}

/* Authentification. */
body .auth-shell{width:100%;max-width:none}
body .auth-left,body .auth-right{min-width:0}
body .auth-card{max-width:720px}

/* Grands écrans : tailles normales sans effet miniature. */
@media(min-width:1500px){
  body .orientation-main{padding-top:56px}.orientation-title h1{font-size:clamp(40px,2.5vw,52px)}
  body .orientation-card{min-height:500px}.choice-visual{height:205px}.choice-copy{padding:30px}.choice-copy h2{font-size:29px}.choice-copy>p{font-size:12px}.choice-points b{font-size:10px}.choice-copy>strong{height:53px;font-size:12px}
  body .module-header{height:82px}.module-logo{width:175px;height:68px}.module-logo img{width:210px}.module-header nav a,.module-header>div{font-size:13px}
  body .module-nav{padding:16px;border-radius:18px}.module-nav a,.module-nav strong{padding:12px 14px;font-size:13px}.module-nav strong{font-size:11px}
  body .module-card,body .list-card,body .candidate-list{padding:clamp(28px,2.2vw,42px);border-radius:19px}.module-card h2{font-size:22px}.module-card>p{font-size:15px}
  body .form-card label{font-size:13px}.form-card input,.form-card textarea,.form-card select,.search-box input,.list-card select{font-size:15px;padding:14px 15px}.form-button,.secondary-button,.search-box button,.list-card button,.candidate-list button{font-size:14px;padding:14px 23px}
  body .list-card strong{font-size:15px}.list-card small,.list-card article p{font-size:13px}.list-card article{min-height:96px}
  body .public-card h2{font-size:31px}.public-card h3{font-size:18px}.public-card>p:not(.location){font-size:15px;max-width:900px}
  body .advice article{padding:26px}.advice h3{font-size:17px}.advice article p{font-size:14px}
  body .auth-card{padding:clamp(40px,3vw,58px)}
}

/* Ordinateurs portables et petites tablettes horizontales. */
@media(min-width:901px) and (max-width:1250px){
  body .module-shell{grid-template-columns:190px minmax(0,1fr);gap:20px;padding:24px}
  body .module-header{gap:24px;padding-inline:24px}.module-header nav{gap:20px}
  body .orientation-main{padding-inline:24px}.orientation-grid{gap:16px}
  body .candidate-hero,body .recruiter-hero{padding-inline:30px}
}

/* Tablettes. */
@media(max-width:900px){
  body .module-shell{display:block;padding:20px}
  body .module-nav{position:static;width:100%;display:flex;overflow-x:auto;overscroll-behavior-inline:contain;gap:7px;margin-bottom:22px;padding:10px;scrollbar-width:thin}
  body .module-nav a{white-space:nowrap;flex:0 0 auto;min-height:42px;display:flex;align-items:center}
  body .module-nav strong{display:none}
  body .field-grid{grid-template-columns:1fr 1fr}
  body .orientation-grid{grid-template-columns:1fr;max-width:680px;margin-inline:auto}
  body .orientation-card{min-height:0}
  body .auth-shell{display:block}.auth-left{min-height:100vh}.auth-right{display:none}
  body .portal-header nav{display:none}.portal-header>div{margin-left:auto}
}

/* Téléphones. */
@media(max-width:620px){
  :root{--j212-page-pad:14px}
  input,select,textarea{font-size:16px!important}
  button,a{touch-action:manipulation}
  body .module-header{height:64px;padding:0 14px;gap:10px}.module-header nav{display:none}.module-header>div{margin-left:auto}.module-header>div span{display:none}
  body .module-shell{padding:14px}.module-nav{margin-bottom:16px}.module-title{align-items:flex-start}.module-title h1{font-size:27px}.module-title>a{display:none}
  body .field-grid{grid-template-columns:1fr}.module-card,.list-card,.candidate-list{padding:18px;border-radius:14px}.button-row,.search-box{flex-direction:column}.button-row>*{width:100%}
  body .list-card article{align-items:flex-start;flex-direction:column}.list-card form{width:100%;flex-wrap:wrap}.list-card select{width:100%}
  body .stat-grid,body .advice>div{grid-template-columns:1fr}.candidate-list article{align-items:flex-start;flex-wrap:wrap}.candidate-list article>div{min-width:calc(100% - 70px)}.candidate-list button{margin-left:0;width:100%}
  body .current-file{grid-template-columns:1fr}.current-file a{grid-column:1;grid-row:auto;margin-top:8px}
  body .orientation-main{padding:26px 14px}.orientation-title h1{font-size:30px}.choice-visual{height:150px}.choice-copy{padding:20px}.choice-points{gap:8px}
  body .portal-header{height:66px;padding:0 14px}.portal-logo{width:120px}.portal-login{display:none}.portal-button{padding:10px}
  body .candidate-hero,body .recruiter-hero{grid-template-columns:1fr;padding:30px 14px}.candidate-map,.recruiter-visual{height:390px}.feature-grid{grid-template-columns:1fr}
  body .auth-left{padding:18px}.auth-card{width:100%;padding:25px 20px;border-radius:20px}.auth-card h1{font-size:28px}.grid,.social-row{grid-template-columns:1fr}
  body .offers-shell{padding:28px 16px}.offers-empty{padding:24px}
}

@media(max-width:380px){
  body .module-shell{padding:10px}.module-card,.list-card,.candidate-list{padding:15px}.module-title h1{font-size:24px}
  body .orientation-main{padding-inline:10px}.choice-copy{padding:17px}
}

@supports(padding:max(0px)){
  @media(max-width:620px){
    body .site-header,body .dashboard-header,body .module-header,body .portal-header,body .orientation-header{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
    body .home-shell,body .dashboard-main,body .dashboard-aside,body .module-shell,body .orientation-main{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
  }
}
