/* ===== Thème Exode sur Bootstrap 5.3 : Lato (comme canada.ca), pied de page ardoise IRCC ===== */
@font-face{font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/lato-400.woff2") format("woff2")}
@font-face{font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/lato-700.woff2") format("woff2")}
:root,[data-bs-theme=light]{
  --bs-font-sans-serif:"Lato","Noto Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-line-height:1.5;
  --bs-body-bg:#f5f7fa;--bs-body-color:#16202c;--bs-emphasis-color:#16202c;
  --bs-primary:#1d4f91;--bs-primary-rgb:29,79,145;--bs-primary-bg-subtle:#e4edf8;--bs-primary-border-subtle:#b9cfec;--bs-primary-text-emphasis:#16396b;
  --bs-success:#1a7a4a;--bs-success-rgb:26,122,74;--bs-success-bg-subtle:#dff2e8;--bs-success-text-emphasis:#10502f;--bs-success-border-subtle:#a9d9bf;
  --bs-warning-bg-subtle:#fdecd2;--bs-warning-text-emphasis:#7a4800;--bs-warning-border-subtle:#f3cf94;
  --bs-link-color:#1d4f91;--bs-link-color-rgb:29,79,145;--bs-link-hover-color:#123259;--bs-link-hover-color-rgb:18,50,89;
  --bs-border-color:#d5dde7;--bs-border-radius:.625rem;--bs-secondary-color:#5b6877;--bs-secondary-bg:#eef2f7;
  --mut:#5b6877;--ok:#1a7a4a;--warn:#9a5b00;--soft:#e4edf8;--acc:#1d4f91;--line:#d5dde7;--card:#fff;--ink:#16202c;--foot:#26374a;
  color-scheme:light}
body{min-height:100vh;display:flex;flex-direction:column;background:var(--bs-body-bg);color:var(--bs-body-color)}
main.container{flex:1 0 auto;padding-top:1.25rem;padding-bottom:1.25rem}
.container-narrow{max-width:760px}
h1{font-size:1.75rem;line-height:1.25;font-weight:700;margin:0}h2{font-size:1.375rem;line-height:1.3;font-weight:700;margin:0}h3{font-weight:700}
@media(max-width:575.98px){h1{font-size:1.5rem}h2{font-size:1.25rem}}
.form-label,label{font-weight:700;margin-bottom:.25rem}
.form-check-label{font-weight:400}
.btn{font-weight:700;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.btn-sm{min-height:36px}
.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#1d4f91;--bs-btn-border-color:#1d4f91;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#173f74;--bs-btn-hover-border-color:#173f74;--bs-btn-active-color:#fff;--bs-btn-active-bg:#123259;--bs-btn-active-border-color:#123259;--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#1d4f91;--bs-btn-disabled-border-color:#1d4f91;--bs-btn-focus-shadow-rgb:29,79,145}
.btn-outline-primary{--bs-btn-color:#1d4f91;--bs-btn-border-color:#9db9de;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#1d4f91;--bs-btn-hover-border-color:#1d4f91;--bs-btn-active-color:#fff;--bs-btn-active-bg:#123259;--bs-btn-active-border-color:#123259;--bs-btn-disabled-color:#1d4f91;--bs-btn-disabled-border-color:#9db9de;--bs-btn-focus-shadow-rgb:29,79,145;background:#e4edf8}
.btn-link{--bs-btn-color:#1d4f91;--bs-btn-hover-color:#123259;font-weight:400;min-height:0}
.form-control,.form-select{font-size:1rem;min-height:44px;border-width:1.5px}
textarea.form-control{min-height:5rem}
.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:#1d4f91;box-shadow:0 0 0 .25rem rgba(29,79,145,.25)}
.form-check-input:checked{background-color:#1d4f91;border-color:#1d4f91}
.form-check-input{width:1.25em;height:1.25em;margin-top:.15em}
a:focus-visible,button:focus-visible{outline:2px solid #1d4f91;outline-offset:2px}
.card{--bs-card-border-color:var(--line);--bs-card-border-radius:.875rem;--bs-card-bg:#fff;--bs-card-inner-border-radius:.8125rem}
.card-body{padding:1.25rem}@media(max-width:575.98px){.card-body{padding:1rem}}
.alert{font-size:.9375rem;margin:0}
.badge{font-weight:700;font-size:.8125rem}
.table{--bs-table-bg:transparent;font-size:.9375rem;margin:0}
.table>:not(caption)>*>*{padding:.6rem .5rem}
.progress{height:.5rem;background:var(--soft)}.progress-bar{background:var(--acc)}
.navbar-portal{background:#fff;border-bottom:1px solid var(--line);padding:.25rem 0}
.navbar-portal .nav-link{font-weight:700;color:var(--acc);padding:.6rem .75rem;min-height:44px;display:flex;align-items:center}
.navbar-portal .nav-link:hover,.navbar-portal .nav-link:focus{background:var(--soft);border-radius:.5rem}
.navbar-portal .navbar-toggler{border-color:#9db9de}
/* Composants propres à l'outil */
.wordmark{font-weight:700;font-size:1.125rem;color:var(--acc)}
/* Pied de page (ardoise, comme le pied de canada.ca) */
.site-foot{background:var(--foot);color:#fff;margin-top:2rem;padding:1.75rem 0 1.25rem;font-size:.9375rem}
.site-foot h3{font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:#cdd6e0;margin:0 0 .375rem}
.site-foot p{margin:0}.site-foot a{color:#fff}.site-foot .foot-muted,.foot-legal{color:#cdd6e0}
.foot-brand img{max-width:100%;height:36px;width:auto;display:block;margin-bottom:.5rem;background:#fff;padding:4px 8px;border-radius:6px}
.foot-legal{font-size:.8125rem;border-top:1px solid rgba(255,255,255,.28);margin-top:1.25rem!important;padding-top:.75rem}
.site-foot :focus-visible{outline-color:#fff}
@media print{.site-foot,.navbar-portal{display:none}}
/* Neutralise le style « Cerulean » du paquet Bootstrap utilisé (dégradés, titres bleus) */
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{--bs-heading-color:#16202c;color:var(--bs-heading-color)}
.btn,.btn-primary,.btn-outline-primary{background-image:none}
.btn-outline-primary:hover,.btn-outline-primary:focus-visible{background-color:#1d4f91}
.list-group{--bs-list-group-bg:transparent;--bs-list-group-border-color:var(--line)}
.card-body.d-grid{grid-template-columns:minmax(0,1fr)}
.card-body>*{min-width:0}
.form-check-input[type=checkbox]{border-radius:.25em}
/* Espacements de formulaire (rythme vertical uniforme) */
.form-control+p,.form-select+p,textarea+p,.form-control+.btn,.form-select+.btn,textarea+.btn,.form-control+.small,.form-select+.small,.form-control+div,.form-select+div{margin-top:1rem}
.form-control+label,.form-select+label,textarea+label,.form-check+label{margin-top:1rem}
form>p:has(>.btn),form>p:has(>button){margin-top:1rem}
.qhelp{width:44px;height:44px;padding:0;flex:none;font-weight:700}
.prewrap{white-space:pre-wrap}
.site-foot .wordmark{color:#fff}
.site-foot .foot-brand img[src="logo.php"]{background:#fff;padding:6px 8px;border-radius:6px;height:44px;width:auto}
.sigpad{width:100%;max-width:600px;height:auto;aspect-ratio:3/1;border:2px dashed var(--bs-border-color,#adb5bd);border-radius:.5rem;background:#fff;touch-action:none;cursor:crosshair}
.sigpage{position:relative;display:inline-block;max-width:100%;box-shadow:0 1px 6px rgba(0,0,0,.25);cursor:copy;background:#fff;line-height:0}
.sigpage img{max-width:100%;height:auto;display:block;user-select:none}
.sigpn{position:absolute;top:4px;left:6px;font:12px/1.2 sans-serif;background:rgba(0,0,0,.55);color:#fff;padding:2px 6px;border-radius:4px;pointer-events:none}
.sigmark{position:absolute;transform:translate(-50%,-50%);outline:1px dashed #0d6efd;cursor:pointer;background-size:100% 100%;background-repeat:no-repeat}
.kanban{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.5rem;align-items:flex-start}
.kcol{flex:0 0 260px;background:var(--bs-tertiary-bg,#f1f3f5);border-radius:.6rem;padding:.5rem;min-height:140px}
.kcol.kover{outline:2px dashed #0d6efd}
.kh{font-size:.9rem;margin:.2rem .2rem .6rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.kbody{display:grid;gap:.5rem;min-height:60px}
.kcard{background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:.5rem;padding:.55rem .65rem;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.kcard.kdrag{opacity:.45}
/* Pied de page : copie du pied de page Apple (gris clair, texte graphite, petits caractères) */
footer.site-foot{background:#f5f5f7;color:#6e6e73;margin-top:3rem;padding:2rem 0 1.25rem;border-top:1px solid #d2d2d7;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Inter,"Segoe UI",Roboto,Arial,sans-serif;font-size:.75rem;line-height:1.5;letter-spacing:-.01em;-webkit-font-smoothing:antialiased}
footer.site-foot .row{--bs-gutter-y:1.25rem}
footer.site-foot h3{font-family:inherit;font-size:.75rem;font-weight:600;text-transform:none;letter-spacing:-.01em;color:#1d1d1f;margin:0 0 .5rem}
footer.site-foot p,footer.site-foot .foot-muted{color:#6e6e73;font-size:.75rem;line-height:1.55}
footer.site-foot a{color:#424245;text-decoration:none}
footer.site-foot a:hover{color:#1d1d1f;text-decoration:underline}
footer.site-foot .brand-mark .fs-4{font-size:1rem!important;font-weight:600!important;color:#1d1d1f;letter-spacing:-.01em}
footer.site-foot .brand-mark img{width:28px;height:28px;border-radius:7px}
footer.site-foot .foot-brand img{background:none;padding:0;border-radius:0;max-width:100%;height:30px;width:auto;margin-bottom:.6rem}
footer.site-foot .foot-brand img[src="logo.php"]{background:none;padding:0;height:40px;border-radius:0}
footer.site-foot .foot-legal{font-size:.6875rem;color:#86868b;border-top:1px solid #d2d2d7;margin-top:1.5rem!important;padding-top:.9rem}
footer.site-foot .foot-custom{color:#6e6e73}
footer.site-foot :focus-visible{outline-color:#0071e3}

/* Pied de page Apple : mention en haut, colonnes de liens, ligne de bas de page à séparateurs */
footer.ap-foot{padding:1.1rem 0 1.4rem;margin-top:3rem}
footer.ap-foot .ap-flogo{display:inline-block;margin:.2rem 0 .9rem} footer.ap-foot .ap-flogo img{height:26px;width:auto;display:block}
footer.ap-foot .ap-note{max-width:60rem;margin:0 0 1.1rem;padding-bottom:1.1rem;border-bottom:1px solid #d2d2d7;font-size:.75rem;line-height:1.55;color:#6e6e73}
footer.ap-foot .ap-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.4rem 2rem;padding-bottom:1.2rem;border-bottom:1px solid #d2d2d7}
footer.ap-foot .ap-cols h3{margin:0 0 .45rem;font-size:.75rem;font-weight:600;color:#1d1d1f}
footer.ap-foot .ap-cols ul{list-style:none;margin:0;padding:0} footer.ap-foot .ap-cols li{margin:0 0 .3rem;font-size:.75rem;line-height:1.45;color:#6e6e73}
footer.ap-foot .ap-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-top:.9rem;font-size:.75rem;color:#6e6e73}
footer.ap-foot .ap-bottom nav{display:flex;flex-wrap:wrap}
footer.ap-foot .ap-bottom nav a{color:#424245;padding:0 .8rem;border-left:1px solid #d2d2d7} footer.ap-foot .ap-bottom nav a:first-child{border-left:0;padding-left:0}
@media (max-width:640px){footer.ap-foot .ap-bottom{flex-direction:column;align-items:flex-start}}
/* Outils PDF : une carte par action, icônes colorées */
.pt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; align-items: stretch; }
.pt-card { height: 100%; margin: 0; }
.pt-card h2 { font-size: 1.15rem; margin: 0; }
.pt-wide { grid-column: 1 / -1; }
.pt-link { transition: transform .15s ease, box-shadow .15s ease; color: inherit; }
.pt-link:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1.25rem rgba(0,0,0,.12) !important; }
.pt-go { font-weight: 600; font-size: .9rem; color: #0d6efd; }
.pt-ic { width: 2.75rem; height: 2.75rem; border-radius: 12px; display: inline-grid; place-items: center; }
.pt-ic .ic { width: 1.5rem; height: 1.5rem; }
.pt-c-violet { background: #ede7fb; color: #6f42c1; } .pt-c-teal { background: #dff5f1; color: #0f8b7d; } .pt-c-blue { background: #e0edff; color: #1f6feb; }
.pt-c-green { background: #e1f5e6; color: #1e8e3e; } .pt-c-orange { background: #fff0d9; color: #d97706; } .pt-c-pink { background: #fde5ef; color: #d6336c; } .pt-c-red { background: #fde8e6; color: #d63a2f; }
@media (prefers-color-scheme: dark) { .pt-c-violet, .pt-c-teal, .pt-c-blue, .pt-c-green, .pt-c-orange, .pt-c-pink, .pt-c-red { filter: brightness(.9) saturate(1.1); } }
/* Remplir un PDF : 2 étapes */
.rp-steps { list-style: none; display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding: 0; margin: 0; }
.rp-steps li { display: flex; align-items: center; gap: .6rem; color: #6e6e73; }
.rp-steps li > span { width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: #e9ecef; font-weight: 600; }
.rp-steps li.is-cur { color: #1d1d1f; } .rp-steps li.is-cur > span { background: #0d6efd; color: #fff; }
.rp-steps li.is-done > span { background: #1e8e3e; color: #fff; }
.rp-back { font-size: .85rem; margin-left: .25rem; }
.rp-review.has-doc { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.25rem; align-items: start; }
@media (max-width: 900px) { .rp-review.has-doc { grid-template-columns: 1fr; } }
.rp-doc { position: sticky; top: 1rem; max-height: 85vh; overflow: auto; border: 1px solid #dee2e6; border-radius: 12px; padding: .75rem; background: #fafafa; }
.rp-img { width: 100%; height: auto; display: block; margin-bottom: .5rem; border-radius: 6px; box-shadow: 0 1px 4px rgba(0,0,0,.15); }
.rp-table td, .rp-table th { vertical-align: middle; }
.rp-paste > summary { cursor: pointer; font-weight: 600; }
.rp-map > summary { cursor: pointer; font-weight: 600; }
.rp-tpls { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .75rem; }
.rp-tpl { display: grid; gap: .25rem; text-align: center; cursor: pointer; }
.rp-tpl-thumb { display: block; border: 2px solid #dee2e6; border-radius: 10px; overflow: hidden; background: #fff; }
.rp-tpl-thumb svg { width: 100%; height: auto; display: block; }
.rp-tpl input:checked + .rp-tpl-thumb { border-color: #0d6efd; box-shadow: 0 0 0 3px rgba(13,110,253,.2); }
.rp-tpl input:focus-visible + .rp-tpl-thumb { outline: 2px solid #0d6efd; outline-offset: 2px; }
