:root{--navy:#123b5d;--blue:#1769a0;--blue-soft:#eaf4fb;--ink:#173047;--muted:#647789;--line:#dce5eb;--bg:#f4f7f9;--green:#16835d;--white:#fff;--shadow:0 18px 50px rgba(20,55,80,.10)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;min-height:100vh}.topbar{height:72px;background:var(--white);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1050px)/2));position:sticky;top:0;z-index:5}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:var(--navy);font-size:1.3rem;font-weight:750;letter-spacing:-.02em}.brand-mark{width:36px;height:36px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800}.my-bookings-link{border:0;background:transparent;color:var(--blue);font:inherit;font-weight:650;cursor:pointer;padding:10px}.page-shell{width:min(100% - 32px,900px);margin:42px auto 50px}.profile-card{display:flex;align-items:center;gap:20px;margin:0 0 25px;padding:0 8px}.avatar{width:76px;height:76px;border-radius:20px;background:linear-gradient(145deg,#244e6d,#0f314d);color:#fff;display:grid;place-items:center;font-size:1.4rem;font-weight:700;box-shadow:0 10px 25px rgba(18,59,93,.18)}.eyebrow{font-size:.72rem;letter-spacing:.13em;color:var(--blue);font-weight:800;margin:0 0 7px}.profile-copy h1{margin:0;font-size:2rem;letter-spacing:-.035em}.role{margin:5px 0 9px;color:var(--muted)}.availability{font-size:.88rem;color:var(--green);font-weight:650}.availability span{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:6px}.booking-card{background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.steps{display:grid;grid-template-columns:repeat(4,1fr);background:#fbfcfd;border-bottom:1px solid var(--line);padding:18px 32px}.step{display:flex;align-items:center;justify-content:center;gap:8px;color:#8b9aa7;font-weight:650;font-size:.85rem;position:relative}.step span{display:grid;place-items:center;width:25px;height:25px;border:1px solid #b9c5ce;border-radius:50%;font-size:.75rem}.step.active{color:var(--navy)}.step.active span{background:var(--navy);color:#fff;border-color:var(--navy)}.step.done span{background:var(--green);border-color:var(--green);color:#fff}.panel{display:none;padding:38px 42px 44px}.panel.active{display:block;animation:fade .25s ease}.panel-heading{display:flex;gap:18px;margin-bottom:28px}.section-number{margin:1px 0 0;color:#93a5b3;font-size:.78rem;font-weight:800;letter-spacing:.08em}.panel h2,.success-panel h2,dialog h2{margin:0;font-size:1.5rem;letter-spacing:-.025em}.panel-heading p:not(.section-number){margin:7px 0 0;color:var(--muted)}.service-list{display:grid;gap:12px}.service{border:1px solid var(--line);background:#fff;border-radius:14px;padding:19px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;color:inherit;transition:.18s ease;font:inherit}.service:hover,.service:focus-visible{border-color:var(--blue);box-shadow:0 5px 18px rgba(23,105,160,.1);transform:translateY(-1px);outline:none}.service-title{display:block;font-weight:750;font-size:1rem}.service-meta{display:block;color:var(--muted);font-size:.86rem;margin-top:5px}.service-arrow{color:var(--blue);font-size:1.35rem}.back{border:0;background:transparent;color:var(--blue);font:inherit;font-weight:650;padding:0;margin-bottom:27px;cursor:pointer}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.calendar-head button{width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--navy);font-size:1.5rem;cursor:pointer}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.weekdays span{text-align:center;color:var(--muted);font-size:.75rem;font-weight:700;padding:7px 0}.day{aspect-ratio:1;border:1px solid transparent;border-radius:10px;background:transparent;color:#a4afb7;font:inherit}.day.available{background:#f7fafc;color:var(--ink);font-weight:650;cursor:pointer}.day.available:hover,.day.available:focus-visible{background:var(--blue-soft);border-color:#9ac5e2;outline:none}.day.today{border-color:var(--blue)}.day.blank{visibility:hidden}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.time{padding:16px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--navy);font:inherit;font-weight:700;cursor:pointer}.time:hover{border-color:var(--blue);background:var(--blue-soft)}.summary{background:var(--blue-soft);border-radius:13px;padding:18px 20px;margin-bottom:24px;display:grid;gap:7px}.summary strong{font-size:1rem}.summary span{color:var(--muted);font-size:.9rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{font-size:.88rem;font-weight:700;color:var(--ink)}.form-grid label span{font-weight:400;color:var(--muted)}.form-grid input,.form-grid textarea{width:100%;border:1px solid #cbd7df;border-radius:10px;padding:13px 14px;margin-top:8px;font:inherit;color:var(--ink);background:#fff}.form-grid input:focus,.form-grid textarea:focus{outline:3px solid #dceef9;border-color:var(--blue)}.form-grid .full{grid-column:1/-1}.consent{display:flex;gap:10px;align-items:flex-start;margin:20px 0;color:var(--muted);font-size:.86rem;line-height:1.45}.consent input{margin-top:3px}.primary-button{border:0;border-radius:11px;background:var(--navy);color:#fff;padding:15px 22px;font:inherit;font-weight:750;cursor:pointer;width:100%;transition:.18s}.primary-button:hover{background:#0c2f4a}.form-error{color:#b72e32;font-size:.88rem;min-height:1.2em}.success-panel{padding:50px 42px;text-align:center}.success-panel>p:not(.eyebrow){color:var(--muted)}.success-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#e6f5ef;color:var(--green);font-size:1.7rem;font-weight:800;margin:0 auto 20px}.success-panel .summary{text-align:left;margin:28px auto;max-width:480px}.success-panel .primary-button{max-width:300px}.privacy-note{text-align:center;color:#8293a1;font-size:.8rem;margin-top:20px}dialog{width:min(92vw,620px);border:0;border-radius:18px;padding:0;box-shadow:0 25px 80px rgba(8,34,55,.3);color:var(--ink)}dialog::backdrop{background:rgba(9,27,42,.55)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;padding:25px 28px;border-bottom:1px solid var(--line)}.dialog-head button{border:0;background:transparent;font-size:1.8rem;color:var(--muted);cursor:pointer}.dialog-head h2{margin-top:0}#bookingsList{padding:18px 28px 28px;display:grid;gap:12px}.booking-item{border:1px solid var(--line);border-radius:12px;padding:16px}.booking-item strong{display:block}.booking-item p{margin:5px 0 0;color:var(--muted);font-size:.9rem}.empty{text-align:center;color:var(--muted);padding:28px 5px}.cancel{margin-top:12px;border:0;background:none;color:#b22b30;padding:0;font:inherit;font-size:.85rem;cursor:pointer}@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:650px){.topbar{height:64px;padding:0 16px}.my-bookings-link{font-size:.88rem}.page-shell{width:min(100% - 22px,900px);margin:25px auto}.profile-card{gap:14px;padding:0 4px}.avatar{width:60px;height:60px;border-radius:16px}.profile-copy h1{font-size:1.55rem}.role{font-size:.9rem}.steps{padding:14px 6px}.step{gap:5px}.step small{font-size:.68rem}.step span{width:22px;height:22px}.panel{padding:28px 20px 34px}.panel-heading{gap:10px}.panel h2{font-size:1.25rem}.time-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.success-panel{padding:38px 20px}.weekdays,.calendar{gap:3px}.day{border-radius:8px}.booking-card{border-radius:16px}}
.pro-login{padding:26px 28px 30px}.pro-login>p:first-child{color:var(--muted);margin-top:0}.pro-login label{display:block;font-size:.88rem;font-weight:700;margin-top:17px}.pro-login input{display:block;width:100%;border:1px solid #cbd7df;border-radius:10px;padding:13px 14px;margin-top:8px;font:inherit}.dashboard-tools{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 0}.dashboard-tools p{margin:3px 0;color:var(--muted);font-size:.85rem}.secondary-button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:9px;padding:9px 12px;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.booking-actions{display:flex;gap:14px;margin-top:13px}.booking-actions button{border:0;background:none;padding:0;font:inherit;font-size:.84rem;font-weight:650;cursor:pointer}.booking-actions .confirm{color:var(--green)}.booking-actions .cancel{color:#b22b30}.status{display:inline-block;margin-top:9px;padding:4px 8px;border-radius:20px;background:#e6f5ef;color:var(--green);font-size:.72rem;font-weight:800}.status.cancelled{background:#fbeaea;color:#a72d31}
.password-field{display:block;position:relative}.password-field input{padding-right:88px}.password-field button{position:absolute;right:10px;top:19px;border:0;background:transparent;color:var(--blue);font:inherit;font-size:.8rem;font-weight:750;cursor:pointer}
.pro-calendar-wrap{margin:20px 28px 8px;padding:20px;border:1px solid var(--line);border-radius:14px}.pro-calendar .pro-day{position:relative;color:var(--ink);cursor:pointer}.pro-day span{font-weight:650}.pro-day.booked{background:#dff3eb;border-color:#79bea5;color:#0f6848}.pro-day.only-cancelled{background:#fae8e8;border-color:#e3a8aa;color:#963035}.pro-day.selected{outline:3px solid #b8ddf4;border-color:var(--blue)}.calendar-legend{display:flex;gap:18px;margin-top:15px;color:var(--muted);font-size:.76rem}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:10px;height:10px;border-radius:3px}.legend-booked{background:#79bea5}.legend-cancelled{background:#e3a8aa}.day-title{font-size:1rem;margin:23px 28px 0;color:var(--navy)}
