/* Ce que l'enveloppe de l'artefact apportait à la maquette. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;padding:0}
img{max-width:100%}
[hidden]:not([hidden=until-found i]){display:none!important}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}

/* Layout: phone-shell app column + demo guide rail on wide screens. Airport wayfinding cues: condensed IATA codes, signage-yellow bands, baggage-tag headers. */
:root{
  --bg:#ECEEF1; --surface:#FFFFFF; --surface-2:#F5F6F8; --ink:#131820; --muted:#596270; --line:#D8DCE2;
  --sign:#FFC629; --sign-ink:#131820; --sign-soft:#FFF3CC;
  --board:#151A22; --board-text:#F2F4F7;
  --accent:#0B5D66; --accent-ink:#FFFFFF; --accent-soft:#DCEDEE;
  --good:#1B7548; --good-soft:#DDF0E5; --warn:#94560A; --warn-soft:#FAEED8; --bad:#AE2430; --bad-soft:#F7E0E2;
  --shadow:0 1px 2px rgba(19,24,32,.06),0 10px 30px rgba(19,24,32,.08);
  --f-display:"Big Shoulders Display","Arial Narrow","Roboto Condensed",sans-serif;
  --f-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:14px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0D1116; --surface:#161B22; --surface-2:#1C222B; --ink:#EBEEF2; --muted:#98A2B0; --line:#29303A;
  --sign:#FFC629; --sign-ink:#131820; --sign-soft:#362E14;
  --board:#232A35; --board-text:#F2F4F7;
  --accent:#5DBFC6; --accent-ink:#0D1116; --accent-soft:#153338;
  --good:#62C994; --good-soft:#15301F; --warn:#EFB25C; --warn-soft:#33260F; --bad:#F27D86; --bad-soft:#3A191D;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 10px 30px rgba(0,0,0,.3);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0D1116; --surface:#161B22; --surface-2:#1C222B; --ink:#EBEEF2; --muted:#98A2B0; --line:#29303A;
  --sign:#FFC629; --sign-ink:#131820; --sign-soft:#362E14;
  --board:#232A35; --board-text:#F2F4F7;
  --accent:#5DBFC6; --accent-ink:#0D1116; --accent-soft:#153338;
  --good:#62C994; --good-soft:#15301F; --warn:#EFB25C; --warn-soft:#33260F; --bad:#F27D86; --bad-soft:#3A191D;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 10px 30px rgba(0,0,0,.3);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
p{margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{width:20px;height:20px;flex:none}
.mono{font-family:var(--f-mono);font-size:.92em}
.muted{color:var(--muted)}
.fine{font-size:12.5px;color:var(--muted);line-height:1.45}
.center{text-align:center}
.label{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.h{font-size:17px;font-weight:700;margin:0;line-height:1.25}
.display{font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:.95;margin:0;text-wrap:balance}

/* ---------- shell ---------- */
.shell{height:100%;display:flex;justify-content:center;gap:44px}
.guide{display:none}
.device{display:flex;flex-direction:column;width:100%;height:100%;background:var(--bg);position:relative;overflow:hidden}
@media (min-width:900px){
  .shell{padding-block:28px;padding-inline:24px}
  .guide{display:flex;flex-direction:column;gap:24px;width:340px;flex:none;overflow-y:auto;padding-block:8px}
  .device{width:430px;flex:none;max-height:900px;border:1px solid var(--line);border-radius:30px;box-shadow:var(--shadow);align-self:center}
  .demobar{display:none!important}
}
.demobar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--board);color:var(--board-text);font-size:13px}
.dlabel{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sign)}
.demobar .seg{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
.demobar .seg button{color:var(--board-text);opacity:.8}
.demobar .seg button[aria-pressed="true"]{background:var(--sign);color:var(--sign-ink);opacity:1;box-shadow:none}
.scen{margin-left:auto;border:1px solid rgba(255,255,255,.25);background:none;color:var(--board-text);border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:600}

.appbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}
.logo{font-family:var(--f-display);font-weight:800;font-size:27px;letter-spacing:.05em;line-height:1;display:flex;align-items:center;gap:9px;text-transform:uppercase}
.tagmark{width:18px;height:24px;background:var(--sign);border-radius:4px 4px 7px 7px;position:relative;flex:none}
.tagmark::after{content:"";position:absolute;top:4px;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--bg)}
.logo.lg{font-size:52px;gap:14px}
.logo.lg .tagmark{width:30px;height:40px;border-radius:6px 6px 10px 10px}
.logo.lg .tagmark::after{top:7px;width:9px;height:9px;margin-left:-4.5px}
.me{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:4px 10px 4px 4px}
.me-t{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.me-t strong{font-size:13.5px}
.me-t small{font-size:11px;color:var(--muted)}
.me .ic{width:16px;height:16px;color:var(--muted)}

.screen{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.view{padding:16px 16px 28px;display:flex;flex-direction:column;gap:16px}
.tabbar{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface);border-top:1px solid var(--line)}
.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 4px 10px;background:none;border:0;color:var(--muted);font-size:11.5px;font-weight:700;position:relative}
.tab .ic{width:22px;height:22px}
.tab[aria-current="page"]{color:var(--accent)}
.tab[aria-current="page"]::before{content:"";position:absolute;top:-1px;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}
.badge{position:absolute;top:4px;left:calc(50% + 7px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--bad);color:var(--surface);font-size:11px;font-weight:800;display:grid;place-items:center}

