/* AdriaFlow — Design System (.af-) — charte réutilisable across apps */
:root{
  --af-accent:#288d98;--af-accent-dark:#21747e;--af-accent-soft:rgba(40,141,152,.07);
  --af-accent-border:rgba(40,141,152,.30);--af-navy:#153e64;
  --af-text:#15263a;--af-muted:#67788c;--af-subtle:#9aa9bb;
  --af-bg:#f5f7fa;--af-surface:#ffffff;--af-surface-alt:#f5f7fa;
  --af-border:#e6eaf0;--af-border-strong:#dde3ec;
  --af-warn:#d68a2e;--af-warn-bg:rgba(245,158,66,.08);--af-warn-border:rgba(245,158,66,.25);
  --af-danger:#dc4646;--af-danger-bg:rgba(240,90,90,.07);--af-danger-border:rgba(240,90,90,.30);
  --af-shadow-sm:0 2px 10px rgba(15,35,65,.05);--af-shadow:0 4px 24px rgba(15,35,65,.06);
  --af-shadow-accent:0 6px 18px rgba(40,141,152,.28);
  --af-r-sm:10px;--af-r-md:14px;--af-r-lg:18px;--af-r-pill:999px;
  --af-s1:4px;--af-s2:8px;--af-s3:12px;--af-s4:16px;--af-s5:20px;--af-s6:24px;--af-s8:32px;--af-s10:40px;
  --af-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{box-sizing:border-box;}
.af-page{background:var(--af-bg);color:var(--af-text);font-family:var(--af-font);-webkit-font-smoothing:antialiased;margin:0;min-height:100vh;}
.af-container{max-width:1040px;margin:0 auto;padding:var(--af-s5) var(--af-s6) var(--af-s10);}
.af-header{display:flex;align-items:center;justify-content:space-between;width:100%;box-sizing:border-box;padding:1.1rem 2rem;}
.af-header__logo{height:38px;width:auto;display:block;}
.af-h1{font-size:clamp(28px,5.2vw,44px);font-weight:800;line-height:1.05;letter-spacing:-.025em;color:var(--af-navy);margin:0 0 var(--af-s4);}
.af-h1 .af-accent{color:var(--af-accent);}
.af-h2{font-size:clamp(22px,3.4vw,30px);font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--af-navy);margin:0;}
.af-h2 .af-accent{color:var(--af-accent);}
.af-lead{font-size:clamp(14px,2.2vw,16px);line-height:1.6;color:var(--af-muted);margin:0;}
.af-small{font-size:13px;color:var(--af-muted);}
.af-label{display:block;font-size:13px;font-weight:600;color:var(--af-text);margin-bottom:var(--af-s3);}
.af-card{background:var(--af-surface);border:1px solid var(--af-border);border-radius:var(--af-r-lg);padding:var(--af-s5) var(--af-s5);box-shadow:var(--af-shadow-sm);}
.af-card--accent{border-color:var(--af-accent-border);box-shadow:var(--af-shadow);}
.af-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--af-s2);font-family:inherit;font-size:15px;font-weight:700;padding:14px 22px;border-radius:var(--af-r-md);border:none;cursor:pointer;transition:all .15s;text-decoration:none;white-space:nowrap;}
.af-btn--primary{background:var(--af-accent);color:#fff;box-shadow:var(--af-shadow-accent);}
.af-btn--primary:hover{background:var(--af-accent-dark);transform:translateY(-1px);}
.af-btn--primary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none;}
.af-btn--ghost{background:transparent;color:var(--af-accent-dark);border:1px solid var(--af-border-strong);}
.af-btn--ghost:hover{border-color:var(--af-accent);color:var(--af-accent);background:var(--af-accent-soft);}
.af-btn--block{width:100%;}
.af-btn--icon{width:40px;height:40px;padding:0;border-radius:var(--af-r-sm);background:transparent;color:var(--af-muted);}
.af-btn--icon:hover{background:var(--af-accent-soft);color:var(--af-accent);}
.af-input{width:100%;font-family:inherit;font-size:14.5px;color:var(--af-text);background:var(--af-surface-alt);border:1px solid var(--af-border-strong);border-radius:var(--af-r-md);padding:12px 14px;transition:border-color .12s,background .12s;}
.af-input:focus{outline:none;border-color:var(--af-accent);background:#fff;}
.af-input::placeholder{color:var(--af-subtle);}
.af-badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--af-accent-dark);background:var(--af-accent-soft);border:1px solid var(--af-accent-border);padding:3px 11px;border-radius:var(--af-r-pill);}
.af-alert{display:flex;gap:var(--af-s2);align-items:flex-start;font-size:13px;line-height:1.5;padding:12px 15px;border-radius:var(--af-r-md);}
.af-alert--info{background:var(--af-accent-soft);border:1px solid var(--af-accent-border);color:var(--af-accent-dark);}
.af-alert--danger{background:var(--af-danger-bg);border:1px solid var(--af-danger-border);color:var(--af-danger);}
.af-choice{padding:14px 8px;text-align:center;cursor:pointer;background:var(--af-surface-alt);border:1px solid var(--af-border-strong);border-radius:var(--af-r-md);color:var(--af-muted);font-size:13px;font-weight:500;transition:all .12s;}
.af-choice:hover{border-color:var(--af-accent);background:#fff;}
.af-choice.is-active{border:1.5px solid var(--af-accent);background:var(--af-accent-soft);color:var(--af-accent-dark);font-weight:600;}
.af-modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(15,30,55,.40);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;padding:var(--af-s4);}
.af-modal-overlay.is-open{display:flex;}
.af-modal{background:var(--af-surface);width:440px;max-width:100%;max-height:88vh;overflow-y:auto;border-radius:var(--af-r-lg);box-shadow:0 20px 60px rgba(15,35,65,.25);padding:var(--af-s6);animation:af-pop .18s ease-out;}
@keyframes af-pop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.af-modal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--af-s5);}
.af-modal__head h2{font-size:18px;font-weight:700;color:var(--af-navy);margin:0;}
.af-modal__close{background:none;border:none;cursor:pointer;color:var(--af-muted);font-size:20px;line-height:1;padding:4px;transition:color .12s;}
.af-modal__close:hover{color:var(--af-accent);}
.af-modal__section{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--af-accent-dark);border-top:1px solid var(--af-border);padding-top:var(--af-s5);margin:var(--af-s5) 0 var(--af-s4);}
.af-modal__section:first-of-type{border-top:none;padding-top:0;margin-top:0;}
@media(max-width:600px){
  .af-container{padding:var(--af-s4) var(--af-s4) var(--af-s8);}
  .af-header{padding:.9rem 1.1rem;}
  .af-header__logo{height:32px;}
  .af-card{padding:var(--af-s4);border-radius:var(--af-r-md);}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
