:root{--primary: #A1006B;--primary-light: #FDF2F9;--secondary: #1B3D2F;--accent: #D4AF37;--text-main: #0f172a;--text-muted: #64748b;--bg-app: #f8fafc;--white: #ffffff;--border: #f1f5f9;--radius-lg: 24px;--radius-md: 16px;--shadow-sm: 0 1px 3px rgba(0,0,0,.1);--shadow-md: 0 10px 25px -5px rgba(0,0,0,.05), 0 8px 10px -6px rgba(0,0,0,.05);--shadow-lg: 0 20px 50px -12px rgba(161, 0, 107, .12);--transition: all .3s cubic-bezier(.4, 0, .2, 1)}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--bg-app);margin:0;color:var(--text-main);-webkit-font-smoothing:antialiased}.auth-view{min-height:100vh;display:flex;justify-content:center;align-items:center;background:radial-gradient(circle at top right,#fdf2f9,#f1f6f4);padding:20px}.auth-container-flex{width:940px;max-width:100%;height:600px;background:var(--white);border-radius:var(--radius-lg);display:flex;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}.panel-form{width:50%;height:100%;display:flex;justify-content:center;align-items:center;padding:60px;box-sizing:border-box}.form-frame{width:100%;max-width:380px;text-align:center}.form-frame h2{font-size:2.25rem;font-weight:800;color:var(--primary);margin-bottom:.5rem;letter-spacing:-.025em}.form-frame p{color:var(--text-muted);margin-bottom:2.5rem;font-size:.95rem;line-height:1.5}.input-field{position:relative;margin-bottom:1.25rem}.input-field svg{position:absolute;left:1.25rem;top:50%;transform:translateY(-50%);color:var(--text-muted);transition:var(--transition)}.input-field input{width:100%;padding:1.1rem 1.1rem 1.1rem 3.5rem;background:#f8fafc;border:1.5px solid #f1f5f9;border-radius:var(--radius-md);font-size:1rem;color:var(--text-main);transition:var(--transition);box-sizing:border-box}.input-field input:focus{outline:none;border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px #a1006b0d}.auth-logo{max-width:280px;margin:0 auto 2.5rem;display:block}.input-field input:focus+svg{color:var(--primary)}.action-btn{width:100%;padding:1.15rem;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:700;font-size:1rem;cursor:pointer;margin-top:.5rem;transition:var(--transition);box-shadow:0 10px 15px -3px #a1006b33}.action-btn:hover{transform:translateY(-2px);background:var(--primary-hover);box-shadow:0 20px 25px -5px #a1006b4d}.error-badge{background:var(--danger-bg);color:var(--danger);padding:12px 16px;border-radius:12px;font-size:.85rem;font-weight:600;margin-bottom:1.5rem;display:flex;align-items:center;gap:8px;border:1px solid rgba(239,68,68,.1);animation:slideUp .3s ease-out}.auth-overlay-main{position:absolute;top:0;left:50%;width:50%;height:100%;background:linear-gradient(135deg,#a1006b,#1b3d2f);color:#fff;z-index:100;transition:transform .6s cubic-bezier(.77,0,.175,1);display:flex;justify-content:center;align-items:center;overflow:hidden}.auth-container-flex.right-active .auth-overlay-main{transform:translate(-100%)}.overlay-box{padding:50px;text-align:center;max-width:400px}.overlay-box h2{font-size:2.5rem;font-weight:800;margin-bottom:1.25rem;color:#fff}.overlay-box p{color:#e0f2fe;font-size:1.1rem;line-height:1.6;margin-bottom:2.5rem}.overlay-box button{background:transparent;border:2px solid rgba(255,255,255,.8);color:#fff;padding:12px 40px;border-radius:30px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:10px;transition:var(--transition)}.overlay-box button:hover{background:#fff;color:var(--primary);border-color:#fff}.brand-illus{margin-bottom:2rem;display:flex;justify-content:center;align-items:center;position:relative;background:#ffffff1a;width:100px;height:100px;border-radius:50%;margin:0 auto 2rem}.main-layout{display:grid;grid-template-columns:280px 1fr;height:100vh}.side-nav{background:#fff;border-right:1.5px solid var(--border);padding:40px 24px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;justify-content:center;color:var(--primary);margin-bottom:50px}.user-profile-widget{background:#f8fafc;padding:24px;border-radius:20px;margin-bottom:40px;border:1px solid var(--border)}.role-tag{background:#ecfeff;color:var(--primary);font-weight:800;font-size:.7rem;padding:4px 10px;border-radius:8px;text-transform:uppercase;margin-bottom:10px;display:inline-block}.user-profile-widget p.name{font-weight:700;font-size:1.1rem;margin:0}.user-profile-widget p.email{font-size:.8rem;color:var(--text-muted);margin-top:4px}.nav-items{list-style:none;padding:0;flex:1}.nav-items li{padding:14px 18px;border-radius:14px;margin-bottom:6px;display:flex;align-items:center;gap:14px;cursor:pointer;color:var(--text-muted);font-weight:600;transition:var(--transition)}.nav-items li:hover{background:#f8fafc;color:var(--text-main)}.nav-items li.active{background:#ecfeff;color:var(--primary)}.logout-btn{margin-top:auto;background:#fef2f2;color:#ef4444;padding:14px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:700;cursor:pointer;transition:var(--transition);border:none}.logout-btn:hover{background:#ef4444;color:#fff}.main-content{background:var(--bg-app);padding:40px 60px;overflow-y:auto}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:50px}.content-header h1{font-size:2.25rem;font-weight:800;margin:0}.user-avatar{width:48px;height:48px;background:var(--primary);color:#fff;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.2rem;box-shadow:0 4px 12px #a1006b33}.stats-layout{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px}.aesthetic-stat-card{background:#fff;padding:28px;border-radius:24px;border:1px solid var(--border);display:flex;gap:20px;align-items:center;transition:var(--transition)}.aesthetic-stat-card:hover{transform:translateY(-8px);box-shadow:0 30px 60px -12px #00000014;border-color:var(--primary)}.card-icon{width:52px;height:52px;background:#ecfeff;color:var(--primary);border-radius:14px;display:flex;align-items:center;justify-content:center}.aesthetic-stat-card p{font-size:.9rem;font-weight:600;color:var(--text-muted);margin:0 0 4px}.aesthetic-stat-card h2{font-size:1.5rem;font-weight:800;margin:0;color:var(--text-main)}.card-base{background:#fff;border-radius:20px;border:1.5px solid var(--border);box-shadow:var(--shadow-sm)}.card-clickable{cursor:pointer}.module-view{animation:fadeIn .25s ease}.clinical-table{width:100%;border-collapse:collapse;font-size:.93rem}.clinical-table thead{background:#f8fafc;border-bottom:1.5px solid var(--border)}.clinical-table th{padding:14px 20px;text-align:left;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.clinical-table td{padding:16px 20px;border-bottom:1px solid #f8fafc;color:var(--text-main);vertical-align:middle}.clinical-table tbody tr{transition:background .15s ease}.clinical-table tbody tr:hover{background:#f8fafc}.clinical-table tbody tr:last-child td{border-bottom:none}.mini-avatar{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;flex-shrink:0}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;background:#ecfdf5;color:#059669;font-size:.78rem;font-weight:700}.status-badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#10b981}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:20px}.modal-content{background:#fff;border-radius:24px;width:100%;max-width:480px;box-shadow:0 32px 64px -12px #0003;animation:scaleIn .22s cubic-bezier(.34,1.56,.64,1);overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:22px 28px;border-bottom:1.5px solid var(--border)}.modal-header h3{font-size:1.15rem;font-weight:800;margin:0;color:var(--text-main)}.close-x{width:34px;height:34px;border-radius:10px;border:none;background:#f8fafc;color:var(--text-muted);font-size:1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:var(--transition)}.close-x:hover{background:#fee2e2;color:#ef4444}.modal-body{padding:28px}.input-field-mod{width:100%;padding:.95rem .95rem .95rem 3.2rem;background:#f8fafc;border:1.5px solid #f1f5f9;border-radius:12px;font-size:.95rem;color:var(--text-main);transition:all .3s ease;box-sizing:border-box}.input-field-mod:focus{outline:none;border-color:var(--primary);background:#fff;box-shadow:0 0 0 4px #ba00661a}.timeline:before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--border)}.view-container{flex:1}.spin{animation:spin 1s linear infinite}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.grilla-container{display:flex;flex-direction:column;background:#fff;width:100%}.grilla-header{padding:20px 30px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.grilla-nav{display:flex;gap:8px}.grilla-nav button{padding:8px 16px;border-radius:10px;border:1.5px solid var(--border);background:#fff;font-weight:700;font-size:.85rem;cursor:pointer;transition:all .2s ease;color:var(--text-dark)}.grilla-nav button:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.grilla-legend{display:flex;gap:20px}.legend-item{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--text-muted)}.legend-item span{width:12px;height:12px;border-radius:4px}.grilla-scroll{overflow-x:auto;max-width:100%}.grilla-table{width:100%;border-collapse:collapse;table-layout:fixed}.grilla-table th{padding:15px 10px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:#fcfdfe}.grilla-table th:last-child{border-right:none}.day-name{font-size:.7rem;font-weight:800;color:var(--text-muted);letter-spacing:.05em;margin-bottom:4px}.day-date{font-size:1rem;font-weight:800;color:var(--text-main)}.time-col{width:80px;background:#f8fafc!important;font-size:.75rem;color:var(--text-muted);font-weight:700}.time-cell{padding:15px;text-align:center;font-size:.8rem;font-weight:700;color:var(--text-muted);border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:#fcfdfe}.slot-cell{height:60px;border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;position:relative;cursor:pointer;transition:background .15s ease}.slot-cell:hover{background:#f8fafc}.appointment-block{margin:4px;padding:10px 12px;border-radius:12px;font-size:.75rem;position:relative;z-index:2;box-shadow:0 4px 12px #00000008;transition:transform .2s ease;overflow:hidden;display:flex;flex-direction:column;gap:2px}.appointment-block:hover{transform:translateY(-2px);box-shadow:0 6px 15px #0000000f}.app-title{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-doctor{font-weight:600;opacity:.8;font-size:.65rem}.app-actions{display:flex;justify-content:flex-end;margin-top:4px}.grilla-scroll::-webkit-scrollbar{height:8px}.grilla-scroll::-webkit-scrollbar-track{background:#f1f5f9}.grilla-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}:root{--primary: #A1006B;--primary-hover: #800055;--primary-bg: #FDF2F9;--secondary: #1B3D2F;--secondary-bg: #F1F6F4;--accent: #D4AF37;--danger: #ef4444;--danger-bg: #fff1f2;--text-main: #0f172a;--text-muted: #64748b;--bg-app: #f8fafc;--white: #ffffff;--border: #f1f5f9;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.05);--shadow-md: 0 10px 25px -5px rgba(161, 0, 107, .05);--shadow-lg: 0 20px 50px -12px rgba(161, 0, 107, .12);--transition: all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,sans-serif;background-color:var(--bg-app);color:var(--text-main);line-height:1.5}.card-base{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-md);padding:24px;transition:var(--transition)}.card-clickable:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--primary)}.flex-center{display:flex;align-items:center;justify-content:center}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-field-mod{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:12px;font-size:.95rem;outline:none;transition:var(--transition)}.input-field-mod:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-bg)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#cbd5e1}.clinical-table{width:100%;border-collapse:collapse;font-size:.9rem}.clinical-table th{background:#fcfdfe;padding:16px 24px;text-align:left;border-bottom:1.5px solid var(--border);color:var(--text-muted);font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.clinical-table td{padding:16px 24px;border-bottom:1px solid var(--border);color:var(--text-main);vertical-align:middle}.mini-avatar{width:36px;height:36px;background:var(--primary-bg);color:var(--primary);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem}.status-badge{background:#dcfce7;color:#15803d;padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:700}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.modal-content{background:#fff;width:100%;max-width:450px;border-radius:24px;box-shadow:0 30px 60px -12px #00000040;overflow:hidden;animation:slideUp .3s cubic-bezier(.16,1,.3,1)}.modal-header{padding:24px 30px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{font-size:1.25rem;font-weight:800;margin:0}.close-x{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted)}.modal-body{padding:30px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
