:root{--font-sans: "Lato", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--color-bg: #f5f7fa;--color-surface: #ffffff;--color-border: #e2e6ea;--color-border-strong: #cdd3d8;--color-text: #1d242b;--color-text-dim: #5b6670;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-success: #059669;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.08);--shadow-lg: 0 8px 28px rgba(0,0,0,.1);--focus-ring: 0 0 0 3px rgba(37,99,235,.35);--trans-fast: .12s;--trans-slow: .24s}*{box-sizing:border-box}html,body{margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.calendar-wrapper{padding:2rem}h1,h2,h3,h4,h5{font-weight:600;color:var(--color-text);line-height:1.25}p{line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font-family:inherit;font-size:14px}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#d0d6dc;border-radius:var(--radius-sm)}*::-webkit-scrollbar-thumb:hover{background:#b8c0c7}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm)}.card.flat{box-shadow:none}.btn{cursor:pointer;font-weight:500}.input,.select,.textarea{width:100%;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);padding:8px 12px;transition:border-color var(--trans-fast),box-shadow var(--trans-fast)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.app-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:4rem 1rem;background:#ffffff59;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:1050}.app-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:520px;padding:28px 26px;box-shadow:var(--shadow-lg);animation:appModalEnter var(--trans-slow) cubic-bezier(.16,.72,.3,1)}@keyframes appModalEnter{0%{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}.app-modal h3{margin-top:0;font-weight:600}@media (max-width: 900px){.app-modal-overlay{align-items:center;padding:.75rem}.app-modal{max-width:100%;width:calc(100% - 1.5rem);max-height:calc(100vh - 3rem);height:auto;border-radius:12px;padding:12px;display:flex;flex-direction:column}.app-modal .modal-body{overflow:auto;flex:1 1 auto;padding:8px}.app-modal .calendar-sidebar{padding:12px!important}}.notifications-top{position:fixed;top:0;left:0;right:0;pointer-events:none}.no-select{user-select:none!important;-webkit-user-select:none!important}.table-flat{width:100%;border-collapse:collapse;font-size:14px}.table-flat th,.table-flat td{padding:10px 12px;border-bottom:1px solid var(--color-border);text-align:left}.table-flat th{background:#f0f3f6;font-weight:600}.table-flat tbody tr:hover{background:#f9fbfd}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}label>span.label{display:block;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--color-text-dim)}.divider{height:1px;background:var(--color-border);margin:24px 0}.date-picker{display:block}.date-weekday{text-align:center}.date-btn{border-radius:999px;border:2px solid #91c2ff;background:#fff;color:#1d242b;display:flex;align-items:center;justify-content:center;padding:0;margin:0 auto;width:100%;aspect-ratio:1 / 1;max-width:46px}.date-btn:hover{background:#f0f8ff}.date-btn.active{background:#5aa6ff;border-color:#5aa6ff;color:#fff}.date-nav{border-radius:999px;border:2px solid #91c2ff;background:#fff;width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0}.date-nav:hover{background:#f0f8ff}.calendar-dark,body.calendar-dark{background:#121416;color:#e5e7eb}.calendar-dark .date-btn{border-color:#374151;background:#1f2327;color:#e5e7eb}.calendar-dark .date-btn.disabled,.calendar-dark .date-btn[disabled]{color:#fff;opacity:.7}.calendar-dark .date-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}.calendar-dark .date-nav{border-color:#374151;background:#1f2327;color:#e5e7eb}.calendar-dark .date-weekday{color:#f1f5f9;font-weight:600}.calendar-dark .btn-primary{background:#2563eb;border-color:#2563eb}.calendar-dark .btn-secondary{background:#4b5563;border-color:#4b5563}.calendar-dark .btn-warning{background:#f59e0b;border-color:#f59e0b;color:#1f2327}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.calendar-dark .form-check-input:checked{background-color:#2563eb;border-color:#2563eb}.date-header-tile{box-shadow:0 2px 8px #0000000f}.calendar-column{min-width:300px}@media (max-width: 900px){.calendar-wrapper{padding:0}.calendar-root{grid-template-columns:1fr;gap:8px;padding:8px}.calendar-column{min-width:220px}.calendar-main{padding-right:8px}}@media (max-width: 900px){.hide-on-mobile,.calendar-column [data-action=edit]{display:none!important}}@media (max-width: 900px){.calendar-root>.calendar-sidebar{display:none}.mobile-calendar-topbar{display:block!important}}.app-modal .calendar-sidebar{display:block!important;position:static!important;top:auto!important;margin:0!important;box-shadow:none!important}.mobile-calendar-topbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:10px}.mobile-calendar-topbar img{display:block}.calendar-main{padding-right:12px}.calendar-dark .app-modal{background:#0f1720;border-color:#ffffff0a;color:#e6eef8}.calendar-dark .app-modal .modal-body{color:#cbd5e1}.app-modal{background:var(--color-surface)}.app-modal-overlay{background:#ffffff59}.calendar-dark .app-modal-overlay{background:#00000073}.calendar-dark .mobile-calendar-topbar{background:#0f1720;border-color:#ffffff0a;color:#e6eef8}.calendar-dark .form-control,.calendar-dark .form-select,.calendar-dark .input,.calendar-dark .select,.calendar-dark .textarea{background:#0f1720;border-color:#ffffff0a;color:#e6eef8}.calendar-dark .form-control::placeholder,.calendar-dark .input::placeholder,.calendar-dark .textarea::placeholder{color:#94a3b8}.calendar-dark .calendar-widget-wrap,.calendar-dark .calendar-card,.calendar-dark .calendar-sidebar{background:#0f1720;border-color:#ffffff0a;color:#e6eef8}.calendar-dark .date-header-tile{background:#0f1720!important;color:#e6eef8}.calendar-dark .app-modal h3,.calendar-dark .app-modal .modal-body{color:#e6eef8}.calendar-dark .btn-outline-secondary,.calendar-dark .btn-outline-primary{color:#e6eef8;border-color:#ffffff0f}.calendar-dark .form-check-label{color:#e6eef8}@media (max-width: 480px){.date-btn{max-width:40px;font-size:13px;border-width:1.5px}.date-nav{width:36px;height:36px}.calendar-column{min-width:180px}.date-header-tile{padding:8px}.calendar-legend-grid{grid-template-columns:repeat(1,1fr)}}.calendar-root{display:grid;grid-template-columns:440px 1fr;gap:20px;align-items:start}.calendar-sidebar{position:sticky;top:20px;align-self:start;padding:18px;border-radius:12px;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.calendar-sidebar.dark{background:#0f1720;color:#e6eef8;border-color:#ffffff0a}.calendar-main{overflow:auto}.calendar-card{background:var(--color-surface);border-radius:12px;padding:18px;box-shadow:var(--shadow-sm)}.calendar-widget-wrap{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-sm)}.calendar-dark .calendar-widget-wrap{background:#0f1720}.calendar-column .slot{min-height:64px;padding:10px;border-radius:8px}.calendar-column .slot.short{min-height:48px}.date-btn.active.booked{border-color:#16a34a;background:#16a34a;color:#fff;box-shadow:var(--focus-ring)}.calendar-dark .date-btn.active.booked{border-color:#16a34a;background:#16a34a;color:#001f0d}.date-btn.booked{border-color:#22c55e;background:#ecfdf5;color:#14532d}.calendar-dark .date-btn.booked{border-color:#16a34a;background:#052216;color:#bbf7d0}.date-btn.busy{border-color:#f59e0b;background:#fffbeb;color:#873800}.calendar-dark .date-btn.busy{border-color:#f59e0b;background:#2a1600;color:#ffdca8}.date-btn.overloaded{border-color:#dc2626;background:#fff1f2;color:#7f1d1d}.calendar-dark .date-btn.overloaded{border-color:#dc2626;background:#2b0a0a;color:#fecaca}.date-btn.disabled,.date-btn[disabled]{opacity:.5;cursor:not-allowed}.date-btn.disabled{border-color:#9ca3af;background:#fff;color:#6b7280}.calendar-dark .date-btn.disabled{border-color:#6b7280;background:transparent;color:#fff;opacity:.9}.calendar-columns-scroll{overflow-x:auto;overflow-y:visible}@media (min-width: 900px){.manage-root .calendar-column,.container .manage-reschedule-card~.calendar-columns-scroll .calendar-column{min-width:260px}.manage-root .date-header-tile{width:auto!important;min-width:520px}}.calendar-legend{gap:8px;align-items:center;margin-top:12px;font-size:13px}.calendar-legend{margin-top:12px}.calendar-legend-title{font-size:12px;color:var(--color-text-dim);text-align:center}.calendar-legend-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;justify-items:start}.calendar-legend-item{display:flex;gap:8px;align-items:center}.calendar-legend-swatch{width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;border:2px solid rgba(0,0,0,.08);background:transparent;color:var(--color-text)}.calendar-legend-swatch span{line-height:1}.calendar-legend-label{font-size:12px;color:var(--color-text-dim)}.calendar-dark .calendar-legend-label{color:#cbd5e1}.calendar-legend .swatch-empty{border-color:#9ca3af;background:transparent;color:#1d242b}.calendar-legend .swatch-blue{border-color:#5aa6ff;background:transparent;color:#5aa6ff}.calendar-legend .swatch-green{border-color:#16a34a;background:transparent;color:#16a34a}.calendar-legend .swatch-yellow{border-color:#d97706;background:transparent;color:#d97706}.calendar-legend .swatch-red{border-color:#b91c1c;background:transparent;color:#b91c1c}.home-root .calendar-root{display:none}.pulse-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#0d6efd;box-shadow:0 0 #0d6efdb3;animation:pulseBlue 2s ease-out infinite;vertical-align:middle}@keyframes pulseBlue{0%{box-shadow:0 0 #0d6efdb3}70%{box-shadow:0 0 0 8px #0d6efd00}to{box-shadow:0 0 #0d6efd00}}.tiles{display:grid;grid-template-columns:1fr;gap:18px}.tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-sm)}.tile-header{display:flex;gap:12px;align-items:center}.tile-header .photo{width:80px;height:80px;border-radius:12px;overflow:hidden;background:#f0f0f0;flex:0 0 80px}.tile-title{font-weight:700;font-size:18px}.tile-body{margin-top:12px}.tile-legend{margin-top:8px}.summary-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--color-border)}.summary-row:last-child{border-bottom:none}.summary-label{color:var(--color-text-dim);font-size:13px}.summary-value{font-weight:600}.price{font-weight:700;font-size:1.05rem;color:var(--color-text)}.price-large{font-weight:800;font-size:1.25rem;color:var(--color-text)}.price-note{font-size:13px;color:var(--color-text-dim)}.form-tile{display:flex;flex-direction:column;max-width:520px}.form-tile .tile-body{flex:1 1 auto}.form-tile .tile-footer{margin-top:12px;display:flex;gap:8px}.form-tile .sticky-confirm{margin-top:auto;position:sticky;bottom:12px;background:linear-gradient(180deg,#fff0,#fff9);padding-top:8px}@media (min-width: 900px){.tiles{grid-template-columns:420px 1fr}.form-tile{max-width:520px}}@media (min-width: 992px){.manage-root .tiles{grid-template-columns:1fr 1fr;align-items:start}.manage-root .tile{width:100%}.manage-root .manage-reschedule-card{max-width:100%}}@media (max-width: 640px){.container{padding:0 12px}.tile{padding:12px;border-radius:10px}.tile-header .photo{width:56px;height:56px;flex:0 0 56px}.tile-title{font-size:16px}.booking-grid{gap:12px}.booking-left,.booking-right{padding:0}.date-header-tile h2{font-size:16px}}@media (max-width: 900px){.card,.card-body{width:100%;box-sizing:border-box}.calendar-columns-scroll{overflow-x:auto}}.manage-reschedule-card .card-body{padding:0}.booking-grid{display:grid;grid-template-columns:1fr;gap:18px}.booking-left,.booking-right{padding:0}@media (min-width: 992px){.booking-grid{grid-template-columns:420px 1fr;align-items:start}.booking-left{max-width:420px}.booking-right{max-width:720px}}.time-select-row{display:block;width:100%}.time-select-row .form-select,.time-select-row .date-nav{width:100%}
