/* Base (remplace le squelette fourni par claude.ai) */
*,*::before,*::after{box-sizing:border-box}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);color-scheme:light}
body{margin:0;font-size:14px}
img{max-width:100%}
@font-face{font-family:"Indivisible";src:url(/fonts/Indivisible-Light.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Indivisible";src:url(/fonts/Indivisible-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Indivisible";src:url(/fonts/Indivisible-Medium.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Indivisible";src:url(/fonts/Indivisible-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}
/* Layout: app shell, header with wordmark + tabs (bottom bar on phones), one view at a time, side drawer for a model's book. Charte Etherea: blanc, noir, surlignage citron, Indivisible */
:root{
  --bg:#FFFFFF; --surface:#FFFFFF; --ink:#0A0A0A; --muted:#6B6B6B; --line:#E3E3E3;
  --accent:#0A0A0A; --accent-ink:#FFFFFF; --soft:#F4F4F2; --lime:#D4FF4F; --lime-ink:#0A0A0A; --on-edge:#0A0A0A; --warn:#C2410C; --logo-filter:none; --logo-blend:multiply; --wm-op:.07;
  --display:"Indivisible","Helvetica Neue",Arial,sans-serif;
  --body:"Indivisible","Helvetica Neue",Arial,sans-serif;
  --mono:"Indivisible","Helvetica Neue",Arial,sans-serif;
  --r:14px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0A0A0A; --surface:#141414; --ink:#F5F5F5; --muted:#9B9B9B; --line:#2A2A2A;
  --accent:#D4FF4F; --accent-ink:#0A0A0A; --soft:#1C1C1C; --on-edge:#D4FF4F; --warn:#FB923C; --logo-filter:invert(1); --logo-blend:screen; --wm-op:.09; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0A0A0A; --surface:#141414; --ink:#F5F5F5; --muted:#9B9B9B; --line:#2A2A2A;
  --accent:#D4FF4F; --accent-ink:#0A0A0A; --soft:#1C1C1C; --on-edge:#D4FF4F; --warn:#FB923C; --logo-filter:invert(1); --logo-blend:screen; --wm-op:.09; color-scheme:dark}
html,body{height:100%}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5}
*{box-sizing:border-box}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.top-in{max-width:1120px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:baseline;gap:10px;background:none;border:0;padding:0;cursor:pointer}
.brand b{font-family:var(--display);font-weight:700;font-style:italic;font-size:26px;letter-spacing:.02em;line-height:1;text-transform:uppercase}
.brand span{font-size:12px;border:1px solid var(--ink);border-radius:999px;padding:2px 9px}
nav.tabs{display:flex;gap:4px}
nav.tabs button{border:0;background:none;padding:8px 12px;border-radius:999px;cursor:pointer;color:var(--muted);font-weight:600;font-size:14px;position:relative;display:flex;align-items:center;gap:6px}
nav.tabs button[aria-current="true"]{background:var(--ink);color:var(--bg)}
nav.tabs svg{width:18px;height:18px;display:none}
.badge{min-width:18px;height:18px;border-radius:9px;background:var(--lime);color:var(--lime-ink);font-size:11px;display:inline-grid;place-items:center;padding:0 5px;font-family:var(--mono)}
.me{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);white-space:nowrap;margin-right:auto}
.me-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px 4px 4px;cursor:pointer;font-size:13px;color:var(--ink);max-width:220px}
.me-chip:hover{border-color:var(--ink)}
.me-chip .av{width:26px;height:26px;font-size:13px}
.me-chip span{overflow:hidden;text-overflow:ellipsis}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;justify-content:space-between;background:var(--lime);color:var(--lime-ink);border-radius:var(--r);padding:16px 18px;margin-bottom:24px}
.cta p{margin:0;font-size:15px}
.cta b{font-weight:700;font-style:italic;text-transform:uppercase}
.cta .btn{border-color:var(--lime-ink);background:transparent;color:var(--lime-ink)}
.cta .btn.pri{background:var(--lime-ink);color:var(--lime)}
.prof-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid var(--warn);border-radius:var(--r);padding:10px 12px}
.confirm span{color:var(--warn);font-weight:600;font-size:14px}
.form-actions{display:flex;flex-wrap:wrap;gap:8px}
.editing-note{font-size:13px;color:var(--muted)}
.btn.danger{color:var(--warn);border-color:transparent;background:none}
.btn.danger:hover{border-color:var(--warn)}
.pill{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:400;padding:3px 11px;border-radius:999px;border:1px solid var(--ink);color:var(--ink);background:none}
.pill.ok,.pill.hlp{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}
.pill.line{background:none;border:1px solid var(--line);color:var(--muted)}
main{max-width:1120px;margin:0 auto;padding:36px 16px 96px;position:relative;z-index:1}
.wm{position:fixed;right:-14vw;top:4vh;width:min(1150px,135vw);max-width:none;height:auto;z-index:0;pointer-events:none;opacity:var(--wm-op);filter:var(--logo-filter);mix-blend-mode:var(--logo-blend)}
.logo{height:38px;width:auto;display:block;max-width:none;filter:var(--logo-filter);mix-blend-mode:var(--logo-blend)}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:22px}
.eyebrow{display:inline-block;margin:0 0 14px;font-size:14px;border:1px solid var(--ink);border-radius:999px;padding:4px 14px}
h1{font-family:var(--display);font-weight:300;font-size:clamp(34px,6.4vw,60px);line-height:1;margin:0;text-wrap:balance;text-transform:uppercase;letter-spacing:-.01em}
h1 em,.hl{font-style:italic;font-weight:700}
.hl{background:var(--lime);color:var(--lime-ink);padding:0 .12em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
h2{font-size:18px;margin:0;text-wrap:balance}
h3{font-size:16px;margin:0}
.muted{color:var(--muted)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.btn{border:1px solid var(--line);background:var(--surface);padding:9px 14px;border-radius:999px;cursor:pointer;font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.sm{padding:6px 11px;font-size:13px}
.btn.ghost{background:none;border-color:transparent;color:var(--muted)}
.btn.on{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}
.btn:disabled{opacity:.5;cursor:default}
.notice{border:1px dashed var(--line);border-radius:var(--r);padding:12px 14px;color:var(--muted);font-size:14px;margin-bottom:18px}
.empty{border:1px dashed var(--line);border-radius:var(--r);padding:36px 20px;text-align:center;color:var(--muted)}
.empty strong{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
label.f{display:grid;gap:4px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);min-width:0}
input[type=text],input[type=url],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 11px;font-size:15px;text-transform:none;letter-spacing:0;font-weight:400}
textarea{resize:vertical;min-height:84px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}
details.compose{margin-bottom:22px}
details.compose summary{cursor:pointer;list-style:none;display:inline-flex}
details.compose summary::-webkit-details-marker{display:none}
details.compose form{margin-top:12px;display:grid;gap:12px}

/* Actus */
.news{display:grid;gap:0;border-top:1px solid var(--line)}
.news article{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}
.news .when{font-size:13px;color:var(--muted)}
.news h2{font-size:21px;margin:8px 0 6px;text-transform:uppercase}
.news p{margin:0;white-space:pre-wrap;max-width:68ch}
.news-img{display:block;width:100%;max-width:460px;aspect-ratio:4/5;object-fit:cover;object-position:50% 42%;border-radius:var(--r);margin:4px 0 14px;background:var(--soft)}
.news article.feat .news-img{max-width:560px}
.news article.feat h2{font-weight:700;font-style:italic;font-size:clamp(26px,4vw,36px);line-height:1.05;text-transform:uppercase}
@media (max-width:620px){.news article{grid-template-columns:1fr;gap:4px}}

/* Modèles */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.toolbar input[type=search]{max-width:240px}
.toolbar input[type=number]{max-width:130px}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--surface)}
.seg button{border:0;background:none;padding:6px 12px;border-radius:999px;font-weight:600;font-size:13px;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.days{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:18px;scrollbar-width:thin}
.day{flex:0 0 auto;width:58px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:7px 0;text-align:center;cursor:pointer}
.day small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.day b{display:block;font-family:var(--mono);font-size:18px;font-weight:500}
.day i{display:block;font-style:normal;font-size:11px;color:var(--muted);font-family:var(--mono)}
.day[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.day[aria-pressed="true"] small,.day[aria-pressed="true"] i{color:var(--bg)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:18px}
.card{background:none;border:0;padding:0;text-align:left;cursor:pointer;display:grid;gap:8px;min-width:0}
.cover{aspect-ratio:3/4;max-width:100%;border-radius:var(--r);background:var(--soft);overflow:hidden;position:relative;display:grid;place-items:center}
.cover img{width:100%;height:100%;object-fit:cover;display:block}
.cover .ini{font-family:var(--display);font-weight:700;font-style:italic;font-size:60px;color:var(--ink)}
.cover .tag{position:absolute;top:8px;left:8px}
.cover .star{position:absolute;top:8px;right:8px;background:var(--lime);border-radius:999px;width:30px;height:30px;display:grid;place-items:center;font-size:15px;color:var(--lime-ink)}
.card h3{font-size:17px;text-transform:uppercase;font-weight:700;font-style:italic}
.meta{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 10px}
.rate{font-family:var(--mono);font-size:14px}
.dots{display:flex;gap:3px}
.dots span{width:9px;height:9px;border-radius:2px;background:var(--line)}
.dots span.on{background:var(--lime);box-shadow:inset 0 0 0 1px var(--on-edge)}
.brandcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:8px;align-content:start}
.brandcard p{margin:0;font-size:14px;white-space:pre-wrap}
.plan-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table.plan{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}
table.plan th,table.plan td{padding:0;border-bottom:1px solid var(--line);text-align:center}
table.plan thead th{padding:8px 0;font-weight:500;color:var(--muted);font-size:11px;min-width:34px}
table.plan thead th b{display:block;font-family:var(--mono);font-size:14px;color:var(--ink);font-weight:500}
table.plan th.who{position:sticky;left:0;background:var(--surface);text-align:left;padding:8px 12px;min-width:170px;z-index:1;border-right:1px solid var(--line)}
table.plan th.who button{background:none;border:0;padding:0;cursor:pointer;text-align:left;font-weight:600}
table.plan th.who small{display:block;font-family:var(--mono);color:var(--muted);font-weight:400}
table.plan td i{display:block;width:22px;height:22px;border-radius:5px;margin:6px auto;background:transparent;border:1px solid var(--line)}
table.plan td i.on{background:var(--lime);border-color:var(--on-edge)}
table.plan .wk{border-left:1px solid var(--line)}
table.plan .sel{background:var(--soft)}
.day.has{border-color:var(--ink)}

/* Drawer */
.scrim{position:fixed;inset:0;background:rgba(10,10,14,.45);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--bg);z-index:41;overflow-y:auto;padding:calc(env(safe-area-inset-top,0px) + 18px) 20px calc(env(safe-area-inset-bottom,0px) + 28px);display:grid;gap:18px;align-content:start;border-left:1px solid var(--line)}
.drawer .x{justify-self:end}
.book{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.book img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;display:block;background:var(--soft)}
.book img:first-child{grid-column:1/-1;aspect-ratio:4/5}
dl.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:0}
dl.specs div{border-top:1px solid var(--line);padding-top:6px}
dl.specs dt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
dl.specs dd{margin:0;font-family:var(--mono);font-size:15px}
.actions{display:flex;flex-wrap:wrap;gap:8px}

