@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap";:root{--brand-primary:#0d9488;--brand-primary-hover:#0f766e;--brand-primary-light:#ccfbf1;--brand-secondary:#0284c7;--brand-secondary-hover:#0369a1;--brand-secondary-light:#e0f2fe;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--bg-app:var(--slate-100);--bg-surface:#fff;--bg-glass:#ffffffbf;--text-main:var(--slate-900);--text-secondary:var(--slate-600);--text-muted:var(--slate-400);--border-color:var(--slate-200);--border-color-hover:var(--slate-300);--accent-error:#dc2626;--accent-error-light:#fee2e2;--accent-warning:#d97706;--accent-warning-light:#fef3c7;--accent-success:#059669;--accent-success-light:#d1fae5;--accent-info:#0284c7;--accent-info-light:#e0f2fe;--color-scheduled:#3b82f6;--bg-scheduled:#dbeafe;--color-confirmed:#059669;--bg-confirmed:#d1fae5;--color-completed:#7c3aed;--bg-completed:#f3e8ff;--color-cancelled:#dc2626;--bg-cancelled:#fee2e2;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-display:"Plus Jakarta Sans", var(--font-family);--shadow-xs:0 1px 2px 0 #0f172a0a;--shadow-sm:0 2px 4px -1px #0f172a0d, 0 1px 2px -1px #0f172a0a;--shadow-md:0 8px 16px -4px #0f172a14, 0 2px 6px -2px #0f172a0d;--shadow-lg:0 20px 32px -8px #0f172a1f, 0 6px 12px -4px #0f172a0f;--shadow-xl:0 28px 48px -12px #0f172a29;--shadow-glass:0 8px 32px 0 #1f268712;--shadow-glow-primary:0 8px 20px -4px #0d948859;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;--sidebar-width:260px;--header-height:70px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.011em;overflow-x:hidden}button,input,select,textarea{font-family:inherit}.text-display{font-family:var(--font-family-display);letter-spacing:-.02em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--slate-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--slate-400)}.glass-panel{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-glass);border:1px solid #ffffff80}.glass-card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:all .25s cubic-bezier(.4,0,.2,1)}.glass-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-color-hover);transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}.app-container{width:100vw;min-height:100vh;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:1;height:100vh;display:flex;position:relative;overflow-y:auto}.main-header{height:var(--header-height);border-bottom:1px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;padding:0 2rem;display:flex;position:sticky;top:0}.page-title-container h1{font-family:var(--font-family-display);color:var(--text-main);letter-spacing:-.02em;font-size:1.4rem;font-weight:700}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 2rem .5rem;display:flex}.page-header-icon{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));color:#fff;width:44px;height:44px;box-shadow:var(--shadow-glow-primary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:3rem 1.5rem;display:flex}.empty-state svg{color:var(--slate-300);margin-bottom:.5rem}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));color:#fff}.btn-primary:hover{filter:brightness(1.05);box-shadow:var(--shadow-glow-primary);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:var(--bg-surface);border-color:var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{background:var(--slate-50);border-color:var(--border-color-hover);color:var(--text-main)}.btn-danger{background:var(--accent-error);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-icon{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.5rem}.btn-icon:hover{background:var(--slate-100);color:var(--text-main)}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);letter-spacing:.01em;margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:block}.form-control{border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--bg-surface);outline:none;width:100%;padding:.625rem .875rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px #0d948826}.form-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;align-items:center;padding:.3rem .75rem;font-size:.72rem;font-weight:700;display:inline-flex}.badge-scheduled{color:var(--color-scheduled);background:var(--bg-scheduled)}.badge-confirmed{color:var(--color-confirmed);background:var(--bg-confirmed)}.badge-completed{color:var(--color-completed);background:var(--bg-completed)}.badge-cancelled{color:var(--color-cancelled);background:var(--bg-cancelled)}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;padding:1.5rem 2rem;display:grid}.stat-card{justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.stat-info h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.35rem;font-size:.78rem;font-weight:600}.stat-info p{font-family:var(--font-family-display);color:var(--text-main);letter-spacing:-.02em;font-size:1.9rem;font-weight:700}.stat-icon{border-radius:var(--radius-md);color:#fff;padding:.75rem}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--border-color);z-index:100;flex-direction:column;height:100vh;transition:all .3s;display:flex}.sidebar-logo{height:var(--header-height);border-bottom:1px solid var(--border-color);align-items:center;gap:.75rem;padding:0 1.5rem;display:flex}.logo-text{font-family:var(--font-family-display);background:linear-gradient(135deg, var(--brand-primary), var(--brand-secondary));-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;font-size:1.25rem;font-weight:800}.sidebar-menu{flex-direction:column;flex:1;gap:.25rem;padding:1.5rem .75rem;display:flex;overflow-y:auto}.sidebar-link{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;align-items:center;gap:.875rem;padding:.7rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.sidebar-link:hover{background:var(--slate-100);color:var(--text-main)}.sidebar-link.active{background:var(--brand-primary-light);color:var(--brand-primary-hover);font-weight:600}.sidebar-footer{border-top:1px solid var(--border-color);padding:1rem}.toast-container{z-index:9999;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideInRight;position:fixed;bottom:2rem;right:2rem}.toast{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:#fff;align-items:center;gap:.75rem;min-width:300px;padding:1rem 1.5rem;display:flex}.toast-success{background:var(--accent-success)}.toast-error{background:var(--accent-error)}.toast-info{background:var(--accent-info)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-container{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--border-color);width:100%;max-width:600px;max-height:90vh;animation:.3s ease-out forwards fadeIn;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-body{padding:1.5rem}.modal-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.patient-list-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;padding:.5rem 0;display:grid}.patient-record-sheet{flex-direction:column;gap:1.5rem;display:flex}.eye-metrics-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:.75rem;display:grid}.eye-metrics-card{background:var(--bg-app);border-radius:var(--radius-md);border:1px solid var(--border-color);padding:1.25rem}.eye-metrics-card.od{border-left:4px solid var(--brand-primary)}.eye-metrics-card.os{border-left:4px solid var(--brand-secondary)}.eye-fields-grid{grid-template-columns:repeat(auto-fit,minmax(65px,1fr));gap:.5rem;margin-top:.75rem;display:grid}.refraction-list-item{border-bottom:1px solid var(--border-color);padding:1rem 0}.refraction-list-item:last-child{border-bottom:none}.schedule-table-container{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-surface);overflow-x:auto}.schedule-table{border-collapse:collapse;text-align:left;width:100%}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--border-color);padding:1rem;font-size:.9rem}.schedule-table th{background:var(--slate-50);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.schedule-table tbody tr:hover{background:var(--slate-50)}.schedule-table tr:last-child td{border-bottom:none}@media (width<=768px){:root{--sidebar-width:0px}.sidebar{width:260px;position:fixed;left:-260px}.sidebar.mobile-open{--sidebar-width:260px;left:0}.sidebar-backdrop{z-index:99;background:#0006;position:fixed;inset:0}.main-header{padding:0 1rem}.dashboard-grid{grid-template-columns:1fr;padding:1rem}.eye-metrics-grid{grid-template-columns:1fr!important}}.crm-layout{grid-template-columns:1fr 2.2fr;gap:2rem;height:100%;display:grid;overflow:hidden}.crm-sidebar-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.crm-details-panel{height:100%;padding-right:10px;overflow-y:auto}@media (width<=768px){.crm-container-page{height:auto!important;padding:1rem!important;overflow:visible!important}.crm-layout{grid-template-columns:1fr!important;gap:1.5rem!important;height:auto!important;overflow:visible!important}.crm-sidebar-panel{height:400px!important;overflow:hidden!important}.crm-details-panel{height:auto!important;padding-right:0!important;overflow:visible!important}}.calendar-widget{flex-direction:column;gap:1rem;padding:1.25rem 1.5rem;display:flex}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.calendar-toolbar-nav{align-items:center;gap:.5rem;display:flex}.calendar-period-label{font-family:var(--font-family-display);color:var(--text-main);text-align:center;text-transform:capitalize;min-width:180px;font-size:.95rem;font-weight:700}.calendar-today-btn{margin-left:.25rem;padding:.4rem .75rem;font-size:.8rem}.calendar-toolbar-modes{gap:.4rem;display:flex}.calendar-toolbar-modes .btn{padding:.4rem .75rem;font-size:.8rem}.calendar-weekday-header{grid-template-columns:repeat(7,1fr);gap:.4rem;padding:0 .1rem;display:grid}.calendar-weekday-header span{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.calendar-month-grid{grid-template-columns:repeat(7,1fr);gap:.4rem;display:grid}.calendar-week-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.calendar-day-grid{grid-template-columns:1fr;display:grid}.calendar-cell{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-surface);flex-direction:column;gap:.25rem;min-height:64px;padding:.4rem .5rem;transition:all .15s;display:flex;position:relative}.calendar-cell:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-sm)}.calendar-cell-blank{cursor:default;border:none;min-height:64px}.calendar-cell-big{min-height:120px;padding:.75rem 1rem}.calendar-cell-header{justify-content:space-between;align-items:center;display:flex}.calendar-cell-daynum{color:var(--text-main);font-size:.85rem;font-weight:700}.calendar-cell-lock{border-radius:var(--radius-full);width:20px;height:20px;color:var(--text-muted);cursor:pointer;opacity:0;background:#0f172a0d;border:none;justify-content:center;align-items:center;transition:opacity .15s;display:inline-flex}.calendar-cell:hover .calendar-cell-lock,.calendar-cell-closed .calendar-cell-lock{opacity:1}.calendar-cell-count{color:var(--brand-primary-hover);font-size:.72rem;font-weight:600}.calendar-cell-closed-label,.calendar-cell-unavailable-label{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:600;overflow:hidden}.calendar-cell-selected{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-primary-light)}.calendar-cell-today .calendar-cell-daynum{color:var(--brand-primary)}.calendar-cell-closed{background:var(--slate-100)}.calendar-cell-closed .calendar-cell-daynum{color:var(--text-muted)}.calendar-cell-unavailable{background:repeating-linear-gradient(135deg, var(--bg-surface), var(--bg-surface) 6px, var(--slate-100) 6px, var(--slate-100) 12px)}.calendar-cell-muted{opacity:.4}.heat-1{background:#0d948814}.heat-2{background:#0d94882e}.heat-3{background:#0d948852}.heat-4{background:#0d94887a}.calendar-popover{z-index:20;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);cursor:default;flex-direction:column;gap:.5rem;width:200px;padding:.75rem;display:flex;position:absolute;top:calc(100% + 4px);left:0}.calendar-popover-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.calendar-popover .btn{width:100%;padding:.4rem;font-size:.78rem}@media (width<=768px){.calendar-period-label{min-width:auto;font-size:.85rem}.calendar-cell{min-height:48px;padding:.3rem .35rem}.calendar-cell-big{min-height:90px}}
