:root{--bg:#F7F5FD;--bg-card:#FFFFFF;--bg-card-hover:#FDFCFF;--bg-sidebar:#FFFFFF;--bg-input:#F7F5FD;--bg-elevated:#F0EDF9;--border:#E2DBF5;--border-light:#D4CBF0;--purple:#7C3AED;--purple-dark:#6D28D9;--purple-dim:#EDE9FE;--purple-mid:#DDD6FE;--purple-text:#7C3AED;--purple-light:#F5F3FF;--text-primary:#1E1B2E;--text-secondary:#6B7280;--text-muted:#9CA3AF;--gold:#F59E0B;--gold-dim:#FEF3C7;--gold-text:#D97706;--red:#EF4444;--red-dim:#FEE2E2;--red-text:#DC2626;--blue:#3B82F6;--blue-dim:#EFF6FF;--blue-text:#2563EB;--green:#10B981;--green-dim:#ECFDF5;--green-text:#059669;--shadow-sm:0 1px 3px rgba(124,58,237,0.06);--shadow-md:0 4px 12px rgba(124,58,237,0.08);--shadow-lg:0 8px 24px rgba(124,58,237,0.1);--shadow-xl:0 16px 48px rgba(124,58,237,0.12);--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:'Geist',system-ui,sans-serif;background:var(--bg);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.hidden{display:none!important}.auth-wrap{min-height:100vh;display:flex;background:var(--bg)}.auth-left{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:40px 36px;position:relative;overflow:hidden;overflow-y:auto;background:#F8F7FF}.auth-left::before{content:'';position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,0.08) 0%,transparent 70%);top:-200px;right:-200px;pointer-events:none;z-index:0}.auth-left-content{position:relative;z-index:1;max-width:540px;width:100%;padding-bottom:8px}.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:56px}.auth-brand-icon{width:48px;height:48px;background:rgba(255,255,255,0.2);border:1px solid rgba(255,255,255,0.3);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px}.auth-brand-name{font-size:22px;font-weight:800;color:white;letter-spacing:-0.5px}.auth-brand-tag{font-size:11px;color:rgba(255,255,255,0.7);font-weight:500;margin-top:1px;text-transform:uppercase;letter-spacing:0.5px}.auth-headline{font-size:26px;font-weight:800;line-height:1.2;margin-bottom:10px;letter-spacing:-0.5px;color:#1F2937}.auth-headline span{color:#7C3AED}.auth-sub{font-size:13px;color:#6B7280;line-height:1.7;margin-bottom:20px}.auth-logo-wrap{text-align:center;margin-bottom:24px}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.auth-card{display:flex;align-items:flex-start;gap:9px;background:#fff;border:1px solid #EDE9FE;border-radius:10px;padding:10px 12px;font-size:12px;color:#374151;line-height:1.45;box-shadow:0 1px 4px rgba(124,58,237,0.06);cursor:pointer;transition:all 0.2s}.auth-card:hover{border-color:#C4B5FD;box-shadow:0 2px 8px rgba(124,58,237,0.12)}.auth-card-emoji{font-size:15px;flex-shrink:0;line-height:1.5}.auth-card-content{flex:1;min-width:0}.auth-card-text{flex:1;min-width:0}.auth-card-desc{font-size:11px;color:#7C3AED;margin-top:8px;line-height:1.5;display:none}.auth-card.expanded .auth-card-desc{display:block}.auth-card-arrow{font-size:10px;color:#7C3AED;transition:transform 0.2s;flex-shrink:0}.auth-card.expanded .auth-card-arrow{transform:rotate(180deg)}.auth-badge{display:inline-block;background:#7C3AED;color:#fff;font-size:9px;font-weight:700;padding:2px 6px;border-radius:5px;margin-left:4px;text-transform:uppercase;letter-spacing:0.3px;vertical-align:middle;white-space:nowrap}.auth-pricing{background:linear-gradient(135deg,#7C3AED 0%,#9F67FF 100%);color:#fff;text-align:center;padding:14px 20px;border-radius:14px;font-size:13px;font-weight:700;box-shadow:0 4px 16px rgba(124,58,237,0.3);margin-top:4px}@media(max-width:900px){.auth-grid{grid-template-columns:1fr}}.auth-right{width:480px;display:flex;align-items:center;justify-content:center;padding:48px;background:white;border-left:1px solid var(--border)}.auth-form-wrap{width:100%;max-width:360px}.auth-form-title{font-size:22px;font-weight:800;color:var(--text-primary);margin-bottom:6px;letter-spacing:-0.5px}.auth-form-sub{font-size:13px;color:var(--text-secondary);margin-bottom:28px}.field{margin-bottom:18px}.field-label{display:block;font-size:11px;font-weight:600;color:var(--text-secondary);letter-spacing:0.5px;margin-bottom:7px;text-transform:uppercase}.field-input{width:100%;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;font-size:14px;font-family:'Geist',sans-serif;outline:none;background:var(--bg-input);color:var(--text-primary);transition:all 0.15s}.field-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(124,58,237,0.08)}.field-input::placeholder{color:var(--text-muted)}.field-input:hover{border-color:var(--border-light)}.field textarea.field-input{resize:vertical;min-height:80px}select.field-input{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 18px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;border:1.5px solid var(--border);background:white;color:var(--text-primary);transition:all 0.15s;font-family:'Geist',sans-serif;white-space:nowrap}.btn:hover{background:var(--bg-elevated);border-color:var(--border-light)}.btn:active{transform:scale(0.98)}.btn-primary{background:var(--purple);border-color:var(--purple);color:white;font-weight:700}.btn-primary:hover{background:var(--purple-dark);border-color:var(--purple-dark);box-shadow:0 4px 12px rgba(124,58,237,0.3)}.btn-full{width:100%;padding:12px}.btn-lg{padding:13px 24px;font-size:14px}.btn-sm{padding:6px 12px;font-size:12px;border-radius:var(--radius-xs)}.btn-danger{background:var(--red-dim);border-color:#FECACA;color:var(--red-text)}.btn-danger:hover{background:#FEE2E2}.btn-warning{background:var(--gold-dim);border-color:#FDE68A;color:var(--gold-text)}.btn-success{background:var(--green-dim);border-color:#A7F3D0;color:var(--green-text)}.link{color:var(--purple-text);cursor:pointer;font-weight:500;font-size:13px;text-decoration:none;transition:opacity 0.15s}.link:hover{opacity:0.75}.app{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-sidebar);border-right:1.5px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;box-shadow:var(--shadow-sm)}.sidebar-logo{padding:20px 16px;border-bottom:1.5px solid var(--border)}.sidebar-logo-inner{display:flex;align-items:center;gap:11px}.sidebar-logo-icon{width:34px;height:34px;background:var(--purple);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.sidebar-logo-text{font-weight:800;font-size:15px;color:var(--text-primary);letter-spacing:-0.3px}.sidebar-logo-sub{font-size:10px;color:var(--text-muted);font-weight:500;margin-top:1px;text-transform:uppercase;letter-spacing:0.5px}.nav{padding:12px 8px;flex:1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;color:var(--text-secondary);margin-bottom:2px;transition:all 0.15s;font-weight:500}.nav-item:hover{background:var(--purple-light);color:var(--purple-text)}.nav-item.active{background:var(--purple-dim);color:var(--purple-text);font-weight:600}.nav-icon{font-size:15px;width:20px;text-align:center;flex-shrink:0}.nav-badge{background:var(--purple);color:white;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:700;margin-left:auto}.sidebar-bottom{padding:12px 8px;border-top:1.5px solid var(--border)}.trial-pill{background:var(--gold-dim);border:1.5px solid #FDE68A;border-radius:var(--radius-sm);padding:9px 12px;margin-bottom:10px;display:none}.trial-pill-text{font-size:11px;color:var(--gold-text);font-weight:600}.user-card{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:var(--radius-sm);background:var(--bg-elevated);cursor:pointer;transition:all 0.15s;border:1.5px solid var(--border)}.user-card:hover{border-color:var(--purple)}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--purple-dim);border:1.5px solid var(--purple-mid);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--purple-text);flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:12px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-email{font-size:10px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.user-logout{font-size:14px;color:var(--text-muted);cursor:pointer;padding:4px;transition:color 0.15s;flex-shrink:0}.user-logout:hover{color:var(--red-text)}.main{margin-left:240px;flex:1;min-height:100vh;display:flex;flex-direction:column}.page{display:none;flex:1}.page.active{display:flex;flex-direction:column}.page-inner{padding:28px 32px;flex:1}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.page-title{font-size:22px;font-weight:800;color:var(--text-primary);letter-spacing:-0.5px}.page-subtitle{font-size:13px;color:var(--text-muted);margin-top:3px}.greeting-banner{background:linear-gradient(135deg,#7C3AED,#6D28D9);border-radius:var(--radius-lg);padding:22px 26px;margin-bottom:22px;position:relative;overflow:hidden}.greeting-banner::before{content:'';position:absolute;right:-20px;top:-20px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,0.1)}.greeting-title{font-size:18px;font-weight:700;color:white;margin-bottom:3px;letter-spacing:-0.3px}.greeting-sub{font-size:12px;color:rgba(255,255,255,0.8)}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.stat-card{background:white;border-radius:var(--radius-md);padding:18px 20px;border:1.5px solid var(--border);position:relative;overflow:hidden;transition:all 0.15s;box-shadow:var(--shadow-sm)}.stat-card:hover{border-color:var(--purple);box-shadow:var(--shadow-md)}.stat-card-accent{position:absolute;top:0;left:0;right:0;height:3px;border-radius:var(--radius-md) var(--radius-md) 0 0}.stat-card-accent.purple{background:var(--purple)}.stat-card-accent.green{background:var(--green)}.stat-card-accent.gold{background:var(--gold)}.stat-card-accent.blue{background:var(--blue)}.stat-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:10px}.stat-value{font-size:28px;font-weight:800;color:var(--text-primary);letter-spacing:-1px;line-height:1}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-title{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.6px}.card{background:white;border-radius:var(--radius-md);border:1.5px solid var(--border);box-shadow:var(--shadow-sm)}.card-body{padding:20px}.card-row{display:flex;align-items:center;gap:14px}.card-info{flex:1;min-width:0}.card-title{font-weight:600;font-size:14px;color:var(--text-primary)}.card-sub{font-size:12px;color:var(--text-secondary);margin-top:2px}.appt-card{background:white;border-radius:var(--radius-lg);border:1.5px solid var(--border);margin-bottom:8px;overflow:hidden;transition:all 0.2s;box-shadow:var(--shadow-sm)}.appt-card:hover{border-color:rgba(124,58,237,0.3);box-shadow:var(--shadow-md);transform:translateY(-1px)}.appt-card:active{transform:scale(0.99)}.appt-card-inner{padding:16px}.appt-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.appt-status-pill{padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.appt-status-pill.upcoming{background:var(--bg-elevated);color:var(--text-secondary);border:1.5px solid var(--border)}.appt-status-pill.checked_in{background:rgba(124,58,237,0.12);color:var(--purple-text);border:1.5px solid rgba(124,58,237,0.2)}.appt-status-pill.done{background:var(--green-dim);color:var(--green-text);border:1.5px solid #A7F3D0}.appt-status-pill.cancelled{background:var(--red-dim);color:var(--red-text);border:1.5px solid #FECACA}.appt-status-pill.pending{background:var(--gold-dim);color:var(--gold-text);border:1.5px solid #FDE68A}.appt-time-wrap{display:flex;align-items:center;gap:5px;color:var(--text-muted)}.appt-time-text{font-size:12px;font-weight:600}.appt-profile{display:flex;align-items:center;gap:12px;margin-bottom:14px}.appt-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--border);flex-shrink:0}.appt-avatar-placeholder{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex-shrink:0;border:2px solid var(--border)}.appt-pet-name{font-size:16px;font-weight:700;color:var(--text-primary);letter-spacing:-0.2px}.appt-breed{font-size:12px;color:var(--text-secondary);margin-top:1px}.appt-owner{font-size:11px;color:var(--text-muted);margin-top:1px}.appt-service-pill{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;border:1.5px solid var(--border)}.appt-service-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.4px;margin-bottom:2px}.appt-service-value{font-size:13px;font-weight:600;color:var(--text-primary)}.appt-price-value{font-size:13px;font-weight:700;color:var(--purple-text)}.appt-note{font-size:11px;color:var(--text-muted);font-style:italic;margin-top:8px;line-height:1.4}.appt-action-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.appt-online-tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:700;background:var(--blue-dim);color:var(--blue-text);border:1px solid #BFDBFE;margin-left:6px}.appt-list-card{background:white;border-radius:var(--radius-md);border:1.5px solid var(--border);margin-bottom:5px;overflow:hidden;transition:all 0.15s;box-shadow:var(--shadow-sm)}.appt-list-card:hover{border-color:rgba(124,58,237,0.3);background:var(--purple-light)}.appt-list-wrap{display:flex}.appt-list-bar{width:3px;flex-shrink:0}.appt-list-bar.blue{background:var(--blue)}.appt-list-bar.purple{background:var(--purple)}.appt-list-bar.gray{background:#D1D5DB}.appt-list-bar.red{background:var(--red)}.appt-list-bar.gold{background:var(--gold)}.appt-list-bar.green{background:var(--green)}.appt-list-inner{display:flex;align-items:center;gap:10px;padding:9px 12px;flex:1}.appt-list-actions{display:flex;gap:6px;padding:6px 16px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:600}.badge-upcoming{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.badge-checked_in{background:var(--purple-dim);color:var(--purple-text);border:1px solid var(--purple-mid)}.badge-done{background:var(--green-dim);color:var(--green-text);border:1px solid #A7F3D0}.badge-cancelled{background:var(--red-dim);color:var(--red-text);border:1px solid #FECACA}.badge-no_show{background:#F3F4F6;color:#6B7280;border:1px solid #E5E7EB}.badge-pending{background:var(--gold-dim);color:var(--gold-text);border:1px solid #FDE68A}.search-wrap{position:relative;margin-bottom:16px}.search-field{display:flex;align-items:center;gap:10px;background:white;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;transition:all 0.15s;box-shadow:var(--shadow-sm)}.search-field:focus-within{border-color:var(--purple);box-shadow:0 0 0 3px rgba(124,58,237,0.08)}.search-field input{flex:1;border:none;outline:none;font-size:13px;font-family:'Geist',sans-serif;color:var(--text-primary);background:transparent}.search-field input::placeholder{color:var(--text-muted)}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:white;border:1.5px solid var(--border);border-radius:var(--radius-md);z-index:50;box-shadow:var(--shadow-xl);max-height:320px;overflow-y:auto}.search-result-group{padding:8px 14px 4px;font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;background:var(--bg-elevated);border-bottom:1px solid var(--border)}.search-result-item{padding:10px 14px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:all 0.1s;border-bottom:1px solid var(--border);font-weight:500}.search-result-item:hover{background:var(--purple-light);color:var(--purple-text)}.search-result-item:last-child{border-bottom:none}.autocomplete-wrap{position:relative}.autocomplete-list{position:absolute;top:calc(100% + 4px);left:0;right:0;background:white;border:1.5px solid var(--border);border-radius:var(--radius-sm);z-index:100;box-shadow:var(--shadow-xl);max-height:220px;overflow-y:auto}.autocomplete-item{padding:9px 14px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:all 0.1s;border-bottom:1px solid var(--border);font-weight:500}.autocomplete-item:hover{background:var(--purple-light);color:var(--purple-text)}.autocomplete-item:last-child{border-bottom:none}.modal-overlay{position:fixed;inset:0;background:rgba(124,58,237,0.15);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;backdrop-filter:blur(8px)}.modal{background:white;border-radius:var(--radius-xl);width:100%;max-width:580px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1.5px solid var(--border)}.modal-header{padding:18px 22px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:white;z-index:1;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.modal-title{font-weight:800;font-size:16px;color:var(--text-primary);letter-spacing:-0.3px}.modal-subtitle{font-size:12px;color:var(--text-muted);margin-top:2px}.modal-close{width:28px;height:28px;border-radius:50%;background:var(--bg-elevated);border:1.5px solid var(--border);cursor:pointer;color:var(--text-muted);font-size:14px;display:flex;align-items:center;justify-content:center;transition:all 0.15s;font-family:'Geist',sans-serif}.modal-close:hover{background:var(--red-dim);color:var(--red-text)}.modal-body{padding:22px}.modal-footer{padding:14px 22px;border-top:1.5px solid var(--border);display:flex;gap:10px;background:var(--bg-elevated);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.progress-track{display:flex;gap:3px;margin-bottom:22px}.progress-step{flex:1;padding:8px 4px;text-align:center;font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.4px;border-radius:var(--radius-xs);transition:all 0.2s;background:var(--bg-elevated);border:1.5px solid var(--border)}.progress-step.done{background:var(--purple-dim);color:var(--purple-text);border-color:var(--purple-mid)}.progress-step.active{background:var(--purple);color:white;font-weight:800;border-color:var(--purple)}.chip-group{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.chip{padding:6px 13px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;border:1.5px solid var(--border);background:white;color:var(--text-secondary);user-select:none;transition:all 0.15s}.chip:hover{border-color:var(--purple);color:var(--purple-text);background:var(--purple-light)}.chip.on{background:var(--purple-dim);color:var(--purple-text);border-color:var(--purple-mid);font-weight:600}.chip.warn.on{background:var(--gold-dim);color:var(--gold-text);border-color:#FDE68A}.chip.danger.on{background:var(--red-dim);color:var(--red-text);border-color:#FECACA}.chip.blue.on{background:var(--blue-dim);color:var(--blue-text);border-color:#BFDBFE}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:13px;margin-bottom:12px;display:flex;align-items:flex-start;gap:10px;font-weight:500;line-height:1.5}.alert-icon{font-size:15px;flex-shrink:0;margin-top:1px}.alert-red{background:var(--red-dim);border:1.5px solid #FECACA;color:var(--red-text)}.alert-gold{background:var(--gold-dim);border:1.5px solid #FDE68A;color:var(--gold-text)}.alert-blue{background:var(--blue-dim);border:1.5px solid #BFDBFE;color:var(--blue-text)}.alert-green{background:var(--green-dim);border:1.5px solid #A7F3D0;color:var(--green-text)}.alert-purple{background:var(--purple-dim);border:1.5px solid var(--purple-mid);color:var(--purple-text)}.toggle{width:42px;height:22px;border-radius:11px;background:var(--bg-elevated);border:1.5px solid var(--border);position:relative;cursor:pointer;flex-shrink:0;transition:all 0.2s}.toggle.on{background:var(--purple);border-color:var(--purple)}.toggle-knob{width:16px;height:16px;border-radius:50%;background:white;position:absolute;top:2px;left:2px;transition:all 0.2s;box-shadow:var(--shadow-sm)}.toggle.on .toggle-knob{left:22px}.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pay-card{border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:12px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:all 0.15s;background:white;box-shadow:var(--shadow-sm)}.pay-card:hover{border-color:var(--purple);background:var(--purple-light)}.pay-card.sel{border-color:var(--purple);background:var(--purple-dim)}.pay-card-icon{font-size:20px;flex-shrink:0}.pay-card-name{font-size:13px;font-weight:600;color:var(--text-primary)}.status-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:white;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;margin-bottom:7px;text-align:left;font-family:'Geist',sans-serif;transition:all 0.15s;box-shadow:var(--shadow-sm)}.status-btn:hover{border-color:var(--purple);background:var(--purple-light)}.status-btn.sent{border-color:var(--purple);background:var(--purple-dim)}.status-btn-icon{font-size:18px;flex-shrink:0}.status-btn-title{font-size:13px;font-weight:600;color:var(--text-primary)}.status-btn-msg{font-size:11px;color:var(--text-muted);margin-top:2px}.pay-link-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;background:var(--purple-dim);border:1.5px solid var(--purple-mid);border-radius:var(--radius-sm);color:var(--purple-text);font-weight:700;font-size:13px;cursor:pointer;margin-top:7px;text-decoration:none;transition:all 0.15s;font-family:'Geist',sans-serif}.pay-link-btn:hover{background:var(--purple-mid)}.bar-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.bar-label{font-size:12px;color:var(--text-secondary);width:130px;flex-shrink:0;font-weight:500}.bar-track{flex:1;height:6px;background:var(--bg-elevated);border-radius:3px;overflow:hidden;border:1px solid var(--border)}.bar-fill{height:100%;background:linear-gradient(90deg,var(--purple-dark),var(--purple));border-radius:3px}.bar-val{font-size:12px;font-weight:700;width:60px;text-align:right;color:var(--text-primary)}.toast-wrap{position:fixed;top:20px;right:20px;z-index:999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:white;color:var(--text-primary);padding:12px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;box-shadow:var(--shadow-xl);border:1.5px solid var(--border);animation:toastIn 0.25s ease;font-family:'Geist',sans-serif;pointer-events:all}.toast.success{background:var(--green-dim);border-color:#A7F3D0;color:var(--green-text)}.toast.error{background:var(--red-dim);border-color:#FECACA;color:var(--red-text)}@keyframes toastIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.empty-state{text-align:center;padding:64px 20px}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:0.4}.empty-state-title{font-size:16px;font-weight:700;color:var(--text-secondary);margin-bottom:8px}.empty-state-sub{font-size:13px;color:var(--text-muted);line-height:1.6}.paywall-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.paywall-card{background:white;border-radius:var(--radius-2xl);padding:48px;max-width:480px;width:100%;text-align:center;box-shadow:var(--shadow-xl);border:1.5px solid var(--border)}.booking-wrap{min-height:100vh;background:var(--bg);padding:48px 16px;display:flex;align-items:flex-start;justify-content:center}.booking-card{background:white;border-radius:var(--radius-2xl);padding:36px;max-width:520px;width:100%;box-shadow:var(--shadow-xl);border:1.5px solid var(--border)}.booking-header{text-align:center;margin-bottom:32px}.booking-logo{font-size:40px;margin-bottom:12px}.booking-biz{font-size:22px;font-weight:800;color:var(--text-primary);letter-spacing:-0.5px}.booking-sub{font-size:13px;color:var(--text-muted);margin-top:6px}.day-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:18px}.day-btn{padding:9px 4px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:white;font-size:11px;cursor:pointer;text-align:center;font-family:'Geist',sans-serif;font-weight:600;transition:all 0.15s;color:var(--text-muted);line-height:1.3}.day-btn.available{border-color:var(--purple-mid);color:var(--purple-text);background:var(--purple-light)}.day-btn.available:hover{background:var(--purple-dim)}.day-btn.selected{background:var(--purple);color:white;border-color:var(--purple);font-weight:700}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:18px}.time-btn{padding:10px 6px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:white;font-size:12px;cursor:pointer;text-align:center;font-family:'Geist',sans-serif;font-weight:600;transition:all 0.15s;color:var(--text-secondary)}.time-btn:hover{border-color:var(--purple);color:var(--purple-text);background:var(--purple-light)}.time-btn.selected{background:var(--purple);color:white;border-color:var(--purple);font-weight:700}.pending-banner{background:var(--gold-dim);border:1.5px solid #FDE68A;border-radius:var(--radius-md);padding:16px 18px;margin-bottom:18px}.birthday-banner{background:#FDF2F8;border:1.5px solid #F9A8D4;border-radius:var(--radius-md);padding:14px 18px;margin-bottom:18px}.birthday-banner-header{font-weight:700;font-size:13px;color:#BE185D;margin-bottom:10px;display:flex;align-items:center;gap:6px}.pending-banner-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.pending-banner-title{font-weight:700;font-size:13px;color:var(--gold-text);display:flex;align-items:center;gap:8px}.pending-count{background:var(--gold);color:white;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.section-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.6px;margin-bottom:10px}.collapsible{border:1.5px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;overflow:hidden;background:white}.collapsible-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;background:var(--bg-elevated);transition:background 0.15s;user-select:none}.collapsible-header:hover{background:var(--purple-light)}.collapsible-title{font-size:13px;font-weight:600;color:var(--text-secondary)}.collapsible-count{font-size:11px;color:var(--purple-text);font-weight:600;background:var(--purple-dim);padding:2px 8px;border-radius:10px;border:1px solid var(--purple-mid)}.collapsible-arrow{font-size:11px;color:var(--text-muted);transition:transform 0.2s}.collapsible-arrow.open{transform:rotate(180deg)}.collapsible-body{padding:14px;border-top:1.5px solid var(--border);display:none;background:white}.collapsible-body.open{display:block}.client-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0;border:1.5px solid var(--border)}.client-card{background:white;border-radius:var(--radius-md);border:1.5px solid var(--border);margin-bottom:8px;overflow:hidden;box-shadow:var(--shadow-sm);transition:all 0.15s}.client-card:hover{border-color:rgba(124,58,237,0.3)}.client-card-header{display:flex;align-items:center;gap:14px;padding:16px;cursor:pointer}.client-card-pets{padding:0 16px 16px;border-top:1.5px solid var(--border);background:var(--purple-light)}.pet-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:white;border-radius:var(--radius-sm);margin-top:8px;border:1.5px solid var(--border)}.pet-row-info{display:flex;align-items:center;gap:10px}.pet-avatar-sm{width:36px;height:36px;border-radius:50%;object-fit:cover;border:1.5px solid var(--border);flex-shrink:0}.pet-avatar-sm-placeholder{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0;border:1.5px solid var(--border)}.demo-banner{position:fixed;top:0;left:0;right:0;z-index:500;background:linear-gradient(135deg,#7C3AED,#6D28D9);padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 2px 12px rgba(124,58,237,0.3)}.demo-banner-text{font-size:12px;font-weight:600;color:white;display:flex;align-items:center;gap:8px}.demo-banner-actions{display:flex;gap:8px;flex-shrink:0}.demo-btn{padding:6px 14px;border-radius:var(--radius-xs);font-size:11px;font-weight:700;cursor:pointer;border:none;font-family:'Geist',sans-serif;transition:all 0.15s}.demo-btn-trial{background:white;color:var(--purple)}.demo-btn-trial:hover{background:var(--purple-dim)}.demo-btn-exit{background:rgba(255,255,255,0.2);color:white;border:1px solid rgba(255,255,255,0.4)}.demo-btn-exit:hover{background:rgba(255,255,255,0.3)}.demo-mode-active .main{margin-top:44px}.demo-mode-active .sidebar{top:44px;height:calc(100vh - 44px)}.demo-mode-active .modal-overlay{padding-top:44px}.demo-mode-active .bottom-nav{bottom:0}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:white;border-top:1.5px solid var(--border);z-index:100;padding:6px 0 2px;box-shadow:0 -4px 12px rgba(124,58,237,0.08)}.bottom-nav-inner{display:flex}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:6px 2px;cursor:pointer;color:var(--text-muted);font-size:9px;font-weight:600;gap:2px;transition:color 0.15s;position:relative}.bottom-nav-item.active{color:var(--purple-text)}.bottom-nav-icon{font-size:20px}.bottom-nav-badge{position:absolute;top:2px;right:calc(50% - 18px);background:var(--purple);color:white;border-radius:10px;padding:1px 5px;font-size:9px;font-weight:700}.cal-month-wrap{border:1.5px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.cal-month-dow{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-elevated);border-bottom:1.5px solid var(--border)}.cal-month-dow-cell{padding:10px 0;text-align:center;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px}.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-month-cell{min-height:110px;border-right:1.5px solid var(--border);border-bottom:1.5px solid var(--border);padding:8px 8px 6px;cursor:pointer;transition:background 0.12s;position:relative;overflow:hidden;background:white}.cal-month-cell:last-child,.cal-month-cell:nth-child(7n){border-right:none}.cal-month-row-last .cal-month-cell{border-bottom:none}.cal-month-cell:hover:not(.cal-other-month){background:var(--purple-light)}.cal-today-cell{background:var(--purple-light)!important}.cal-other-month{background:var(--bg);cursor:default;opacity:0.5}.cal-day-number{font-size:13px;font-weight:600;color:var(--text-secondary);width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:5px;flex-shrink:0}.cal-today-num{background:var(--purple);color:white;font-weight:800}.cal-pill{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:1.5;cursor:pointer}.cal-pill-upcoming{background:#EFF6FF;color:#2563EB}.cal-pill-checked_in{background:var(--purple-dim);color:var(--purple-text)}.cal-pill-done{background:var(--green-dim);color:var(--green-text)}.cal-pill-cancelled{background:var(--red-dim);color:var(--red-text)}.cal-pill-pending{background:var(--gold-dim);color:var(--gold-text)}.cal-pill-no_show{background:#F3F4F6;color:#9CA3AF}.cal-more-link{font-size:10px;color:var(--purple-text);font-weight:700;padding:1px 4px;display:block;margin-top:1px}.cal-day-modal-appt{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1.5px solid var(--border);cursor:pointer;transition:background 0.1s;border-radius:var(--radius-sm)}.cal-day-modal-appt:last-child{border-bottom:none}.cal-day-modal-appt:hover{background:var(--purple-light)}.cal-legend-dot{width:10px;height:10px;border-radius:2px;display:inline-block;flex-shrink:0}@media(max-width:768px){.cal-month-cell{min-height:64px;padding:5px 4px}.cal-day-number{font-size:11px;width:20px;height:20px;margin-bottom:3px}.cal-pill{font-size:9px;padding:1px 4px}.cal-month-dow-cell{padding:7px 0;font-size:9px}}.cal-hdr{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-hdr-cell{text-align:center;font-size:10px;font-weight:600;color:var(--text-muted);padding:4px 0}.cal-grid-7{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-cell{padding:6px 2px;text-align:center;font-size:12px;border-radius:var(--radius-sm);min-height:36px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;cursor:pointer;transition:all 0.15s;border:1.5px solid transparent;font-weight:500;color:var(--text-secondary)}.cal-cell.other-month{opacity:0.25;pointer-events:none}.cal-cell.past-cell{opacity:0.35;cursor:not-allowed;pointer-events:none}.cal-cell.today-cal{border-color:var(--purple-mid);background:var(--purple-light);color:var(--purple-text);font-weight:700}.cal-cell.blocked-full{background:var(--red-dim);border-color:#FECACA;color:var(--red-text);font-weight:700}.cal-cell.blocked-partial{background:var(--gold-dim);border-color:#FDE68A;color:var(--gold-text);font-weight:600}.cal-cell:not(.past-cell):not(.blocked-full):not(.blocked-partial):not(.other-month):hover{background:var(--bg-elevated);border-color:var(--border-light)}.cal-range-hint{font-size:8px;margin-top:1px;line-height:1}@media(max-width:768px){.auth-left{display:none}.auth-right{width:100%;background:var(--bg)}.sidebar{display:none}.main{margin-left:0}.page-inner{padding:14px;padding-bottom:88px}.stats-row{grid-template-columns:1fr 1fr}.grid-2,.grid-3{grid-template-columns:1fr}.bottom-nav{display:block}.greeting-banner{padding:16px 18px}.greeting-title{font-size:16px}.demo-mode-active .main{margin-top:44px}.demo-mode-active .bottom-nav{padding-bottom:2px}}.mic-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--bg-elevated);border:1.5px solid var(--border);cursor:pointer;font-size:13px;transition:all 0.15s;flex-shrink:0;padding:0;line-height:1;font-family:'Geist',sans-serif}.mic-btn:hover{background:var(--purple-dim);border-color:var(--purple)}.mic-btn.listening{background:var(--red-dim);border-color:var(--red-text);animation:micPulse 1s ease infinite}.mic-btn-abs{position:absolute;right:6px;bottom:6px}@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,0.4)}50%{box-shadow:0 0 0 5px rgba(239,68,68,0)}}@media(max-width:768px){.mic-btn{opacity:0.35;filter:grayscale(1);cursor:default}}.cal-block-pill{display:block;font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;margin-bottom:1px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:default}.cal-block-full{background:#FEE2E2;color:#B91C1C;border:1px solid #FECACA}.cal-block-range{background:#FEF9C3;color:#854D0E;border:1px solid #FEF08A}.client-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.client-grid-card{background:white;border-radius:var(--radius-md);border:1.5px solid var(--border);padding:16px;cursor:pointer;transition:all 0.15s;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px;min-width:0}.client-grid-card:hover{border-color:rgba(124,58,237,0.35);box-shadow:var(--shadow-md);transform:translateY(-2px)}.client-grid-card:active{transform:scale(0.98)}.client-grid-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;border:2px solid;margin-bottom:2px;flex-shrink:0}.client-grid-name{font-size:14px;font-weight:700;color:var(--text-primary);line-height:1.3;word-break:break-word}.client-grid-phone{font-size:12px;color:var(--text-secondary);font-weight:500}.client-grid-pets{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.client-grid-no-pets{font-size:11px;color:var(--text-muted);font-style:italic}.pet-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;background:var(--purple-light);color:var(--purple-text);border:1px solid var(--purple-mid);white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.alpha-divider{display:flex;align-items:center;gap:10px;margin:20px 0 10px}.alpha-divider:first-child{margin-top:4px}.alpha-letter{font-size:11px;font-weight:800;color:var(--purple-text);background:var(--purple-dim);border:1.5px solid var(--purple-mid);border-radius:var(--radius-xs);width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.alpha-line{flex:1;height:1px;background:var(--border)}@media(max-width:1024px){.client-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.client-grid{grid-template-columns:repeat(2,1fr);gap:8px}.client-grid-card{padding:12px}.pet-tag{max-width:110px}}.appt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.appt-grid-block{grid-column:1/-1}.appt-grid-card{background:white;border-radius:var(--radius-md);border:1.5px solid var(--border);padding:14px;transition:all 0.15s;box-shadow:var(--shadow-sm)}.appt-grid-card:hover{border-color:rgba(124,58,237,0.3);box-shadow:var(--shadow-md);transform:translateY(-1px)}.appt-grid-card:active{transform:scale(0.99)}@media(max-width:640px){.appt-grid{grid-template-columns:1fr}}.today-av{width:68px;height:68px;border-radius:50%;flex-shrink:0}.today-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:8px}@media(max-width:640px){.today-av{width:56px;height:56px}.today-grid{grid-template-columns:1fr}}.ob-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#F5F3FF 0%,#EDE9FE 50%,#F7F5FD 100%)}.ob-card{background:white;border-radius:var(--radius-2xl);padding:48px;max-width:560px;width:100%;box-shadow:var(--shadow-xl);border:1.5px solid var(--border)}.ob-step{display:none}.ob-step.active{display:block}.ob-prog{display:flex;gap:4px;margin-bottom:36px}.ob-prog-dot{flex:1;height:4px;border-radius:2px;background:var(--border);transition:background 0.3s}.ob-prog-dot.done{background:var(--purple)}.ob-prog-dot.active{background:var(--purple);opacity:0.6}.ob-nav{display:flex;align-items:center;justify-content:space-between;margin-top:28px;gap:10px}.ob-day-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}.ob-day-row:last-child{border-bottom:none}.ob-day-label{font-size:13px;font-weight:600;color:var(--text-primary);min-width:80px}.ob-svc-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.ob-svc-row:last-child{border-bottom:none}.ob-svc-name{flex:1;font-size:13px;font-weight:600;color:var(--text-primary)}.ob-success-actions{display:flex;flex-direction:column;gap:10px;margin-top:28px}@media(max-width:480px){.ob-card{padding:28px 20px}}.gt-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;padding:14px;gap:2px}.gt-footer a{font-size:11px;color:var(--text-muted);text-decoration:none;font-weight:500;transition:color 0.15s;padding:4px 9px;border-radius:4px}.gt-footer a:hover{color:var(--purple-text);background:var(--purple-light)}.policy-screen-wrap{min-height:100vh;background:var(--bg)}.policy-nav{background:white;border-bottom:1.5px solid var(--border);padding:14px 24px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:10;box-shadow:var(--shadow-sm)}.policy-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--purple-text);cursor:pointer;background:var(--purple-light);border:1.5px solid var(--purple-mid);padding:7px 14px;border-radius:var(--radius-sm);font-family:'Geist',sans-serif;transition:all 0.15s}.policy-back:hover{background:var(--purple-dim)}.policy-doc{max-width:740px;margin:0 auto;padding:44px 24px 60px;background:var(--bg)}.policy-doc h1{font-size:26px;font-weight:800;color:var(--text-primary);letter-spacing:-0.5px;margin-bottom:8px}.policy-updated{font-size:12px;color:var(--text-muted);display:block;margin-bottom:36px;font-weight:500;padding-bottom:24px;border-bottom:1.5px solid var(--border)}.policy-doc h2{font-size:11px;font-weight:700;color:var(--text-primary);margin:28px 0 8px;text-transform:uppercase;letter-spacing:0.6px}.policy-doc p{font-size:14px;color:var(--text-secondary);line-height:1.75;margin-bottom:12px}.policy-doc ul{margin:4px 0 14px 20px}.policy-doc li{font-size:14px;color:var(--text-secondary);line-height:1.75;margin-bottom:4px}.policy-doc strong{color:var(--text-primary);font-weight:600}@media(max-width:768px){.policy-doc{padding:28px 16px 60px}}
.modal{overflow-x:hidden}.modal-body,.modal-footer{max-width:100%;overflow-x:hidden}.modal-footer{flex-wrap:wrap;align-items:center}.modal-footer .btn{flex:0 1 auto;min-width:0;max-width:100%;white-space:normal;text-align:center}.appt-action-bar,.appt-list-actions,.demo-banner-actions,.ob-nav{flex-wrap:wrap}.appt-action-bar .btn,.appt-list-actions .btn,.ob-nav .btn{min-width:0;white-space:normal;text-align:center}@media(max-width:640px){.modal-overlay{padding:12px}.modal-footer{padding:12px 16px;gap:8px}.modal-footer .btn{flex:1 1 140px}.appt-action-bar .btn,.appt-list-actions .btn{flex:1 1 120px}.ob-nav{align-items:stretch}.ob-nav .btn{flex:1 1 130px}}
#page-clients .page-header{flex-wrap:wrap;align-items:center}#page-clients .page-header>div:first-child{min-width:220px}#page-clients .page-header>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0}#page-clients .page-header .btn{min-width:0;white-space:normal;text-align:center}@media(max-width:640px){#page-clients .page-header{align-items:stretch;gap:12px}#page-clients .page-header>div:first-child,#page-clients .page-header>div:last-child{width:100%}#page-clients .page-header>div:last-child{justify-content:stretch}#page-clients .page-header .btn{flex:1 1 140px}}
#page-reports .page-header{flex-wrap:wrap;align-items:center}#page-reports .page-header>div:last-child{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;min-width:0}#page-reports .page-header .btn{min-width:0;white-space:normal;text-align:center}#rpt-custom-dates{flex-wrap:wrap;min-width:0}#rpt-custom-dates input{max-width:100%}@media(max-width:640px){#page-reports .page-header{align-items:stretch;gap:12px}#page-reports .page-header>div:first-child,#page-reports .page-header>div:last-child{width:100%}#page-reports .page-header>div:last-child{justify-content:stretch}#page-reports .page-header .btn{flex:1 1 88px}#rpt-custom-dates{width:100%;align-items:stretch}#rpt-custom-dates input{flex:1 1 130px}#rpt-custom-dates .btn{flex:1 1 100px}}
.booking-wrap{overflow-x:hidden}.booking-card{max-width:560px}.book-cal-day{min-width:0}.booking-card .chip{min-width:0}.booking-card .field{margin-bottom:18px}@media(max-width:640px){.booking-wrap{padding:18px 10px}.booking-card{padding:24px 16px;border-radius:var(--radius-lg);max-width:100%}.booking-header{margin-bottom:24px}.booking-logo{font-size:34px;margin-bottom:8px}.booking-biz{font-size:20px;line-height:1.2}.booking-sub{font-size:12px}.booking-card .section-label{margin-bottom:9px}.booking-card .day-btn,.booking-card .book-cal-day{min-height:44px;padding:8px 2px;font-size:13px;line-height:1.2;border-radius:10px}.booking-card .day-btn.selected,.booking-card .book-cal-day.selected{box-shadow:0 0 0 2px rgba(124,58,237,0.16)}.booking-card .time-grid{grid-template-columns:repeat(2,1fr);gap:8px}.booking-card .time-btn{min-height:44px;padding:11px 8px;font-size:13px;border-radius:10px}.booking-card .field{margin-bottom:16px}.booking-card .field-input{font-size:16px;padding:12px 14px}.booking-card .btn-lg{min-height:46px}.booking-card [id=book-prev-month],.booking-card [id=book-next-month]{flex:0 0 auto;padding:8px 12px}.booking-card #book-calendar-grid{gap:5px!important}.booking-card #book-date-note-list,.booking-card #book-time-note-list{font-size:12px}}@media(max-width:380px){.booking-card{padding:20px 12px}.booking-card .time-grid{grid-template-columns:1fr}.booking-card .day-btn,.booking-card .book-cal-day{font-size:12px}}
#csv-import-modal .modal{max-width:640px!important}#csv-modal-body{overflow-x:hidden}#csv-modal-body .alert{align-items:flex-start;gap:10px;line-height:1.55;padding:14px 16px;flex-wrap:wrap}#csv-modal-body .alert>div:not(.alert-icon){min-width:220px;flex:1 1 260px}#csv-modal-body .alert .btn{flex:0 1 190px;white-space:normal;text-align:center}#csv-modal-body>div[style*="text-transform:uppercase"]{display:flex;align-items:center;gap:8px;margin:18px 0 8px!important;color:var(--text-secondary);line-height:1.4}#csv-modal-body>div[style*="text-transform:uppercase"]::after{content:'';height:1px;background:var(--border);flex:1}#csv-modal-body>div[style*="max-height"]{max-height:260px!important;overflow-y:auto!important;overflow-x:hidden!important;border-radius:var(--radius-md)!important;margin-bottom:18px!important;background:white!important;box-shadow:inset 0 1px 0 rgba(255,255,255,0.8)}#csv-modal-body>div[style*="max-height"]>div{padding:11px 14px!important;line-height:1.55;overflow-wrap:anywhere}#csv-modal-footer{align-items:stretch}#csv-modal-footer .btn{flex:1 1 150px}@media(max-width:640px){#csv-import-modal .modal{max-width:100%!important}#csv-modal-body .alert .btn{flex:1 1 100%;width:100%}#csv-modal-body .alert>div:not(.alert-icon){min-width:0}#csv-modal-body>div[style*="max-height"]{max-height:220px!important}#csv-modal-footer .btn{flex:1 1 100%}}
#page-appointments .appt-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;align-items:start}#page-appointments .appt-grid-card{border-radius:var(--radius-lg);padding:16px!important;border-top:1.5px solid var(--border);border-right:1.5px solid var(--border);border-bottom:1.5px solid var(--border);background:linear-gradient(180deg,#fff 0%,#FDFCFF 100%);box-shadow:var(--shadow-sm);min-width:0}#page-appointments .appt-grid-card:hover{background:white;border-color:rgba(124,58,237,0.28);box-shadow:var(--shadow-md)}#page-appointments .appt-grid-card>div:first-child{align-items:flex-start!important;gap:10px;margin-bottom:14px!important}#page-appointments .appt-grid-card>div:first-child>span:last-child{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:4px 9px;color:var(--text-secondary)!important;line-height:1.2;text-align:right;white-space:normal}#page-appointments .appt-grid-card .badge{padding:5px 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0.3px}#page-appointments .appt-grid-card>div:nth-child(2){gap:12px!important;margin-bottom:12px!important;align-items:flex-start!important}#page-appointments .appt-grid-card>div:nth-child(2)>div:last-child>div:first-child{font-size:16px!important;line-height:1.25;margin-bottom:2px}#page-appointments .appt-grid-card>div:nth-child(2)>div:last-child>div:nth-child(2){font-size:12px!important;color:var(--text-secondary)!important;font-weight:600}#page-appointments .appt-grid-card>div:nth-child(2)>div:last-child>div:nth-child(3){display:inline-flex;max-width:100%;margin-top:7px!important;padding:6px 9px;border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary)!important;font-size:12px!important;font-weight:600;line-height:1.35;white-space:normal}#page-appointments .appt-online-tag{vertical-align:middle;margin-left:8px}#page-appointments .appt-grid-card>div:last-child{align-items:center!important;padding-top:12px!important;border-top:1.5px solid var(--border)!important;gap:10px!important}#page-appointments .appt-grid-card>div:last-child>span:first-child{font-size:16px!important;font-weight:800!important;line-height:1;color:var(--purple-text)!important}#page-appointments .appt-grid-card>div:last-child>div{gap:7px!important;justify-content:flex-end!important;align-items:center!important;flex:1 1 260px}#page-appointments .appt-grid-card .btn-sm{min-height:34px;padding:8px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;white-space:normal}#page-appointments .appt-grid-card button[onclick*="openEditAppt"],#page-appointments .appt-grid-card button[onclick*="openApptRecord"]{background:var(--purple-light);border-color:var(--purple-mid);color:var(--purple-text)}#page-appointments .appt-grid-card button[onclick*="cancelAppt"],#page-appointments .appt-grid-card button[onclick*="markNoShow"],#page-appointments .appt-grid-card button[onclick*="deleteAppt"]{background:white!important;border-color:var(--border)!important;color:var(--text-muted)!important}#page-appointments .appt-grid-card button[onclick*="markLateCancel"]{background:white!important;border-color:#FDE68A!important;color:var(--gold-text)!important}#page-appointments .appt-grid-card button[onclick*="cancelAppt"]:hover,#page-appointments .appt-grid-card button[onclick*="markNoShow"]:hover,#page-appointments .appt-grid-card button[onclick*="deleteAppt"]:hover{background:var(--red-dim)!important;border-color:#FECACA!important;color:var(--red-text)!important}#page-appointments .appt-grid-card button[onclick*="markLateCancel"]:hover{background:var(--gold-dim)!important}#page-appointments .appt-grid-block{border-radius:var(--radius-lg)!important;padding:14px 16px!important;box-shadow:var(--shadow-sm);min-width:0;line-height:1.45}#page-appointments .appt-grid-block>div:first-child{width:38px;height:38px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);font-size:18px!important;flex-shrink:0}#page-appointments .appt-grid-block>div:last-child{min-width:0}#page-appointments .appt-grid-block>div:last-child>div:first-child{line-height:1.25;margin-bottom:3px}@media(max-width:640px){#page-appointments .appt-grid{grid-template-columns:1fr;gap:10px}#page-appointments .appt-grid-card{padding:14px!important}#page-appointments .appt-grid-card>div:first-child{flex-direction:column;align-items:flex-start!important}#page-appointments .appt-grid-card>div:first-child>span:last-child{text-align:left}#page-appointments .appt-grid-card>div:last-child{align-items:stretch!important}#page-appointments .appt-grid-card>div:last-child>div{flex:1 1 100%;justify-content:stretch!important}#page-appointments .appt-grid-card .btn-sm{flex:1 1 120px;min-height:38px}#page-appointments .appt-grid-block{align-items:flex-start!important}}
#appt-details-modal .modal{max-width:620px;background:linear-gradient(180deg,#fff 0%,#FDFCFF 100%)}#appt-details-modal .modal-header{padding:20px 24px;background:white}#appt-details-modal .modal-title{font-size:18px;line-height:1.2}#appt-details-modal .modal-subtitle{font-size:12px;line-height:1.5;overflow-wrap:anywhere}#ad-body{padding:22px 24px 20px;overflow-x:hidden}#ad-body>div:first-child{padding:18px!important;border-radius:var(--radius-lg)!important;background:white!important;box-shadow:var(--shadow-sm);margin-bottom:16px!important}#ad-body>div:first-child .grid-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px 18px!important}#ad-body>div:first-child .grid-2>div{min-width:0;padding-bottom:2px}#ad-body>div:first-child .grid-2>div>div:first-child{font-size:10px!important;font-weight:800!important;color:var(--text-muted)!important;line-height:1.2;margin-bottom:5px!important}#ad-body>div:first-child .grid-2>div>div:last-child{font-size:14px!important;font-weight:700!important;line-height:1.35;overflow-wrap:anywhere}#ad-body .alert{align-items:flex-start;gap:10px;line-height:1.55;padding:13px 15px;border-radius:var(--radius-md);margin-bottom:14px!important;overflow-wrap:anywhere}#ad-body .alert-icon{flex:0 0 auto;margin-top:1px}#ad-body>div[style*="margin-bottom:12px"]{margin-bottom:14px!important}#ad-body>div[style*="background:var(--purple-light)"]{background:white!important;border-color:var(--purple-mid)!important;border-radius:var(--radius-lg)!important;padding:14px 16px!important;box-shadow:var(--shadow-sm)}#ad-body>div[style*="background:var(--purple-light)"] a{display:inline-flex;padding:7px 10px;border-radius:var(--radius-sm);background:var(--purple-light);border:1px solid var(--purple-mid)}#ad-body>div:last-child>div{margin-bottom:12px!important}#ad-body>div:last-child>div>div:first-child{font-size:10px!important;font-weight:800!important;color:var(--text-muted)!important;line-height:1.2;margin-bottom:6px!important}#ad-body>div:last-child>div>div:last-child{background:white!important;border-radius:var(--radius-md)!important;padding:12px 14px!important;line-height:1.65!important;overflow-wrap:anywhere}#ad-footer{display:flex!important;align-items:stretch!important;justify-content:flex-end!important;gap:8px!important;padding:16px 24px!important;background:#FAF9FF!important}#ad-footer .btn{min-height:38px;padding:9px 13px;font-weight:700;white-space:normal;line-height:1.2}#ad-footer .btn:first-child{order:20;background:white}#ad-footer button[onclick*="openEditAppt"]{order:1;background:var(--purple-light);border-color:var(--purple-mid);color:var(--purple-text)}#ad-footer button[onclick*="openCheckin"]{order:2}#ad-footer button[onclick*="copyStatusLink"]{order:3;background:white}#ad-footer button[onclick*="quickDone"]{order:4}#ad-footer button[onclick*="cancelAppt"],#ad-footer button[onclick*="markNoShow"]{order:10;background:white!important;border-color:var(--border)!important;color:var(--text-muted)!important}#ad-footer button[onclick*="markLateCancel"]{order:11;background:white!important;border-color:#FDE68A!important;color:var(--gold-text)!important}#ad-footer button[onclick*="cancelAppt"]:hover,#ad-footer button[onclick*="markNoShow"]:hover{background:var(--red-dim)!important;border-color:#FECACA!important;color:var(--red-text)!important}#ad-footer button[onclick*="markLateCancel"]:hover{background:var(--gold-dim)!important}@media(max-width:640px){#appt-details-modal .modal{max-width:100%}#appt-details-modal .modal-header{padding:16px 18px}#ad-body{padding:18px 16px}#ad-body>div:first-child .grid-2{grid-template-columns:1fr!important;gap:12px!important}#ad-footer{padding:12px 16px!important;justify-content:stretch!important}#ad-footer .btn{flex:1 1 150px;min-height:42px}}
#page-today .today-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;align-items:start}#page-today .appt-card{border-radius:var(--radius-lg);border-color:var(--border);background:linear-gradient(180deg,#fff 0%,#FDFCFF 100%);box-shadow:var(--shadow-sm);min-width:0}#page-today .appt-card:hover{background:white;border-color:rgba(124,58,237,0.28);box-shadow:var(--shadow-md)}#page-today .appt-card>div:first-child{padding:10px 14px!important;background:#FAF9FF;border-bottom:1.5px solid var(--border)!important;gap:10px}#page-today .appt-card>div:first-child>span:last-child{background:white;border:1px solid var(--border);border-radius:999px;padding:5px 10px;font-size:12px!important;font-weight:800!important;color:var(--text-primary)!important;line-height:1.1;white-space:normal;text-align:right}#page-today .appt-card .appt-status-pill{padding:5px 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:0.3px}#page-today .appt-card>div:nth-child(2){padding:14px 16px 10px!important;gap:14px!important;align-items:flex-start!important}#page-today .today-av{width:60px;height:60px;box-shadow:0 1px 0 rgba(255,255,255,0.8)}#page-today .appt-card>div:nth-child(2)>div:last-child{min-width:0}#page-today .appt-card>div:nth-child(2)>div:last-child>div:first-child{font-size:18px!important;line-height:1.2!important;margin-bottom:3px;overflow-wrap:anywhere}#page-today .appt-card>div:nth-child(2)>div:last-child>div:nth-child(2){font-size:12px!important;color:var(--text-secondary)!important;font-weight:600;line-height:1.35}#page-today .appt-card>div:nth-child(2)>div:last-child>div:nth-child(3){font-size:12px!important;color:var(--text-secondary)!important;font-weight:500;line-height:1.35}#page-today .appt-card>div:nth-child(2)>div:last-child>div:nth-child(4){display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px!important;padding:9px 10px;border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border);line-height:1.35}#page-today .appt-card>div:nth-child(2)>div:last-child>div:nth-child(4)>span:first-child{color:var(--text-secondary)!important;font-weight:700;min-width:0;overflow-wrap:anywhere}#page-today .appt-card>div:nth-child(3){padding:0 16px 10px!important;display:flex;flex-wrap:wrap;gap:6px;align-items:center}#page-today .appt-card>div:nth-child(3)>div,#page-today .appt-card>div:nth-child(3)>span{margin-top:0!important}#page-today .appt-card>div:nth-child(3) [style*="font-size:11px"]{line-height:1.35}#page-today .appt-card>div:nth-child(3)>div[style*="display:inline-flex"]{font-size:11px!important;padding:4px 9px!important;border-radius:999px!important}#page-today .appt-card>div:nth-child(4){padding:0 14px 14px!important}#page-today .appt-action-bar{margin-top:0;gap:7px;align-items:stretch;padding-top:12px;border-top:1.5px solid var(--border)}#page-today .appt-action-bar .btn-sm{min-height:36px;padding:8px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;white-space:normal;line-height:1.2}#page-today .appt-action-bar>.btn-primary{flex:1 1 150px;min-width:150px}#page-today .appt-action-bar>.btn-success{flex:1 1 130px}#page-today .appt-action-bar>div{gap:7px!important;margin-top:1px}#page-today .appt-action-bar button[onclick*="openEditAppt"],#page-today .appt-action-bar button[onclick*="openPhotoModal"],#page-today .appt-action-bar button[onclick*="openApptRecord"],#page-today .appt-action-bar button[onclick*="sendRebookReminder"]{background:var(--purple-light);border-color:var(--purple-mid);color:var(--purple-text)}#page-today .appt-action-bar button[onclick*="cancelAppt"],#page-today .appt-action-bar button[onclick*="markNoShow"]{background:white!important;border-color:var(--border)!important;color:var(--text-muted)!important}#page-today .appt-action-bar button[onclick*="markLateCancel"]{background:white!important;border-color:#FDE68A!important;color:var(--gold-text)!important}#page-today .appt-action-bar button[onclick*="cancelAppt"]:hover,#page-today .appt-action-bar button[onclick*="markNoShow"]:hover{background:var(--red-dim)!important;border-color:#FECACA!important;color:var(--red-text)!important}#page-today .appt-action-bar button[onclick*="markLateCancel"]:hover{background:var(--gold-dim)!important}#page-today .appt-card>div[style*="background:var(--bg-elevated)"]{padding:12px 16px 14px!important;background:#FAF9FF!important;border-top:1.5px solid var(--border)!important;border-radius:0 0 var(--radius-lg) var(--radius-lg)!important}#page-today .appt-card>div[style*="background:var(--bg-elevated)"]>div:first-child{color:var(--purple-text)!important}#page-today .appt-card>div[style*="background:var(--bg-elevated)"] button{min-height:28px;white-space:normal}#page-today .appt-card>div[style*="background:var(--bg-elevated)"] a{font-weight:700}@media(max-width:640px){#page-today .today-grid{grid-template-columns:1fr;gap:10px}#page-today .appt-card>div:first-child{align-items:flex-start!important}#page-today .appt-card>div:nth-child(2){padding:13px 14px 9px!important;gap:12px!important}#page-today .today-av{width:54px;height:54px}#page-today .appt-card>div:nth-child(2)>div:last-child>div:nth-child(4){align-items:flex-start;flex-direction:column}#page-today .appt-card>div:nth-child(3){padding:0 14px 10px!important}#page-today .appt-card>div:nth-child(4){padding:0 12px 12px!important}#page-today .appt-action-bar .btn-sm{flex:1 1 128px;min-height:40px}#page-today .appt-action-bar>.btn-primary,#page-today .appt-action-bar>.btn-success{min-width:0;flex:1 1 100%}}
@media(max-width:480px){#page-clients .client-grid-pets{gap:5px;align-items:flex-start}.pet-tag{max-width:100%;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3;padding:4px 8px;word-break:normal;overflow-wrap:anywhere}.client-grid-card{min-width:0;overflow:hidden}}
.booking-logo-img{display:block;max-width:180px;max-height:96px;width:auto;height:auto;object-fit:contain;margin:0 auto 10px}.booking-header .booking-logo-img+.booking-biz{margin-top:2px}@media(max-width:640px){.booking-logo-img{max-width:150px;max-height:78px;margin-bottom:8px}}