/* ---------- common ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.pad{padding:16px;display:flex;flex-direction:column;gap:12px}
.list{display:flex;flex-direction:column;gap:12px}
.row-h{display:flex;justify-content:space-between;align-items:center;gap:12px}
.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.view-head .display{font-size:40px}
.topnav{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:6px;margin:-16px -16px 0;padding:8px 8px;background:var(--bg)}
.topnav-title{font-weight:700}
.iconbtn{width:40px;height:40px;display:grid;place-items:center;border:0;background:none;border-radius:10px}
.iconbtn:hover{background:var(--surface-2)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:12px;border:1px solid transparent;font-weight:700;font-size:15px;text-decoration:none;line-height:1.2}
.btn .ic{width:18px;height:18px}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover:not(:disabled){filter:brightness(1.08)}
.btn-ghost{background:var(--surface);border-color:var(--line)}
.btn-ghost:hover:not(:disabled){border-color:var(--muted)}
.btn-sign{background:var(--sign);color:var(--sign-ink)}
.btn-danger{color:var(--bad)}
.btn-block{width:100%}
.btn.sm{padding:8px 12px;font-size:13.5px;border-radius:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.link{border:0;background:none;padding:0;color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px;font-size:inherit}

.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.t-warn{background:var(--warn-soft);color:var(--warn)}
.t-accent{background:var(--accent-soft);color:var(--accent)}
.t-good{background:var(--good-soft);color:var(--good)}
.t-bad{background:var(--bad-soft);color:var(--bad)}
.t-sign{background:var(--board);color:var(--sign)}
.board{font-family:var(--f-mono);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;background:var(--board);color:var(--sign);padding:5px 8px;border-radius:6px;white-space:nowrap}

.av{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;font-weight:800;font-size:13px;flex:none;letter-spacing:.02em}
.av.sm{width:30px;height:30px;font-size:11.5px}
.av.lg{width:52px;height:52px;font-size:17px}
.av.xl{width:76px;height:76px;font-size:24px}
.av-a{background:var(--accent-soft);color:var(--accent)}
.av-s{background:var(--sign-soft);color:var(--warn)}
.av-g{background:var(--good-soft);color:var(--good)}
.who{display:flex;align-items:center;gap:10px;min-width:0}
.who-main{min-width:0}
.who-name{font-weight:700}
.who-sub{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;font-size:12.5px;color:var(--muted)}
.ver{display:inline-flex;align-items:center;gap:3px;color:var(--good);font-weight:700}
.ver .ic{width:15px;height:15px}
.unver{color:var(--warn);font-weight:700}
.stars{display:inline-flex;align-items:center;gap:3px;color:var(--ink);font-weight:700}
.stars .ic{width:14px;height:14px;color:var(--warn)}

.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.field .flabel{font-size:13px;font-weight:700}
input,select,textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:16px}
textarea{resize:vertical}
input[type="range"]{padding:0;border:0;background:none;accent-color:var(--accent);height:28px}
input[type="checkbox"],input[type="radio"]{width:auto;accent-color:var(--accent)}
input[type="file"]{font-size:14px;padding:9px}
[aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;cursor:pointer}
.check input{margin-top:3px;width:18px;height:18px;flex:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:360px){.row2{grid-template-columns:1fr}}
.form{display:flex;flex-direction:column;gap:14px}
.err{background:var(--bad-soft);color:var(--bad);border-radius:12px;padding:12px 14px;font-size:14px}
.err ul{margin:6px 0 0;padding-left:18px}
.err-inline{color:var(--bad);font-size:13.5px;font-weight:600}
.note{flex-direction:row;align-items:flex-start;gap:12px}
.note>.ic{color:var(--accent);margin-top:1px}

.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:none;padding:6px 11px;border-radius:7px;font-size:13px;font-weight:700;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.1)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-s{font-size:12.5px;padding:4px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-weight:600}
.ctog{position:relative}
.ctog input{position:absolute;opacity:0;pointer-events:none}
.ctog span{display:inline-block;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13.5px;font-weight:600;cursor:pointer}
.ctog input:checked+span{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.ctog input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}

.rows{display:flex;flex-direction:column;margin:0}
.row{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0;padding-bottom:0}
.row:first-child{padding-top:0}
.row dt{color:var(--muted);font-size:14px;flex:none}
.row dd{margin:0;text-align:right;font-weight:600;min-width:0;overflow-wrap:anywhere}
.row.stack{flex-direction:column;gap:4px}
.row.stack dd{text-align:left;font-weight:500}
.row.total dt,.row.total dd{font-weight:800;color:var(--ink);font-size:16px}
.amount{display:block;font-family:var(--f-display);font-weight:800;font-size:30px;line-height:1.05;font-variant-numeric:tabular-nums}
.amount.sm{font-size:26px}
.empty{text-align:center;padding:28px 18px;display:flex;flex-direction:column;align-items:center;gap:10px}
.empty>.ic{width:36px;height:36px;color:var(--muted)}
.empty .fine{max-width:32ch}

/* ---------- explore ---------- */
.hero{display:flex;flex-direction:column;gap:10px;padding-top:4px}
.hero .display{font-size:50px}
.lede{color:var(--muted);max-width:36ch}
.search{padding:14px;display:flex;flex-direction:column;gap:12px}
.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:8px}
.swap{width:40px;height:46px;border-radius:10px;border:1px solid var(--line);background:var(--surface-2);display:grid;place-items:center}
.quick{display:flex;flex-wrap:wrap;gap:6px}
.qchip{font-family:var(--f-mono);font-size:12.5px;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2)}
.qchip[aria-pressed="true"]{background:var(--board);color:var(--sign);border-color:var(--board)}
.results-head{display:flex;justify-content:space-between;align-items:center;gap:12px}

