.booking-root{--bg:#f5f7fa;--surface:#fff;--surface2:#f0f2f5;--border:#0000001a;--border2:#0000002e;--text:#1a1a1a;--text2:#5a6070;--text3:#9aa0ad;--blue:#185fa5;--blue-light:#e6f1fb;--blue-dark:#0c447c;--blue-mid:#378add;--green:#3b6d11;--green-light:#eaf3de;--green-border:#97c459;--red:#a32d2d;--red-light:#fcebeb;--radius:10px;--radius-lg:14px;background:var(--bg);min-height:100vh;color:var(--text);justify-content:center;align-items:flex-start;padding:2rem 1rem 4rem;font-family:Inter,sans-serif;display:flex}@media (prefers-color-scheme:dark){.booking-root{--bg:#141618;--surface:#1e2023;--surface2:#2a2d31;--border:#ffffff1a;--border2:#ffffff2e;--text:#f0f0f0;--text2:#9aa0ad;--text3:#5a6070;--blue-light:#0d2a47;--blue-dark:#5ba3df;--green-light:#1a2d0a;--green-border:#3b6d11;--red-light:#2d1010}}.booking-root .card{background:var(--surface);border-radius:var(--radius-lg);border:.5px solid var(--border);width:100%;max-width:560px;padding:2rem;box-shadow:0 2px 16px #0000000f}.booking-root .page-header{margin-bottom:1.75rem}.booking-root .page-header h1{color:var(--text);align-items:center;gap:10px;margin-bottom:4px;font-size:22px;font-weight:600;display:flex}.booking-root .page-header h1 i{color:var(--blue);font-size:22px}.booking-root .page-header p{color:var(--text2);font-size:14px}.booking-root .divider{background:var(--border);height:.5px;margin:1.5rem 0}.booking-root .field{margin-bottom:1.1rem}.booking-root label{color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:11px;font-weight:600;display:block}.booking-root input[type=text],.booking-root input[type=tel]{border:.5px solid var(--border2);border-radius:var(--radius);background:var(--surface);width:100%;height:42px;color:var(--text);outline:none;padding:0 12px;font-family:Inter,sans-serif;font-size:14px;transition:border-color .15s,box-shadow .15s}.booking-root input[type=text]:focus,.booking-root input[type=tel]:focus{border-color:var(--blue);box-shadow:0 0 0 3px #185fa51f}.booking-root input::placeholder{color:var(--text3)}.booking-root .phone-row{gap:8px;display:flex}.booking-root .indicatif{background:var(--surface2);border:.5px solid var(--border2);border-radius:var(--radius);height:42px;color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:0 14px;font-size:14px;font-weight:600;display:flex}.booking-root .phone-input{flex:1}.booking-root .section-title{color:var(--text2);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;margin-bottom:1rem;font-size:13px;font-weight:600;display:flex}.booking-root .section-title i{color:var(--blue);font-size:17px}.booking-root .cal-nav{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.booking-root .cal-nav-btn{border:.5px solid var(--border2);border-radius:var(--radius);cursor:pointer;width:34px;height:34px;color:var(--text2);background:0 0;justify-content:center;align-items:center;font-size:17px;transition:background .12s;display:flex}.booking-root .cal-nav-btn:hover{background:var(--surface2)}.booking-root .cal-nav-btn:disabled{opacity:.4;cursor:default}.booking-root .cal-month{color:var(--text);font-size:16px;font-weight:600}.booking-root .cal-grid{grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:1.25rem;display:grid}.booking-root .cal-day-hdr{text-align:center;color:var(--text3);text-transform:uppercase;padding:5px 0;font-size:11px;font-weight:600}.booking-root .cal-day{aspect-ratio:1;border-radius:var(--radius);cursor:pointer;color:var(--text);background:0 0;border:.5px solid #0000;justify-content:center;align-items:center;font-family:Inter,sans-serif;font-size:13px;transition:all .12s;display:flex}.booking-root .cal-day:hover:not(.empty):not(.past):not(.sunday){background:var(--surface2);border-color:var(--border)}.booking-root .cal-day.past,.booking-root .cal-day.sunday{color:var(--text3);cursor:default}.booking-root .cal-day.today{color:var(--blue);font-weight:600}.booking-root .cal-day.selected{font-weight:500;background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}.booking-root .cal-day.empty{cursor:default}.booking-root .slots-header{color:var(--text2);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;font-weight:600;display:flex}.booking-root .slots-header i{color:var(--blue-mid);font-size:16px}.booking-root .slots-header span{color:var(--text);font-weight:600}.booking-root .slots-grid{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:1.5rem;display:grid}.booking-root .slot-btn{border:.5px solid var(--border2);background:var(--surface);border-radius:var(--radius);color:var(--text);cursor:pointer;text-align:center;padding:7px 4px 6px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;line-height:1.4;transition:all .12s}.booking-root .slot-btn small{color:var(--text3);font-size:11px;font-weight:400;display:block}.booking-root .slot-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-light)}.booking-root .slot-btn:hover small{color:var(--blue)}.booking-root .slot-btn.selected{border-color:var(--blue);background:var(--blue);color:#fff}.booking-root .slot-btn.selected small{color:#ffffffbf}.booking-root .recap{background:var(--blue-light);border-radius:var(--radius-lg);border:.5px solid #185fa533;margin-bottom:1.25rem;padding:1rem 1.25rem;display:none}.booking-root .recap.show{display:block}.booking-root .recap-title{text-transform:uppercase;letter-spacing:.05em;color:var(--blue);margin-bottom:10px;font-size:11px;font-weight:600}.booking-root .recap-row{color:var(--text2);align-items:center;gap:8px;margin-bottom:7px;font-size:13px;display:flex}.booking-root .recap-row:last-child{margin-bottom:0}.booking-root .recap-row i{color:var(--blue-mid);flex-shrink:0;font-size:15px}.booking-root .recap-row strong{color:var(--text);font-weight:500}.booking-root .submit-btn{background:var(--blue);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;height:46px;font-family:Inter,sans-serif;font-size:15px;font-weight:600;transition:background .15s,transform .1s;display:flex}.booking-root .submit-btn:hover:not(:disabled){background:var(--blue-dark)}.booking-root .submit-btn:active:not(:disabled){transform:scale(.99)}.booking-root .submit-btn:disabled{background:var(--surface2);color:var(--text3);cursor:not-allowed}.booking-root .success-msg{background:var(--green-light);border:.5px solid var(--green-border);border-radius:var(--radius-lg);text-align:center;padding:2rem;display:none}.booking-root .success-msg.show{display:block}.booking-root .success-msg .success-icon{color:var(--green);margin-bottom:12px;font-size:48px}.booking-root .success-msg h2{color:var(--green);margin-bottom:6px;font-size:18px;font-weight:600}.booking-root .success-msg p{color:var(--text2);margin-bottom:16px;font-size:14px}.booking-root .success-detail{border-radius:var(--radius);color:var(--green);background:#fff9;padding:12px 16px;font-size:13px;font-weight:500}.booking-root .new-rdv{border:.5px solid var(--green-border);border-radius:var(--radius);color:var(--green);cursor:pointer;background:0 0;margin-top:1rem;padding:10px 20px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:background .12s}.booking-root .new-rdv:hover{background:#ffffff80}.booking-root .error-msg{color:var(--red);margin-top:4px;font-size:11px;display:none}.booking-root .error-msg.show{display:block}.booking-root input.invalid{border-color:var(--red)!important}@media (width<=480px){.booking-root .card{padding:1.25rem}.booking-root .slots-grid{grid-template-columns:repeat(3,1fr)}}.admin-root{--bg:#f0f2f5;--surface:#fff;--surface2:#f5f7fa;--border:#00000017;--border2:#00000026;--text:#1a1a1a;--text2:#5a6070;--text3:#9aa0ad;--blue:#185fa5;--blue-light:#e6f1fb;--green:#1e6f2e;--green-light:#e6f4ea;--green-border:#7dba8a;--orange:#8a5200;--orange-light:#fff3e0;--orange-border:#ffb74d;--red:#a32d2d;--red-light:#fdecea;--red-border:#e57373;--radius:10px;--radius-lg:14px;background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,sans-serif}.admin-root .login-screen{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.admin-root .login-card{background:var(--surface);border-radius:var(--radius-lg);border:.5px solid var(--border2);width:100%;max-width:360px;padding:2rem;box-shadow:0 4px 24px #00000014}.admin-root .login-logo{align-items:center;gap:10px;margin-bottom:1.5rem;display:flex}.admin-root .login-logo i{color:var(--blue);font-size:26px}.admin-root .login-logo span{color:var(--text);font-size:17px;font-weight:600}.admin-root .login-card h2{color:var(--text2);margin-bottom:1.5rem;font-size:15px;font-weight:500}.admin-root .login-field{margin-bottom:1rem}.admin-root .login-field label{text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:6px;font-size:11px;font-weight:600;display:block}.admin-root .login-field input{border:.5px solid var(--border2);border-radius:var(--radius);background:var(--surface);width:100%;height:42px;color:var(--text);outline:none;padding:0 12px;font-family:Inter,sans-serif;font-size:14px}.admin-root .login-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #185fa51a}.admin-root .login-btn{background:var(--blue);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;height:44px;margin-top:.5rem;font-family:Inter,sans-serif;font-size:15px;font-weight:600;transition:background .15s}.admin-root .login-btn:hover{background:#0c447c}.admin-root .login-err{background:var(--red-light);border:.5px solid var(--red-border);border-radius:var(--radius);color:var(--red);text-align:center;margin-top:10px;padding:8px 12px;font-size:13px;display:none}.admin-root .login-err.show{display:block}.admin-root .topbar{background:var(--surface);border-bottom:.5px solid var(--border);z-index:100;justify-content:space-between;align-items:center;height:56px;padding:0 2rem;display:flex;position:sticky;top:0}.admin-root .topbar-left{align-items:center;gap:10px;display:flex}.admin-root .topbar-left i{color:var(--blue);font-size:22px}.admin-root .topbar-left span{font-size:16px;font-weight:600}.admin-root .topbar-right{align-items:center;gap:12px;display:flex}.admin-root .badge-admin{background:var(--blue-light);color:var(--blue);border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.admin-root .logout-btn{border:.5px solid var(--border2);border-radius:var(--radius);color:var(--text2);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-family:Inter,sans-serif;font-size:13px;transition:background .12s;display:flex}.admin-root .logout-btn:hover{background:var(--surface2)}.admin-root .main{max-width:1100px;margin:0 auto;padding:2rem}.admin-root .stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:2rem;display:grid}.admin-root .stat-card{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem 1.25rem}.admin-root .stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:6px;font-size:11px;font-weight:600}.admin-root .stat-value{color:var(--text);font-size:26px;font-weight:600}.admin-root .stat-sub{color:var(--text3);margin-top:2px;font-size:12px}.admin-root .toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:1.25rem;display:flex}.admin-root .toolbar-title{flex:1;font-size:15px;font-weight:600}.admin-root .filter-btn{background:var(--surface);border:.5px solid var(--border2);color:var(--text2);cursor:pointer;border-radius:20px;padding:5px 14px;font-family:Inter,sans-serif;font-size:13px;transition:all .12s}.admin-root .filter-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.admin-root .search-input{border:.5px solid var(--border2);border-radius:var(--radius);background:var(--surface);height:36px;color:var(--text);outline:none;width:200px;padding:0 12px 0 32px;font-family:Inter,sans-serif;font-size:13px}.admin-root .search-wrap{position:relative}.admin-root .search-wrap i{color:var(--text3);pointer-events:none;font-size:15px;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.admin-root .clear-btn{background:var(--red-light);border:.5px solid var(--red-border);border-radius:var(--radius);color:var(--red);cursor:pointer;align-items:center;gap:6px;padding:6px 14px;font-family:Inter,sans-serif;font-size:13px;transition:background .12s;display:flex}.admin-root .clear-btn:hover{background:#f5c6c6}.admin-root .table-wrap{background:var(--surface);border:.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.admin-root table{border-collapse:collapse;width:100%}.admin-root thead tr{background:var(--surface2);border-bottom:.5px solid var(--border)}.admin-root th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:600}.admin-root tbody tr{border-bottom:.5px solid var(--border);transition:background .1s}.admin-root tbody tr:last-child{border-bottom:none}.admin-root tbody tr:hover{background:var(--surface2)}.admin-root td{color:var(--text);vertical-align:middle;padding:12px 16px;font-size:13px}.admin-root .td-name{font-weight:600}.admin-root .td-tel{color:var(--text2);font-size:12px}.admin-root .td-date{color:var(--text2)}.admin-root .td-heure{font-weight:500}.admin-root .td-since{color:var(--text3);font-size:11px}.admin-root .badge{white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.admin-root .badge-nouveau{background:var(--blue-light);color:var(--blue)}.admin-root .badge-confirme{background:var(--green-light);color:var(--green)}.admin-root .badge-annule{background:var(--red-light);color:var(--red)}.admin-root .action-btn{border:.5px solid var(--border2);cursor:pointer;width:28px;height:28px;color:var(--text2);background:0 0;border-radius:6px;justify-content:center;align-items:center;margin-right:4px;font-size:15px;transition:all .12s;display:inline-flex}.admin-root .action-btn:hover{background:var(--surface2)}.admin-root .action-btn.confirm:hover{background:var(--green-light);color:var(--green);border-color:var(--green-border)}.admin-root .action-btn.cancel:hover,.admin-root .action-btn.delete:hover{background:var(--red-light);color:var(--red);border-color:var(--red-border)}.admin-root .empty-state{text-align:center;color:var(--text3);padding:4rem 2rem}.admin-root .empty-state i{margin-bottom:12px;font-size:48px;display:block}.admin-root .empty-state p{color:var(--text2);font-size:15px;font-weight:500}.admin-root .empty-state small{font-size:13px}@media (width<=700px){.admin-root .topbar{padding:0 1rem}.admin-root .main{padding:1rem}.admin-root .td-since,.admin-root th:nth-child(5),.admin-root td:nth-child(5){display:none}.admin-root .search-input{width:140px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100vh}body{font-family:Inter,sans-serif}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
