.react-calendar{width:350px;max-width:100%;background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar *:before,.react-calendar *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.react-calendar button{margin:0;border:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{min-width:44px;background:none}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:hover,.react-calendar__navigation button:enabled:focus{background-color:#e6e6e6}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{display:flex;align-items:center;justify-content:center;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__month-view__days__day--neighboringMonth,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__century-view__decades__decade--neighboringCentury{color:#757575}.react-calendar__year-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__century-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{max-width:100%;padding:10px 6.6667px;background:none;text-align:center;font:inherit;font-size:.833em}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__month-view__days__day--neighboringMonth:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__century-view__decades__decade--neighboringCentury:disabled{color:#cdcdcd}.react-calendar__tile:enabled:hover,.react-calendar__tile:enabled:focus{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:hover,.react-calendar__tile--now:enabled:focus{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:hover,.react-calendar__tile--hasActive:enabled:focus{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:hover,.react-calendar__tile--active:enabled:focus{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}:root{color-scheme:dark;--primary: #e11d48;--primary-dark: #be123c;--primary-bright: #f43f5e;--danger: #ef4444;--text: #f3f4f6;--muted: #9ca3af;--border: #2a2a2a;--bg: #0b0b0d;--card: #16161a;--card-2: #1f1f24;--radius: 8px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg)}.layout{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:24px;padding:0 24px;height:60px;background:var(--card);border-bottom:1px solid var(--border)}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:18px}.brand-logo{height:26px;width:auto}.nav{display:flex;gap:4px}.nav a{text-decoration:none;color:var(--muted);padding:8px 14px;border-radius:6px;font-weight:500}.nav a:hover{background:var(--bg)}.nav a.active{background:#e11d482e;color:var(--primary-bright)}.user-box{margin-left:auto;display:flex;align-items:center;gap:12px}.user-email{color:var(--muted);font-size:14px}.content{flex:1;padding:24px;max-width:1100px;width:100%;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.page-header h2{margin:0}.actions{display:flex;gap:8px}.muted{color:var(--muted)}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);padding:8px 14px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500}.btn:hover{background:var(--bg)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.9)}.btn-outline{background:transparent}.btn-block{width:100%}.btn-sm{padding:4px 10px;font-size:13px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(900px 500px at 50% -10%,rgba(225,29,72,.22),transparent 60%),#0b0b0d}.login-card{width:100%;max-width:380px;background:var(--card);padding:32px;border-radius:12px;border:1px solid var(--border);box-shadow:0 20px 50px #00000080;display:flex;flex-direction:column;gap:16px}.login-card h1{margin:0;font-size:24px}.login-card .alert{margin:0}.login-sub{color:var(--muted);margin:0}.form{display:flex;flex-direction:column;gap:12px}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{font:inherit;color:var(--text);padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:#0f0f12}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid rgba(244,63,94,.45);border-color:var(--primary)}.hint{font-size:12px;color:var(--muted)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;margin-top:4px}.checkbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.booking-date-label{padding:10px 12px;background:#e11d481f;border:1px solid rgba(225,29,72,.3);border-radius:6px;color:var(--primary-bright);font-weight:600}.alert{padding:10px 12px;border-radius:6px;font-size:14px;margin-bottom:12px}.alert-error{background:#ef44441f;color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.alert-success{background:#22c55e1f;color:#86efac;border:1px solid rgba(34,197,94,.3)}.calendar-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:20px}.calendar-panel .react-calendar{width:100%;border:none;font-family:inherit}.calendar-panel .react-calendar__tile{position:relative;height:56px}.calendar-legend{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:var(--muted)}.legend-dot{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--border)}.legend-slot{background:var(--primary)}.legend-red{background:#ef44448c}.legend-green{background:#22c55e80}.slot-badge{position:absolute;top:4px;right:4px;background:var(--primary);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.react-calendar__month-view__days__day.has-appointments{background:#ef444452!important}.react-calendar__month-view__days__day.no-appointments{background:#22c55e38!important}.react-calendar__month-view__days__day.has-appointments:hover,.react-calendar__month-view__days__day.no-appointments:hover{filter:brightness(.96)}.list-section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.list-header h3{margin:0 0 12px;font-size:16px}.empty{color:var(--muted);padding:16px 0;text-align:center}.slot-list,.appointment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.slot-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--card-2)}.slot-time{display:flex;flex-direction:column}.slot-duration{font-size:12px;color:var(--muted)}.slot-availability{margin-left:auto;font:inherit;padding:6px 16px 6px 8px;border:1px solid var(--border);border-radius:6px}.slot-item .btn-sm{min-width:68px;text-align:center}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize}.badge-available{background:#22c55e2e;color:#4ade80}.badge-unavailable{background:#f59e0b2e;color:#fbbf24}.badge-allocated,.badge-booked{background:#3b82f62e;color:#60a5fa}.badge-cancelled{background:#ef444433;color:#f87171}.appointment-list li{margin:0}.appointment-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--card-2);cursor:pointer;font:inherit;text-align:left}.appointment-row:hover{background:var(--bg)}.appointment-row.selected{outline:2px solid var(--primary)}.appointment-row.cancelled{opacity:.7}.appt-time{font-weight:700;min-width:60px}.appt-name{flex:1}.details-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.details-shell{width:100%;max-width:620px}.details-card{background:var(--card);border-radius:12px;padding:20px;box-shadow:0 20px 50px #0003}.details-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.details-header h3{margin:0}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin-bottom:16px}.detail-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--border);font-size:14px}.detail-label{color:var(--muted)}.detail-value{text-align:right;overflow-wrap:anywhere}.cancel-box{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border);padding-top:16px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;align-items:flex-start;justify-content:center;padding:48px 16px;overflow-y:auto;z-index:40}.modal{background:var(--card);border-radius:12px;width:100%;max-width:560px;box-shadow:0 20px 50px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0}.modal-body{padding:20px}.modal-close{background:transparent;border:none;font-size:24px;line-height:1;cursor:pointer;color:var(--muted)}.modal-close:hover{color:var(--text)}@media (max-width: 640px){.grid-2,.grid-3,.details-grid{grid-template-columns:1fr}.content{padding:12px}.topbar{gap:12px;padding:0 12px}}.calendar-panel .react-calendar{background:var(--card)!important;color:var(--text)!important;border:none}.calendar-panel .react-calendar__navigation button{color:var(--text)}.calendar-panel .react-calendar__navigation button:enabled:hover,.calendar-panel .react-calendar__navigation button:enabled:focus{background-color:#e11d4826}.calendar-panel .react-calendar__navigation button[disabled],.calendar-panel .react-calendar__month-view__weekdays__weekday{color:var(--muted)}.calendar-panel .react-calendar__month-view__weekdays__weekday abbr{color:inherit;text-decoration:none}.calendar-panel .react-calendar__tile{background:var(--card);color:var(--text)}.calendar-panel .react-calendar__tile:enabled:hover,.calendar-panel .react-calendar__tile:enabled:focus{background-color:#e11d4826}.calendar-panel .react-calendar__tile--now{background:#e11d4838}.calendar-panel .react-calendar__tile--now:enabled:hover,.calendar-panel .react-calendar__tile--now:enabled:focus{background:#e11d484d}.calendar-panel .react-calendar__tile--active,.calendar-panel .react-calendar__tile--hasActive{background:var(--primary)!important;color:#fff!important}.calendar-panel .react-calendar__tile--active:enabled:hover,.calendar-panel .react-calendar__tile--active:enabled:focus{background:var(--primary-dark)!important}.calendar-panel .react-calendar__month-view__days__day--weekend{color:#f87171}.calendar-panel .react-calendar__month-view__days__day--neighboringMonth{color:var(--muted)}.calendar-panel .react-calendar__year-view__months__month,.calendar-panel .react-calendar__decade-view__years__year,.calendar-panel .react-calendar__century-view__decades__decade{color:var(--text)}.calendar-panel .react-calendar__year-view__months__month:enabled:hover,.calendar-panel .react-calendar__decade-view__years__year:enabled:hover,.calendar-panel .react-calendar__century-view__decades__decade:enabled:hover{background-color:#e11d4826}.slot-availability{background:#0f0f12;color:var(--text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0b0b0d}::-webkit-scrollbar-thumb{background:#2f2f36;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--primary-dark)}.budget-format{font-size:12px;font-weight:600;color:var(--primary-bright);font-variant-numeric:tabular-nums;padding-left:8px}.tag-input{display:flex;gap:8px}.tag-input input{flex:1}.tag-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--card-2);border:1px solid var(--border);border-radius:999px;font-size:13px}.tag-remove{background:transparent;border:none;color:var(--muted);font-size:15px;line-height:1;cursor:pointer;padding:0 2px}.tag-remove:hover{color:var(--danger)}.booking-page{min-height:100vh;background:radial-gradient(1200px 600px at 80% -10%,rgba(225,29,72,.18),transparent 60%),radial-gradient(900px 500px at 10% 110%,rgba(225,29,72,.12),transparent 60%),var(--bg);padding-bottom:60px}.booking-header{display:flex;align-items:center;gap:12px;padding:18px 32px;border-bottom:1px solid var(--border);background:#16161ab3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.booking-brand{display:inline-flex;align-items:center;gap:10px;font-size:22px;font-weight:800;letter-spacing:.5px;color:var(--text)}.booking-logo{height:32px;width:auto}.booking-brand-sub{font-size:13px;color:var(--muted);border-left:1px solid var(--border);padding-left:12px}.booking-container{max-width:860px;margin:0 auto;padding:32px 20px 0}.booking-stepper{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:32px}.booking-step{display:inline-flex;align-items:center;gap:10px;padding:10px 22px;border-radius:999px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-weight:600;font-size:14px}.booking-step-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--card-2);border:1px solid var(--border);font-size:13px}.booking-step.active{border-color:var(--primary);background:#e11d481f;color:var(--text)}.booking-step.active .booking-step-num{background:var(--primary);color:#fff;border-color:var(--primary)}.booking-step-line{width:48px;height:2px;background:var(--border);border-radius:2px}.booking-form{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px;box-shadow:0 20px 50px #00000059}.booking-stage-title{font-size:24px;line-height:1.35;font-weight:800;margin:0 0 8px;color:var(--text)}.booking-subtitle{color:var(--primary-bright);font-weight:600;margin:0 0 20px}.booking-question{margin-top:26px;padding-top:24px;border-top:1px solid var(--border)}.booking-q-label{font-weight:600;margin:0 0 12px;color:var(--text)}.booking-options{display:flex;flex-wrap:wrap;gap:10px}.booking-options-budget{gap:8px}.booking-options-column{flex-direction:column}.booking-option{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;border:1px solid var(--border);background:var(--card-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;transition:border-color .15s,background .15s}.booking-option input{accent-color:var(--primary);cursor:pointer}.booking-option:hover{border-color:#e11d4880}.booking-option.selected{border-color:var(--primary);background:#e11d4824;color:var(--text)}.booking-option-card{align-items:flex-start}.booking-option-card-text{display:flex;flex-direction:column;gap:2px}.booking-option-card-text small{color:var(--muted);font-weight:400}.booking-field{margin-top:10px}.booking-field-inline{margin-top:12px;max-width:420px}.booking-field input,.booking-field textarea,.booking-field select{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:var(--card-2);color:var(--text);font-size:14px;font-family:inherit}.booking-field textarea{resize:vertical}@supports (-webkit-touch-callout: none){.booking-field input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:46px;min-width:0;max-width:100%;box-sizing:border-box;line-height:normal}}.booking-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.booking-hint{display:block;margin-top:6px;font-size:12px;color:var(--muted)}.booking-error{display:block;margin-top:6px;font-size:13px;color:var(--danger);font-weight:500}.booking-note{margin:12px 0 0}.booking-note-muted{color:var(--muted);font-style:italic}.tag-input-row{display:flex;gap:8px}.tag-input-row input{flex:1;max-width:320px}.booking-next-row{display:flex;align-items:center;gap:20px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}.booking-next-message{margin:0;color:var(--muted);font-size:13px;line-height:1.5;max-width:480px}.btn-lg{padding:12px 28px;font-size:15px}.booking-too-early p{line-height:1.6;margin:0 0 20px}.booking-calendar{margin-top:24px}.booking-empty{color:var(--muted);padding:8px 0}.booking-slot-list{display:flex;flex-wrap:wrap;gap:10px}.booking-slot{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:10px;border:1px solid var(--border);background:var(--card-2);color:var(--text);cursor:pointer;font-weight:600;transition:border-color .15s,background .15s}.booking-slot:hover{border-color:#e11d4880}.booking-slot.selected{border-color:var(--primary);background:#e11d4824}.booking-slot-duration{font-size:12px;color:var(--muted);font-weight:500}.booking-nav-row{display:flex;justify-content:space-between;gap:12px;margin-top:28px}.booking-summary{display:flex;flex-direction:column;gap:20px}.booking-summary-block h4{margin:0 0 12px;color:var(--primary-bright)}.booking-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.booking-summary-item{background:var(--card-2);border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:4px}.booking-summary-item span{font-size:12px;color:var(--muted)}.booking-summary-rows{border:1px solid var(--border);border-radius:10px;overflow:hidden}.booking-summary-row{display:flex;justify-content:space-between;gap:16px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:14px}.booking-summary-row:last-child{border-bottom:none}.booking-summary-row span{color:var(--muted)}.booking-summary-row strong{text-align:right;color:var(--text)}.booking-summary-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px}.booking-success{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:48px 32px;box-shadow:0 20px 50px #00000059}.booking-success-icon{width:72px;height:72px;margin:0 auto 20px;border-radius:50%;background:#e11d4829;border:2px solid var(--primary);color:var(--primary-bright);font-size:34px;font-weight:800;display:flex;align-items:center;justify-content:center}.booking-success h2{margin:0 0 12px}.booking-success p{color:var(--muted);line-height:1.6;margin:6px 0}.booking-success .btn{display:inline-block;margin-top:44px}@media (max-width: 720px){.booking-grid-3,.booking-summary-grid{grid-template-columns:1fr}.booking-next-row{flex-direction:column;align-items:flex-start}.booking-form{padding:20px}}