/* Calendar */
.cal{display:grid;gap:6px;max-width:380px}
.cal-h{display:flex;align-items:center;justify-content:space-between}
.cal-h b{text-transform:capitalize}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-g span{font-size:11px;text-align:center;color:var(--muted);text-transform:uppercase}
.cal-g button{aspect-ratio:1;border:1px solid var(--line);background:var(--surface);border-radius:7px;font-family:var(--mono);font-size:13px;cursor:pointer;padding:0}
.cal-g button.on{background:var(--lime);border-color:var(--on-edge);color:var(--lime-ink);font-weight:700}
.cal-g button:disabled{opacity:.35;cursor:default}
.cal-g button.ro{cursor:default}

/* Messages */
.chat{display:grid;grid-template-columns:280px minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);height:min(640px,calc(100dvh - 230px));min-height:420px;overflow:hidden}
.threads{border-right:1px solid var(--line);overflow-y:auto}
.threads button{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;width:100%;border:0;border-bottom:1px solid var(--line);background:none;padding:12px 14px;text-align:left;cursor:pointer}
.threads button[aria-current="true"]{background:var(--soft);box-shadow:inset 3px 0 0 var(--lime)}
.threads .t-name{font-weight:700;font-size:14px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.threads .t-last{font-size:13px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.threads > div{min-width:0}
.av{width:40px;height:40px;border-radius:50%;background:var(--lime);color:var(--lime-ink);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-style:italic;font-size:18px;overflow:hidden}
.av img{width:100%;height:100%;object-fit:cover}
.conv{display:grid;grid-template-rows:auto 1fr auto;min-width:0;min-height:0}
.conv-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.conv-h .back{display:none}
.msgs{overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:6px}
.msg{max-width:78%;padding:8px 12px;border-radius:14px;background:var(--bg);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}
.msg.mine{align-self:flex-end;background:var(--accent);color:var(--accent-ink)}
.msg small{display:block;font-size:10px;opacity:.7;font-family:var(--mono);margin-top:2px}
.composer{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}
.composer textarea{min-height:42px;height:42px;resize:none}
.conv-empty{display:grid;place-items:center;color:var(--muted);padding:30px;text-align:center}
@media (max-width:760px){
  .chat{grid-template-columns:1fr}
  .chat.has-thread .threads{display:none}
  .chat:not(.has-thread) .conv{display:none}
  .threads{border-right:0}
  .conv-h .back{display:inline-flex}
}

/* Événements */
.events{display:grid;gap:14px}
.ev{display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.ev .date{text-align:center;border-right:1px solid var(--line);padding-right:14px}
.ev .date b{display:block;font-family:var(--display);font-size:44px;font-weight:700;font-style:italic;line-height:1}
.ev .date small{text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--muted)}
.ev-body{display:grid;gap:8px;min-width:0}
.ev-img{grid-column:1/-1;width:100%;max-width:100%;aspect-ratio:16/7;object-fit:cover;object-position:50% 62%;border-radius:10px;display:block;background:var(--soft)}
.credit{grid-column:1/-1;margin:-10px 0 0;font-size:11px;color:var(--muted)}
.stats{display:flex;flex-wrap:wrap;gap:8px}
.stat{border:1px solid var(--ink);border-radius:999px;padding:4px 12px;font-size:13px}
.stat b{font-weight:700;font-style:italic;font-size:15px}
a.btn{text-decoration:none;color:var(--ink)}
a.btn.pri{color:var(--accent-ink)}
.ev h2{text-transform:uppercase;font-size:20px}
.ev-body p{margin:0;white-space:pre-wrap}
.ev-line{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px;color:var(--muted);align-items:center}
.deadline.soon{color:var(--warn);font-weight:700}
.apply{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.applicants{display:flex;flex-wrap:wrap;gap:6px}
.past{margin-top:28px}
.queue{margin-bottom:30px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.queue-t{display:flex;align-items:center;gap:8px;font-size:20px;text-transform:uppercase;font-style:italic;margin-bottom:6px}
.pill.warnp{border-color:var(--warn);color:var(--warn)}
.account{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;font-size:14px}
.account b{font-weight:700}
.past summary{cursor:pointer;color:var(--muted);font-weight:600}

/* Profil */
.prof{display:grid;gap:20px;max-width:760px}
.role-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:14px}
.role-pick button{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:22px;text-align:left;cursor:pointer;display:grid;gap:6px}
.role-pick button:hover{border-color:var(--ink);box-shadow:inset 0 -6px 0 var(--lime)}
.role-pick b{font-family:var(--display);font-weight:300;font-size:28px;text-transform:uppercase;line-height:1.05}
.role-pick b em{font-weight:700}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.thumb{position:relative}
.thumb img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;display:block;background:var(--soft)}
.thumb .tb{position:absolute;inset:auto 4px 4px 4px;display:flex;gap:4px;justify-content:space-between}
.thumb .tb button{border:0;border-radius:999px;background:var(--surface);font-size:11px;padding:3px 7px;cursor:pointer;font-weight:600}
.thumb .first{position:absolute;top:4px;left:4px}
.upl{border:1px dashed var(--line);border-radius:8px;aspect-ratio:3/4;display:grid;place-items:center;cursor:pointer;color:var(--muted);font-size:13px;text-align:center;padding:8px}
.sec-t{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}

.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:14px;z-index:60;max-width:calc(100% - 32px)}

@media (max-width:760px){
  .top-in{padding:10px 16px}
  .logo{height:28px}
  .brand span{display:none}
  .me{min-width:0}
  .me-chip{max-width:150px}
  .me > span:not(.pill){display:none}
  nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);justify-content:space-around;padding:6px 4px calc(env(safe-area-inset-bottom,0px) + 6px)}
  nav.tabs button{flex-direction:column;gap:2px;font-size:11px;padding:6px 8px;border-radius:10px}
  nav.tabs button[aria-current="true"]{background:var(--lime);color:var(--lime-ink)}
  nav.tabs svg{display:block}
  nav.tabs .badge{position:absolute;top:0;right:4px}
  main{padding-top:20px}
  .ev{grid-template-columns:58px minmax(0,1fr);gap:12px}
  .ev .date b{font-size:32px}
}
@media (prefers-reduced-motion:no-preference){.drawer{animation:slide .22s ease-out}@keyframes slide{from{transform:translateX(24px);opacity:.6}}}

