:root{--bg:#080b12;--panel:#111724;--panel2:#171f2f;--text:#f5f7fb;--muted:#9ca8ba;--line:#263249;--accent:#d4ff5a;--danger:#ff6b7a;--radius:22px}*{box-sizing:border-box}body{margin:0;background:linear-gradient(160deg,#070a10,#0d1320 60%,#080b12);color:var(--text);font:16px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,5vw);border-bottom:1px solid #ffffff10;background:#080b12cc;backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}.brand{font-weight:900;letter-spacing:-.04em;font-size:22px}.brand span{color:var(--accent)}nav{display:flex;gap:20px;align-items:center;color:#d5dbea;font-size:14px}.inline{display:inline}.linkbtn{background:none;border:0;color:#d5dbea;cursor:pointer}.shell{max-width:1180px;margin:auto;padding:48px 24px 80px}.hero{display:grid;grid-template-columns:1.5fr .8fr;gap:38px;align-items:center;padding:64px 0 88px}.hero h1,.booking-head h1,.dashboard-head h1{font-size:clamp(40px,7vw,76px);line-height:.98;letter-spacing:-.055em;margin:12px 0 20px}.hero p{max-width:720px;color:var(--muted);font-size:20px}.eyebrow{color:var(--accent);font-size:12px;font-weight:900;letter-spacing:.18em}.hero-card{background:linear-gradient(145deg,#151d2c,#0f1521);border:1px solid var(--line);border-radius:30px;padding:30px;display:grid;gap:14px;box-shadow:0 30px 80px #0007}.hero-card strong{font-size:30px}.hero-card span{padding:13px 16px;background:#ffffff08;border-radius:14px}.button{display:inline-flex;justify-content:center;align-items:center;background:var(--accent);color:#0b0f12;border:0;border-radius:14px;padding:13px 18px;font-weight:850;cursor:pointer}.button.secondary{background:#202a3c;color:#fff}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card,.panel{background:linear-gradient(180deg,#131a28,#101620);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.card:hover{border-color:#5d6c86}.panel h1,.panel h2,.card h3{margin-top:0}.narrow{max-width:640px;margin:auto}.stack{display:grid;gap:16px}label{display:grid;gap:7px;color:#dfe5ef;font-size:14px;font-weight:700}input,textarea,select{width:100%;background:#0b1019;border:1px solid #334057;color:#fff;padding:12px 13px;border-radius:12px;font:inherit}textarea{resize:vertical}fieldset{border:1px solid var(--line);border-radius:14px;padding:14px}legend{color:var(--muted)}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.alert{padding:14px 17px;border-radius:14px;margin-bottom:20px}.alert-success{background:#7dffb01a;border:1px solid #7dffb04a}.alert-error{background:#ff6b7a18;border:1px solid #ff6b7a55}.booking-head{margin-bottom:32px}.booking-head h1{font-size:clamp(42px,6vw,70px)}.booking-head p{color:var(--muted);font-size:18px}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.choice-list{display:grid;gap:10px}.choice{display:flex;gap:12px;align-items:flex-start;padding:14px;background:#0b1019;border:1px solid #263249;border-radius:15px;cursor:pointer}.choice input,.staff-card input{width:auto}.choice span{display:grid}.choice small,.choice em,.staff-card small,.booking-row small,.staff-list small{color:var(--muted);font-style:normal}.staff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.staff-card{display:flex;flex-direction:column;gap:8px;padding:14px;background:#0b1019;border:1px solid var(--line);border-radius:16px}.staff-card img,.staff-list img{width:64px;height:64px;object-fit:cover;border-radius:16px}.avatar{width:64px;height:64px;display:grid;place-items:center;background:#263249;border-radius:16px;font-size:28px;font-weight:900}.avatar.small{width:48px;height:48px;font-size:20px}.slots{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.slot{padding:10px 13px;border:1px solid #34425a;background:#0b1019;color:#fff;border-radius:12px;cursor:pointer}.slot.selected{background:var(--accent);color:#0b0f12;border-color:var(--accent)}.muted{color:var(--muted)}.success-panel{text-align:center}.success-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;margin:0 auto 18px;background:var(--accent);color:#111;font-size:34px;font-weight:900}.summary{text-align:left;background:#0b1019;border-radius:16px;padding:10px 18px;margin:24px 0}.summary p{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #ffffff12;padding:10px 0}.summary p:last-child{border:0}.qr{display:block;width:min(280px,80%);aspect-ratio:1;object-fit:contain;background:#fff;padding:10px;border-radius:18px;margin:18px auto}.smallqr{width:180px}.dashboard-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:30px}.dashboard-head h1{font-size:clamp(38px,6vw,68px);margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.stat{padding:22px;border:1px solid var(--line);border-radius:20px;background:#111724}.stat strong{display:block;font-size:36px}.stat span{color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.booking-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid #ffffff12}.booking-row>div{display:grid}.quick-links{display:grid;gap:10px}.quick-links a{padding:14px;border-radius:14px;background:#0b1019;border:1px solid var(--line)}.pill{border:0;border-radius:999px;padding:8px 11px;background:#d4ff5a22;color:var(--accent);cursor:pointer}.muted-pill{background:#ffffff0b;color:var(--muted)}.staff-list{display:flex;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid #ffffff12}.staff-list>div{display:grid}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-grid label{display:flex}.check-grid input{width:auto}.availability-list{display:grid}.availability-row{display:grid;grid-template-columns:180px 1fr 20px 1fr 120px;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #ffffff10}.availability-row .day{display:flex}.availability-row .day input{width:auto}.filter{margin-bottom:18px;max-width:320px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:13px;border-bottom:1px solid #ffffff12}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.footer{text-align:center;color:#667187;padding:35px}.footer,.topbar{font-size:14px}@media(max-width:800px){.hero,.booking-grid,.dashboard-grid{grid-template-columns:1fr}.hero{padding-top:30px}.hero-card{order:-1}.stats{grid-template-columns:1fr 1fr 1fr}.staff-grid{grid-template-columns:1fr}.availability-row{grid-template-columns:1fr 1fr}.availability-row span{display:none}.dashboard-head{align-items:flex-start;flex-direction:column}.topbar nav a:not(:last-child){display:none}}@media(max-width:520px){.shell{padding:30px 14px 60px}.stats{grid-template-columns:1fr}.two,.check-grid{grid-template-columns:1fr}.panel{padding:18px}.hero h1{font-size:48px}.topbar{padding:0 16px}}

/* v0.5 - gestion administrative des clients */
.platform-grid{grid-template-columns:minmax(290px,.72fr) minmax(0,1.28fr)}
.panel-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.panel-title-row h2{margin-bottom:2px}.panel-title-row p{margin:0}.client-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 0;border-bottom:1px solid #ffffff12}.client-row:last-child{border-bottom:0}.client-main{display:grid;gap:3px;min-width:0}.client-main small{color:var(--muted);overflow-wrap:anywhere}.client-title-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.client-title-line strong{font-size:17px}.client-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.client-actions form{margin:0}.button.compact{padding:8px 12px;border-radius:999px;font-size:13px}.status-dot{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:850}.status-active{background:#d4ff5a18;color:var(--accent)}.status-suspended{background:#ffffff0b;color:var(--muted)}.field-help{color:var(--muted);font-weight:500}.separator{width:100%;height:1px;border:0;background:#ffffff12;margin:5px 0}.danger-panel{border-color:#ff6b7a44;background:linear-gradient(180deg,#21141b,#14121a)}.danger-text{color:var(--danger)}.danger-button{background:var(--danger);color:#17070a}.danger-button:hover{filter:brightness(1.05)}
@media(max-width:800px){.platform-grid{grid-template-columns:1fr}.client-row{align-items:flex-start;flex-direction:column}.client-actions{justify-content:flex-start;width:100%}}

/* v0.6 - calendrier visuel de réservation */
.calendar-intro{margin-top:-4px}.calendar{margin-top:16px;background:#0b1019;border:1px solid var(--line);border-radius:18px;padding:14px}.calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin-bottom:12px}.calendar-head strong{text-align:center;font-size:17px}.calendar-nav{width:42px;height:42px;border-radius:12px;border:1px solid #34425a;background:#131b29;color:#fff;font-size:27px;line-height:1;cursor:pointer}.calendar-nav:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.calendar-nav:disabled{opacity:.25;cursor:not-allowed}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekdays{margin-bottom:7px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.calendar-day{aspect-ratio:1;min-width:0;border:1px solid transparent;border-radius:12px;background:#121a27;color:#edf2fb;font:inherit;font-weight:800;cursor:pointer;position:relative}.calendar-day:hover:not(:disabled){border-color:#63738f;background:#182235}.calendar-day.today:not(.selected){border-color:#64718a}.calendar-day.today:not(.selected)::after{content:'';position:absolute;bottom:5px;left:50%;width:4px;height:4px;transform:translateX(-50%);border-radius:50%;background:var(--accent)}.calendar-day.selected{background:var(--accent);border-color:var(--accent);color:#0b0f12;box-shadow:0 8px 22px #d4ff5a22}.calendar-day.past,.calendar-day:disabled{opacity:.24;cursor:not-allowed}.calendar-empty{aspect-ratio:1}.selected-date{margin-top:12px;padding:10px 12px;border-radius:12px;background:#ffffff08;color:#dfe5ef;font-size:13px;font-weight:750}.no-slot{width:100%;padding:10px 0}.booking-calendar-panel .slots{margin-top:12px}
@media(max-width:520px){.calendar{padding:10px}.calendar-weekdays,.calendar-days{gap:4px}.calendar-day{border-radius:10px;font-size:14px}.calendar-head{grid-template-columns:38px 1fr 38px}.calendar-nav{width:38px;height:38px}}
