*{box-sizing:border-box}body{margin:0;font:15px Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172033;background:linear-gradient(135deg,#f8faff,#eef2f7)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed}.hidden{display:none!important}.page{width:min(1120px,94vw);margin:28px auto}.grid{display:grid;gap:10px}.grid.two{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 32px;background:rgba(255,255,255,.96);border:1px solid #e4e8f0;border-radius:26px;box-shadow:0 16px 45px rgba(23,32,51,.09);position:relative;overflow:hidden}.topbar:after{content:"";position:absolute;width:240px;height:240px;right:-100px;top:-120px;border-radius:50%;background:linear-gradient(135deg,#e5e7ff,#f3e8ff)}.topbar>div,.topbar nav{position:relative;z-index:1}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#5b5ce2}.topbar h1{margin:5px 0;font-size:clamp(26px,4vw,39px);line-height:1.08;letter-spacing:-1px}.member-name{color:#687386}.topbar nav{display:flex;gap:8px}.nav-link{display:inline-block;text-decoration:none;padding:10px 14px;border-radius:12px;background:#fff;border:1px solid #dfe4ed;color:#172033;font-weight:700}.welcome-banner{margin:18px 0;padding:28px 32px;border-radius:24px;background:linear-gradient(120deg,#3436a6,#635bdb 58%,#8b5cf6);color:#fff;box-shadow:0 18px 45px rgba(91,92,226,.22);display:flex;justify-content:space-between;align-items:center}.welcome-banner h2{margin:0 0 5px;font-size:25px}.welcome-banner p{margin:0;color:rgba(255,255,255,.86)}.welcome-mark{width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:23px}.card,.login-card{background:rgba(255,255,255,.96);border:1px solid #e1e6ef;border-radius:20px;padding:22px;margin:15px 0;box-shadow:0 10px 30px rgba(23,32,51,.055)}.card h2{margin-top:0}.card p{color:#687386}.important-reminder{background:linear-gradient(135deg,#fffaf0,#fff);border-left:5px solid #f59e0b}.admin-help{color:#687386;font-size:13px}.status-legend{display:flex;gap:18px;flex-wrap:wrap;padding:12px 14px;background:#f7f8fb;border-radius:12px;margin:10px 0 14px}.status-legend span{display:inline-flex;align-items:center;gap:7px}.status-dot{width:11px;height:11px;border-radius:50%;display:inline-block;flex:0 0 auto}.green{background:#22c55e}.orange{background:#f59e0b}.red{background:#ef4444}.user-list{display:grid;gap:10px}.user-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:16px;border:1px solid #e5e7eb;border-left:5px solid #22c55e;border-radius:16px;background:#fff}.user-row.status-restricted{border-left-color:#f59e0b}.user-row.status-blocked{border-left-color:#ef4444}.user-main{display:flex;gap:10px;min-width:0}.user-main small{display:block;color:#687386;margin-top:5px}.user-status-label{font-size:13px;color:#687386;margin-top:3px}.user-actions{display:grid;gap:8px;min-width:320px}.user-actions form{display:flex;gap:8px}.user-actions select,.user-actions input{flex:1}details{background:#f7f8fb;border-radius:12px;padding:9px}summary{cursor:pointer;font-weight:700}input,select,textarea{width:100%;padding:12px;border-radius:12px;border:1px solid #dfe4ed;background:#fff;color:#172033;min-height:42px}textarea{min-height:100px}.primary{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;padding:12px 16px;border-radius:12px;font-weight:800}.danger-button{background:#fff!important;color:#b91c1c!important;border:1px solid #ef4444!important;padding:10px 13px;border-radius:12px;font-weight:800}.danger-button:hover{background:#fef2f2!important}.badge{display:inline-block;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;margin-left:6px}.pending{background:#fff0c2;color:#8a5a00}.accepted{background:#d8f8df;color:#166534}.rejected{background:#ffe0e0;color:#991b1b}.slot-grid{display:grid;grid-template-columns:repeat(6,minmax(75px,1fr));gap:8px;margin:12px 0}.slot{padding:10px 7px;border-radius:10px;border:1px solid #d6dce7;background:#f8fafc;color:#172033;font-weight:700}.slot:hover,.slot.selected{outline:2px solid #6d63e8}.slot.busy,.slot.closed{background:#f1f3f6;color:#9aa3b2;text-decoration:line-through}.slot.open{background:#eef0ff;color:#30329a}.calendar-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.calendar-box input{width:auto}.calendar-info{font-weight:700;color:#687386}.time-wrap{display:grid;gap:4px}.admin-event{background:#f7f8fc;border:1px solid #e1e6ef;border-radius:14px;padding:14px;margin:10px 0}.admin-event-line{font-size:14px;margin-bottom:10px}.price-tag{float:right;font-weight:800;color:#5b5ce2}.compact-form{align-items:end}.messaging-card{background:#fff}.message{padding:11px 13px;border-bottom:1px solid #e7ebf2;position:relative}.message small{display:block;color:#8a94a5;margin-top:6px}.message.mine{background:#f4f5ff}.message.theirs{background:#fff}.delete-msg{float:right;background:#fff;color:#b91c1c;border:1px solid #fecaca;padding:5px 8px;border-radius:8px;font-size:12px}.msg-media{max-width:100%;max-height:360px;border-radius:10px;margin-top:8px;display:block}.mini{padding:7px 10px;border:1px solid #dfe4ed;border-radius:9px;background:#fff}.mini.chosen{outline:2px solid #6d63e8}.payment-label{font-weight:700}.proposal-check{display:flex;align-items:center;gap:8px;font-weight:700}.proposal-check input{width:auto;min-height:auto}.conversation-item{display:flex;justify-content:space-between;align-items:center;gap:10px}.message-compose{display:grid;gap:9px}.temp-box{border-left:5px solid #22c55e;background:linear-gradient(135deg,#f0fff4,#fff)}.temp-value{font-size:25px;font-weight:900;letter-spacing:1px;background:#172033;color:#fff;padding:14px 16px;border-radius:12px;display:inline-block}.admin-account{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px;border:1px solid #e5e7eb;border-radius:12px;margin:8px 0}.inline-form{display:flex;gap:8px}.calc{width:min(430px,94vw);padding:22px;border-radius:24px;background:#fff;border:1px solid #e1e6ef;box-shadow:0 18px 50px rgba(23,32,51,.1)}.calc-title{font-weight:800;margin-bottom:10px;color:#5b5ce2}.display{background:#f7f8fc;border:1px solid #e0e4ec;border-radius:16px;padding:22px;text-align:right;font-size:36px;font-weight:800;min-height:82px;margin-bottom:12px;color:#172033;overflow:auto}.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.keys button{padding:15px;border-radius:12px;background:#edf0f5;color:#172033;font-weight:800}.keys button:hover{background:#e3e7ef}.keys .primary{color:#fff}.wide{grid-column:span 2}.landing{min-height:100vh;display:grid;place-items:center;padding:25px}.login-card{width:min(460px,94vw)}.login-card h1{font-size:34px}.error{color:#b91c1c!important;font-weight:700}.success{color:#15803d;font-weight:700;margin-left:8px}
@media(max-width:800px){.grid.two,.grid.three{grid-template-columns:1fr}.user-row{flex-direction:column}.user-actions{min-width:0;width:100%}.slot-grid{grid-template-columns:repeat(3,minmax(75px,1fr))}.topbar{align-items:flex-start;flex-direction:column}.topbar nav{width:100%}.nav-link{flex:1;text-align:center}.welcome-banner{padding:24px}.admin-account{align-items:stretch;flex-direction:column}.inline-form{flex-direction:column}}
@media(max-width:500px){.slot-grid{grid-template-columns:repeat(2,minmax(75px,1fr))}.user-actions form{flex-direction:column}.price-tag{float:none;display:block;margin-top:5px}}
.proposal-card{margin-top:10px;padding:12px;border:1px solid #dfe4ed;border-radius:12px;background:#f8f9ff}.proposal-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.proposal-controls button:last-child{grid-column:span 2}@media(max-width:600px){.proposal-controls{grid-template-columns:1fr}.proposal-controls button:last-child{grid-column:auto}}


.proposal-help{display:block;color:#687386;font-size:12px;margin:5px 0 8px}
.availability-locked{opacity:.72;filter:saturate(.6)}
.locked-slot{background:#f3f4f6!important;color:#6b7280!important;border:1px solid #e5e7eb!important}
.open-slot{background:#ecfdf5!important;color:#166534!important;border:1px solid #bbf7d0!important}

.pending-banner{
  display:flex;gap:12px;align-items:center;
  margin:0 0 12px;padding:12px 14px;border-radius:12px;
  background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;
  font-size:13px;
}
.pending-banner span{font-weight:500}

.confirmed-title{font-weight:800;font-size:18px;margin:4px 0 10px;padding:10px 12px;border-radius:12px;background:#eefbf3;color:#166534;border:1px solid #bbf7d0}
.confirmed-event{border:1px solid #bbf7d0!important;background:#f8fffa!important}
.confirmed-details{line-height:1.75}.muted{opacity:.72}

.new-appointment-section{margin-top:18px;padding:18px;border:1px solid rgba(70,90,130,.18);border-radius:16px;background:rgba(255,255,255,.72)}
.new-appointment-section h3{margin:0 0 6px;font-size:1.05rem}
.new-appointment-section .calendar-info{margin-top:4px}


/* Annulation / non-présentation */
.cancel-box{margin-top:12px;padding:12px 14px;border:1px solid #f0b6b6;border-radius:12px;background:#fff7f7;display:flex;flex-direction:column;gap:7px}.cancel-box small{color:#6b4b4b}.cancel-box.locked{border-color:#ddd;background:#f7f7f7}.cancelled-event{border-left:4px solid #d9534f}.cancelled-note{padding:10px 12px;border-radius:10px;background:#fff0f0;color:#8b2222;font-weight:600}.event-alert{margin:10px 0;padding:10px 12px;border-radius:10px;font-size:.92rem}.cancellation-alert{background:#fff4df;border:1px solid #f0c36d}.noshow-alert{background:#fff0f0;border:1px solid #e39a9a;color:#7d1d1d}.noshow-form{margin-top:8px}.warning-button{border:1px solid #d08a00;background:#fff3cd;color:#6b4c00;padding:9px 12px;border-radius:10px;cursor:pointer}.badge.cancelled{background:#f3d4d4;color:#8b2222}.badge.accepted{background:#d9f5df;color:#1d7a3a}.badge.pending{background:#fff0c7;color:#8a6500}.badge.rejected{background:#f3d4d4;color:#8b2222}
.admin-event-line b:first-child{white-space:nowrap}

.restriction-banner{background:linear-gradient(135deg,#fff7ed,#fff);border:1px solid #fed7aa;border-left:6px solid #f59e0b;border-radius:18px;padding:18px 20px;margin:15px 0;box-shadow:0 8px 24px rgba(245,158,11,.08)}.restriction-banner strong{font-size:18px;color:#9a5b00}.restriction-banner p{margin:7px 0;color:#6b7280}.restriction-banner small{color:#7c5a1d}.restricted-booking-disabled{background:#fff7ed;border:1px dashed #f59e0b;border-radius:16px;padding:18px;margin-top:12px}.restricted-booking-disabled strong{color:#9a5b00}.restricted-booking-disabled p{margin-bottom:0}.restriction-note{display:block;color:#9a5b00;margin:2px 0 8px;padding-left:2px}