/* Mon Approbation — Portail Référents · branding navy/ivoire */
@font-face{
  font-family:'Recia';
  src:url('fonts/Recia-Semibold.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap;
}
.map-portail{
  --fondation:#091b2b; --horizon:#213457; --nacre:#d8e1e9; --ivoire:#e5e3df;
  --serif:'Recia','Fraunces',Georgia,serif; --sans:'Inter',-apple-system,system-ui,sans-serif;
  max-width:1080px;margin:0 auto;padding:8px 16px 48px;
  font-family:var(--sans);color:var(--fondation);
}
.map-portail *{box-sizing:border-box;}
.map-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;}
.is-hidden{display:none!important;}

/* Logo */
.map-logo{display:block;width:auto;}
.map-hero .map-logo{height:58px;margin:0 auto 22px;}
.map-topbar .map-logo{height:30px;}

/* Hero */
.map-hero{text-align:center;padding:48px 16px 32px;}
.map-check,.map-check-sm{display:inline-flex;align-items:center;justify-content:center;
  background:var(--fondation);color:var(--ivoire);border-radius:50%;font-weight:700;}
.map-check{width:64px;height:64px;font-size:32px;margin-bottom:18px;
  box-shadow:0 8px 30px rgba(9,27,43,.25);}
.map-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(28px,4vw,42px);
  color:var(--fondation);margin:0 0 10px;letter-spacing:-.5px;}
.map-hero p{color:var(--horizon);font-size:17px;max-width:560px;margin:0 auto;line-height:1.5;}

/* Cards */
.map-card{background:#fff;border:1px solid var(--nacre);border-radius:16px;
  padding:28px;box-shadow:0 4px 24px rgba(9,27,43,.06);}
.map-card h2{font-family:var(--serif);font-weight:600;font-size:22px;margin:0 0 18px;color:var(--fondation);}

/* Auth tabs */
.map-auth{max-width:460px;margin:0 auto;}
.map-tabs{display:flex;gap:8px;margin-bottom:14px;background:var(--nacre);padding:6px;border-radius:12px;}
.map-tab{flex:1;border:0;background:transparent;padding:11px;border-radius:8px;cursor:pointer;
  font-family:var(--sans);font-weight:600;font-size:15px;color:var(--horizon);}
