@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Poppins:wght@300;400;500;600&display=swap);:root{--primary:#d4a574;--primary-dark:#b8935f;--secondary:#2d3436;--accent:#e8d5c4;--bg:#faf8f6;--text:#2d3436;--text-light:#636e72;--border:#e1d7cf;--success:#6ab04c;--danger:#eb4d4b;--warning:#f0932b;--shadow:0 4px 20px #00000014;--shadow-lg:0 10px 40px #0000001f}*{box-sizing:border-box;margin:0;padding:0}body{background:#faf8f6;background:var(--bg);color:#2d3436;color:var(--text);font-family:Poppins,sans-serif;line-height:1.6}h1,h2,h3{font-family:Playfair Display,serif;font-weight:600}.salon-logo{height:auto;max-height:204.8px;max-width:204.8px;object-fit:contain;transition:transform .3s ease;width:auto}.loading{color:#636e72;color:var(--text-light);font-size:1.2rem}.loading,.login-page{align-items:center;display:flex;justify-content:center;min-height:100vh}.login-page{background:linear-gradient(135deg,#e8d5c4,#faf8f6);background:linear-gradient(135deg,var(--accent) 0,var(--bg) 100%);padding:20px}.login-container{animation:slideUp .5s ease;background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);max-width:400px;padding:50px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-container h1{color:#d4a574;color:var(--primary);font-size:2.5rem;margin-bottom:30px;text-align:center}.login-container form{display:flex;flex-direction:column;gap:20px}.login-container input{border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:10px;font-family:Poppins,sans-serif;font-size:1rem;padding:15px;transition:all .3s ease}.login-container input:focus{border-color:#d4a574;border-color:var(--primary);box-shadow:0 0 0 3px #d4a5741a;outline:none}.login-container button{background:#d4a574;background:var(--primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:Poppins,sans-serif;font-size:1rem;font-weight:600;padding:15px;transition:all .3s ease}.login-container button:hover{background:#b8935f;background:var(--primary-dark);box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);transform:translateY(-2px)}.login-container .error{color:#eb4d4b;color:var(--danger);margin:0;text-align:center}.login-container .hint{color:#636e72;color:var(--text-light);font-size:.85rem;margin-top:10px;text-align:center}.booking-page{background:linear-gradient(180deg,#e8d5c4,#faf8f6);background:linear-gradient(to bottom,var(--accent),var(--bg));min-height:100vh}.public-nav{background:#fff;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);padding:30px;text-align:center}.public-nav h1{color:#d4a574;color:var(--primary);font-size:2.5rem}.booking-container{margin:50px auto;max-width:1200px;padding:20px}.booking-form{animation:fadeIn .6s ease;background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);padding:40px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:10px;font-family:Poppins,sans-serif;font-size:1rem;padding:12px 15px;transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#d4a574;border-color:var(--primary);box-shadow:0 0 0 3px #d4a5741a;outline:none}.form-row{grid-gap:20px;gap:20px;grid-template-columns:1fr 1fr}.submit-btn{background:#d4a574;background:var(--primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600;margin-top:10px;padding:15px;transition:all .3s ease;width:100%}.submit-btn:hover{background:#b8935f;background:var(--primary-dark);box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);transform:translateY(-2px)}.success-message{animation:scaleIn .5s ease;background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);padding:60px;text-align:center}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.success-message h2{color:#6ab04c;color:var(--success);font-size:2.5rem;margin-bottom:15px}.success-message p{color:#636e72;color:var(--text-light);font-size:1.2rem}.dashboard{display:flex;flex-direction:column;min-height:100vh}.dashboard-nav{align-items:center;background:#2d3436;background:var(--secondary);box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);color:#fff;display:flex;justify-content:space-between;padding:20px 40px}.dashboard-nav h1{color:#d4a574;color:var(--primary);font-size:1.8rem}.nav-links{align-items:center;display:flex;gap:30px}.nav-links a{border-bottom:2px solid #0000;color:#fff;font-weight:500;padding:8px 0;text-decoration:none;transition:all .3s ease}.nav-links a:hover{border-bottom-color:#d4a574;border-bottom-color:var(--primary);color:#d4a574;color:var(--primary)}.logout-btn{background:#0000;border:2px solid #fff;border-radius:20px;color:#fff;cursor:pointer;font-family:Poppins,sans-serif;font-weight:500;padding:8px 20px;transition:all .3s ease}.logout-btn:hover{background:#fff;color:#2d3436;color:var(--secondary)}.dashboard-content{flex:1 1;margin:0 auto;max-width:1400px;padding:40px;width:100%}.overview h2{font-size:2rem;margin-bottom:30px}.stats-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.stat-card{border-radius:15px;padding:30px;transition:all .3s ease}.stat-card:hover{box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);transform:translateY(-5px)}.stat-card.alert{border-left-color:#eb4d4b;border-left-color:var(--danger)}.stat-card h3{color:#d4a574;color:var(--primary);font-size:2.5rem;margin-bottom:10px}.stat-card.alert h3{color:#eb4d4b;color:var(--danger)}.stat-card p{color:#636e72;color:var(--text-light);font-weight:500}.today-appointments-section{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);margin-top:30px;padding:30px}.today-appointments-section h3{border-bottom:2px solid #e1d7cf;border-bottom:2px solid var(--border);color:#d4a574;color:var(--primary);font-size:1.5rem;margin-bottom:20px;padding-bottom:15px}.today-appointments-section table{margin-top:0}.today-appointments-section .no-results{color:#636e72;color:var(--text-light);font-style:italic;padding:40px;text-align:center}.client-link{color:#d4a574;color:var(--primary);cursor:pointer;font-weight:600;text-decoration:underline;transition:all .3s ease}.client-link:hover{color:#2d3436;color:var(--secondary);text-decoration:none}.client-info-details{padding:20px 0}.client-info-details>p{font-size:1rem;line-height:1.6;margin-bottom:15px}.client-notes-section{background:#faf8f6;background:var(--bg);border-left:4px solid #d4a574;border-left:4px solid var(--primary);border-radius:10px;margin-top:20px;padding:15px}.client-notes-section p:first-child{color:#d4a574;color:var(--primary);font-weight:600;margin-bottom:10px}.notes-content{color:#2d3436;color:var(--text);line-height:1.6;white-space:pre-wrap}.client-history-section{border-top:2px solid #e1d7cf;border-top:2px solid var(--border);margin-top:30px;padding-top:20px}.client-history-section h4{color:#d4a574;color:var(--primary);font-size:1.3rem;margin-bottom:15px}.history-table{font-size:.95rem;margin-top:15px}.history-table th{color:#fff;padding:12px}.history-table td{padding:12px}table{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);margin-top:20px;overflow:hidden;width:100%}thead{background:#2d3436;background:var(--secondary);color:#fff}th{font-family:Poppins,sans-serif;font-weight:600;text-align:left}td,th{padding:15px}td{border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border)}tbody tr:hover{background:#e8d5c4;background:var(--accent)}tbody tr.low-stock{background:#ffe5e5}.status{border-radius:20px;display:inline-block;font-size:.85rem;font-weight:600;padding:5px 15px}.status.scheduled{background:#dfe6e9;color:#2d3436}.status.completed{background:#d4edda;color:#155724}.status.cancelled{background:#f8d7da;color:#721c24}.status.low{background:#eb4d4b;background:var(--danger);color:#fff}.status.ok{background:#6ab04c;background:var(--success);color:#fff}.header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.header h2{font-size:2rem}.filter-buttons button,.header button{background:#d4a574;background:var(--primary);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;padding:12px 24px;transition:all .3s ease}.filter-buttons button:hover,.header button:hover{background:#b8935f;background:var(--primary-dark);box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);transform:translateY(-2px)}.filter-buttons{display:flex;gap:10px;margin-bottom:20px}.filter-buttons button{background:#fff;border:2px solid #e1d7cf;border:2px solid var(--border);color:#2d3436;color:var(--text)}.filter-buttons button.active{background:#d4a574;background:var(--primary);border-color:#d4a574;border-color:var(--primary);color:#fff}.actions{display:flex;gap:8px}.btn-small{background:#d4a574;background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Poppins,sans-serif;font-size:.85rem;font-weight:500;padding:6px 12px;transition:all .3s ease}.btn-small:hover{opacity:.8;transform:translateY(-1px)}.btn-small.cancel{background:#f0932b;background:var(--warning)}.btn-small.delete{background:#eb4d4b;background:var(--danger)}.services-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:30px}.service-card{background:#fff;border-radius:15px;border-top:4px solid #d4a574;border-top:4px solid var(--primary);box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);padding:25px;transition:all .3s ease}.service-card:hover{box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);transform:translateY(-5px)}.service-card h3{color:#d4a574;color:var(--primary);font-size:1.5rem;margin-bottom:10px}.service-card p{color:#636e72;color:var(--text-light);margin-bottom:15px;min-height:60px}.service-details{border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border);border-top:1px solid #e1d7cf;border-top:1px solid var(--border);display:flex;font-weight:600;justify-content:space-between;margin-bottom:15px;padding:15px 0}.service-details span:first-child{color:#d4a574;color:var(--primary)}.service-actions{display:flex;gap:10px}.service-actions button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-family:Poppins,sans-serif;font-weight:600;padding:10px;transition:all .3s ease}.service-actions button:first-child{background:#d4a574;background:var(--primary);color:#fff}.service-actions button.delete{background:#eb4d4b;background:var(--danger);color:#fff}.service-actions button:hover{opacity:.8;transform:translateY(-2px)}.modal{align-items:center;animation:fadeIn .3s ease;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);max-width:500px;padding:40px;width:100%}.modal-content h3{color:#d4a574;color:var(--primary);font-size:1.8rem;margin-bottom:25px}.modal-content form{display:flex;flex-direction:column;gap:20px}.modal-content input,.modal-content select,.modal-content textarea{border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:10px;font-family:Poppins,sans-serif;font-size:1rem;padding:12px 15px;transition:all .3s ease}.modal-content input:focus,.modal-content select:focus,.modal-content textarea:focus{border-color:#d4a574;border-color:var(--primary);box-shadow:0 0 0 3px #d4a5741a;outline:none}.modal-actions{display:flex;gap:15px;margin-top:10px}.modal-actions button{border:none;border-radius:10px;cursor:pointer;flex:1 1;font-family:Poppins,sans-serif;font-weight:600;padding:12px;transition:all .3s ease}.modal-actions button[type=submit]{background:#d4a574;background:var(--primary);color:#fff}.modal-actions button[type=button]{background:#e1d7cf;background:var(--border);color:#2d3436;color:var(--text)}.modal-actions button:hover{opacity:.8;transform:translateY(-2px)}.image-preview{margin-top:15px;text-align:center}.image-preview img{border-radius:10px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);max-height:250px;max-width:100%;object-fit:cover}.image-label{color:#636e72;color:var(--text-light);font-size:.85rem;font-style:italic;margin-top:8px}.admin-book-appointment{margin:0 auto;max-width:900px}.admin-book-appointment h2{font-size:2rem;margin-bottom:30px}.success-banner{animation:scaleIn .5s ease;background:#6ab04c;background:var(--success);border-radius:15px;color:#fff;padding:40px;text-align:center}.success-banner h3{font-size:2rem;margin:0}.booking-form-container{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);padding:40px}.admin-booking-form{display:flex;flex-direction:column;gap:30px}.form-section{border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border);padding-bottom:25px}.form-section:last-of-type{border-bottom:none}.form-section h3{color:#d4a574;color:var(--primary);font-size:1.3rem;margin-bottom:20px}.client-mode-toggle{background:#faf8f6;background:var(--bg);border-radius:10px;display:flex;gap:10px;margin-bottom:20px;padding:5px}.client-mode-toggle button{background:#0000;border:none;border-radius:8px;color:#636e72;color:var(--text-light);cursor:pointer;flex:1 1;font-family:Poppins,sans-serif;font-weight:600;padding:12px;transition:all .3s ease}.client-mode-toggle button.active{background:#d4a574;background:var(--primary);color:#fff}.client-mode-toggle button:hover:not(.active){background:#e8d5c4;background:var(--accent)}.appointments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.appointments-header h2{font-size:2rem;margin:0}.view-controls{align-items:center;display:flex;gap:15px}.view-switcher{background:#faf8f6;background:var(--bg);border-radius:10px;box-shadow:inset 0 2px 4px #0000000d;display:flex;gap:0;padding:5px}.view-switcher button{background:#0000;border:none;border-radius:8px;color:#636e72;color:var(--text-light);cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;padding:10px 20px;transition:all .3s ease}.view-switcher button.active{background:#d4a574;background:var(--primary);box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);color:#fff}.view-switcher button:hover:not(.active){background:#e8d5c4;background:var(--accent)}.calendar-controls{align-items:center;display:flex;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.nav-controls{align-items:center;display:flex;gap:10px}.nav-btn,.today-btn{background:#fff;border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:8px;color:#2d3436;color:var(--text);cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;padding:8px 16px;transition:all .3s ease}.nav-btn:hover,.today-btn:hover{background:#e8d5c4;background:var(--accent);border-color:#d4a574;border-color:var(--primary)}.current-period{color:#d4a574;color:var(--primary);font-size:1.1rem;font-weight:600;margin-left:15px}.calendar-view{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);overflow-x:auto;padding:20px}.day-view .time-grid{display:flex;position:relative}.time-labels{flex-shrink:0;position:relative;width:80px}.hour-label-group{border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border);display:flex;flex-direction:column}.hour-label-main{align-items:flex-start;font-size:.8rem;font-weight:600;padding:2px 5px}.hour-label-main,.minute-label{color:#636e72;color:var(--text-light);display:flex;flex:1 1}.minute-label{align-items:center;font-size:.7rem;opacity:.6;padding:0 5px}.time-slots-container{flex:1 1;min-height:780px;position:relative}.quarter-hour-slot{border-bottom:1px solid #f0f0f0;height:15px;position:relative}.quarter-hour-slot:nth-child(4n){border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border)}.appointments-layer{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.appointments-layer>*{pointer-events:auto}.week-view{overflow-x:auto}.week-header{grid-gap:1px;background:#e1d7cf;background:var(--border);display:grid;gap:1px;grid-template-columns:60px repeat(7,1fr);margin-bottom:1px}.day-header,.time-column-header{background:#fff}.day-header{padding:15px 10px;text-align:center}.day-header.today{background:#e8d5c4;background:var(--accent)}.day-header .day-name{color:#636e72;color:var(--text-light);font-size:.85rem;font-weight:600;margin-bottom:5px}.day-header .day-number{color:#2d3436;color:var(--text);font-size:1.5rem;font-weight:700}.day-header.today .day-number{color:#d4a574;color:var(--primary)}.week-grid-container{display:flex;position:relative}.week-time-column{background:#fff;border-right:1px solid #e1d7cf;border-right:1px solid var(--border);flex-shrink:0;width:60px}.week-hour-label-group{align-items:center;border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border);display:flex;flex-direction:column}.week-hour-main{align-items:flex-start;font-size:.7rem;font-weight:600;padding-top:2px}.week-hour-main,.week-minute-label{color:#636e72;color:var(--text-light);display:flex;flex:1 1;justify-content:center}.week-minute-label{align-items:center;font-size:.6rem;opacity:.6}.week-days-grid{grid-gap:1px;background:#e1d7cf;background:var(--border);display:grid;flex:1 1;gap:1px;grid-template-columns:repeat(7,1fr)}.week-day-column{background:#fff;min-height:780px;position:relative}.week-day-column .quarter-hour-slot{border-bottom:1px solid #f0f0f0;height:15px}.week-day-column .quarter-hour-slot:nth-child(4n){border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border)}.week-appointments-layer{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.week-appointments-layer>*{pointer-events:auto}.month-view .month-grid{grid-gap:1px;background:#e1d7cf;background:var(--border);display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.month-day-name{background:#2d3436;background:var(--secondary);color:#fff;font-size:.9rem;font-weight:600;padding:15px;text-align:center}.month-day{background:#fff;display:flex;flex-direction:column;min-height:100px;padding:10px}.month-day.empty{background:#faf8f6;background:var(--bg)}.month-day.today{background:#e8d5c4;background:var(--accent)}.month-day .day-number{color:#2d3436;color:var(--text);font-size:1.1rem;font-weight:700;margin-bottom:8px}.month-day.today .day-number{color:#d4a574;color:var(--primary)}.day-appointments{display:flex;flex-direction:column;gap:3px;overflow:hidden}.month-apt{border-radius:4px;font-size:.7rem;font-weight:500;overflow:hidden;padding:3px 6px;text-overflow:ellipsis;white-space:nowrap}.month-apt.pending{background:#fff9e6;border-left:3px solid #f0932b;border-left:3px solid var(--warning);color:#f0932b}.month-apt.scheduled{background:#e3f2fd;border-left:3px solid #1976d2;color:#1976d2}.month-apt.completed{background:#e8f5e9;border-left:3px solid #6ab04c;border-left:3px solid var(--success);color:#2e7d32}.month-apt.cancelled{background:#ffebee;border-left:3px solid #eb4d4b;border-left:3px solid var(--danger);color:#c62828}.more-apts{color:#636e72;color:var(--text-light);font-size:.7rem;font-weight:600;margin-top:3px}.appointment-card{background:#fff;border-left:4px solid #d4a574;border-left:4px solid var(--primary);border-radius:6px;box-shadow:0 2px 4px #0000001a;cursor:pointer;margin:2px 0;overflow:visible;padding:8px;transition:all .2s ease}.appointment-card.positioned{display:flex;flex-direction:row;left:4px;margin:0;overflow:hidden;padding:6px;position:absolute;right:4px;z-index:10}.appointment-card.clickable{cursor:pointer}.appointment-card:hover{box-shadow:0 4px 8px #00000026;z-index:20}.appointment-card.positioned:hover{transform:scale(1.02)}.appointment-card.clickable:hover{transform:scale(1.05)}.appointment-card.pending{background:#fffbf0;border-left-color:#f0932b;border-left-color:var(--warning)}.appointment-card.scheduled{background:#f8fbff;border-left-color:#1976d2}.appointment-card.completed{background:#f8fdf9;border-left-color:#6ab04c;border-left-color:var(--success)}.appointment-card.cancelled{background:#fff8f8;border-left-color:#eb4d4b;border-left-color:var(--danger);opacity:.7}.apt-time{color:#2d3436;color:var(--text);flex-shrink:0;font-size:.7rem;font-weight:700;margin-bottom:1px}.apt-client{color:#2d3436;color:var(--text);font-size:.75rem;font-weight:600}.apt-client,.apt-service{flex-shrink:0;margin-bottom:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apt-service{font-size:.65rem}.apt-duration,.apt-service{color:#636e72;color:var(--text-light)}.apt-duration{flex-shrink:0;font-size:.6rem;font-style:italic;margin-bottom:2px}.apt-notes{border-top:1px solid #0000001a;color:#2d3436;color:var(--text);font-size:.65rem;margin-top:4px;overflow-wrap:break-word;padding-top:4px;white-space:normal}.apt-time-edit{align-items:center;display:flex;gap:5px;margin-bottom:4px}.apt-time-edit label{color:#2d3436;color:var(--text);font-size:.7rem;font-weight:600}.apt-time-edit input[type=time]{background:#fff;border:1px solid #e1d7cf;border:1px solid var(--border);border-radius:4px;font-family:Poppins,sans-serif;font-size:.7rem;padding:2px 4px}.apt-content{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.appointment-card.positioned.expanded{box-shadow:0 6px 12px #0003;z-index:100}.appointment-card.positioned{cursor:grab;transition:top .3s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.appointment-card.positioned:active{cursor:grabbing;transition:none}.modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.appointment-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.modal-header{align-items:center;background:#d4a574;background:var(--primary);color:#fff;display:flex;flex-shrink:0;justify-content:space-between;padding:25px 30px}.modal-header h3{font-size:1.5rem;font-weight:600;margin:0}.modal-close{align-items:center;background:#0000;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;line-height:1;padding:0;transition:background .2s;width:32px}.modal-close:hover{background:#fff3}.modal-body{flex:1 1;overflow-y:auto;padding:30px}.appointment-details-section{background:#e8d5c4;background:var(--accent);border-radius:8px;margin-bottom:25px;padding:20px}.appointment-details-section .form-group{margin-bottom:12px}.appointment-details-section .form-group:last-child{margin-bottom:0}.appointment-details-section label{color:#636e72;color:var(--text-light);display:block;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.appointment-details-section .read-only{color:#2d3436;color:var(--text);font-size:1rem;font-weight:500}.appointment-edit-section .form-group{margin-bottom:20px}.appointment-edit-section .form-group:last-child{margin-bottom:0}.appointment-edit-section label{color:#2d3436;color:var(--text);display:block;font-size:.85rem;font-weight:600;margin-bottom:8px}.appointment-edit-section input,.appointment-edit-section select,.appointment-edit-section textarea{border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:6px;font-family:Poppins,sans-serif;font-size:.95rem;padding:10px 12px;transition:border-color .2s;width:100%}.appointment-edit-section input:focus,.appointment-edit-section select:focus,.appointment-edit-section textarea:focus{border-color:#d4a574;border-color:var(--primary);outline:none}.appointment-edit-section textarea{min-height:80px;resize:vertical}.modal-footer{background:#faf8f6;background:var(--bg);border-top:1px solid #e1d7cf;border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:12px;justify-content:flex-end;padding:20px 30px}.btn-danger,.btn-primary,.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;padding:10px 20px;transition:all .3s ease}.btn-primary{background:#d4a574;background:var(--primary);color:#fff}.btn-primary:hover{background:#2d3436;background:var(--secondary)}.btn-secondary{background:#faf8f6;background:var(--bg);border:1px solid #e1d7cf;border:1px solid var(--border);color:#2d3436;color:var(--text)}.btn-secondary:hover{background:#e1d7cf;background:var(--border)}.btn-danger{background:#eb4d4b;background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.apt-actions{background:#fffffff2;border-radius:4px;display:flex;flex-shrink:0;gap:3px;margin-top:auto;padding:2px}.appointment-card.positioned .apt-actions{align-self:stretch;flex-direction:column;height:100%;justify-content:flex-start;margin-left:4px;margin-top:0}.apt-btn{background:#fff;border:1px solid #0000001a;border-radius:4px;cursor:pointer;flex-shrink:0;font-size:.85rem;padding:4px 8px;transition:all .2s ease;white-space:nowrap}.appointment-card.positioned .apt-btn{font-size:.75rem;padding:2px 4px}.apt-btn:hover{background:#0000000d}.apt-btn.complete:hover{background:#6ab04c1a}.apt-btn.cancel:hover{background:#f0932b1a}.apt-btn.delete:hover{background:#eb4d4b1a}.service-history{padding:20px}.history-controls,.service-history .header{margin-bottom:25px}.history-controls{display:flex;flex-direction:column;gap:15px}.search-input{border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:10px;font-family:Poppins,sans-serif;font-size:1rem;padding:12px 20px;transition:all .3s ease;width:100%}.search-input:focus{border-color:#d4a574;border-color:var(--primary);box-shadow:0 0 0 3px #d4a5741a;outline:none}.status-filters{display:flex;flex-wrap:wrap;gap:10px}.status-filters button{background:#fff;border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:8px;color:#2d3436;color:var(--text);cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;padding:10px 20px;transition:all .3s ease}.status-filters button:hover{background:#e8d5c4;background:var(--accent);border-color:#d4a574;border-color:var(--primary)}.status-filters button.active{background:#d4a574;background:var(--primary);border-color:#d4a574;border-color:var(--primary);color:#fff}.history-stats{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:25px}.stat-item{background:#fff;border-radius:10px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:5px;padding:15px 25px}.stat-label{font-weight:500}.stat-value{font-size:1.5rem}.history-table-container{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);overflow-x:auto}.history-table{border-collapse:collapse;width:100%}.history-table thead{background:#2d3436;background:var(--secondary);color:#fff}.history-table th{font-size:.9rem;font-weight:600;padding:15px;text-align:left;white-space:nowrap}.history-table td{border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border);font-size:.9rem;padding:12px 15px}.history-table tbody tr:hover{background:#faf8f6;background:var(--bg)}.history-table tbody tr:last-child td{border-bottom:none}.client-name{color:#2d3436;color:var(--text);font-weight:600}.notes-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{border-radius:20px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:5px 12px;text-transform:uppercase;white-space:nowrap}.status-pending{background:#fff9e6;color:#f0932b}.status-confirmed{background:#e3f2fd;color:#1976d2}.status-completed{background:#e8f5e9;color:#2e7d32}.status-cancelled{background:#ffebee;color:#c62828}.no-results{color:#636e72;color:var(--text-light);font-style:italic;padding:40px!important;text-align:center}.service-selection{animation:fadeIn .6s ease}.service-selection h2{color:#d4a574;color:var(--primary);font-size:2.5rem;margin-bottom:40px;text-align:center}.service-gallery{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));padding-bottom:20px}.service-gallery-card{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all .4s ease}.service-gallery-card:hover{box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);transform:translateY(-10px)}.service-image-wrapper{background:#e8d5c4;background:var(--accent);height:240px;overflow:hidden;position:relative;width:100%}.service-image{height:100%;object-fit:cover;transition:transform .4s ease;width:100%}.service-gallery-card:hover .service-image{transform:scale(1.1)}.service-info{display:flex;flex:1 1;flex-direction:column;padding:25px}.service-info h3{color:#d4a574;color:var(--primary);font-family:Playfair Display,serif;font-size:1.5rem;margin-bottom:12px}.service-description{color:#636e72;color:var(--text-light);flex:1 1;font-size:.95rem;line-height:1.6;margin-bottom:20px}.service-meta{align-items:center;border-top:2px solid #e1d7cf;border-top:2px solid var(--border);display:flex;justify-content:space-between;margin-bottom:15px;padding-top:15px}.service-price{color:#d4a574;color:var(--primary);font-family:Playfair Display,serif;font-size:1.8rem;font-weight:700}.service-duration{background:#e8d5c4;background:var(--accent);border-radius:20px;color:#636e72;color:var(--text-light);font-size:.9rem;font-weight:600;padding:6px 14px}.select-service-btn{background:#d4a574;background:var(--primary);border:none;border-radius:0;color:#fff;cursor:pointer;font-family:Poppins,sans-serif;font-size:1rem;font-weight:600;letter-spacing:1px;padding:15px;text-transform:uppercase;transition:all .3s ease;width:100%}.service-gallery-card:hover .select-service-btn{background:#b8935f;background:var(--primary-dark)}.booking-form-wrapper{animation:slideUp .5s ease;margin:0 auto;max-width:600px}.selected-service-header{align-items:center;background:#fff;border-bottom:3px solid #d4a574;border-bottom:3px solid var(--primary);border-radius:20px 20px 0 0;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);display:flex;justify-content:space-between;padding:25px 30px}.selected-service-header h3{color:#d4a574;color:var(--primary);font-family:Playfair Display,serif;font-size:1.6rem;margin:0 0 5px}.service-details-text{color:#636e72;color:var(--text-light);font-size:.95rem;font-weight:500;margin:0}.change-service-btn{background:#0000;border:2px solid #d4a574;border:2px solid var(--primary);border-radius:10px;color:#d4a574;color:var(--primary);cursor:pointer;font-family:Poppins,sans-serif;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .3s ease;white-space:nowrap}.change-service-btn:hover{background:#d4a574;background:var(--primary);box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);color:#fff;transform:translateY(-2px)}.booking-form-wrapper .booking-form{border-radius:0 0 20px 20px;margin-top:0}@media (max-width:768px){.dashboard-nav{flex-direction:column;gap:20px;text-align:center}.nav-links{flex-wrap:wrap;justify-content:center}.form-row,.services-grid,.stats-grid{grid-template-columns:1fr}table{font-size:.9rem}td,th{padding:10px}.appointments-header{align-items:flex-start;flex-direction:column;gap:15px}.calendar-controls{align-items:stretch;flex-direction:column}.nav-controls{flex-wrap:wrap;justify-content:center}.current-period{margin-left:0;text-align:center;width:100%}.view-switcher button{font-size:.9rem;padding:8px 15px}.week-header{grid-template-columns:50px repeat(7,minmax(80px,1fr))}.week-time-column{width:50px}.week-days-grid{grid-template-columns:repeat(7,minmax(80px,1fr))}.day-header .day-number{font-size:1.2rem}.time-labels{width:60px}.hour-label-main{font-size:.7rem;padding:2px 3px}.minute-label{font-size:.6rem;padding:0 3px}.week-hour-main{font-size:.65rem}.week-minute-label{font-size:.55rem}.month-day{min-height:80px;padding:5px}.month-apt{font-size:.65rem;padding:2px 4px}.appointment-card{padding:6px}.apt-time{font-size:.75rem}.apt-client{font-size:.8rem}.apt-service{font-size:.7rem}.apt-btn{font-size:.9rem;padding:3px 6px}.service-gallery{gap:20px;grid-template-columns:1fr}.service-selection h2{font-size:2rem}.service-image-wrapper{height:200px}.selected-service-header{align-items:flex-start;flex-direction:column;gap:15px}.change-service-btn{width:100%}}.portfolio-admin{padding:20px}.portfolio-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:30px}.portfolio-card{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);overflow:hidden;transition:all .3s ease}.portfolio-card.inactive{opacity:.6}.portfolio-card:hover{box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);transform:translateY(-5px)}.portfolio-image-container{height:250px;overflow:hidden;position:relative;width:100%}.portfolio-image-container img{height:100%;object-fit:cover;width:100%}.inactive-overlay{align-items:center;background:#000000b3;color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.portfolio-card-info{padding:20px}.portfolio-card-info h3{color:#d4a574;color:var(--primary);font-size:1.2rem;margin:0 0 10px}.portfolio-card-info p{color:#636e72;color:var(--text-light);font-size:.9rem;line-height:1.5;margin:0 0 10px}.display-order{color:#636e72;color:var(--text-light);font-size:.8rem;font-style:italic;margin-bottom:15px!important}.portfolio-card-actions{display:flex;flex-wrap:wrap;gap:10px}.public-portfolio-page{background:#faf8f6;background:var(--bg);min-height:100vh}.portfolio-public-container{margin:0 auto;max-width:1400px;padding:40px 20px}.portfolio-intro{margin-bottom:50px;text-align:center}.portfolio-intro h2{color:#d4a574;color:var(--primary);font-family:Playfair Display,serif;font-size:3rem;margin-bottom:15px}.portfolio-intro p{color:#636e72;color:var(--text-light);font-size:1.2rem}.portfolio-public-gallery{grid-gap:35px;display:grid;gap:35px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.portfolio-public-item{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);cursor:pointer;overflow:hidden;transition:all .4s ease}.portfolio-public-item:hover{box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);transform:translateY(-10px)}.portfolio-public-image{height:350px;overflow:hidden;position:relative;width:100%}.portfolio-public-image img{height:100%;object-fit:cover;transition:transform .4s ease;width:100%}.portfolio-public-item:hover .portfolio-public-image img{transform:scale(1.1)}.portfolio-public-info{padding:25px}.portfolio-public-info h3{color:#d4a574;color:var(--primary);font-family:Playfair Display,serif;font-size:1.6rem;margin-bottom:12px}.portfolio-public-info p{color:#636e72;color:var(--text-light);font-size:1rem;line-height:1.6}.no-portfolio{padding:80px 20px;text-align:center}.no-portfolio p{color:#636e72;color:var(--text-light);font-size:1.2rem}.public-nav{position:relative}.public-nav-links{position:absolute;right:30px;top:50%;transform:translateY(-50%)}.portfolio-link{background:#fff;border-radius:25px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);color:#d4a574;color:var(--primary);font-size:1rem;font-weight:600;padding:12px 25px;text-decoration:none;transition:all .3s ease}.portfolio-link:hover{background:#d4a574;background:var(--primary);box-shadow:0 10px 40px #0000001f;box-shadow:var(--shadow-lg);color:#fff;transform:translateY(-2px)}@media (max-width:768px){.portfolio-grid{grid-template-columns:1fr}.portfolio-public-gallery{gap:25px;grid-template-columns:1fr}.portfolio-intro h2{font-size:2rem}.portfolio-public-image{height:250px}.public-nav-links{margin-top:15px;position:static;text-align:center;transform:none}.public-nav{padding-bottom:20px}}.payments{padding:20px}.payment-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:30px}.stat-card{background:#fff;border-left:4px solid #d4a574;border-left:4px solid var(--primary);border-radius:12px;box-shadow:0 4px 20px #00000014;box-shadow:var(--shadow);padding:20px}.payment-stats .stat-card h3{color:#636e72;color:var(--text-light);font-size:.9rem;font-weight:500;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.stat-value{color:#d4a574;color:var(--primary);font-size:2rem;font-weight:700;margin:0}.stat-label{color:#636e72;color:var(--text-light);display:block;font-size:.85rem;margin-top:5px}.payment-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.payment-filters button{background:#fff;border:2px solid #e1d7cf;border:2px solid var(--border);border-radius:20px;color:#2d3436;color:var(--text);cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .3s ease}.payment-filters button:hover{border-color:#d4a574;border-color:var(--primary);color:#d4a574;color:var(--primary)}.payment-filters button.active{background:#d4a574;background:var(--primary);border-color:#d4a574;border-color:var(--primary);color:#fff}.total-amount{color:#d4a574;color:var(--primary);font-weight:700}.payment-method{text-transform:capitalize}.status-success{background:#6ab04c;background:var(--success)}.status-pending{background:#f0932b;background:var(--warning)}.status-error{background:#eb4d4b;background:var(--danger)}.refund-badge,.status-warning{background:#f0932b;background:var(--warning)}.refund-badge{border-radius:4px;color:#fff;display:inline-block;font-size:.8rem;padding:4px 8px}.payment-total{background:#e8d5c4;background:var(--accent);border-radius:8px;color:#b8935f;color:var(--primary-dark);font-size:1.2rem;margin:20px 0;padding:15px;text-align:center}.payment-notice{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;margin:20px 0;padding:15px}.payment-notice p{color:#856404;font-size:.9rem;margin:5px 0}.payment-notice strong{color:#664d03}.refund-details{background:#faf8f6;background:var(--bg);border-radius:8px;margin-bottom:20px;padding:15px}.refund-details p{color:#2d3436;color:var(--text);margin:8px 0}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:15px}.form-group{display:flex;flex-direction:column}.form-group label{color:#2d3436;color:var(--text);font-size:.9rem;font-weight:500;margin-bottom:5px}.modal-content.large{max-height:90vh;max-width:700px;overflow-y:auto;width:90%}.no-data{background:#fff;border-radius:12px;color:#636e72;color:var(--text-light);margin:20px 0;padding:60px 20px;text-align:center}.btn-small.warning{background:#f0932b;background:var(--warning);color:#fff}.btn-small.warning:hover{background:#e67e22}button.warning{background:#f0932b;background:var(--warning);color:#fff}button.warning:hover{background:#e67e22}@media (max-width:768px){.payment-stats{grid-template-columns:1fr}.payment-filters{justify-content:center}.form-row{grid-template-columns:1fr}}.appointment-payments-section{border-top:2px solid #e1d7cf;border-top:2px solid var(--border);margin-top:20px;padding-top:20px}.appointment-payments-section h4{color:#2d3436;color:var(--text);font-size:1.1rem;margin-bottom:15px}.payment-info-card{background:#faf8f6;background:var(--bg);border-left:4px solid #d4a574;border-left:4px solid var(--primary);border-radius:8px;margin-bottom:10px;padding:15px}.payment-info-row{align-items:center;border-bottom:1px solid #e1d7cf;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:8px 0}.payment-info-row:last-child{border-bottom:none}.payment-label{color:#636e72;color:var(--text-light);font-size:.9rem;font-weight:500}.payment-value{color:#2d3436;color:var(--text);font-weight:600}.payment-value.payment-total{color:#d4a574;color:var(--primary);font-size:1.1rem}.no-payment-notice{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;margin-top:20px;padding:15px;text-align:center}.no-payment-notice p{color:#856404;margin:0 0 10px}.no-payment-notice .btn-small{background:#d4a574;background:var(--primary);border-radius:6px;color:#fff;display:inline-block;padding:8px 16px;text-decoration:none;transition:background .3s ease}.no-payment-notice .btn-small:hover{background:#b8935f;background:var(--primary-dark)}
/*# sourceMappingURL=main.904fccb2.css.map*/