.page-container{flex-direction:column;gap:1.5rem;display:flex}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-header h1{margin-bottom:.25rem;font-size:1.875rem;font-weight:700}.subtitle{color:var(--secondary-foreground);font-size:.95rem}.btn-primary,.btn-secondary{border-radius:var(--radius-md);align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.btn-primary{background:var(--primary);color:var(--primary-foreground);box-shadow:0 4px 14px #2563eb63}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.btn-secondary{background:var(--secondary);color:var(--foreground)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-icon{border-radius:var(--radius-sm);padding:.5rem;transition:background .2s}.btn-icon:hover{background:var(--secondary)}.table-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table-responsive{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{color:var(--secondary-foreground);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);background:#f1f5f980;padding:1rem 1.5rem;font-size:.875rem;font-weight:600}@media (prefers-color-scheme:dark){.data-table th{background:#1e293b80}}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:1.25rem 1.5rem}.data-table tr:hover td{background:#ffffff05}.patient-cell{align-items:center;gap:1rem;display:flex}.patient-avatar{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;font-weight:600;display:flex}.patient-name{color:var(--foreground);font-weight:600}.patient-notes{color:var(--secondary-foreground);white-space:nowrap;text-overflow:ellipsis;max-width:200px;margin-top:.25rem;font-size:.8rem;overflow:hidden}.datetime-cell{flex-direction:column;gap:.4rem;display:flex}.date-badge,.time-badge{border-radius:var(--radius-sm);background:var(--secondary);color:var(--secondary-foreground);width:fit-content;padding:.25rem .5rem;font-size:.85rem;font-weight:500;display:inline-block}.status-badge{border-radius:999px;padding:.35rem .75rem;font-size:.8rem;font-weight:600;display:inline-block}.status-badge.scheduled{color:var(--accent);background:#38bdf81a}.status-badge.completed{color:var(--success);background:#10b9811a}.status-badge.cancelled{color:var(--destructive);background:#ef44441a}.category-badge{border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-foreground);padding:.35rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.action-buttons{align-items:center;gap:.25rem;display:flex}.loading-state,.empty-state{text-align:center;color:var(--secondary-foreground);padding:4rem 2rem}.empty-icon{color:var(--border);opacity:.8;margin-bottom:1.5rem}.empty-state h3{color:var(--foreground);margin-bottom:.5rem;font-size:1.25rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--card-bg);-webkit-backdrop-filter:blur(24px);border:1px solid var(--card-border);border-radius:var(--radius-xl);flex-direction:column;width:100%;max-width:600px;max-height:90vh;animation:.4s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000026}.modal-header{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.modal-header h2{font-size:1.25rem;font-weight:700}.close-btn{color:var(--secondary-foreground);border-radius:var(--radius-sm);padding:.25rem;transition:all .2s}.close-btn:hover{background:var(--secondary);color:var(--foreground)}.modal-body{padding:1.5rem;overflow-y:auto}.form-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.input-group.full-width{grid-column:1/-1}.textarea-wrapper{align-items:flex-start}.textarea-wrapper .input-icon{margin-top:.8rem}.textarea-wrapper textarea{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;min-height:100px;color:var(--foreground);resize:vertical;padding:.75rem 1rem .75rem 3rem;font-size:.95rem;transition:all .2s}.textarea-wrapper textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.modal-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;display:flex}.text-success{color:var(--success)}.text-primary{color:var(--primary)}select{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--foreground);appearance:none;padding:.75rem 1rem;font-size:1rem;transition:all .2s}select:focus{border-color:var(--primary);outline:none}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.react-calendar{background:var(--background);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:100%;font-family:inherit;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{margin:-.5em;display:flex}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar :before,.react-calendar :after{box-sizing:border-box}.react-calendar button{border:0;outline:none;margin:0}.react-calendar button:enabled:hover,.react-calendar button:enabled:focus{background-color:var(--secondary)}.react-calendar__navigation{height:44px;margin-bottom:1em;display:flex}.react-calendar__navigation button{background:0 0;min-width:44px;margin-top:8px;font-size:16px}.react-calendar__navigation button:disabled{background-color:var(--muted)}.react-calendar__navigation button:enabled:hover,.react-calendar__navigation button:enabled:focus{background-color:var(--secondary)}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;color:var(--secondary-foreground);font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekdays__weekday abbr{text-decoration:none}.react-calendar__month-view__weekNumbers .react-calendar__tile{color:var(--secondary-foreground);justify-content:center;align-items:center;font-size:.75em;font-weight:700;display:flex}.react-calendar__month-view__days__day--weekend{color:var(--destructive)}.react-calendar__month-view__days__day--neighboringMonth{color:var(--muted-foreground)}.react-calendar__year-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__century-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{text-align:center;max-width:100%;color:var(--foreground);background:0 0;padding:.75em .5em;font-size:.9em;line-height:16px;position:relative}.react-calendar__tile:disabled{background-color:var(--muted);color:var(--muted-foreground)}.react-calendar__tile:enabled:hover,.react-calendar__tile:enabled:focus{background-color:var(--secondary);border-radius:var(--radius-sm)}.react-calendar__tile--now{background:var(--primary);color:var(--primary-foreground);border-radius:var(--radius-sm)}.react-calendar__tile--now:enabled:hover,.react-calendar__tile--now:enabled:focus{background:var(--primary);color:var(--primary-foreground)}.react-calendar__tile--hasActive{background:var(--accent);color:var(--accent-foreground)}.react-calendar__tile--hasActive:enabled:hover,.react-calendar__tile--hasActive:enabled:focus{background:var(--accent)}.react-calendar__tile--active{background:var(--primary);color:var(--primary-foreground);border-radius:var(--radius-sm)}.react-calendar__tile--active:enabled:hover,.react-calendar__tile--active:enabled:focus{background:var(--primary);color:var(--primary-foreground)}.calendar-today{background:var(--primary)!important;color:var(--primary-foreground)!important;border-radius:var(--radius-sm)!important}.calendar-selected{background:var(--accent)!important;color:var(--accent-foreground)!important;border-radius:var(--radius-sm)!important}.calendar-has-events{color:var(--foreground);font-weight:600}.calendar-has-events.calendar-today,.calendar-has-events.calendar-selected{color:inherit}.has-appointments:not(.has-followups):after{content:"";background-color:#3b82f6;border-radius:50%;width:6px;height:6px;position:absolute;bottom:3px;left:50%;transform:translate(-50%);box-shadow:0 1px 2px #0003}.has-followups:not(.has-appointments):after{content:"";background-color:#f59e0b;border-radius:50%;width:6px;height:6px;position:absolute;bottom:3px;left:50%;transform:translate(-50%);box-shadow:0 1px 2px #0003}.has-appointments.has-followups:before,.has-appointments.has-followups:after{content:"";border-radius:50%;width:6px;height:6px;position:absolute;bottom:3px;box-shadow:0 1px 2px #0003}.has-appointments.has-followups:before{background-color:#3b82f6;left:calc(50% - 5px)}.has-appointments.has-followups:after{background-color:#f59e0b;left:calc(50% + 5px)}@media (max-width:768px){.react-calendar{font-size:14px}.react-calendar__tile{padding:.5em .25em}}