.trip,.ship{display:flex;flex-direction:column;gap:12px;width:100%;text-align:left;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);color:inherit;font:inherit}
.trip:hover,.ship:hover{border-color:var(--muted)}
.trip-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.codes{display:flex;align-items:center;gap:8px;font-family:var(--f-display);font-weight:800;font-size:32px;line-height:1;letter-spacing:.02em}
.codes .ic{width:20px;height:20px;color:var(--muted)}
.codes.sm{font-size:22px;gap:6px}
.codes.sm .ic{width:16px;height:16px}
.cities{font-size:13px;color:var(--muted);margin-top:4px}
.trip-bot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border-top:1px dashed var(--line);padding-top:12px}
.kgbar{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.bar{height:6px;border-radius:3px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent)}
.price{font-size:13px;color:var(--muted);white-space:nowrap}
.price strong{font-family:var(--f-display);font-size:28px;font-weight:800;color:var(--ink)}

/* ---------- baggage tag ---------- */
.tag{background:var(--sign);color:var(--sign-ink);border-radius:18px;padding:12px 18px 14px;display:flex;flex-direction:column;gap:12px}
.tag-band{display:flex;justify-content:space-between;align-items:center}
.tag-kind{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.hole{width:18px;height:18px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 3px rgba(19,24,32,.2)}
.tag-route{display:flex;align-items:center;gap:10px}
.tag-code{font-family:var(--f-display);font-weight:800;font-size:60px;line-height:.82;letter-spacing:.01em}
.tag-city{font-size:13px;font-weight:700;margin-top:6px}
.tag-end.r{text-align:right}
.tag-path{flex:1;display:flex;align-items:center;gap:6px;min-width:0;margin-top:-18px}
.tag-path span{flex:1;border-top:2px dashed rgba(19,24,32,.4)}
.tag-path .ic{width:24px;height:24px}
.tag-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;border-top:1.5px solid rgba(19,24,32,.22);padding-top:10px}
.tag-meta dt{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;opacity:.72;font-weight:700}
.tag-meta dd{margin:2px 0 0;font-weight:800;font-size:14.5px}
.tag-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.barcode{display:flex;gap:2px;height:26px;overflow:hidden;flex:1;min-width:0}
.barcode i{display:block;flex:none;background:var(--sign-ink)}
.tag-ref{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;white-space:nowrap;font-weight:500}

