: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}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card{background:#fff;padding:48px;border-radius:16px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:400px}.login-card h1{font-size:28px;font-weight:700;color:#1a1a1a;margin-bottom:8px;text-align:center}.login-card p{color:#666;text-align:center;margin-bottom:32px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.form-group input{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:8px;font-size:15px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#667eea}button[type=submit]{width:100%;padding:14px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}button[type=submit]:hover:not(:disabled){background:#5568d3}button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee2e2;color:#991b1b;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px}.dashboard{min-height:100vh;background:#f5f7fa;display:flex;flex-direction:column}.header{background:#fff;padding:20px 32px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.header h1{font-size:24px;font-weight:700;color:#1a1a1a}.header-actions{display:flex;gap:16px;align-items:center}.user-badge{padding:8px 16px;background:#f3f4f6;border-radius:20px;font-size:14px;color:#374151}.btn-logout{padding:10px 20px;background:#f3f4f6;color:#374151;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s}.btn-logout:hover{background:#e5e7eb}.loading{text-align:center;padding:48px;color:#666}.content{display:grid;grid-template-columns:1fr 350px;gap:24px;padding:24px;flex:1;max-width:1600px;margin:0 auto;width:100%}.calendar-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.calendar-header h2{font-size:20px;font-weight:600;color:#1a1a1a}.calendar-header button{width:40px;height:40px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;font-size:18px;transition:background .2s}.calendar-header button:hover{background:#f9fafb}.calendar-grid{display:flex;gap:0;min-width:700px}.time-column{width:70px;flex-shrink:0}.day-column{flex:1;min-width:120px}.day-header{height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-bottom:2px solid #e5e7eb;background:#f9fafb}.day-name{font-size:12px;color:#6b7280;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.day-date{font-size:16px;font-weight:600;color:#1a1a1a;margin-top:4px}.time-cell{height:60px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #f3f4f6;font-size:13px;color:#6b7280;font-weight:500}.appointment-cell{min-height:60px;border-bottom:1px solid #f3f4f6;border-left:1px solid #f3f4f6;padding:4px;position:relative}.appointment-block{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:8px;border-radius:6px;cursor:pointer;margin-bottom:4px;transition:transform .2s;box-shadow:0 2px 4px #0000001a}.appointment-block:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.apt-time{font-size:11px;opacity:.9;margin-bottom:2px}.apt-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;overflow-y:auto;max-height:calc(100vh - 150px)}.sidebar h3{font-size:18px;font-weight:600;color:#1a1a1a;margin-bottom:20px}.upcoming-list{display:flex;flex-direction:column;gap:12px}.upcoming-item{display:grid;grid-template-columns:60px 1fr auto;gap:12px;padding:12px;background:#f9fafb;border-radius:8px;align-items:center}.upcoming-time{display:flex;flex-direction:column;text-align:center}.upcoming-time strong{font-size:16px;color:#1a1a1a}.upcoming-time span{font-size:13px;color:#6b7280;margin-top:2px}.upcoming-client{display:flex;flex-direction:column;gap:4px}.upcoming-client>div:first-child{font-weight:600;color:#1a1a1a;font-size:14px}.upcoming-phone{font-size:13px;color:#6b7280}.upcoming-actions{display:flex;gap:6px}.btn-view,.btn-cancel{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;font-size:16px;transition:transform .2s;display:flex;align-items:center;justify-content:center}.btn-view{background:#eff6ff}.btn-cancel{background:#fee2e2}.btn-view:hover,.btn-cancel:hover{transform:scale(1.1)}.empty-message{text-align:center;padding:32px;color:#9ca3af;font-size:14px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{padding:24px;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;z-index:1}.modal-header h2{font-size:20px;font-weight:700;color:#1a1a1a}.modal-close{background:none;border:none;font-size:32px;color:#9ca3af;cursor:pointer;line-height:1;padding:0;width:32px;height:32px}.modal-close:hover{color:#374151}.modal-body{padding:24px}.detail-section{margin-bottom:32px}.detail-section:last-child{margin-bottom:0}.detail-section h3{font-size:16px;font-weight:600;color:#1a1a1a;margin-bottom:16px}.detail-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f3f4f6}.detail-row:last-child{border-bottom:none}.detail-row span{color:#6b7280}.detail-row strong,.detail-row a{color:#1a1a1a;font-weight:600;text-align:right}.detail-row a{color:#667eea;text-decoration:none}.detail-row a:hover{text-decoration:underline}.relative-card{background:#f9fafb;padding:16px;border-radius:8px;margin-bottom:12px}.relative-card:last-child{margin-bottom:0}.relative-card h4{font-size:14px;font-weight:600;color:#1a1a1a;margin-bottom:8px}.relative-card p{font-size:13px;color:#6b7280;margin:4px 0}.btn-cancel-full{width:100%;padding:14px;background:#ef4444;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;margin-top:24px;transition:background .2s}.btn-cancel-full:hover{background:#dc2626}@media(max-width:1200px){.content{grid-template-columns:1fr 300px}}@media(max-width:968px){.content{grid-template-columns:1fr}.sidebar{max-height:400px}.calendar-section{overflow-x:scroll}}@media(max-width:640px){.header{padding:16px}.header h1{font-size:20px}.content{padding:16px;gap:16px}.calendar-section,.sidebar{padding:16px}.upcoming-item{grid-template-columns:50px 1fr}.upcoming-actions{grid-column:1 / -1;justify-content:center;margin-top:8px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}