/* Connexion */
.auth{max-width:440px}
.auth h2{text-transform:uppercase;font-style:italic;font-size:22px}
.auth-msg{margin:0;padding:10px 12px;border-radius:10px;border:1px solid var(--warn);color:var(--warn);font-size:14px}
.auth-msg.ok{border-color:var(--ink);color:var(--ink);background:var(--lime);color:var(--lime-ink)}
.notice .btn{margin-top:6px}
.install{display:none}

/* Page profil */
.me-card{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px}
.me-id{display:grid;gap:6px;min-width:0}
.me-id h2{font-size:clamp(26px,5vw,38px);text-transform:uppercase;font-style:italic;line-height:1.05;overflow-wrap:anywhere}
.me-photo{display:flex;flex-direction:column;align-items:center;gap:10px}
.me-photo img,.me-photo .ini{width:96px;height:96px;border-radius:50%;object-fit:cover;max-width:none;background:var(--lime);color:var(--lime-ink);display:grid;place-items:center;font-weight:700;font-style:italic;font-size:40px}
.me-photo.big img,.me-photo.big .ini{width:132px;height:132px;font-size:56px}
.me-photo-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.me-photo-actions label{cursor:pointer}
dl.specs.info dd{font-family:var(--body);font-size:15px;overflow-wrap:anywhere}
.bc-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.bc-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;max-width:none;flex:0 0 auto}
.bc-photo.ini{display:grid;place-items:center;background:var(--lime);color:var(--lime-ink);font-weight:700;font-style:italic;font-size:24px}