/* ---------- trip detail ---------- */
.gp-head{display:flex;gap:14px;align-items:center}
.gp-head .fine{margin-top:2px}
.safe-row{display:flex;gap:12px}
.safe-row>.ic{color:var(--accent);margin-top:1px}
.safe-row strong{display:block;margin-bottom:2px}
.review{padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.rv-head{display:flex;justify-content:space-between;gap:10px}
.rv-stars{color:var(--warn);letter-spacing:1px}
.review p{font-size:14px}
.cta-bar{position:sticky;bottom:0;margin:0 -16px -28px;padding:14px 16px 16px;background:linear-gradient(to top,var(--bg) 72%,transparent);z-index:3}
.who-btn{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;border:0;background:none;padding:0;text-align:left;color:inherit}

/* ---------- booking form ---------- */
.mini{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}
.kg-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.kg-out{font-family:var(--f-display);font-weight:800;font-size:36px;line-height:1}
.phone{display:flex}
.dial{padding:0 11px;border:1px solid var(--line);border-right:0;border-radius:10px 0 0 10px;background:var(--surface-2);font-family:var(--f-mono);font-size:14px;display:grid;place-items:center;flex:none}
.phone input{border-radius:0 10px 10px 0}
.sum .fine{display:flex;gap:6px;align-items:flex-start}
.sum .fine .ic{width:15px;height:15px;margin-top:1px}
.methods{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.methods legend{margin-bottom:8px;padding:0}
.method{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.method input{width:18px;height:18px}
.method:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.method small{display:block;color:var(--muted);font-size:12.5px}
.pay-total{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-block:1px solid var(--line)}

/* ---------- shipments & booking ---------- */
.ship-top,.ship-bot,.ship-mid{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ship-mid{font-size:14px;font-weight:600}
.ship-bot{font-size:12.5px}
.steps-mini{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.steps-mini i{height:4px;border-radius:2px;background:var(--line)}
.steps-mini i.on{background:var(--accent)}
.steps-mini i.x{background:var(--bad-soft)}
.ref{font-family:var(--f-mono);font-size:11.5px;color:var(--muted);letter-spacing:.04em}
.codecard{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;background:var(--board);color:var(--board-text);border-radius:var(--r);flex-wrap:wrap}
.codecard .label{color:var(--sign)}
.code{font-family:var(--f-mono);font-size:32px;letter-spacing:.28em;color:var(--sign);font-weight:500;line-height:1.2}
.codecard p{font-size:12.5px;opacity:.85;max-width:32ch;margin-top:4px}
.tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tl li{display:grid;grid-template-columns:22px 1fr;gap:12px;position:relative;padding-bottom:16px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:"";position:absolute;left:10px;top:22px;bottom:0;width:2px;background:var(--line)}
.tl li:last-child::before{display:none}
.tl li.done::before{background:var(--accent)}
.dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--surface);display:grid;place-items:center;position:relative;z-index:1}
.done .dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.dot .ic{width:13px;height:13px;stroke-width:3}
.next .dot{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.stop .dot{background:var(--bad);border-color:var(--bad);color:var(--surface)}
.tl-t{font-weight:700;font-size:14.5px}
.future .tl-t{color:var(--muted);font-weight:500}
.tl-s{font-size:12.5px;color:var(--muted)}
.action.todo{border-color:var(--sign);background:var(--sign-soft)}
.action.ok{border-color:var(--good);background:var(--good-soft)}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.actions .btn{flex:1}
.code-form{display:flex;gap:8px;flex-wrap:wrap}
.code-input{font-family:var(--f-mono);font-size:24px;letter-spacing:.35em;text-align:center;width:150px;flex:none;padding:8px 10px}
.code-form .btn{flex:1;min-width:150px}
.demo-hint{border-top:1px dashed var(--line);padding-top:10px}
.pkg-photo{border-radius:12px;max-height:220px;object-fit:cover;width:100%}
.msgs{display:flex;flex-direction:column;gap:8px}
.msg{max-width:84%;padding:9px 12px;border-radius:14px 14px 14px 4px;font-size:14.5px;background:var(--surface-2);border:1px solid var(--line);align-self:flex-start;overflow-wrap:anywhere}
.msg.me{align-self:flex-end;background:var(--accent-soft);border-color:transparent;border-radius:14px 14px 4px 14px}
.msg time{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.msg.sys{align-self:center;background:none;border:0;font-size:12.5px;color:var(--muted);text-align:center;max-width:95%;padding:2px 8px}
.chat-form{display:flex;gap:8px}
.chat-form button{flex:none;width:46px;border-radius:10px;border:0;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center}
.rate{display:flex;gap:4px}
.rstar{position:relative;font-size:32px;line-height:1;color:var(--line);cursor:pointer;border-radius:4px}
.rstar.on{color:var(--warn)}
.rstar input{position:absolute;opacity:0;width:1px;height:1px}
.rstar:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}

/* ---------- trips (GP) ---------- */
.wallet{display:grid;grid-template-columns:1fr 1fr}
.wallet>div{padding:14px 16px;display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}
.wallet>div+div{border-left:1px solid var(--line)}
.otrip{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.reqs{display:flex;flex-direction:column;gap:8px}
.req{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);text-align:left;color:inherit;font:inherit}
.req:hover{border-color:var(--muted)}
.req.todo{border-color:var(--sign);background:var(--sign-soft)}
.req-main{flex:1;min-width:0}
.req-main span{display:block}
.req-name{font-weight:700}
.req-sub{font-size:12.5px;color:var(--muted)}
.past{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px}
.earn-preview{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:var(--surface-2)}

/* ---------- profile ---------- */
.profile-head{display:flex;gap:16px;align-items:center}
.profile-head .display{font-size:32px}
.profile-head .fine{margin-top:4px}
.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.checks li{display:flex;gap:10px}
.checks li>.ic{color:var(--good);margin-top:1px}
.checks span{display:block}
.links{display:flex;flex-direction:column;overflow:hidden}
.link-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border:0;background:none;text-align:left;width:100%;color:inherit}
.link-row:hover{background:var(--surface-2)}
.link-row+.link-row{border-top:1px solid var(--line)}
.link-row span{flex:1;font-weight:600}
.link-row>.ic:first-child{color:var(--muted)}
.banned{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.banned li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.banned li:last-child{border-bottom:0}
.banned .ic{color:var(--bad);margin-top:1px}

/* ---------- guide ---------- */
.g-brand{display:flex;flex-direction:column;gap:12px}
.g-lede{color:var(--muted);max-width:34ch}
.g-block{display:flex;flex-direction:column;gap:10px}
.personas{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pbtn{display:flex;align-items:center;gap:10px;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-align:left;color:inherit}
.pbtn[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.pbtn strong{display:block}
.pbtn small{display:block;color:var(--muted);font-size:12px}
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.step{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;width:100%;padding:8px 10px;border-radius:10px;border:1px solid transparent;background:none;text-align:left;color:inherit;font-size:14px}
.step:hover{background:var(--surface)}
.step .n{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-size:12px;font-weight:600;font-family:var(--f-mono)}
.step .n .ic{width:13px;height:13px;stroke-width:3}
.step.ok .n{background:var(--good);border-color:var(--good);color:var(--surface)}
.step.ok .s-text{color:var(--muted)}
.step.cur{background:var(--surface);border-color:var(--line)}
.step.cur .n{background:var(--sign);border-color:var(--sign);color:var(--sign-ink)}
.who-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:5px;margin-right:6px;vertical-align:1px}
.who-aicha{background:var(--sign-soft);color:var(--warn)}
.who-patrick{background:var(--accent-soft);color:var(--accent)}
.g-done{display:flex;gap:8px;align-items:center;color:var(--good);font-weight:700}
.g-more{margin:0;padding-left:18px;color:var(--muted);display:flex;flex-direction:column;gap:4px;font-size:14px}
.guide-sheet{display:flex;flex-direction:column;gap:20px}
.guide-sheet .logo.lg{font-size:40px}

/* ---------- sheet & toast ---------- */
.backdrop{position:fixed;inset:0;background:rgba(8,11,16,.5);display:flex;align-items:flex-end;justify-content:center;z-index:50}
.sheet{position:relative;background:var(--surface);width:100%;max-width:480px;max-height:90%;overflow-y:auto;border-radius:20px 20px 0 0;padding:22px 16px calc(22px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px;animation:up .22s ease-out}
.sheet:focus{outline:none}
@media (min-width:900px){.backdrop{align-items:center}.sheet{border-radius:20px;max-width:420px;padding-bottom:22px}}
@keyframes up{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}
.sheet-title{font-family:var(--f-display);text-transform:uppercase;font-size:32px;font-weight:800;margin:0 44px 0 0;line-height:1}
.sheet-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:0;background:var(--surface-2);font-size:22px;line-height:1;display:grid;place-items:center}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);max-width:min(420px,calc(100% - 32px));width:max-content;background:var(--board);color:var(--board-text);padding:12px 16px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:var(--shadow);z-index:60}
.toast.show{animation:pop .25s ease-out}
@keyframes pop{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
/* ---------- parrainage & ambassadeur ---------- */
.personas{grid-template-columns:repeat(3,minmax(0,1fr))}
.pbtn{flex-direction:column;align-items:flex-start;gap:8px}
.demobar .seg button{padding:6px 9px}
@media (max-width:379px){.dlabel{display:none}}
.who-rose{background:var(--good-soft);color:var(--good)}
.t-mute{background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.ref-line{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ref-code{font-family:var(--f-mono);font-size:22px;letter-spacing:.12em;font-weight:500}
.amb-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.amb-head .display{font-size:40px}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.kpi{padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi .amount{font-size:30px}
.demo-box{border:1.5px dashed var(--line);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.demo-box .btn{min-width:140px}
.chart{margin:0;display:flex;flex-direction:column;gap:8px}
.plot{position:relative;height:150px;margin:24px 0 0 38px}
.gl{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--line)}
.gl span{position:absolute;right:calc(100% + 6px);top:-8px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.gl.zero{border-top-color:var(--muted)}
.bars{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px}
.bcol{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border-radius:4px;cursor:default}
.bcol:focus{outline:none}
.bcol:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.bbar{display:block;width:62%;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}
.bbar.partial{background:repeating-linear-gradient(135deg,var(--accent) 0 3px,var(--accent-soft) 3px 6px);box-shadow:inset 0 0 0 1.5px var(--accent)}
.bval{font-size:11.5px;font-weight:700;margin-bottom:4px;font-variant-numeric:tabular-nums;white-space:nowrap}
.tip{position:absolute;left:50%;transform:translateX(-50%);background:var(--board);color:var(--board-text);font-size:12px;font-weight:600;padding:5px 8px;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s;z-index:2}
.bcol:first-child .tip{left:0;transform:none}
.bcol:last-child .tip{left:auto;right:0;transform:none}
.bcol:hover .tip,.bcol:focus-visible .tip{opacity:1}
.bcol:hover .bbar,.bcol:focus-visible .bbar{filter:brightness(1.15)}
.xl{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;margin-left:38px;font-size:11.5px;color:var(--muted);text-align:center}
.xl .cur{color:var(--ink);font-weight:700}
.funnel{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.fn-h{display:flex;justify-content:space-between;gap:10px;font-size:13.5px}
.fn-h strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.fn-bar{display:block;height:10px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;margin-top:5px}
.fn-bar i{display:block;height:100%;background:var(--accent);border-radius:0 4px 4px 0}
.recs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.rec{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.rec:first-child{padding-top:0}
.rec:last-child{border-bottom:0;padding-bottom:0}
.rec-main{flex:1;min-width:0}
.rec-name{font-weight:700;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rec-name .chip-s{font-size:11px;padding:1px 7px}
.rec-amt{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rec-amt strong{color:var(--good)}
.evs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ev{display:flex;gap:10px;align-items:flex-start}
.ev-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:7px;flex:none}
.ev-dot.join{background:var(--muted)}
.ev-dot.bonus{background:var(--warn)}
.ev-dot.payout{background:var(--good)}
.ev-main{flex:1;min-width:0;font-size:14px}
.ev-amt{color:var(--good);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}
.share{display:flex;flex-direction:column;gap:14px;padding:16px;background:var(--board);color:var(--board-text);border-radius:var(--r)}
.share .label{color:var(--sign)}
.share-code{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.share .code{font-size:28px;letter-spacing:.14em}
.share-link{font-family:var(--f-mono);font-size:12.5px;opacity:.8;overflow-wrap:anywhere}
.share-msg{margin-top:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:10px 12px;font-size:13.5px;line-height:1.5}
.share-actions{display:flex;gap:8px;flex-wrap:wrap}
.share-actions .btn{flex:1;min-width:150px}
.btn-board{background:transparent;color:var(--board-text);border-color:rgba(255,255,255,.3)}
.pay-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.payouts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.payouts li{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px;align-items:center}
.payouts strong{font-variant-numeric:tabular-nums}
.tax{display:flex;flex-direction:column;gap:6px}
.rules{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:14px}
.sl{display:flex;flex-direction:column;gap:2px}
.sl-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13.5px;font-weight:700}
.sl-h output{font-family:var(--f-mono);font-weight:500}
.sim-out{display:flex;flex-direction:column;gap:10px}
.sim-total{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:var(--accent-soft)}
.sim-formula{font-family:var(--f-mono);font-size:11.5px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}
.amb-cta{align-items:flex-start}
.invite{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.invite-top{display:flex;gap:12px;align-items:center}
.invite-gift{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:var(--sign);color:var(--sign-ink)}
.invite-gift .label{color:var(--sign-ink);opacity:.75}
/* ---------- arrivée ---------- */
.who-dest{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.codecard{align-items:flex-start}
.code-acts{display:flex;flex-direction:column;gap:8px}
@media (max-width:420px){.code-acts{flex-direction:row;flex-wrap:wrap;width:100%}.code-acts .btn{flex:1}}
.due{display:flex;align-items:center;gap:6px;margin-top:8px;font-weight:700;color:var(--sign);opacity:1!important}
.due .ic{width:16px;height:16px}
.alert-box{border-color:var(--bad);background:var(--bad-soft)}
.warn-box{border-color:var(--warn);background:var(--warn-soft)}
.alert-box .demo-box,.warn-box .demo-box{background:var(--surface)}
.quote{border-left:3px solid var(--line);padding:2px 0 2px 10px;font-size:14px;font-style:italic}
.photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.photos figure{margin:0;display:flex;flex-direction:column;gap:4px}
.deliver-form{display:flex;flex-direction:column;gap:10px}
.attempts,.guard{display:flex;flex-direction:column;gap:8px}
.guard{border-top:1px dashed var(--line);padding-top:12px}
.att-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.att-list li{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;font-size:14px}
.att-list .ic{width:16px;height:16px;color:var(--accent)}
.chip-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:600}
.chip-btn .ic{width:14px;height:14px}
.chip-btn:hover{border-color:var(--accent);color:var(--accent)}
.sms{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:14px 14px 14px 4px;padding:10px 12px;font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}
.sms .ic{color:var(--accent);margin-top:1px}
.tl .warnst .dot{background:var(--warn);border-color:var(--warn);color:var(--surface)}
.tl li.done.alerted .dot{background:var(--bad);border-color:var(--bad)}
.rules{counter-reset:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- Colipote v1 : ce que la maquette n'avait pas ---------- */
.bandeau{display:flex;align-items:center;gap:10px;padding:7px 16px;background:var(--board);color:var(--board-text);font-size:13px}
.bandeau strong{color:var(--sign);font-weight:700}
a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.note-essai{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--surface-2,rgba(0,0,0,.04));margin-block:12px}
.note-essai .ic{flex:none;margin-top:2px}
body.occupe{cursor:progress}
body.occupe .btn-primary{opacity:.7}
details summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
