.dashboard-body{background:#f8f9fa;min-height:100vh;scrollbar-gutter:stable}.dashboard-header{background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-light-gray);border-top:4px solid var(--color-primary);position:sticky;top:0;z-index:100;box-shadow:0 4px 6px #0000000a}.dashboard-header-content{max-width:1600px;margin:0 auto;padding:var(--space-4) var(--space-6);display:flex;justify-content:space-between;align-items:center}.dashboard-brand .logo{display:flex;align-items:center;gap:var(--space-2);text-decoration:none}.dashboard-brand .logo-text{font-size:1.25rem;font-weight:800;color:var(--color-charcoal)}.dashboard-brand .logo-accent{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dashboard-header-actions{display:flex;align-items:center;gap:var(--space-4)}.notification-btn{position:relative;background:none;border:none;padding:var(--space-2);cursor:pointer;color:var(--color-dark-gray);transition:color .2s}.notification-btn:hover{color:var(--color-primary)}.notification-badge{position:absolute;top:0;right:0;background:var(--color-error);color:var(--color-white);font-size:10px;font-weight:700;padding:2px 5px;border-radius:10px;min-width:16px;text-align:center}.user-menu-btn{display:flex;align-items:center;gap:var(--space-2);background:none;border:none;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-lg);transition:background .2s}.user-menu-btn:hover{background:var(--color-off-white)}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--gradient-primary);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm)}.user-name{font-weight:600;color:var(--color-charcoal)}.dashboard-layout{max-width:1200px;width:100%;margin:0 auto;display:grid;grid-template-columns:240px 1fr;gap:var(--space-6);padding:var(--space-6);box-sizing:border-box}.dashboard-sidebar{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-4);height:fit-content;position:sticky;top:90px;box-shadow:0 20px 40px #00000014;width:240px;min-width:240px}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);text-decoration:none;color:var(--color-dark-gray);font-weight:500;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;border:1px solid transparent}.sidebar-link:hover{background:var(--color-white);color:var(--color-primary);transform:translate(5px);box-shadow:0 4px 12px #0000000d;border-color:#6b46c11a}.sidebar-link.active{background:var(--gradient-primary);color:var(--color-white);font-weight:600;box-shadow:var(--shadow-glow);border-color:transparent}.sidebar-link.active:before{content:none}@keyframes sidebarIndicator{0%{height:0;opacity:0}to{height:60%;opacity:1}}.sidebar-link svg{flex-shrink:0}button#logoutBtn.sidebar-link{margin-top:auto;color:var(--color-error)}button#logoutBtn.sidebar-link:hover{background:#ef44441a;color:var(--color-error);border-color:#ef444433;box-shadow:0 4px 12px #ef44441a}.sidebar-link .badge{margin-left:auto;background:var(--color-error);color:var(--color-white);font-size:var(--text-xs);font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center}.dashboard-main{display:flex;flex-direction:column;gap:var(--space-6);min-width:0;overflow-x:hidden;width:100%}.dashboard-section{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-6);position:relative;overflow:hidden;box-shadow:var(--shadow-premium)}.dashboard-section:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);opacity:.6}.dashboard-title{font-size:var(--text-3xl);font-weight:800;margin-bottom:var(--space-6);color:var(--color-charcoal)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.section-title{font-size:var(--text-xl);font-weight:700;color:var(--color-charcoal)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-5)}.stat-card{display:flex;gap:var(--space-4);padding:var(--space-5);background:#ffffff80;border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:all var(--transition-base)}.stat-card:hover{transform:translateY(-2px)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-content{flex:1}.stat-label{font-size:var(--text-sm);color:var(--color-gray);margin-bottom:var(--space-1)}.stat-value{font-size:var(--text-3xl);font-weight:800;color:var(--color-charcoal);margin-bottom:var(--space-1)}.stat-change{font-size:var(--text-xs);color:var(--color-gray)}.stat-change.positive{color:var(--color-success)}.chart-controls{display:flex;gap:var(--space-2)}.chart-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--color-light-gray);background:var(--color-white);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;color:var(--color-dark-gray);cursor:pointer;transition:all .2s}.chart-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.chart-btn.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.chart-card{padding:var(--space-4);background:var(--color-off-white);border-radius:var(--radius-lg);margin-top:var(--space-4)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-6)}.calendar-widget{display:flex;flex-direction:column;gap:var(--space-3)}.appointment-item{display:flex;gap:var(--space-4);padding:var(--space-4);background:var(--color-off-white);border-radius:var(--radius-lg);border-left:3px solid var(--color-primary);transition:all .2s}.appointment-item:hover{transform:translate(4px);box-shadow:0 4px 12px #0000000f}.appointment-item.upcoming{border-left-color:var(--color-warning);opacity:.7}.appointment-time{font-weight:700;color:var(--color-primary);font-size:var(--text-sm);min-width:70px}.appointment-details{flex:1;display:flex;justify-content:space-between;align-items:center}.appointment-client{display:flex;gap:var(--space-3);align-items:center}.client-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--gradient-secondary);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm)}.client-name{font-weight:600;color:var(--color-charcoal);margin-bottom:2px}.appointment-service{font-size:var(--text-sm);color:var(--color-gray)}.appointment-duration{font-size:var(--text-sm);color:var(--color-gray);font-weight:600}.messages-widget{display:flex;flex-direction:column;gap:var(--space-3)}.message-item{display:flex;gap:var(--space-3);padding:var(--space-4);background:var(--color-off-white);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s;position:relative}.message-item:hover{background:#f0f0f0}.message-item.unread{background:#6b46c10d}.message-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--gradient-accent);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);flex-shrink:0}.message-content{flex:1;min-width:0}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.message-sender{font-weight:600;color:var(--color-charcoal)}.message-time{font-size:var(--text-xs);color:var(--color-gray)}.message-preview{font-size:var(--text-sm);color:var(--color-dark-gray);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-indicator{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-primary);position:absolute;top:50%;right:var(--space-4);transform:translateY(-50%)}.payments-table{overflow-x:auto}.payments-table table{width:100%;border-collapse:collapse}.payments-table thead{background:var(--color-off-white)}.payments-table th{text-align:left;padding:var(--space-3) var(--space-4);font-weight:600;color:var(--color-dark-gray);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em}.payments-table td{padding:var(--space-4);border-bottom:1px solid var(--color-light-gray);color:var(--color-charcoal)}.payments-table tr:last-child td{border-bottom:none}.payments-table tr:hover{background:var(--color-off-white)}.table-client{display:flex;align-items:center;gap:var(--space-2)}.client-avatar-sm{width:32px;height:32px;border-radius:var(--radius-full);background:var(--gradient-primary);color:var(--color-white);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px}.amount{font-weight:700;color:var(--color-charcoal)}.status-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.status-badge.paid{background:#10b9811a;color:var(--color-success)}.status-badge.pending{background:#f59e0b1a;color:var(--color-warning)}@media(max-width:1024px){.dashboard-layout{grid-template-columns:1fr;padding:var(--space-4)}}@media(max-width:768px){.dashboard-layout{padding:var(--space-3, 12px)}.dashboard-grid,.stats-grid{grid-template-columns:1fr}#insightsContainer,.analytics-charts-grid,[style*="grid-template-columns:repeat(2, 1fr)"],.clients-grid{grid-template-columns:1fr!important}.clients-search{width:100%!important;max-width:100%!important}[style*="grid-template-columns:repeat(auto-fit,minmax(140px"]{grid-template-columns:repeat(2,1fr)!important}.dashboard-header-actions{gap:8px!important}.dashboard-header-actions .language-switcher{margin-right:4px!important}.dashboard-hero,[style*="padding:28px 32px"]{padding:18px 16px!important}[style*="max-width:1600px"]{padding:0!important}.cal-appt-card{flex-wrap:wrap;gap:8px}.clients-header{flex-direction:column!important;align-items:flex-start!important}}@media(max-width:480px){.dashboard-section{padding:16px 12px!important}.stat-card{padding:16px!important}#insightsContainer .insight-body{font-size:13px!important}}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-light-gray)}.calendar-nav{display:flex;align-items:center;gap:16px}.calendar-month{font-size:20px;font-weight:700;color:var(--color-charcoal);min-width:200px;text-align:center}.btn-icon{background:none;border:1px solid var(--color-light-gray);padding:8px;border-radius:8px;cursor:pointer;color:var(--color-gray);transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-icon:hover{border-color:var(--color-primary);color:var(--color-primary);background:#6b46c10d}.view-toggle{display:flex;gap:8px;background:#f8f9fa;padding:4px;border-radius:12px}.view-btn{padding:8px 16px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:600;color:var(--color-gray);cursor:pointer;transition:all .2s}.view-btn.active{background:#fff;color:var(--color-primary);box-shadow:0 2px 4px #0000000d}.calendar-grid{background:var(--color-off-white);border-radius:12px;padding:16px}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:12px}.calendar-day-name{text-align:center;font-weight:700;font-size:12px;color:var(--color-gray);padding:8px;text-transform:uppercase;letter-spacing:.05em}.calendar-body{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;min-height:400px}.calendar-day{background:#fff;border-radius:8px;padding:8px;cursor:pointer;transition:all .2s;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:80px;border:1px solid transparent}.calendar-day:hover{background:#6b46c10d;transform:scale(1.02);border-color:var(--color-primary)}.calendar-day.today{background:var(--color-primary);color:#fff}.calendar-day.today .day-number{color:#fff}.calendar-day.other-month{opacity:.3;cursor:default}.calendar-day.other-month:hover{transform:none;background:#fff;border-color:transparent}.calendar-day.has-appointments{border:2px solid rgba(107,70,193,.3)}.day-number{font-weight:600;font-size:14px;color:var(--color-charcoal);margin-bottom:4px}.appointment-dots{display:flex;gap:3px;margin-top:auto;padding-top:4px}.appointment-dots .dot{width:5px;height:5px;border-radius:50%;background:var(--color-primary)}.calendar-day.today .appointment-dots .dot{background:#fff}.appointments-timeline{display:flex;flex-direction:column;gap:16px}.timeline-item{display:flex;gap:16px;align-items:flex-start}.timeline-time{font-weight:700;color:var(--color-primary);font-size:14px;min-width:80px;padding-top:12px}.timeline-content{flex:1;padding:16px;border-radius:12px;border-left:3px solid var(--color-primary)}.timeline-content.booked{background:#f8f9fa}.timeline-content.available{background:#10b9810d;border-left-color:var(--color-success);display:flex;align-items:center;justify-content:center;padding:24px}.available-slot{display:flex;align-items:center;gap:8px;color:var(--color-success);font-weight:600}.appointment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.appointment-client-info{display:flex;gap:12px;align-items:center}.appointment-actions{display:flex;gap:8px}.btn-icon-sm{background:none;border:1px solid var(--color-light-gray);padding:6px;border-radius:8px;cursor:pointer;color:var(--color-gray);transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-icon-sm:hover{border-color:var(--color-primary);color:var(--color-primary)}.appointment-details-row{display:flex;gap:16px;font-size:14px;color:var(--color-gray)}.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px}.client-card{background:var(--color-off-white);border-radius:16px;padding:24px;border:1px solid var(--color-off-white);transition:all .25s}.client-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000000f;border-color:#6b46c133}.client-card-header{display:flex;gap:12px;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-off-white)}.client-avatar-large{width:48px;height:48px;border-radius:12px;background:var(--gradient-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}.client-card-name{font-weight:700;font-size:15px;color:var(--color-charcoal);margin-bottom:2px}.client-card-email{font-size:13px;color:var(--color-gray)}.client-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.client-stat{text-align:center;padding:8px;background:#fff;border-radius:8px}.client-stat .stat-label{font-size:11px;color:var(--color-gray);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.client-stat .stat-value{font-size:16px;font-weight:700;color:var(--color-charcoal)}.client-card-actions{display:flex;gap:8px}.client-card-actions .btn-text{flex:1;text-align:center;padding:8px;border-radius:8px;font-size:13px;font-weight:600;color:var(--color-primary);background:#6b46c10f;transition:all .2s}.client-card-actions .btn-text:hover{background:#6b46c11f}.settings-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--color-off-white)}.settings-section:last-child{border-bottom:none}.settings-form{max-width:560px}.form-row{margin-bottom:16px}.form-row label{display:block;font-weight:600;color:var(--color-dark-gray);margin-bottom:6px;font-size:13px}.form-input{width:100%;padding:10px 14px;border:1.5px solid var(--color-light-gray);border-radius:10px;font-size:14px;font-family:var(--font-body);color:var(--color-charcoal);transition:all .2s;outline:none}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6b46c11a}textarea.form-input{resize:vertical;min-height:80px}.form-checkbox{display:flex;align-items:center;gap:10px;margin-bottom:12px}.form-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.form-checkbox label{cursor:pointer;font-size:14px;color:var(--color-dark-gray)}.settings-form .btn-primary{margin-top:16px}.messages-section{padding:0!important}.messages-layout{display:grid;grid-template-columns:340px 1fr;gap:0;background:var(--color-white);border-radius:20px;overflow:hidden;box-shadow:0 4px 24px #6b46c10f,0 1px 4px #0000000a;min-height:680px;border:1px solid rgba(107,70,193,.08)}.conversations-panel{border-right:1px solid #F0EDF6;overflow-y:auto;display:flex;flex-direction:column;background:#fcfbfe}.conversations-header{padding:20px 20px 0;position:sticky;top:0;background:#fcfbfe;z-index:2;display:flex;align-items:center;justify-content:space-between}.conversations-header .section-title{font-size:20px;font-weight:800;color:var(--color-charcoal);margin:0}.conversations-header .btn-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;border:none;box-shadow:0 2px 8px #6b46c140;transition:transform .2s,box-shadow .2s}.conversations-header .btn-icon:hover{transform:scale(1.08);box-shadow:0 4px 14px #6b46c159;background:linear-gradient(135deg,#5b36b1,#7b4ce6);color:#fff}.search-box-messages{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:16px 20px 8px;background:#fff;border:1.5px solid #E8E5F0;border-radius:12px;transition:all .25s}.search-box-messages:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #6b46c114;background:#fff}.search-box-messages svg{color:#9ca3af;flex-shrink:0}.search-box-messages input{border:none;outline:none;width:100%;font-size:13.5px;color:var(--color-charcoal);background:transparent;font-family:var(--font-body)}.search-box-messages input::placeholder{color:#b0aec0}.conversations-list{flex:1;overflow-y:auto;padding:4px 0}.conversation-item{display:flex;gap:12px;padding:14px 20px;cursor:pointer;transition:all .2s ease;border-left:3px solid transparent;position:relative;align-items:center}.conversation-item:hover{background:#6b46c10a}.conversation-item.active{background:linear-gradient(90deg,#6b46c114,#6b46c105);border-left-color:var(--color-primary)}.conversation-item+.conversation-item{border-top:1px solid #F5F3FA}.conversation-avatar{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0;position:relative;box-shadow:0 2px 8px #00000014}.conversation-item:nth-child(1) .conversation-avatar{background:linear-gradient(135deg,#6b46c1,#8b5cf6)}.conversation-item:nth-child(2) .conversation-avatar{background:linear-gradient(135deg,#0d9488,#2dd4bf)}.conversation-item:nth-child(3) .conversation-avatar{background:linear-gradient(135deg,#d97706,#fbbf24)}.conversation-item:nth-child(4) .conversation-avatar{background:linear-gradient(135deg,#e11d48,#fb7185)}.conversation-item:nth-child(5) .conversation-avatar{background:linear-gradient(135deg,#2563eb,#60a5fa)}.conversation-item:nth-child(6) .conversation-avatar{background:linear-gradient(135deg,#7c3aed,#a78bfa)}.online-dot{position:absolute;bottom:-1px;right:-1px;width:13px;height:13px;border-radius:50%;background:#10b981;border:2.5px solid #FCFBFE;z-index:1}.online-dot.away{background:#f59e0b}.conversation-content{flex:1;min-width:0}.conversation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}.conversation-name{font-weight:700;font-size:14px;color:var(--color-charcoal)}.conversation-item.active .conversation-name{color:#4c1d95}.conversation-time{font-size:11.5px;color:#9ca3af;white-space:nowrap;font-weight:500}.conversation-preview{font-size:13px;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.conversation-item.unread .conversation-name{font-weight:800}.conversation-item.unread .conversation-preview{color:var(--color-charcoal);font-weight:600}.unread-badge{background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;font-size:11px;font-weight:700;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 7px;flex-shrink:0;box-shadow:0 2px 6px #6b46c14d}.typing-dots{display:inline-flex;gap:3px;align-items:center}.typing-dots span{width:5px;height:5px;border-radius:50%;background:#8b5cf6;animation:typingBounce 1.2s infinite}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.chat-panel{display:flex;flex-direction:column;background:#fafafa}.chat-header{padding:16px 24px;border-bottom:1px solid #F0EDF6;display:flex;align-items:center;justify-content:space-between;background:#fff}.chat-client-info{display:flex;align-items:center;gap:12px}.client-avatar-large{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;box-shadow:0 2px 8px #6b46c133}.chat-client-name{font-weight:700;font-size:15px;color:var(--color-charcoal)}.chat-client-status{font-size:12.5px;color:#10b981;font-weight:600;display:flex;align-items:center;gap:5px}.chat-client-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#10b981;display:inline-block;animation:statusPulse 2s infinite}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.5}}.chat-actions{display:flex;gap:8px}.chat-actions .btn-icon{width:38px;height:38px;border-radius:10px;border:1px solid #E8E5F0;color:#6b7280;background:#fff}.chat-actions .btn-icon:hover{border-color:var(--color-primary);color:var(--color-primary);background:#6b46c10a}.chat-messages{flex:1;padding:24px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;background:linear-gradient(180deg,#fafafa,#f5f3fa)}.chat-date-divider{text-align:center;margin:16px 0;position:relative}.chat-date-divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#e8e5f0}.chat-date-divider span,.chat-date-divider{position:relative;z-index:1;display:inline-block;background:linear-gradient(135deg,#ede9f6,#f5f3fa);padding:4px 16px;border-radius:20px;font-size:12px;font-weight:600;color:#7c6fa0;letter-spacing:.02em}.chat-message{display:flex;gap:10px;max-width:72%;animation:messageSlideIn .3s ease}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message.sent{margin-left:auto;flex-direction:row-reverse}.message-avatar{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;flex-shrink:0;align-self:flex-end;box-shadow:0 2px 6px #6b46c126}.message-bubble{padding:12px 16px;border-radius:18px;font-size:14px;line-height:1.55;position:relative;box-shadow:0 1px 3px #0000000a}.chat-message.received .message-bubble{background:#fff;color:var(--color-charcoal);border-bottom-left-radius:6px;border:1px solid #F0EDF6}.chat-message.sent .message-bubble{background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;border-bottom-right-radius:6px;box-shadow:0 2px 10px #6b46c133}.message-text{word-wrap:break-word}.message-time{font-size:11px;margin-top:5px;display:flex;align-items:center;gap:4px}.chat-message.received .message-time{color:#9ca3af}.chat-message.sent .message-time{color:#ffffffb3;justify-content:flex-end}.read-receipt{font-size:13px;letter-spacing:-2px}.read-receipt.read{color:#ffffffe6}.ai-suggestions-bar{padding:12px 24px;border-top:1px solid #F0EDF6;background:linear-gradient(135deg,#6b46c108,#3b82f608)}.ai-suggestions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ai-suggestions-label{font-size:12px;font-weight:700;color:#6b46c1;display:flex;align-items:center;gap:5px}.ai-suggestions-toggle{font-size:11px;color:#9ca3af;background:none;border:none;cursor:pointer;font-weight:500;transition:color .2s}.ai-suggestions-toggle:hover{color:#6b46c1}.ai-suggestion-chips{display:flex;flex-wrap:wrap;gap:8px}.ai-chip{padding:7px 16px;border-radius:20px;border:1.5px solid rgba(107,70,193,.15);background:#fff;font-size:13px;cursor:pointer;transition:all .2s;color:#4c1d95;font-weight:500;box-shadow:0 1px 3px #6b46c10f}.ai-chip:hover{background:linear-gradient(135deg,#6b46c114,#8b5cf614);border-color:#6b46c14d;transform:translateY(-1px);box-shadow:0 3px 8px #6b46c11f}.chat-input-area{padding:16px 24px;border-top:1px solid #F0EDF6;display:flex;gap:10px;align-items:center;background:#fff}.chat-input-area .btn-icon{width:40px;height:40px;border-radius:12px;border:none;color:#9ca3af;background:transparent;flex-shrink:0;transition:all .2s}.chat-input-area .btn-icon:hover{color:var(--color-primary);background:#6b46c10f}.chat-input-area input[type=text],.chat-input-area .chat-input{flex:1;padding:11px 18px;border:1.5px solid #E8E5F0;border-radius:24px;font-size:14px;outline:none;font-family:var(--font-body);color:var(--color-charcoal);background:#f9f8fc;transition:all .25s}.chat-input-area input[type=text]:focus,.chat-input-area .chat-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #6b46c114;background:#fff}.chat-input-area input[type=text]::placeholder{color:#b0aec0}.chat-input-area .btn-send{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 3px 10px #6b46c140;transition:all .2s}.chat-input-area .btn-send:hover{transform:scale(1.06);box-shadow:0 4px 14px #6b46c159}.chat-input-area .btn-send:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.chat-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#b0aec0;padding:40px;text-align:center}.chat-empty-state svg{width:64px;height:64px;color:#d4d0e5}.chat-empty-state h3{font-size:18px;font-weight:700;color:#7c6fa0;margin:8px 0 0}.chat-empty-state p{font-size:14px;max-width:280px}@media(max-width:900px){.messages-layout{grid-template-columns:1fr;min-height:auto}.conversations-panel{max-height:300px;border-right:none;border-bottom:1px solid #F0EDF6}.chat-panel{min-height:400px}}.earnings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.earnings-card{background:var(--color-off-white);border-radius:12px;padding:20px;text-align:center}.earnings-card .label{font-size:13px;color:var(--color-gray);font-weight:600;margin-bottom:8px}.earnings-card .value{font-size:24px;font-weight:800;color:var(--color-charcoal)}@media(max-width:768px){.messages-layout,.clients-grid{grid-template-columns:1fr}}.dash-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:60vh;gap:24px}.dash-loading .spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#6b46c1;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-group{max-width:860px;width:100%;padding:0 24px}.skeleton-card{background:#ffffffb3;border-radius:16px;padding:28px;margin-bottom:16px;border:1px solid rgba(255,255,255,.4)}.skeleton-line{height:14px;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:6px;margin-bottom:12px}.skeleton-line.w-40{width:40%}.skeleton-line.w-60{width:60%}.skeleton-line.w-80{width:80%}.skeleton-line.w-100{width:100%}.skeleton-line.h-lg{height:24px;margin-bottom:16px}.skeleton-circle{width:80px;height:80px;border-radius:50%;background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6,#e5e7eb 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.completeness-ring{position:relative;width:80px;height:80px}.completeness-ring svg{transform:rotate(-90deg)}.completeness-ring .ring-bg{fill:none;stroke:#e5e7eb;stroke-width:6}.completeness-ring .ring-fg{fill:none;stroke:#6b46c1;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.completeness-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;color:#111827}.dash-card{background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.4);border-radius:16px;padding:28px;box-shadow:0 12px 40px -10px #00000026,0 4px 12px -2px #0000000d;position:relative;overflow:hidden;margin-bottom:24px;width:100%;box-sizing:border-box}.dash-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(135deg,#6b46c1,#8b5cf6)}.bio-counter{text-align:right;font-size:12px;color:#9ca3af;margin-top:4px;transition:color .2s}.bio-counter.warn{color:#f59e0b}.bio-counter.over{color:#ef4444;font-weight:600}.photo-upload-area{display:flex;align-items:center;gap:20px;padding:20px;background:#6b46c108;border:2px dashed rgba(107,70,193,.2);border-radius:14px;margin-bottom:24px;transition:all .3s}.photo-upload-area:hover{border-color:#6b46c166;background:#6b46c10f}.photo-preview{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid rgba(107,70,193,.2);background:#f3f4f6;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-upload-text{flex:1}.photo-upload-text h4{margin:0 0 4px;font-size:14px;font-weight:600;color:#111827}.photo-upload-text p{margin:0;font-size:13px;color:#6b7280}.photo-upload-btn{padding:8px 16px;background:#fff;border:1.5px solid #6B46C1;border-radius:8px;color:#6b46c1;font-weight:600;font-size:13px;cursor:pointer;transition:all .2s}.photo-upload-btn:hover{background:#6b46c1;color:#fff}.save-indicator{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;opacity:0;transition:opacity .3s;margin-left:12px}.save-indicator.show{opacity:1}.save-indicator.success{background:#05966914;color:#059669}.save-indicator.saving{background:#6b46c114;color:#6b46c1}.dash-form-input.dirty{border-color:#f59e0b}.collapsible-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:16px 0;margin:0;border-bottom:1px solid #e5e7eb;-webkit-user-select:none;user-select:none;transition:all .2s}.collapsible-header:hover{color:#6b46c1}.collapsible-header .section-label{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:#111827}.collapsible-header:hover .section-label{color:#6b46c1}.collapsible-header .chevron{width:20px;height:20px;transition:transform .3s cubic-bezier(.4,0,.2,1);color:#9ca3af;flex-shrink:0}.collapsible-header.open .chevron{transform:rotate(180deg);color:#6b46c1}.collapsible-body{max-height:0;overflow:hidden;transition:max-height .35s cubic-bezier(.4,0,.2,1),padding .35s;padding:0}.collapsible-body.open{max-height:2000px;padding:20px 0 8px}.hamburger-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;color:#374151}@media(max-width:1024px){.hamburger-btn{display:flex;align-items:center}.dashboard-sidebar{position:fixed;left:-280px;top:0;bottom:0;width:260px;z-index:200;transition:left .3s cubic-bezier(.4,0,.2,1);border-radius:0 16px 16px 0;padding-top:80px}.dashboard-sidebar.open{left:0}.sidebar-overlay{position:fixed;inset:0;background:#0006;z-index:199;opacity:0;pointer-events:none;transition:opacity .3s}.sidebar-overlay.open{opacity:1;pointer-events:auto}.sidebar-nav{flex-direction:column;overflow-x:visible}.sidebar-link span{display:inline}.dashboard-layout{grid-template-columns:1fr}}.dash-form-row{margin-bottom:16px}.dash-form-row label{display:block;font-weight:600;color:#4b5563;margin-bottom:6px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-form-input{width:100%;padding:10px 14px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:14px;font-family:var(--font-body);color:#2d2d2d;transition:all .2s;outline:none}.dash-form-input:focus{border-color:#6b46c1;box-shadow:0 0 0 3px #6b46c11a}textarea.dash-form-input{resize:vertical;min-height:80px}.dash-form-input[readonly]{opacity:.7;cursor:not-allowed}.dash-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}@media(max-width:640px){.dash-form-grid{grid-template-columns:1fr}}.dash-btn-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .25s}.dash-btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a,0 0 20px #6b46c14d}.dash-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.dash-btn-outline{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:#fff;color:#6b46c1;border:2px solid #6B46C1;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .25s}.dash-btn-outline:hover{background:#6b46c1;color:#fff;transform:translateY(-2px)}.dash-btn-danger{display:inline-flex;align-items:center;gap:8px;padding:10px 24px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .25s}.dash-btn-danger:hover{background:#dc2626;transform:translateY(-2px)}.stripe-card{border-radius:16px;padding:24px;display:flex;gap:16px;align-items:flex-start;margin-bottom:20px}.stripe-card.not-connected{background:#6b46c10a;border:1px solid rgba(107,70,193,.15)}.stripe-card.connected{background:#d1fae5;border:1px solid #86efac}.stripe-card.pending{background:#fef3c7;border:1px solid #FDE68A}.info-banner{background:#eef2ff;border:1px solid #C7D2FE;border-radius:12px;padding:16px;display:flex;gap:12px;align-items:flex-start;margin-bottom:20px}.info-banner p{margin:0;color:#3730a3;font-size:14px;line-height:1.5;word-break:break-word}.info-banner strong{color:#4338ca}.section-page{display:none;width:100%;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .25s ease}.section-page.active{display:block;width:100%;opacity:1;transform:translateY(0)}.dash-form-input.field-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.field-error-msg{color:#ef4444;font-size:12px;margin-top:4px;display:none}.field-error-msg.show{display:block}@media(max-width:480px){#galleryGrid{grid-template-columns:repeat(2,1fr)!important}}@media(hover:none)and (pointer:coarse){.gallery-delete-btn{opacity:.85!important}}.section-title-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.section-title-bar h1{font-size:1.1rem;font-weight:700;color:#374151;margin:0;letter-spacing:-.01em}.section-title-bar .section-badge{font-size:11px;font-weight:600;padding:2px 10px;border-radius:20px;background:#6b46c114;color:#6b46c1}.checkbox-grid{display:flex;flex-wrap:wrap;gap:10px}.checkbox-grid label{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;color:#374151;cursor:pointer;transition:all .2s;min-width:100px}.checkbox-grid label:has(input:checked){border-color:#6b46c1;background:#6b46c10a;color:#6b46c1;font-weight:600}.checkbox-grid input[type=checkbox]{accent-color:#6B46C1;width:16px;height:16px}.svc-edit-row{display:flex;gap:12px;align-items:center;padding:12px 16px;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:10px;flex-wrap:wrap;transition:all .2s}.svc-edit-row:has(input[type=checkbox]:checked){border-color:#6b46c1;background:#6b46c106}.svc-edit-row label{flex:1;min-width:140px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svc-edit-row .svc-fields{display:flex;gap:12px;align-items:center}.svc-edit-row .svc-fields input{width:100px;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px}.dashboard-main{min-height:calc(100vh - 200px)}.review-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:20px;margin-bottom:14px;transition:border-color .2s,box-shadow .2s}.review-card:hover{border-color:#6b46c140;box-shadow:0 4px 12px #6b46c10f}.review-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.review-client-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.review-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#6b46c1,#8b5cf6);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.5px}.review-client-name{font-weight:700;font-size:14px;color:#111827}.review-stars{display:flex;gap:2px;margin-top:2px}.review-star{color:#d4af37;font-size:13px}.review-star.empty{color:#d1d5db}.review-date{font-size:11px;color:#9ca3af;white-space:nowrap;flex-shrink:0;margin-top:2px}.review-repeat-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#6b7280;background:#6b728014;padding:2px 8px;border-radius:10px;margin-top:4px}.review-text{font-size:14px;color:#374151;line-height:1.6;margin:8px 0;font-style:italic}.review-photo-row{display:flex;align-items:center;gap:12px;margin:10px 0;padding:10px;background:#f9fafb;border-radius:10px}.review-photo-thumb{width:56px;height:56px;border-radius:8px;object-fit:cover;border:1px solid #e5e7eb;flex-shrink:0}.review-photo-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:6px}.review-photo-status.visible{background:#05966914;color:#059669}.review-photo-status.flagged{background:#dc262614;color:#dc2626}.review-report-btn{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#ef4444;background:none;border:1px solid rgba(239,68,68,.2);padding:3px 10px;border-radius:6px;cursor:pointer;transition:all .2s}.review-report-btn:hover{background:#ef44440f;border-color:#ef4444}.review-published-box{background:#0596690a;border:1px solid rgba(5,150,105,.15);border-radius:10px;padding:14px;margin-top:10px}.review-published-box p{margin:0;font-size:13px;color:#065f46;line-height:1.5}.review-draft-box{background:#7c3aed0a;border:1px solid rgba(124,58,237,.15);border-radius:10px;padding:14px;margin-top:10px}.review-draft-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:#7c3aed;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.review-draft-text{font-size:13px;color:#4b5563;line-height:1.5;margin:0 0 10px}.review-edit-area{margin-top:10px;padding:14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.review-edit-area textarea{width:100%;min-height:80px;padding:10px 12px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:13px;font-family:var(--font-body);resize:vertical;outline:none;transition:border-color .2s}.review-edit-area textarea:focus{border-color:#6b46c1;box-shadow:0 0 0 3px #6b46c11a}.review-actions{display:flex;gap:10px;margin-top:10px;align-items:center}.review-empty-state{text-align:center;padding:48px 20px}.review-empty-icon{width:64px;height:64px;margin:0 auto 16px;background:#6b46c10f;border-radius:50%;display:flex;align-items:center;justify-content:center}.review-refresh-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:12px;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s}.review-refresh-btn:hover{border-color:#6b46c1;color:#6b46c1}.bh-grid{display:flex;flex-direction:column;gap:8px}.bh-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;transition:all .2s}.bh-row.active{background:#6b46c10a;border-color:#6b46c133}.bh-day-label{width:90px;font-size:13px;font-weight:700;color:#111827;flex-shrink:0}.bh-row:not(.active) .bh-day-label{color:#9ca3af}.bh-closed-label{font-size:12px;color:#9ca3af;font-style:italic}.bh-times{display:flex;align-items:center;gap:6px;flex:1}.bh-times input[type=time]{padding:6px 8px;border:1px solid #d1d5db;border-radius:7px;font-size:13px;font-family:var(--font-body);width:110px}.bh-times input[type=time]:focus{border-color:#6b46c1;outline:none;box-shadow:0 0 0 2px #6b46c11a}.bh-times .bh-sep{font-size:12px;color:#9ca3af;font-weight:600}@media(max-width:640px){.bh-row{flex-wrap:wrap}.bh-day-label{width:70px}.bh-times input[type=time]{width:90px}}.cp-options{display:flex;gap:10px;flex-wrap:wrap}.cp-option{flex:1;min-width:160px;padding:16px;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .25s;background:#fff;text-align:left}.cp-option:hover{border-color:#6b46c14d}.cp-option.active{border-color:#6b46c1;background:#6b46c10a;box-shadow:0 0 0 3px #6b46c11a}.cp-option-title{font-size:14px;font-weight:700;color:#111827;margin:0 0 4px;display:flex;align-items:center;gap:6px}.cp-option.active .cp-option-title{color:#6b46c1}.cp-option-desc{font-size:12px;color:#6b7280;line-height:1.4;margin:0}.cp-radio{width:18px;height:18px;border-radius:50%;border:2px solid #d1d5db;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.cp-option.active .cp-radio{border-color:#6b46c1;background:#6b46c1}.cp-option.active .cp-radio:after{content:"";width:6px;height:6px;border-radius:50%;background:#fff}.toggle-switch{position:relative;width:40px;height:22px;border-radius:11px;background:#d1d5db;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle-switch.active{background:#6b46c1}.toggle-switch .toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:9px;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle-switch.active .toggle-knob{transform:translate(18px)}.preview-client-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1.5px solid rgba(107,70,193,.3);border-radius:10px;background:#6b46c10a;color:#6b46c1;font-size:13px;font-weight:600;cursor:pointer;transition:all .25s;text-decoration:none}.preview-client-btn:hover{background:#6b46c1;color:#fff;border-color:#6b46c1;transform:translateY(-1px);box-shadow:0 4px 12px #6b46c133}
