:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;width:100%;min-height:100%;overflow-x:hidden;background:linear-gradient(135deg,#fce7f3,#e9d5ff)}#root{width:100%;min-height:100vh}.container{min-height:100vh;width:100%;background:linear-gradient(135deg,#fce7f3,#e9d5ff);padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.content{max-width:1400px;width:100%;margin:0 auto}.header{text-align:center;margin-bottom:40px;padding-top:40px;position:relative}.title{font-size:clamp(32px,5vw,48px);font-weight:700;color:#581c87;margin-bottom:10px}.subtitle{font-size:clamp(16px,3vw,20px);color:#4b5563}.admin-link{position:absolute;top:40px;right:20px;background:#ffffffe6;border:1px solid #e5e7eb;padding:8px 16px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:14px;color:#581c87;font-weight:500}.admin-link:hover{background:#fff}.success-box{background-color:#d1fae5;border:1px solid #6ee7b7;color:#065f46;padding:15px;border-radius:10px;margin-bottom:30px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.success-content{display:flex;align-items:center;gap:10px}.close-btn{background:none;border:none;cursor:pointer;padding:5px;color:#065f46}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,450px),1fr));gap:30px}.card{background-color:#fff;border-radius:20px;box-shadow:0 10px 30px #0000001a;padding:clamp(20px,4vw,30px)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.month-btn{padding:10px 15px;background:none;border:none;font-size:20px;cursor:pointer;border-radius:8px;transition:background .2s}.month-btn:hover{background:#f3f4f6}.month-title{font-size:clamp(18px,3vw,24px);font-weight:700;color:#581c87;text-transform:capitalize}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:15px}.week-day{text-align:center;font-weight:600;color:#6b7280;font-size:clamp(12px,2vw,14px)}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:clamp(4px,1vw,8px);width:100%}.day-btn{aspect-ratio:1;border:none;border-radius:10px;font-size:clamp(11px,2vw,14px);cursor:pointer;background-color:#f3f4f6;color:#374151;transition:all .2s;padding:0;min-width:0;width:100%}.day-btn:hover:not(.disabled){background-color:#e5e7eb}.day-btn.selected{background-color:#7c3aed;color:#fff;font-weight:700;transform:scale(1.05)}.day-btn.disabled{background-color:#f3f4f6;color:#d1d5db;cursor:not-allowed}.day-btn.today{border:2px solid #f472b6}.day-btn.empty{visibility:hidden}.day-btn.blocked-day{background-color:#fee2e2;color:#991b1b;text-decoration:line-through}.calendar-footer{margin-top:20px;font-size:clamp(12px,2vw,14px);color:#6b7280}.calendar-footer p{margin-bottom:5px}.available-box{margin-top:15px;padding:15px;background-color:#f3e8ff;border-radius:10px}.available-text{font-weight:600;color:#581c87;margin:0;font-size:clamp(13px,2vw,15px)}.form-title{font-size:clamp(20px,3vw,24px);font-weight:700;color:#581c87;margin-bottom:30px}.form-group{margin-bottom:20px}.label{display:block;font-size:clamp(13px,2vw,14px);font-weight:600;color:#374151;margin-bottom:8px}.input{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;font-family:inherit}.input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.textarea{min-height:80px;resize:vertical}.selected-date{padding:12px;background-color:#f3e8ff;border-radius:8px;color:#581c87;font-weight:600;font-size:clamp(13px,2vw,15px)}.time-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px;width:100%}.time-btn{padding:10px 5px;border:none;border-radius:8px;font-size:clamp(12px,2vw,14px);font-weight:500;cursor:pointer;background-color:#f3e8ff;color:#581c87;transition:all .2s;min-width:0;white-space:nowrap}.time-btn:hover:not(.disabled){background-color:#e9d5ff}.time-btn.selected{background-color:#7c3aed;color:#fff}.time-btn.disabled{background-color:#e5e7eb;color:#9ca3af;cursor:not-allowed}.submit-btn{width:100%;padding:16px;background:linear-gradient(to right,#7c3aed,#ec4899);color:#fff;font-weight:700;font-size:clamp(14px,2vw,16px);border:none;border-radius:10px;cursor:pointer;transition:all .2s}.submit-btn:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 10px 20px #7c3aed4d}.submit-btn.disabled{opacity:.5;cursor:not-allowed}.footer{text-align:center;margin-top:40px;color:#6b7280;font-size:clamp(13px,2vw,15px)}.footer p{margin-bottom:8px}.login-header{margin-bottom:30px}.login-title{font-size:28px;font-weight:700;color:#581c87;margin-top:15px;margin-bottom:10px}.login-subtitle{color:#6b7280;font-size:14px}.password-input{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;margin-bottom:15px}.password-input:focus{outline:none;border-color:#7c3aed}.login-btn{width:100%;padding:12px;background:#7c3aed;color:#fff;font-weight:700;border:none;border-radius:8px;cursor:pointer;margin-bottom:10px;transition:background .2s}.login-btn:hover{background:#6d28d9}.back-btn{width:100%;padding:12px;background:#f3f4f6;color:#374151;border:none;border-radius:8px;cursor:pointer;transition:background .2s}.back-btn:hover{background:#e5e7eb}.admin-container{max-width:1600px;width:100%;margin:0 auto;padding:20px}.login-box{max-width:400px;width:100%;margin:100px auto;background-color:#fff;border-radius:20px;padding:40px;box-shadow:0 10px 30px #0003;text-align:center}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px;background-color:#fff;padding:20px;border-radius:15px;box-shadow:0 4px 15px #0000001a}.admin-title{font-size:clamp(24px,4vw,32px);font-weight:700;color:#581c87;margin:0}.admin-subtitle{color:#6b7280;font-size:clamp(14px,2vw,16px);margin:5px 0 0}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.switch-btn{padding:10px 20px;background:#7c3aed;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;font-size:clamp(13px,2vw,14px);transition:background .2s}.switch-btn:hover{background:#6d28d9}.logout-btn{padding:10px 20px;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:8px;font-weight:500;font-size:clamp(13px,2vw,14px);transition:background .2s}.logout-btn:hover{background:#dc2626}.stats-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:30px}.stat-card{background-color:#fff;padding:25px;border-radius:15px;text-align:center;box-shadow:0 4px 15px #0000001a}.stat-number{font-size:clamp(32px,5vw,48px);font-weight:700;color:#7c3aed}.stat-label{font-size:clamp(13px,2vw,14px);color:#6b7280;margin-top:5px}.appointments-list{background-color:#fff;border-radius:15px;padding:30px;box-shadow:0 4px 15px #0000001a}.empty-state{text-align:center;padding:60px 20px;color:#9ca3af}.empty-text{font-size:18px}.date-group{margin-bottom:40px}.date-group-title{font-size:clamp(18px,3vw,22px);font-weight:700;color:#581c87;margin-bottom:20px;text-transform:capitalize;border-bottom:2px solid #f3e8ff;padding-bottom:10px}.appointments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:15px}.appointment-card{border:1px solid #e5e7eb;border-radius:12px;padding:15px;background-color:#fafafa;transition:all .2s}.appointment-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.appointment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.appointment-time{font-size:clamp(15px,2vw,16px);font-weight:700;color:#7c3aed}.delete-btn{background:none;border:none;color:#ef4444;cursor:pointer;padding:5px;border-radius:5px;transition:background .2s}.delete-btn:hover{background:#fee2e2}.appointment-body{font-size:clamp(13px,2vw,14px)}.appointment-name{font-weight:700;color:#374151;margin-bottom:8px}.appointment-detail{color:#6b7280;margin-bottom:5px}.appointment-service{color:#7c3aed;font-weight:600;margin-top:10px;margin-bottom:5px}.appointment-notes{color:#6b7280;font-style:italic;font-size:clamp(12px,2vw,13px);margin-top:8px;padding:8px;background-color:#f9fafb;border-radius:6px}.pending-card{border:2px solid #f59e0b;background-color:#fffbeb}.pending-badge{background:#f59e0b;color:#fff;padding:4px 12px;border-radius:12px;font-size:clamp(11px,2vw,12px);font-weight:600}.appointment-actions{display:flex;gap:10px;margin-top:15px;padding-top:15px;border-top:1px solid #e5e7eb}.approve-btn{flex:1;padding:10px;background:#22c55e;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:clamp(13px,2vw,14px);transition:background .2s}.approve-btn:hover{background:#16a34a}.reject-btn{flex:1;padding:10px;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:clamp(13px,2vw,14px);transition:background .2s}.reject-btn:hover{background:#dc2626}.admin-tabs{display:flex;gap:10px;margin-bottom:30px;background-color:#fff;padding:10px;border-radius:15px;box-shadow:0 4px 15px #0000001a;flex-wrap:wrap}.admin-tab{flex:1;min-width:150px;padding:12px 20px;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;font-weight:500;font-size:clamp(13px,2vw,15px);color:#374151;transition:all .2s}.admin-tab:hover{background:#e5e7eb}.admin-tab.active{background:#7c3aed;color:#fff}.blocked-dates-section{width:100%}.blocked-header{text-align:center;margin-bottom:30px;padding:20px;background-color:#fff;border-radius:15px;box-shadow:0 4px 15px #0000001a}.blocked-title{font-size:clamp(20px,3vw,28px);font-weight:700;color:#581c87;margin-bottom:10px}.blocked-subtitle{color:#6b7280;font-size:clamp(13px,2vw,15px)}.blocked-dates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:15px}.blocked-date-card{display:flex;justify-content:space-between;align-items:center;padding:15px;background-color:#fee2e2;border:1px solid #fecaca;border-radius:12px;gap:10px;flex-wrap:wrap}.blocked-date-info{flex:1;min-width:0}.blocked-date-text{font-size:clamp(13px,2vw,14px);color:#991b1b;font-weight:600;word-wrap:break-word}.unblock-btn{padding:8px 16px;background:#22c55e;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;font-size:clamp(12px,2vw,13px);transition:background .2s;white-space:nowrap}.unblock-btn:hover{background:#16a34a}@media(max-width:768px){.admin-link{position:static;margin:20px auto 0}.header{display:flex;flex-direction:column;align-items:center}.container{padding:10px}.grid{gap:20px}.card{padding:20px}.days-grid{gap:4px}.day-btn{font-size:11px}.time-grid{grid-template-columns:repeat(auto-fit,minmax(60px,1fr));gap:6px}.admin-header{flex-direction:column;align-items:flex-start}.admin-actions,.switch-btn,.logout-btn{width:100%}}@media(max-width:480px){.blocked-date-card{flex-direction:column;align-items:stretch}.unblock-btn{width:100%}}
