:root {
    --lot5d-navy: #0b2239;
    --lot5d-blue: #005596;
    --lot5d-blue-light: #0b78ba;
    --lot5d-orange: #f17024;
    --lot5d-ink: #13253a;
    --lot5d-muted: #64748b;
    --lot5d-surface: #f4f8fb;
    --lot5d-border: #dce7ef;
    --lot5d-shadow: 0 22px 55px rgba(11, 34, 57, .10);
}

.lot5d-public-page,
.portal-auth-main,
.portal-dashboard-body { color: var(--lot5d-ink); }
.lot5d-public-page .public-navbar { box-shadow: 0 10px 35px rgba(11, 34, 57, .08); }
.lot5d-service-main,
.lot5d-simulation-main,
.portal-auth-main { padding-top: 92px; background: #fff; }

.service-card-actions { display: flex; align-items: center; justify-content: space-between; gap: .8rem; border-top: 1px solid var(--lot5d-border); padding-top: 1.05rem; margin-top: auto; }
.service-card-actions .service-link { border: 0; padding: 0; flex: 1; }
.service-consult { border: 1px solid rgba(0, 85, 150, .18); background: #eef7fc; color: var(--lot5d-blue); border-radius: 999px; padding: .5rem .85rem; font-weight: 800; cursor: pointer; transition: transform .2s ease, background .2s ease; }
.service-consult:hover { transform: translateY(-2px); background: #dff1fb; }
.featured-service-card { outline: 2px solid rgba(241, 112, 36, .25); }
.portal-opt-in-field { padding: 1rem 1.1rem; border: 1px solid #b8d8ea; border-radius: 14px; background: #f2f9fd; }
.portal-opt-in-field .checkbox { font-weight: 700; color: var(--lot5d-ink); }

.lot5d-service-hero { padding: 4.5rem 1.5rem; background: radial-gradient(circle at 90% 10%, rgba(241,112,36,.12), transparent 28%), linear-gradient(135deg,#eff7fc,#fff 55%); border-bottom: 1px solid var(--lot5d-border); }
.lot5d-service-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: 4rem; align-items: center; }
.lot5d-service-hero-copy h1 { font-size: clamp(2.5rem,5vw,4.7rem); line-height: 1.02; letter-spacing: -.045em; font-weight: 900; color: var(--lot5d-navy); margin: .8rem 0 1.3rem; }
.lot5d-service-hero-copy > p { font-size: 1.18rem; line-height: 1.8; color: #536579; max-width: 720px; }
.lot5d-service-hero-copy .buttons { margin-top: 2rem; }
.lot5d-service-disclaimer { font-size: .92rem !important; border-left: 3px solid var(--lot5d-orange); padding-left: 1rem; margin-top: 1.5rem; }
.lot5d-service-hero-image { border-radius: 28px; overflow: hidden; box-shadow: var(--lot5d-shadow); min-height: 420px; background: var(--lot5d-surface); }
.lot5d-service-hero-image img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; display: block; }
.lot5d-service-content { background: #fff; }
.lot5d-content-card { background: #fff; border: 1px solid var(--lot5d-border); border-radius: 24px; padding: clamp(1.5rem,3vw,2.4rem); box-shadow: 0 14px 38px rgba(11,34,57,.06); margin-bottom: 1.5rem; }
.lot5d-content-card h2 { color: var(--lot5d-navy); font-size: clamp(1.55rem,2.6vw,2.15rem); font-weight: 900; line-height: 1.2; margin: .55rem 0 1.4rem; }
.lot5d-sticky-card { position: sticky; top: 120px; }
.lot5d-icon-list, .lot5d-risk-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.lot5d-icon-list li, .lot5d-risk-list li { display: flex; gap: .9rem; align-items: flex-start; line-height: 1.6; }
.lot5d-icon-list i { color: var(--lot5d-blue); margin-top: .25rem; }
.lot5d-risk-list i { color: var(--lot5d-orange); margin-top: .25rem; }
.lot5d-steps { display: grid; gap: 1rem; }
.lot5d-steps article { display: grid; grid-template-columns: 58px 1fr; gap: 1rem; padding: 1.2rem; border: 1px solid var(--lot5d-border); border-radius: 18px; background: #fbfdff; }
.lot5d-steps article > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: var(--lot5d-blue); color: #fff; font-weight: 900; }
.lot5d-steps h3 { color: var(--lot5d-navy); font-size: 1.1rem; font-weight: 900; margin-bottom: .25rem; }
.lot5d-steps p { color: var(--lot5d-muted); line-height: 1.6; }
.lot5d-checklist-section { background: var(--lot5d-surface); }
.lot5d-checklist-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; margin-top: 2.5rem; }
.lot5d-checklist-card { background: #fff; border: 1px solid var(--lot5d-border); border-radius: 20px; padding: 1.5rem; box-shadow: 0 12px 28px rgba(11,34,57,.05); }
.lot5d-checklist-card h3 { display: flex; align-items: center; gap: .7rem; color: var(--lot5d-blue); font-weight: 900; font-size: 1.1rem; margin-bottom: 1rem; }
.lot5d-checklist-card ul { padding-left: 1.15rem; color: #526477; line-height: 1.8; }
.lot5d-source-list { display: grid; gap: .75rem; }
.lot5d-source-list a { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .95rem 1rem; border-radius: 14px; background: var(--lot5d-surface); color: var(--lot5d-blue); font-weight: 800; transition: transform .2s ease, box-shadow .2s ease; }
.lot5d-source-list a:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(11,34,57,.08); }
.lot5d-service-conversion { padding-top: 0; }
.lot5d-service-conversion-inner { display: flex; justify-content: space-between; gap: 2rem; align-items: center; padding: 2.3rem; border-radius: 24px; background: linear-gradient(135deg,var(--lot5d-navy),var(--lot5d-blue)); color: #fff; }
.lot5d-service-conversion h2 { font-size: 2rem; font-weight: 900; margin: .5rem 0; }
.lot5d-service-conversion p { color: rgba(255,255,255,.78); max-width: 760px; }

.lot5d-simulation-hero { padding: 4.5rem 1.5rem 3.4rem; background: linear-gradient(135deg,var(--lot5d-navy),#0a689f); color: #fff; }
.lot5d-simulation-hero h1 { font-size: clamp(2.4rem,5vw,4.4rem); max-width: 900px; font-weight: 900; line-height: 1.05; margin: .7rem 0 1rem; }
.lot5d-simulation-hero p { max-width: 900px; color: rgba(255,255,255,.8); font-size: 1.12rem; line-height: 1.75; }
.lot5d-simulation-trust { display: flex; flex-wrap: wrap; gap: 1.4rem; margin-top: 1.7rem; font-weight: 800; }
.lot5d-simulation-trust span { display: flex; gap: .5rem; align-items: center; }
.lot5d-simulation-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 2rem; align-items: start; }
.lot5d-simulation-form { border: 1px solid var(--lot5d-border); border-radius: 26px; padding: clamp(1.4rem,3vw,2.5rem); box-shadow: var(--lot5d-shadow); background: #fff; }
.lot5d-progress { height: 8px; border-radius: 999px; background: #e6eef4; overflow: hidden; }
.lot5d-progress > div { width: 33%; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--lot5d-blue),var(--lot5d-orange)); transition: width .3s ease; }
.lot5d-progress-label { display: flex; justify-content: space-between; color: var(--lot5d-muted); margin: .65rem 0 2rem; font-size: .88rem; }
.simulation-step { border: 0; padding: 0; margin: 0; min-width: 0; }
.simulation-step legend { display: flex; gap: .8rem; align-items: center; color: var(--lot5d-navy); font-size: 1.55rem; font-weight: 900; margin-bottom: 1.8rem; }
.simulation-step legend span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #fff; background: var(--lot5d-blue); }
.lot5d-simulation-form .input, .lot5d-simulation-form .select select, .portal-auth-card .input, .portal-access-card .input { min-height: 50px; border-color: #cddce7; border-radius: 12px; box-shadow: none; }
.lot5d-simulation-form .input:focus, .lot5d-simulation-form .select select:focus { border-color: var(--lot5d-blue); box-shadow: 0 0 0 3px rgba(0,85,150,.10); }
.lot5d-consent { display: block; padding: .9rem 1rem; margin-top: .8rem; background: #f6fafc; border-radius: 12px; line-height: 1.55; }
.lot5d-simulation-actions { display: flex; justify-content: flex-end; gap: .8rem; padding-top: 1.8rem; margin-top: 1.8rem; border-top: 1px solid var(--lot5d-border); }
.lot5d-simulation-aside { position: sticky; top: 120px; }
.lot5d-result-card { display: grid; grid-template-columns: 170px 1fr; gap: 2rem; padding: clamp(1.5rem,4vw,3rem); background: #fff; border: 1px solid var(--lot5d-border); border-radius: 28px; box-shadow: var(--lot5d-shadow); }
.lot5d-result-score { width: 150px; height: 150px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; background: conic-gradient(var(--lot5d-blue) 0 75%, #e6eef4 75% 100%); color: #fff; box-shadow: inset 0 0 0 16px var(--lot5d-blue); }
.lot5d-result-score span { font-size: 2.5rem; font-weight: 900; line-height: 1; }
.lot5d-result-score small { text-align: center; font-weight: 800; }
.lot5d-result-main h2 { color: var(--lot5d-navy); font-size: clamp(1.65rem,3vw,2rem); font-weight: 900; margin: .45rem 0 .8rem; }
.lot5d-result-main > p { font-size: 1.08rem; color: var(--lot5d-muted); line-height: 1.7; }
.lot5d-result-main h3 { color: var(--lot5d-blue); font-weight: 900; margin: 1.3rem 0 .6rem; }
.lot5d-result-main ul { padding-left: 1.2rem; line-height: 1.75; }

.portal-auth-hero { padding: 4rem 1.5rem 3rem; background: linear-gradient(135deg,#edf7fc,#fff); border-bottom: 1px solid var(--lot5d-border); }
.portal-auth-hero h1 { font-size: clamp(2.4rem,5vw,4rem); font-weight: 900; color: var(--lot5d-navy); margin: .6rem 0; }
.portal-auth-hero p { font-size: 1.1rem; color: var(--lot5d-muted); max-width: 850px; }
.portal-auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: stretch; }
.portal-auth-card, .portal-access-card { background: #fff; border: 1px solid var(--lot5d-border); border-radius: 24px; padding: clamp(1.5rem,3vw,2.3rem); box-shadow: var(--lot5d-shadow); }
.portal-access-card { background: linear-gradient(160deg,#0c2742,#005596); color: #fff; }
.portal-access-card h2 { color: #fff; font-size: 1.8rem; font-weight: 900; margin: .5rem 0 1rem; }
.portal-access-card > p { color: rgba(255,255,255,.78); line-height: 1.7; }
.portal-access-card .label { color: #fff; }
.portal-card-heading { display: flex; gap: 1rem; align-items: flex-start; margin-bottom: 1.7rem; }
.portal-card-heading h1, .portal-card-heading h2 { color: var(--lot5d-navy); font-size: 1.8rem; font-weight: 900; }
.portal-card-heading p { color: var(--lot5d-muted); }
.portal-card-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 16px; color: #fff; background: var(--lot5d-blue); font-size: 1.25rem; }
.portal-help-box { display: flex; gap: .8rem; margin-top: 1.3rem; padding: 1rem; border-radius: 14px; background: rgba(255,255,255,.10); color: rgba(255,255,255,.85); }
.portal-help-box a { color: #fff; text-decoration: underline; }
.portal-narrow { max-width: 650px !important; padding-top: 7rem; padding-bottom: 4rem; }

.portal-dashboard-body { background: #f3f7fa; min-height: 100vh; }
.portal-topbar { position: sticky; top: 0; z-index: 40; background: rgba(255,255,255,.96); backdrop-filter: blur(16px); border-bottom: 1px solid var(--lot5d-border); }
.portal-topbar-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.portal-logo { display: flex; align-items: center; gap: .8rem; color: var(--lot5d-navy); font-weight: 900; }
.portal-logo img { width: 50px; height: 50px; object-fit: contain; }
.portal-logo span { display: flex; flex-direction: column; }
.portal-logo small { color: var(--lot5d-muted); font-size: .72rem; letter-spacing: .04em; }
.portal-topbar nav { display: flex; align-items: center; gap: 1.1rem; }
.portal-topbar nav a { color: #43566b; font-weight: 750; }
.portal-topbar nav form { margin: 0; }
.portal-topbar nav button { border: 0; background: #edf3f7; color: var(--lot5d-navy); border-radius: 999px; padding: .65rem .9rem; font-weight: 800; cursor: pointer; }
.portal-welcome { background: linear-gradient(135deg,var(--lot5d-navy),#096ea7); padding: 3.5rem 1.5rem; color: #fff; }
.portal-welcome-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 2rem; align-items: center; }
.portal-welcome h1 { font-size: clamp(2rem,4vw,3.4rem); font-weight: 900; margin: .8rem 0; }
.portal-welcome p { color: rgba(255,255,255,.78); max-width: 760px; line-height: 1.7; }
.portal-status-pill { display: inline-flex; align-items: center; gap: .5rem; border-radius: 999px; padding: .45rem .8rem; font-weight: 900; background: rgba(255,255,255,.12); }
.portal-status-pill.is-client { background: rgba(50,205,120,.18); }
.portal-next-action { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.15); border-radius: 20px; padding: 1.4rem; }
.portal-next-action small, .portal-next-action strong { display: block; }
.portal-next-action small { color: rgba(255,255,255,.65); }
.portal-next-action strong { font-size: 1.15rem; margin: .35rem 0 1rem; }
.portal-kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin-bottom: 1.5rem; }
.portal-kpi-grid article { display: flex; gap: 1rem; align-items: center; padding: 1.2rem; background: #fff; border: 1px solid var(--lot5d-border); border-radius: 18px; box-shadow: 0 10px 25px rgba(11,34,57,.04); }
.portal-kpi-grid i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 13px; background: #edf7fc; color: var(--lot5d-blue); }
.portal-kpi-grid span { display: flex; flex-direction: column; }
.portal-kpi-grid strong { font-size: 1.5rem; color: var(--lot5d-navy); }
.portal-kpi-grid small { color: var(--lot5d-muted); }
.portal-panel { background: #fff; border: 1px solid var(--lot5d-border); border-radius: 24px; padding: clamp(1.2rem,3vw,2rem); margin-bottom: 1.5rem; box-shadow: 0 12px 30px rgba(11,34,57,.05); scroll-margin-top: 95px; }
.portal-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1.2rem; margin-bottom: 1.2rem; border-bottom: 1px solid var(--lot5d-border); }
.portal-panel-head h2 { color: var(--lot5d-navy); font-size: 1.65rem; font-weight: 900; }
.portal-card-list { display: grid; gap: .8rem; }
.portal-card-list article { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1.1rem; background: #f8fbfd; border: 1px solid #e5edf3; border-radius: 16px; }
.portal-card-list h3 { font-weight: 900; color: var(--lot5d-navy); margin: .45rem 0 .2rem; }
.portal-card-list p { color: var(--lot5d-muted); }
.portal-list-meta { text-align: right; min-width: 130px; }
.portal-list-meta strong, .portal-list-meta small { display: block; }
.portal-list-meta strong { color: var(--lot5d-blue); }
.portal-list-meta small { color: var(--lot5d-muted); margin-top: .25rem; }
.portal-card-list.compact article { padding: .85rem 1rem; }
.portal-empty { text-align: center; padding: 2.5rem 1rem; color: var(--lot5d-muted); }
.portal-empty i { font-size: 2rem; color: #aac1d1; }
.portal-empty h3 { color: var(--lot5d-navy); font-weight: 900; margin: .7rem 0 .3rem; }
.portal-table-wrap { overflow-x: auto; }
.portal-table-wrap .table { margin-bottom: 0; }
.portal-table-wrap th { color: #617489; font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; background: #f4f8fb; }
.portal-table-wrap td { vertical-align: middle; }
.portal-client-ref { font-weight: 900; color: var(--lot5d-blue); background: #edf7fc; border-radius: 999px; padding: .5rem .8rem; }
.portal-subsection { margin-top: 1.7rem; padding-top: 1.4rem; border-top: 1px solid var(--lot5d-border); }
.portal-subsection > h3, .portal-subtitle { color: var(--lot5d-navy); font-weight: 900; font-size: 1.15rem; margin-bottom: 1rem; }
.portal-message-list { display: grid; gap: .9rem; }
.portal-message-list article { border-radius: 16px; padding: 1rem 1.1rem; max-width: 88%; }
.portal-message-list article.from-client { justify-self: end; background: #eaf6fd; border: 1px solid #cce6f4; }
.portal-message-list article.from-staff { background: #f5f7f9; border: 1px solid #e1e8ee; }
.portal-message-list article > div { display: flex; justify-content: space-between; gap: 1rem; color: var(--lot5d-muted); font-size: .82rem; }
.portal-message-list h3 { color: var(--lot5d-navy); font-weight: 900; margin: .5rem 0 .25rem; }
.portal-message-form { background: #f7fafc; border-radius: 18px; padding: 1.2rem; }
.portal-message-form h3 { color: var(--lot5d-navy); font-weight: 900; font-size: 1.2rem; margin-bottom: 1rem; }
.portal-dashboard-footer { padding: 1.6rem; background: var(--lot5d-navy); color: rgba(255,255,255,.72); }
.portal-dashboard-footer .container { display: flex; justify-content: space-between; }
.portal-dashboard-footer a { color: #fff; }

@media (max-width: 1023px) {
    .lot5d-service-hero-grid, .lot5d-simulation-layout, .portal-welcome-grid { grid-template-columns: 1fr; }
    .lot5d-service-hero-image { min-height: 320px; }
    .lot5d-service-hero-image img { min-height: 320px; }
    .lot5d-sticky-card, .lot5d-simulation-aside { position: static; }
    .lot5d-checklist-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .portal-topbar nav a { display: none; }
    .portal-kpi-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 768px) {
    .lot5d-service-main, .lot5d-simulation-main, .portal-auth-main { padding-top: 72px; }
    .lot5d-service-hero, .lot5d-simulation-hero { padding: 2.8rem 1rem; }
    .lot5d-service-hero-grid { gap: 2rem; }
    .lot5d-checklist-grid, .portal-auth-grid { grid-template-columns: 1fr; }
    .lot5d-service-conversion-inner { flex-direction: column; align-items: flex-start; }
    .lot5d-result-card { grid-template-columns: 1fr; }
    .lot5d-result-score { width: 118px; height: 118px; margin-inline: auto; }
    .lot5d-result-main h2 { font-size: clamp(1.65rem,7vw,2.2rem); line-height: 1.16; }
    .lot5d-result-main > p { font-size: 1rem; line-height: 1.65; }
    .lot5d-result-main .columns { margin-top: .25rem; }
    .lot5d-result-main .buttons { display: grid; grid-template-columns: 1fr; padding-right: 3.25rem; }
    .lot5d-result-main .buttons .button { width: 100%; white-space: normal; }
    .portal-topbar-inner { padding: 0 .9rem; }
    .portal-topbar nav button { font-size: 0; }
    .portal-topbar nav button i { font-size: 1rem; }
    .portal-welcome { padding: 2.4rem 1rem; }
    .portal-kpi-grid { grid-template-columns: 1fr 1fr; }
    .portal-panel-head { align-items: flex-start; flex-direction: column; }
    .portal-card-list article { align-items: flex-start; flex-direction: column; }
    .portal-list-meta { text-align: left; }
    .portal-table-wrap table, .portal-table-wrap thead, .portal-table-wrap tbody, .portal-table-wrap tr, .portal-table-wrap th, .portal-table-wrap td { display: block; }
    .portal-table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .portal-table-wrap tr { border: 1px solid var(--lot5d-border); border-radius: 14px; padding: .65rem; margin-bottom: .7rem; }
    .portal-table-wrap td { border: 0 !important; display: grid; grid-template-columns: 115px 1fr; gap: .7rem; padding: .45rem !important; }
    .portal-table-wrap td::before { content: attr(data-label); font-weight: 900; color: var(--lot5d-muted); }
    .portal-dashboard-footer .container { flex-direction: column; gap: .5rem; }
}
@media (max-width: 480px) {
    .portal-kpi-grid { grid-template-columns: 1fr; }
    .lot5d-simulation-actions { flex-wrap: wrap; }
    .lot5d-simulation-actions .button { flex: 1 1 100%; width: 100%; }
    .lot5d-service-hero-copy .buttons .button, .lot5d-service-conversion .buttons .button { width: 100%; }
}

/* LOT 1 — confort des formulaires et résultats publics */
.lot5d-simulation-form fieldset { min-width: 0; }
.lot5d-simulation-form .select, .lot5d-simulation-form .select select { width: 100%; }
.lot5d-simulation-form .help { line-height: 1.5; }
.lot5d-result-main .notification { line-height: 1.65; }
.lot5d-result-main li + li { margin-top: .35rem; }

@media (max-width: 768px) {
    .lot5d-simulation-hero h1 { font-size: clamp(2rem,9vw,3rem); line-height: 1.08; }
    .lot5d-simulation-hero p { font-size: 1rem; line-height: 1.65; }
    .lot5d-simulation-trust { gap: .65rem 1rem; font-size: .82rem; }
    .lot5d-simulation-layout { gap: 1.25rem; }
    .lot5d-simulation-form { padding: 1.15rem; border-radius: 20px; }
    .lot5d-simulation-form legend { font-size: 1.25rem; line-height: 1.3; }
    .lot5d-simulation-form .columns { margin-left: -.35rem; margin-right: -.35rem; }
    .lot5d-simulation-form .column { padding: .45rem .35rem; }
    .lot5d-result-card { gap: 1.25rem; padding: 1.2rem; border-radius: 20px; }
    .lot5d-result-score span { font-size: 2.1rem; }
}

@media (max-width: 420px) {
    .lot5d-simulation-form .columns { display: block; }
    .lot5d-simulation-form .column { width: 100%; }
    .lot5d-progress-label { gap: .65rem; align-items: flex-start; flex-direction: column; }
    .lot5d-result-main .buttons { padding-right: 2.9rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}
.country-checklist-card{background:#fff;border:1px solid #dfe8f2;border-radius:24px;padding:2rem;margin-bottom:2rem;box-shadow:0 16px 45px rgba(0,54,94,.08)}
.country-checklist-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.4rem}.country-checklist-head h2{font-size:1.65rem;color:#0d2d4c;font-weight:800}.simulation-existing-note{border-left:4px solid #1c9b66}
@media(max-width:768px){.country-checklist-head{flex-direction:column}.country-checklist-card{padding:1.25rem}}

/* LOT 5D R1.2 — préparation documentaire et activation guidée */
.public-checklist-teaser{background:linear-gradient(135deg,#f7fbff 0%,#eef6fb 100%)}
.public-checklist-teaser-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:2rem;align-items:center;padding:2.2rem;border:1px solid #dbe8f2;border-radius:24px;background:#fff;box-shadow:0 18px 45px rgba(7,57,91,.08)}
.public-checklist-teaser-copy p{max-width:720px;color:#52657a;line-height:1.75}
.public-checklist-teaser-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.public-checklist-teaser-list article{display:flex;gap:.85rem;align-items:center;padding:1rem;border:1px solid #dce8f1;border-radius:16px;background:#f8fbfd;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.public-checklist-teaser-list article:hover{transform:translateY(-3px);border-color:#aacbe1;box-shadow:0 12px 26px rgba(0,85,150,.1)}
.public-checklist-teaser-list i{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#e7f3fb;color:#005596;font-size:1.05rem;flex:0 0 auto}
.public-checklist-teaser-list strong,.public-checklist-teaser-list span{display:block}.public-checklist-teaser-list span{font-size:.82rem;color:#65778a;margin-top:.18rem}
.portal-access-steps{display:grid;gap:.65rem;margin:1rem 0 1.15rem;padding:1rem;border-radius:14px;background:rgba(255,255,255,.1)}
.portal-access-steps p{margin:0;color:#f2f7fb;line-height:1.55}.portal-access-steps strong{color:#ff8a42;margin-right:.3rem}
@media(max-width:900px){.public-checklist-teaser-grid{grid-template-columns:1fr;padding:1.35rem}.public-checklist-teaser-list{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.public-checklist-teaser-list{grid-template-columns:1fr}.public-checklist-teaser .buttons .button{width:100%}}


/* Portail intégré — pré-évaluation, rendez-vous et messagerie */
.portal-topbar nav a.is-active { color: var(--lot5d-blue); background: #edf7fc; border-radius: 999px; padding: .55rem .8rem; }
.portal-action-main { min-height: calc(100vh - 76px); background: #f3f7fa; }
.portal-action-hero { padding: 2.5rem 1.5rem; background: linear-gradient(135deg,var(--lot5d-navy),#096ea7); color: #fff; }
.portal-action-hero .portal-back-link { display: inline-flex; align-items: center; gap: .45rem; color: rgba(255,255,255,.86); font-weight: 800; margin-bottom: 1rem; }
.portal-action-hero h1 { color: #fff; font-size: clamp(2rem,4vw,3rem); font-weight: 900; margin-bottom: .65rem; }
.portal-action-hero p { max-width: 780px; color: rgba(255,255,255,.8); line-height: 1.7; }
.portal-action-section { padding-top: 2rem; }
.portal-identity-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; margin: 1rem 0; }
.portal-identity-summary article { background: #f6f9fb; border: 1px solid #dfe9f0; border-radius: 14px; padding: 1rem; min-width: 0; }
.portal-identity-summary small,.portal-identity-summary strong { display:block; }
.portal-identity-summary small { color: var(--lot5d-muted); margin-bottom: .25rem; }
.portal-identity-summary strong { color: var(--lot5d-navy); overflow-wrap:anywhere; }
.portal-action-card { background:#fff; border:1px solid var(--lot5d-border); border-radius:24px; padding:clamp(1.2rem,3vw,2rem); box-shadow:var(--lot5d-shadow); }
.portal-appointment-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:1.5rem; align-items:start; }
.portal-appointment-side { position:sticky; top:95px; }
.portal-selected-slot { border-left:4px solid var(--lot5d-blue); }
.portal-success-card { text-align:center; padding:2rem; }
.portal-success-card i { width:64px; height:64px; display:grid; place-items:center; margin:0 auto 1rem; border-radius:50%; background:#e6f8ef; color:#168a55; font-size:1.7rem; }
.portal-thread-toolbar { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:1rem; }
.portal-thread-unread { display:inline-flex; min-width:22px; height:22px; align-items:center; justify-content:center; border-radius:999px; background:#f17024; color:#fff; font-size:.72rem; font-weight:900; padding:0 .4rem; }
.lot5d-conversation-list { display:grid; gap:.8rem; }
.lot5d-conversation-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem; padding:1rem; border:1px solid #dfe8ef; border-radius:16px; background:#fff; }
.lot5d-conversation-card.is-unread { border-left:4px solid #f17024; background:#fffaf6; }
.lot5d-admin-thread { display:grid; gap:.8rem; margin:1rem 0 1.5rem; }
.lot5d-admin-thread article { max-width:82%; padding:1rem; border-radius:16px; border:1px solid #dfe8ef; }
.lot5d-admin-thread article.from-client { justify-self:start; background:#f5f8fa; }
.lot5d-admin-thread article.from-staff { justify-self:end; background:#eaf6fd; border-color:#c9e4f3; }
.lot5d-admin-thread article header { display:flex; justify-content:space-between; gap:1rem; font-size:.8rem; color:#66788a; }
.lot5d-admin-thread article h3 { margin:.45rem 0 .2rem; font-weight:900; color:#0d2d4c; }
.portal-message-list { max-height:560px; overflow:auto; padding-right:.25rem; }
.portal-message-form .help { line-height:1.5; }
@media(max-width:900px){.portal-appointment-layout{grid-template-columns:1fr}.portal-appointment-side{position:static}.portal-identity-summary{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.portal-action-hero{padding:2rem 1rem}.portal-action-section{padding:1rem}.portal-identity-summary{grid-template-columns:1fr}.portal-topbar nav a{display:none}.portal-topbar nav a.is-active{display:inline-flex}.lot5d-admin-thread article{max-width:96%}.lot5d-conversation-card{grid-template-columns:1fr}}

/* Portail intégré 2026-07-20 — parcours internes et conversations */
.portal-action-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);gap:1.5rem;align-items:start}
.portal-action-side{position:sticky;top:96px;background:linear-gradient(160deg,#0c2742,#005596);color:#fff;border-radius:24px;padding:1.65rem;box-shadow:0 18px 44px rgba(8,42,70,.16)}
.portal-action-side h2{color:#fff;font-size:1.55rem;font-weight:900;margin:.5rem 0 1rem}.portal-action-side ul{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.portal-action-side li{display:flex;gap:.7rem;align-items:flex-start;color:rgba(255,255,255,.86);line-height:1.5}.portal-action-side li i{color:#75e4b0;margin-top:.2rem}.portal-result-card{margin-top:1.4rem;padding:1.1rem;border-radius:16px;background:#fff;color:#18344f}.portal-result-card h3{font-size:1.15rem;font-weight:900;margin:.65rem 0}.portal-result-card p{color:#5b6d7f;line-height:1.55}.portal-result-card .buttons{margin-top:1rem;display:grid}.portal-result-card .button{white-space:normal}
.portal-action-card .portal-identity-summary{display:flex;grid-template-columns:none;gap:1rem;align-items:flex-start;padding:1rem;border:1px solid #dce8f0;background:#f7fbfd;border-radius:16px;margin:1rem 0}.portal-action-card .portal-identity-summary>i{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#e5f2fa;color:#005596;flex:0 0 auto}.portal-action-card .portal-identity-summary div{min-width:0}.portal-action-card .portal-identity-summary strong,.portal-action-card .portal-identity-summary span,.portal-action-card .portal-identity-summary small{display:block;overflow-wrap:anywhere}.portal-action-card .portal-identity-summary span{color:#425b70;margin:.15rem 0}.portal-action-card .portal-identity-summary small{color:#708194;line-height:1.45}.portal-action-card .portal-identity-summary.compact{margin:1.25rem 0}
.portal-form-section{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:1.2rem}.portal-form-section h2{color:#0d2d4c;font-size:1.25rem;font-weight:900}.portal-form-section p{color:#66798b}.portal-step-number{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#005596;color:#fff;font-weight:900;flex:0 0 auto}
.portal-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}.portal-slot-option{position:relative;cursor:pointer}.portal-slot-option input{position:absolute;opacity:0;pointer-events:none}.portal-slot-option span{display:flex;flex-direction:column;gap:.2rem;padding:.85rem;border:1px solid #d7e4ed;border-radius:14px;background:#fff;transition:.18s ease}.portal-slot-option small{color:#6d8091}.portal-slot-option input:checked+span{border-color:#005596;background:#eaf5fb;box-shadow:0 0 0 3px rgba(0,85,150,.1)}
.portal-choice-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.portal-choice-row label{position:relative;cursor:pointer}.portal-choice-row input{position:absolute;opacity:0}.portal-choice-row span{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem;border:1px solid #d7e4ed;border-radius:13px;font-weight:800}.portal-choice-row input:checked+span{background:#eaf5fb;border-color:#005596;color:#005596;box-shadow:0 0 0 3px rgba(0,85,150,.09)}
.portal-admin-messages-layout{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:1.25rem;align-items:start}.portal-admin-conversations,.portal-admin-thread{min-height:600px}.portal-admin-conversation-list{display:grid;gap:.65rem;max-height:720px;overflow:auto}.portal-admin-conversation{display:grid;gap:.35rem;padding:.9rem;border:1px solid #dfe8ef;border-radius:14px;color:#263f55}.portal-admin-conversation:hover,.portal-admin-conversation.is-active{background:#edf7fc;border-color:#a8cee4}.portal-admin-conversation>div{display:flex;justify-content:space-between;gap:.6rem}.portal-admin-conversation strong,.portal-admin-conversation small{display:block}.portal-admin-conversation p{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-admin-thread-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding-bottom:1rem;border-bottom:1px solid #e2eaf0}.portal-admin-thread-head h2{font-size:1.35rem;font-weight:900;color:#0d2d4c}.portal-admin-thread-list{display:grid;gap:.75rem;max-height:560px;overflow:auto;padding:.9rem 0}.portal-admin-thread-list article{max-width:82%;padding:.9rem 1rem;border-radius:16px;border:1px solid #dce6ee}.portal-admin-thread-list article.from-client{justify-self:start;background:#f5f8fa}.portal-admin-thread-list article.from-staff{justify-self:end;background:#eaf6fd;border-color:#c7e1f0}.portal-admin-thread-list article>div{display:flex;justify-content:space-between;gap:1rem;color:#66798b;font-size:.8rem}.portal-admin-thread-list h3{font-weight:900;color:#0d2d4c;margin:.4rem 0}.portal-admin-reply{padding-top:1rem;border-top:1px solid #e2eaf0}.portal-admin-reply h3{font-weight:900;color:#0d2d4c;margin-bottom:.8rem}
@media(max-width:980px){.portal-action-grid,.portal-admin-messages-layout{grid-template-columns:1fr}.portal-action-side{position:static}.portal-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-admin-conversations,.portal-admin-thread{min-height:auto}}
@media(max-width:600px){.portal-slot-grid,.portal-choice-row{grid-template-columns:1fr}.portal-action-card{padding:1rem}.portal-admin-thread-list article{max-width:96%}.portal-topbar-inner{min-height:66px}.portal-logo span{display:none}}

/* PEXSA Voyage — finition définitive du portail — 2026-07-20 */
.portal-action-card.is-complete .simulation-step{opacity:.72}
.portal-contact-card span{display:flex!important;align-items:center;gap:.45rem;margin:.28rem 0!important;line-height:1.45}
.portal-contact-card span i{width:1rem;color:#005596}
.portal-success-panel{margin-top:1.25rem;border:1px solid #bfe6d2;background:#f1fbf6;border-radius:20px;overflow:hidden}
.portal-success-card{padding:1.7rem;text-align:center}.portal-success-card h2{font-size:1.45rem;font-weight:900;color:#0d2d4c;margin:.45rem 0}.portal-success-card p{color:#53687b;line-height:1.6}.portal-success-card .buttons{justify-content:center;margin-top:1.1rem}.portal-success-card>i{width:64px;height:64px;display:grid;place-items:center;margin:0 auto .8rem;border-radius:50%;background:#dff7ea;color:#147a4c;font-size:1.65rem}
.portal-score-line{display:grid;gap:.2rem;margin-top:.9rem;padding:.85rem;border-radius:13px;background:#eef7fc}.portal-score-line strong{font-size:1.3rem;color:#005596}.portal-score-line span{font-size:.83rem;color:#66798b}
.portal-slot-grid{align-items:stretch}.portal-slot-option span{height:100%;min-height:76px;justify-content:center}.portal-slot-empty{grid-column:1/-1}.portal-choice-row.is-three{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-choice-row span{min-height:54px;text-align:center}
.portal-appointment-recap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1.1rem 0}.portal-appointment-recap span{padding:.85rem;border:1px solid #dce9f1;border-radius:13px;background:#fff}.portal-appointment-recap small,.portal-appointment-recap strong{display:block}.portal-appointment-recap small{color:#6c7f91;margin-bottom:.2rem}.portal-appointment-recap strong{color:#0d2d4c;overflow-wrap:anywhere}
.portal-card-list article{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.portal-card-list article:hover{transform:translateY(-2px);border-color:#b7d5e6;box-shadow:0 12px 28px rgba(0,85,150,.07)}
.portal-panel .button.is-pexsa-orange,.portal-panel .button.is-pexsa-blue{font-weight:800}.portal-list-meta .tag{font-weight:800}
@media(max-width:700px){.portal-choice-row.is-three,.portal-appointment-recap{grid-template-columns:1fr}.portal-success-card .buttons .button{width:100%}.portal-contact-card{align-items:flex-start!important}}
