:root{--primary:#25327a;--secondary:#12bfb7;--bg:#f3f6fa;--dark:#111827}body{background:var(--bg);color:var(--dark)}.auth-bg{background:linear-gradient(135deg,#eef3f7,#fffef9)}.login-card{width:100%;max-width:430px;border:0;border-radius:22px;box-shadow:0 20px 70px rgba(16,24,40,.15)}.app-shell{display:flex;min-height:100vh}.sidebar{width:270px;background:#111827;color:#fff;position:fixed;inset:0 auto 0 0;transition:.2s;z-index:20}.brand{height:70px;display:flex;align-items:center;gap:12px;padding:0 22px;font-weight:800;font-size:18px;background:var(--primary)}.brand i{color:var(--secondary)}.sidebar nav{padding:14px}.sidebar a{display:flex;gap:12px;align-items:center;color:#dbe4ff;text-decoration:none;padding:12px 14px;border-radius:12px;margin-bottom:4px}.sidebar a:hover{background:rgba(255,255,255,.10);color:#fff}.main{margin-left:270px;min-height:100vh;display:flex;flex-direction:column;width:calc(100% - 270px)}.topbar{height:70px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:16px;padding:0 22px;position:sticky;top:0;z-index:10}.content{padding:24px;flex:1}.footer{background:#fff;border-top:1px solid #e5e7eb;text-align:center;padding:12px;font-size:12px;color:#667085}.card-soft{border:0;border-radius:18px;box-shadow:0 8px 24px rgba(16,24,40,.08)}.page-title{font-size:26px;font-weight:800;color:var(--primary);margin-bottom:18px}.btn-primary{background:var(--primary);border-color:var(--primary)}.table thead th{background:#f8fafc;color:#344054}.sidebar-collapsed .sidebar{width:78px}.sidebar-collapsed .sidebar span{display:none}.sidebar-collapsed .main{margin-left:78px;width:calc(100% - 78px)}.form-label{font-weight:700;color:#344054}.rx-paper{background:#fffef9;width:216mm;min-height:279mm;margin:auto;padding:14mm 15mm;box-shadow:0 8px 30px rgba(16,24,40,.18);position:relative}.rx-watermark{position:absolute;inset:0;opacity:.05;display:flex;align-items:center;justify-content:center;font-size:96px;color:#12bfb7;font-weight:800;pointer-events:none}.rx-content{position:relative}.rx-footer{position:absolute;bottom:8mm;left:15mm;right:15mm;text-align:center;color:#25327a;font-weight:800}.rx-rule{height:4px;background:#25327a;margin:5mm 0}.receta-box-print{white-space:pre-wrap;min-height:130mm;border:1px solid rgba(37,50,122,.18);padding:5mm;border-radius:8px;background:rgba(255,255,255,.55)}@media(max-width:900px){.sidebar{transform:translateX(-100%)}.main{margin-left:0;width:100%}.sidebar-collapsed .sidebar{transform:translateX(0);width:270px}.sidebar-collapsed .sidebar span{display:inline}.sidebar-collapsed .main{margin-left:0;width:100%}}@media print{.no-print{display:none!important}body{background:#fff}.rx-paper{box-shadow:none;margin:0;width:216mm;height:279mm}.content{padding:0}.topbar,.sidebar,.footer{display:none}.main{margin:0;width:100%}}

.developer-footer{display:flex;align-items:center;justify-content:center;gap:10px}.developer-chip{border:0;background:#f8fafc;border-radius:999px;padding:7px 12px;color:#25327a;font-weight:800;box-shadow:0 8px 22px rgba(16,24,40,.08)}.footer-icon{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#f8fafc;color:#25327a;text-decoration:none;box-shadow:0 8px 22px rgba(16,24,40,.08)}.footer-icon.whatsapp{color:#16a34a}.floating-modal-card{border:0;border-radius:24px;box-shadow:0 24px 80px rgba(16,24,40,.22);overflow:hidden}.developer-card-floating{display:flex;gap:18px;align-items:center;padding:8px}.developer-avatar{width:74px;height:74px;border-radius:24px;background:linear-gradient(135deg,#25327a,#12bfb7);color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;box-shadow:0 16px 40px rgba(37,50,122,.28)}.swal-floating-card{border-radius:24px!important;box-shadow:0 24px 80px rgba(16,24,40,.22)!important}.session-card-mini{padding:6px 12px;background:#f8fafc;border-radius:14px}.patient-lookup{position:relative}.patient-results{position:absolute;z-index:60;top:100%;left:0;right:0;background:#fff;border:1px solid #d8dee8;border-radius:14px;margin-top:6px;box-shadow:0 18px 45px rgba(16,24,40,.18);overflow:hidden}.patient-result-item{display:block;width:100%;text-align:left;border:0;background:#fff;padding:10px 12px;border-bottom:1px solid #eef2f7}.patient-result-item:hover{background:#eef8ff}.patient-result-item small{display:block;color:#667085}.patient-result-empty{padding:12px;color:#075f5b;background:#e6f7f6;font-weight:700}.floating-card{border:0;border-radius:18px;box-shadow:0 16px 45px rgba(16,24,40,.12);background:#fff}.wa-action{color:#16a34a!important}.next-appointment-card{border:1px solid #d8eef0;background:#f7ffff;border-radius:14px;padding:10px;margin-top:10px}.next-appointment-card .title{font-weight:800;color:#034b68;margin-bottom:8px}
.smart-search-wrap{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:12px}.fc{--fc-border-color:#e5e7eb;--fc-today-bg-color:#e6f7f6}.fc .fc-toolbar-title{font-size:1.25rem;font-weight:800;color:#25327a}.fc .fc-button-primary{background:#25327a;border-color:#25327a;border-radius:10px}.fc .fc-event{border:0;border-radius:10px;padding:2px 4px;background:#25327a;box-shadow:0 6px 16px rgba(37,50,122,.18);cursor:pointer}.fc .fc-event-title{font-weight:700}.appointment-detail-card{display:flex;gap:16px;align-items:flex-start;background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:16px}.appointment-icon{width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,#25327a,#12bfb7);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 14px 35px rgba(37,50,122,.22)}

.appointments-calendar{min-height:640px;background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:14px;position:relative}.calendar-loading{padding:22px;text-align:center;color:#25327a;font-weight:800}.fc .fc-view-harness{background:#fff}.fc-daygrid-event,.fc-timegrid-event{cursor:pointer}.modal-footer form{margin:0}

.native-calendar{min-height:640px;background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:14px;position:relative;box-shadow:0 10px 30px rgba(16,24,40,.06)}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.calendar-title{font-weight:900;color:#25327a;font-size:1.35rem;text-transform:capitalize}.calendar-legend{font-size:.82rem;color:#667085;display:flex;gap:8px;align-items:center}.calendar-legend .dot{width:10px;height:10px;border-radius:99px;display:inline-block}.dot.pending{background:#2563eb}.dot.done{background:#16a34a}.dot.cancel{background:#dc2626}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:1px;background:#e5e7eb;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden}.calendar-weekday{background:#f8fafc;padding:10px;text-align:center;font-weight:800;color:#25327a}.calendar-day{background:#fff;min-height:116px;padding:8px;position:relative}.calendar-day.muted{background:#fafafa;color:#94a3b8}.calendar-day.today{box-shadow:inset 0 0 0 2px #12bfb7}.calendar-daynum{font-weight:900;color:#25327a;margin-bottom:6px}.calendar-events{display:flex;flex-direction:column;gap:5px}.calendar-event{border:0;text-align:left;border-radius:10px;padding:5px 7px;font-size:.78rem;line-height:1.15;color:#fff;background:#25327a;box-shadow:0 6px 14px rgba(37,50,122,.16);cursor:pointer;white-space:normal}.calendar-event span{font-weight:900}.calendar-event.pending{background:#2563eb}.calendar-event.confirm{background:#7c3aed}.calendar-event.done{background:#16a34a}.calendar-event.cancel{background:#dc2626;text-decoration:line-through;opacity:.8}.calendar-event:hover{filter:brightness(.95);transform:translateY(-1px)}.calendar-loading{padding:16px;text-align:center;color:#25327a;font-weight:800}.calendar-error{grid-column:1/-1;background:#fff7ed;color:#9a3412;padding:22px;display:flex;flex-direction:column;gap:6px}.calendar-error b{font-size:1rem}.calendar-error small{word-break:break-word}@media(max-width:1100px){.calendar-grid{grid-template-columns:repeat(7,minmax(92px,1fr));overflow:auto}.calendar-day{min-height:104px}.calendar-event{font-size:.72rem}}