/* Choix du type de compte à l'inscription */
.role-pick.compact{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px}
.role-pick.compact button{padding:14px 16px}
.role-pick.compact b{font-size:22px}
.role-pick button[aria-pressed="true"]{border-color:var(--lime);box-shadow:inset 0 0 0 2px var(--lime)}
.role-pick button[aria-pressed="true"] b::after{content:" ✓";font-style:normal;color:var(--lime)}

.req{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:10px}

/* Inscription complète */
.auth.wide{max-width:760px}
.step-t{font-size:15px;text-transform:uppercase;letter-spacing:.06em;margin:6px 0 10px;font-weight:700}
.def-hours{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:14px}
.def-hours input,.slot input{width:auto;padding:6px 8px}
.slots{display:grid;gap:6px;margin-top:10px}
.slot{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;border-top:1px solid var(--line);padding-top:6px;font-size:14px}
.slot > span:first-child{min-width:140px;text-transform:capitalize}
.slot-h{display:flex;align-items:center;gap:6px}
.next-slots{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:4px;font-size:14px}
.next-slots li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:4px;text-transform:capitalize}

/* Recherche du planning */
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:10px;margin-bottom:12px;align-items:end}
.filters .chk{display:flex;align-items:center;gap:8px;font-size:14px;padding-bottom:10px}
.filters select{width:100%}
/* Cartes modèles */
.card{display:grid;gap:6px;align-content:start;min-width:0;cursor:default}
.cover{position:relative}
.cover-btn{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer}
.cover-btn .ini{display:grid;place-items:center;width:100%;height:100%}
.msg-btn{position:absolute;right:8px;bottom:8px;width:42px;height:42px;border-radius:50%;border:0;background:var(--lime);color:var(--lime-ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.msg-btn svg{width:20px;height:20px}
.card-name{background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit}
.avail-line{font-size:13px}
/* Candidatures */
.cands summary{cursor:pointer;font-size:14px;padding:6px 0}
.cand-list{display:grid;gap:10px;margin-top:8px}
.cand{display:grid;gap:6px;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.cand-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cand-note{margin:0;font-size:14px;white-space:pre-wrap}
.cand-note.dec{color:var(--muted)}
.link{background:none;border:0;padding:0;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;font:inherit}
.decision{border-radius:12px;padding:10px 12px;font-size:14px}
.decision p{margin:4px 0 0;white-space:pre-wrap}
.decision.ok{background:var(--lime);color:var(--lime-ink)}
.decision.no{border:1px solid var(--warn);color:var(--warn)}

/* Badge du haut cliquable */
.pill-btn{cursor:pointer;font:inherit;font-size:13px}
.pill-btn:hover{filter:brightness(.95);text-decoration:underline;text-underline-offset:3px}
/* Afficher / masquer le mot de passe */
.pw{position:relative;display:block}
.pw input{padding-right:46px}
.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;background:none;color:var(--muted);cursor:pointer;display:grid;place-items:center;border-radius:8px}
.eye svg{width:20px;height:20px}
.eye.on{color:var(--ink)}
.eye.on svg path{stroke-dasharray:none}
.eye.on::after{content:"";position:absolute;width:22px;height:2px;background:currentColor;transform:rotate(-45deg)}

/* Page Mon compte / profil : badges compacts, email lisible sur téléphone */
.me-id .pills{display:flex;flex-wrap:wrap;gap:6px}
.me-id .pill{justify-self:start}
.me-id h2.email-title{text-transform:none;font-style:normal;font-weight:700;font-size:clamp(18px,4.8vw,26px);overflow-wrap:anywhere}
@media (max-width:760px){
  .me-card{flex-direction:column;align-items:flex-start}
  .me-photo.big img,.me-photo.big .ini{width:104px;height:104px;font-size:44px}
}

/* ======================================================================
   Finitions : cohérence téléphone / ordinateur (app pensée pour mobile)
   ====================================================================== */

/* Planning : filtres compacts (date + ville visibles, le reste repliable) */
#filters{display:grid;gap:10px;margin-bottom:12px}
.filters.main-f{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.more-f{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.more-f summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 14px;font-weight:600;font-size:14px}
.more-f summary::-webkit-details-marker{display:none}
.more-f summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-left:auto;transition:transform .2s}
.more-f[open] summary::after{transform:rotate(-135deg)}
.more-f .filters{padding:0 14px 14px;margin:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.filters .f-wide{grid-column:span 2}
.filters .chk{padding:0 0 10px}
.toolbar{gap:8px}
#result-n{font-size:13px;flex:1 1 auto;min-width:0}

/* Fiche modèle : calendrier en lecture seule plus léger, bouton Fermer toujours visible */
.cal-g button.ro:not(.on){background:transparent;border-color:transparent;color:var(--muted)}
.drawer .x{position:sticky;top:0;z-index:2;background:var(--bg);border:1px solid var(--line)}

/* Messages : pastille « non lu » et compteur de l'onglet actif */
.dot{width:10px;height:10px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px var(--soft);justify-self:end}
nav.tabs button[aria-current="true"] .badge{background:var(--lime-ink);color:var(--lime)}

/* Candidatures et listes de membres : alignement en grille */
.cand-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.cand-head .pill{margin-left:0 !important;justify-self:end}
.cand .actions{gap:6px}
.req{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 10px}
.req > .actions{grid-column:1/-1;justify-content:flex-end;margin-left:0 !important}
.req .pill{justify-self:end}

/* Mon compte en bas de page */
.account{margin-top:8px}

@media (max-width:760px){
  .head{margin-bottom:16px}
  h1{font-size:clamp(30px,9vw,40px)}
  .eyebrow{margin-bottom:10px;font-size:13px}

  /* Planning : 2 cartes par ligne, comme une app */
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
  .cards.brands{grid-template-columns:1fr}
  .card h3{font-size:15px;line-height:1.15;overflow-wrap:anywhere}
  .card .meta{font-size:12px;gap:2px 8px}
  .card .rate{font-size:13px}
  .avail-line{font-size:12px;line-height:1.3}
  .avail-line .pill{font-size:11px;padding:2px 8px;white-space:normal}
  .cover .ini{font-size:44px}
  .msg-btn{width:38px;height:38px;right:6px;bottom:6px}
  .more-f .filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filters .chk{grid-column:1/-1}

  /* Événements : date en en-tête, contenu sur toute la largeur */
  .ev{grid-template-columns:1fr;gap:10px;padding:14px}
  .ev .date{display:flex;align-items:baseline;gap:8px;text-align:left;border-right:0;padding:0 0 10px;border-bottom:1px solid var(--line)}
  .ev .date br{display:none}
  .ev .date b{font-size:30px}
  .ev .date small{font-size:12px}
  .ev h2{font-size:18px}
  .credit{margin:-4px 0 0}
  .stats{gap:6px}
  .stat{font-size:12px;padding:3px 10px}
  .stat b{font-size:13px}

  /* Profil : centré, boutons pleine largeur */
  .me-card{flex-direction:column;align-items:center;text-align:center}
  .me-id{justify-items:center}
  .me-id .pills{justify-content:center}
  .me-photo-actions{justify-content:center}
  dl.specs.info{grid-template-columns:repeat(2,minmax(0,1fr))}
  .prof > .form-actions{flex-direction:column;align-items:stretch}
  .prof > .form-actions .btn{justify-content:center}
  .prof > .form-actions .btn.danger{margin-left:0 !important}
  .account{flex-direction:column;align-items:flex-start}
  .account .actions{margin-left:0 !important}

  /* Fiche modèle plein écran */
  .drawer{padding-left:16px;padding-right:16px}

  /* Badge de l'onglet Messages bien placé sur l'icône */
  nav.tabs .badge{top:2px;right:calc(50% - 24px)}
}

/* Titres : interligne suffisant pour les accents sous le surlignage */
h1{line-height:1.12}
h1 .hl{padding-top:.04em}
/* Champs de filtres alignés, même hauteur partout */
.filters{align-items:start}
.filters input,.filters select{height:46px}

/* Inscription : les 4 types de profil en grille 2 × 2 sur téléphone */
@media (max-width:760px){
  .role-pick.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .role-pick.compact button{padding:12px;gap:4px}
  .role-pick.compact b{font-size:17px}
  .role-pick.compact span{font-size:12px;line-height:1.35}
  .role-pick.compact button[aria-pressed="true"] b::after{content:" ✓"}
}

/* Ordinateur : champs Date / Ville de largeur raisonnable */
@media (min-width:761px){
  .filters.main-f{grid-template-columns:repeat(2,minmax(0,280px))}
  .cards.brands{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
}

/* iPhone : le champ date natif ignore la hauteur et impose une largeur minimale -> il débordait sur « Ville » */
input[type=date],input[type=time]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;display:block;line-height:1.2}
.filters input[type=date]{height:46px;padding-top:0;padding-bottom:0}
input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}
.filters .f{min-width:0}
/* iPhone : centre verticalement la date dans sa case (Safari place le texte en haut) */
.filters input[type=date]{display:flex;align-items:center;line-height:44px}
input[type=date]::-webkit-date-and-time-value{line-height:inherit;min-height:0;padding:0}
input[type=date]::-webkit-datetime-edit{padding:0;line-height:inherit}

/* Book PDF */
.pdf-ic{display:inline-grid;place-items:center;width:42px;height:50px;border-radius:6px;background:var(--lime,#D4FF4F);color:#000;font-weight:800;font-size:12px;letter-spacing:.04em;flex:none}
.pdf-row{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:10px}
.pdf-name{display:grid;min-width:0;flex:1}
.pdf-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.book-pdf{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;font:inherit;cursor:pointer}
.book-pdf>span:nth-child(2){display:grid;flex:1;min-width:0}
.book-pdf small{color:var(--muted,#999);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lnk{background:none;border:0;padding:0;color:inherit;text-decoration:underline;font:inherit;cursor:pointer;text-align:left}
/* Email à confirmer */
.verify-box{display:grid;gap:10px;padding:14px;border:1px dashed var(--line);border-radius:12px;font-size:14px}
.verify-box p{margin:0}
.upl.upl-pdf{aspect-ratio:auto;min-height:0;padding:16px;font-size:14px;line-height:1.4}

/* Mes candidatures (profil) */
.myapps{display:grid;gap:12px}
.myapp{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px}
.myapp-h{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.myapp-h .pill{flex:none}
.myapp-h{flex-wrap:wrap}.myapp-h>div{flex:1 1 170px}.myapp-h .pill{white-space:nowrap}

/* Mon planning (profil) */
.myplan{display:grid;gap:12px}
.plan-cal{max-width:none}
.plan-cal .cal-g button{cursor:default}
.plan-cal .cal-g button:not(.on):not(.pend){background:transparent;border-color:transparent;color:var(--muted)}
.plan-cal .cal-g button.on,.plan-cal .cal-g button.pend{cursor:pointer}
.plan-cal .cal-g button.pend{border:1.5px dashed var(--ink);background:transparent;color:var(--ink);font-weight:700}
.plan-cal .cal-g button.today{outline:1px solid var(--muted);outline-offset:1px}
.plan-cal .cal-g button.sel{box-shadow:0 0 0 2px var(--ink)}
.plan-legend{display:flex;gap:16px;font-size:13px;color:var(--muted)}
.plan-legend span{display:flex;align-items:center;gap:6px}
.lg{display:inline-block;width:14px;height:14px;border-radius:4px}
.lg.on{background:var(--lime)}
.lg.pend{border:1.5px dashed var(--ink)}
.plan-info{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;font-size:14px}
.plan-info dt{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.plan-info dd{margin:0}
@media (min-width:760px){.plan-cal{max-width:420px}}

/* Tablette en portrait (761–1023 px) : la barre d'onglets passe en bas, comme sur téléphone,
   sinon le logo, le profil et les 5 onglets ne tiennent pas sur une ligne. */
@media (min-width:761px) and (max-width:1023px){
  nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);justify-content:center;gap:clamp(8px,4vw,40px);padding:8px 16px calc(env(safe-area-inset-bottom,0px) + 8px)}
  nav.tabs button{flex-direction:column;gap:3px;font-size:12px;padding:7px 14px;border-radius:12px}
  nav.tabs button[aria-current="true"]{background:var(--lime);color:var(--lime-ink)}
  nav.tabs svg{display:block;width:20px;height:20px}
  nav.tabs .badge{position:absolute;top:2px;right:calc(50% - 26px)}
  .me{margin-right:0;margin-left:auto}
}

/* Nouveautés et notifications */
.pill.new{background:var(--lime);color:var(--lime-ink);border-color:var(--lime);font-weight:700}
nav.tabs .badge#b-actus,nav.tabs .badge#b-events{margin-left:2px}
.notif{display:grid;gap:12px}
.notif .push-on{margin:0;font-weight:700}
.notif-types{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.notif-types .chk{display:flex;align-items:center;gap:10px;font-size:14px}
.notif-types input{width:18px;height:18px;accent-color:var(--lime);flex:none}
.ios-hint{display:grid;gap:8px;font-size:14px}
.ios-hint ol{margin:0;padding-left:20px;display:grid;gap:4px}
.push-ask .ios-hint ol b,.push-ask .ios-hint li b{text-transform:none;font-style:normal}
.push-ask .btn.ghost{color:var(--lime-ink);border:1px solid var(--lime-ink)}
.push-ask .muted{color:var(--lime-ink);opacity:.7}

/* Fiche événement enrichie */
.ev.focus{outline:2px solid var(--lime);outline-offset:4px}
.ev-tools{margin-top:2px}
.ev-docs{display:flex;flex-wrap:wrap;gap:8px}
.doc-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-chip button{border:0;background:none;color:var(--muted);cursor:pointer;padding:0 0 0 4px}
.docs-edit{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.ev-prog{border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.ev-prog summary{cursor:pointer;font-weight:700;font-size:14px}
.prog{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;font-size:14px}
.prog li{display:grid;grid-template-columns:56px 1fr;gap:10px}
.prog li b{color:var(--ink)}
/* Jauge de profil */
.complete{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;background:var(--surface)}
.complete.done{border-color:var(--lime)}
.complete-h{display:grid;gap:2px;font-size:14px}
.bar{height:8px;border-radius:999px;background:var(--soft);overflow:hidden}
.bar i{display:block;height:100%;background:var(--lime);border-radius:999px}
.missing{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;color:var(--muted)}
.chip-btn{border:1px dashed var(--ink);background:none;color:var(--ink);border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer}

/* Tableau de bord du bureau */
.dash{display:grid;gap:14px}
.dash summary{cursor:pointer;list-style:none}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:12px}
.tile{display:grid;gap:2px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--bg)}
.tile b{font-family:var(--display);font-size:26px;font-style:italic;line-height:1}
.tile span{font-size:12px;color:var(--muted)}
.dash-table{display:grid;border:1px solid var(--line);border-radius:12px;overflow:auto}
.dt-row{display:grid;grid-template-columns:minmax(160px,2fr) repeat(5,minmax(64px,1fr));gap:8px;padding:10px 12px;border-top:1px solid var(--line);font-size:14px;align-items:center;min-width:560px}
.dt-head{border-top:0;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

/* Billet QR et pointage */
.ticket{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center;border:2px dashed var(--lime);border-radius:var(--r);padding:12px;background:var(--surface)}
.ticket .qr{background:#fff;border-radius:10px;padding:6px;aspect-ratio:1}
.ticket .qr svg{width:100%;height:auto;display:block}
.ticket > div:last-child{display:grid;gap:4px}
@media (max-width:420px){.ticket{grid-template-columns:1fr;justify-items:center;text-align:center}.ticket .qr{width:200px}}
.pointage{display:grid;gap:10px;border:1px solid var(--line);border-radius:var(--r);padding:12px}
.point-list{display:grid;gap:6px;max-height:420px;overflow:auto}
.point{display:flex;align-items:center;gap:10px;padding:6px 4px;border-bottom:1px solid var(--line)}
.point input{width:20px;height:20px;accent-color:var(--lime);flex:none}
.scan-overlay{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.92);display:grid;place-items:center;align-content:center;gap:14px;padding:20px;color:#fff;text-align:center}
.scan-video{width:min(92vw,420px);aspect-ratio:1;object-fit:cover;border-radius:16px;border:3px solid var(--lime)}
/* Recommandations */
.reviews{display:grid;gap:10px}
.review{margin:0;border-left:3px solid var(--lime);padding:6px 0 6px 12px}
.review p{margin:0;font-style:italic}
.review footer{font-size:12px;color:var(--muted);margin-top:4px}
/* Messagerie */
.attach{display:grid;place-items:center;width:42px;height:42px;flex:none;border:1px solid var(--line);border-radius:10px;cursor:pointer;color:var(--muted)}
.attach svg{width:20px;height:20px}
.msg-who{display:block;font-size:11px;opacity:.75;margin-bottom:2px}
.msg-img{display:block;border:0;padding:0;background:none;cursor:pointer;margin:2px 0 4px}
.msg-img img{max-width:220px;max-height:260px;border-radius:10px;display:block}
.av.grp{display:inline-grid;place-items:center;background:var(--lime);color:var(--lime-ink);font-size:18px}
.places{gap:6px}
.av{flex:none}.av.grp{font-style:normal}
.dash{display:block;min-width:0;max-width:100%}
.dash > *{margin-top:14px}
.dash > summary{margin-top:0}
.dash-table{max-width:100%}
.tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,120px),1fr))}

/* Candidats : outils, vue tableau */
.cand-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:10px 0}
.cand-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.cand-filters select,.cand-filters input{width:auto;flex:1 1 150px;height:40px}
.cand-table{border:1px solid var(--line);border-radius:12px;overflow-x:auto;background:var(--surface)}
.ct-row{display:grid;grid-template-columns:minmax(190px,2fr) 120px 80px minmax(90px,1fr) minmax(150px,1.6fr) minmax(110px,1fr) 80px 120px;gap:10px;align-items:center;padding:10px 12px;border-top:1px solid var(--line);font-size:14px;min-width:980px}
.ct-head{border-top:0;position:sticky;top:0;background:var(--surface)}
.ct-head .th{border:0;background:none;padding:0;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);cursor:pointer;font-weight:600}
.ct-head .th.on{color:var(--ink)}
.ct-name{display:flex;align-items:center;gap:8px;min-width:0}
.ct-name .av{width:32px;height:32px;font-size:14px}
.ct-dispo{font-size:13px;color:var(--muted)}
.ct-act{display:flex;gap:6px;justify-content:flex-end}
.cand.flash{outline:2px solid var(--lime);outline-offset:3px;border-radius:12px}
.ev-body,.cands,.cand-table{min-width:0;max-width:100%}