.map-tab.is-active{background:#fff;color:var(--fondation);box-shadow:0 2px 8px rgba(9,27,43,.1);}

/* Forms */
.map-portail label{display:block;margin-bottom:14px;font-weight:500;font-size:14px;color:var(--horizon);}
.map-portail input[type=text],.map-portail input[type=email],.map-portail input[type=password],
.map-portail input[type=tel],.map-portail textarea{
  width:100%;margin-top:6px;padding:11px 13px;border:1px solid var(--nacre);border-radius:9px;
  font-family:var(--sans);font-size:15px;color:var(--fondation);background:#fbfbfa;}
.map-portail input:focus,.map-portail textarea:focus{outline:none;border-color:var(--horizon);
  box-shadow:0 0 0 3px rgba(33,52,87,.12);background:#fff;}
.map-portail fieldset{border:1px solid var(--nacre);border-radius:12px;padding:16px 18px;margin:0 0 16px;}
.map-portail legend{font-family:var(--serif);font-weight:600;font-size:15px;padding:0 8px;color:var(--fondation);}

.map-portail .map-btn{background:var(--fondation);color:var(--ivoire);border:0;border-radius:10px;
  padding:13px 22px;font-family:var(--sans);font-weight:600;font-size:15px;cursor:pointer;width:100%;
  transition:background .15s;}
.map-portail .map-btn:hover{background:var(--horizon);color:var(--ivoire);}
.map-portail .map-btn-ghost{background:transparent;border:1px dashed var(--horizon);color:var(--horizon);
  border-radius:9px;padding:9px 14px;font-weight:600;cursor:pointer;margin-bottom:16px;font-size:14px;width:auto;}

/* ===== Neutralise le hover rose (#c36) du reset hello-elementor sur TOUT le portail ===== */
.map-portail a{color:var(--horizon);}
.map-portail button:hover,.map-portail button:focus,
.map-portail [type=submit]:hover,.map-portail [type=submit]:focus,
.map-portail [type=button]:hover,.map-portail [type=button]:focus{
  background-color:var(--horizon);color:var(--ivoire);border-color:var(--horizon);text-decoration:none;}
.map-portail .map-btn-ghost:hover,.map-portail .map-btn-ghost:focus{background:var(--fondation);color:var(--ivoire);border-style:solid;border-color:var(--fondation);}
.map-portail .map-tab:hover{background:rgba(255,255,255,.6);color:var(--fondation);}

/* Pills (radio/checkbox) */
.map-radios,.map-checks{display:flex;flex-wrap:wrap;gap:8px;}
.map-pill{display:inline-flex;align-items:center;gap:7px;margin:0;padding:8px 14px;
  border:1px solid var(--nacre);border-radius:999px;cursor:pointer;background:#fbfbfa;font-size:14px;color:var(--fondation);}
.map-pill input{accent-color:var(--horizon);}

/* Topbar (logged in) */
.map-topbar{display:flex;justify-content:space-between;align-items:center;
  padding:14px 0 22px;border-bottom:1px solid var(--nacre);margin-bottom:24px;flex-wrap:wrap;gap:10px;}
.map-brand{font-family:var(--serif);font-weight:600;font-size:20px;display:flex;align-items:center;gap:10px;}
.map-check-sm{width:30px;height:30px;font-size:16px;}
.map-user{font-size:14px;color:var(--horizon);display:flex;align-items:center;gap:14px;}
.map-link{color:var(--horizon);text-decoration:none;font-weight:600;border-bottom:1px solid transparent;}
.map-link:hover{border-bottom-color:var(--horizon);}

/* Stats */
.map-stats{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap;}
.map-stat{flex:1;min-width:160px;background:var(--fondation);color:var(--ivoire);
  border-radius:14px;padding:20px 24px;}
.map-stat-n{display:block;font-family:var(--serif);font-size:38px;font-weight:600;line-height:1;}
.map-stat-l{display:block;opacity:.82;margin-top:8px;font-size:14px;}

/* Grid form + history */
.map-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;}
@media(max-width:820px){.map-grid{grid-template-columns:1fr;}}

.map-table{width:100%;border-collapse:collapse;font-size:14px;}
.map-table th{text-align:left;color:var(--horizon);font-weight:600;border-bottom:2px solid var(--nacre);padding:8px 6px;}
.map-table td{padding:9px 6px;border-bottom:1px solid var(--nacre);color:var(--fondation);}
.map-badge{background:var(--nacre);color:var(--fondation);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;text-transform:capitalize;}
.map-empty{color:var(--horizon);opacity:.8;}

/* Admin view */
.map-admin-badge{background:var(--fondation);color:var(--ivoire);border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600;}
.map-portail .map-card + .map-card{margin-top:20px;}
.map-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.map-card-head h2{margin:0;}
.map-card-head .map-btn-ghost{margin:0;}
.map-table-wrap{overflow-x:auto;}
.map-add-user{border:1px solid var(--nacre);border-radius:12px;padding:18px 18px 4px;margin-bottom:18px;background:#fbfbfa;}
.map-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
@media(max-width:560px){.map-add-grid{grid-template-columns:1fr;}}
.map-hint{font-size:13px;color:var(--horizon);opacity:.85;margin:0 0 12px;line-height:1.45;}
.map-forgot-link{display:inline-block;margin-top:14px;color:var(--horizon);font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid transparent;cursor:pointer;}
.map-forgot-link:hover{border-bottom-color:var(--horizon);}
.map-profile-card{margin-top:24px;}
.map-status{border:1px solid var(--nacre);border-radius:8px;padding:5px 9px;font-family:var(--sans);font-size:13px;font-weight:600;background:#fbfbfa;cursor:pointer;color:var(--fondation);}
.map-status-converti{color:#1c6b3f;border-color:#b8e0c8;background:#e7f4ec;}
.map-status-contacté{color:#8a5a00;border-color:#ecd9a8;background:#fbf3e0;}
.map-status-fermé{color:#9a2a2a;border-color:#f0c4c4;background:#fbe9e9;}

/* Flash */
.map-flash{padding:13px 18px;border-radius:10px;margin:0 0 18px;font-weight:500;font-size:14px;}
.map-flash-ok{background:#e7f4ec;color:#1c6b3f;border:1px solid #b8e0c8;}
.map-flash-err{background:#fbe9e9;color:#9a2a2a;border:1px solid #f0c4c4;}
