.dtp-wrapper{position:relative;display:inline-block;width:100%}.dtp-input{width:100%;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--bg-card, #fff);color:var(--text-primary, #1e293b);font-size:.88rem;cursor:pointer;transition:border-color .15s}.dtp-input:hover{border-color:var(--primary, #2563eb)}.dtp-input:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 2px #2563eb26}.dtp-input::placeholder{color:var(--text-secondary, #94a3b8)}.dtp-icon{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);font-size:.9rem;pointer-events:none;color:var(--text-secondary, #94a3b8)}.dtp-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:1200;background:var(--bg-card, #fff);border:1px solid var(--border, #d1d5db);border-radius:10px;box-shadow:0 8px 24px #0000001f;padding:.75rem;min-width:280px;animation:dtp-fade-in .12s ease}@keyframes dtp-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dtp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.dtp-header-label{display:flex;gap:.25rem;align-items:center}.dtp-header-btn{background:none;border:none;cursor:pointer;padding:.25rem .5rem;border-radius:6px;font-size:.85rem;font-weight:600;color:var(--text-primary, #1e293b);transition:background .12s}.dtp-header-btn:hover{background:var(--bg-hover, #f1f5f9);color:var(--primary, #2563eb)}.dtp-nav{background:none;border:none;cursor:pointer;padding:.25rem .4rem;border-radius:6px;font-size:.9rem;color:var(--text-secondary, #64748b);transition:background .12s}.dtp-nav:hover{background:var(--bg-hover, #f1f5f9);color:var(--primary, #2563eb)}.dtp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.72rem;font-weight:600;color:var(--text-secondary, #94a3b8);margin-bottom:.25rem}.dtp-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dtp-day{display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 auto;border:none;border-radius:50%;background:none;cursor:pointer;font-size:.82rem;color:var(--text-primary, #1e293b);transition:all .1s}.dtp-day:hover{background:var(--bg-hover, #f1f5f9)}.dtp-day.other-month{color:var(--text-secondary, #cbd5e1)}.dtp-day.today{font-weight:700;color:var(--primary, #2563eb);background:#2563eb14}.dtp-day.selected{background:var(--primary, #2563eb);color:#fff;font-weight:600}.dtp-day.selected:hover{background:var(--primary, #2563eb);opacity:.9}.dtp-months{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:.25rem 0}.dtp-month-btn{padding:.5rem .25rem;border:none;border-radius:8px;background:none;cursor:pointer;font-size:.82rem;color:var(--text-primary, #1e293b);transition:all .1s}.dtp-month-btn:hover{background:var(--bg-hover, #f1f5f9)}.dtp-month-btn.current{font-weight:700;color:var(--primary, #2563eb);background:#2563eb14}.dtp-month-btn.selected{background:var(--primary, #2563eb);color:#fff;font-weight:600}.dtp-years{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:.25rem 0}.dtp-year-btn{padding:.5rem .25rem;border:none;border-radius:8px;background:none;cursor:pointer;font-size:.82rem;color:var(--text-primary, #1e293b);transition:all .1s}.dtp-year-btn:hover{background:var(--bg-hover, #f1f5f9)}.dtp-year-btn.current{font-weight:700;color:var(--primary, #2563eb);background:#2563eb14}.dtp-year-btn.selected{background:var(--primary, #2563eb);color:#fff;font-weight:600}.dtp-time{display:flex;align-items:center;gap:.35rem;margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--border, #e2e8f0)}.dtp-time-label{font-size:.78rem;font-weight:600;color:var(--text-secondary, #64748b);margin-right:.25rem}.dtp-time-select{padding:.3rem .4rem;border:1px solid var(--border, #d1d5db);border-radius:6px;background:var(--bg-card, #fff);color:var(--text-primary, #1e293b);font-size:.85rem;cursor:pointer;min-width:55px;text-align:center}.dtp-time-select:focus{outline:none;border-color:var(--primary, #2563eb)}.dtp-time-colon{font-size:1rem;font-weight:700;color:var(--text-secondary, #64748b)}.dtp-footer{display:flex;justify-content:center;margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border, #e2e8f0)}.dtp-today-btn{background:none;border:none;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--primary, #2563eb);padding:.25rem .5rem;border-radius:4px;transition:background .12s}.dtp-today-btn:hover{background:#2563eb14}.dtp-clear-btn{background:none;border:none;cursor:pointer;font-size:.78rem;color:var(--text-secondary, #94a3b8);padding:.25rem .5rem;border-radius:4px;margin-left:.5rem}.dtp-clear-btn:hover{color:var(--danger, #ef4444);background:#ef44440f}:root{--primary: #0984e3;--primary-hover: #0773c5;--bg-card: #ffffff;--bg-hover: #f8f9fa;--text-primary: #2d3436;--text-secondary: #636e72;--border: #dfe6e9;--danger: #dc2626;--success: #059669;--warning: #d97706}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f6fa;color:#2d3436;font-size:13px;line-height:1.5;min-height:100vh}a{color:#0984e3;text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;flex-direction:column;min-height:100vh}.topbar{position:fixed;top:0;left:0;right:0;height:50px;background:#2d3436;color:#dfe6e9;display:flex;align-items:center;padding:0 20px;z-index:100;gap:16px}.topbar-left{display:flex;align-items:center;gap:8px;flex-shrink:0}.topbar-logo{font-size:22px;line-height:1}.topbar-brand{display:flex;flex-direction:column}.topbar-nav-arrows{display:flex;align-items:center;gap:2px;margin-left:4px}.topbar-nav-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:4px;background:transparent;color:#b2bec3;font-size:11px;cursor:pointer;transition:all .15s;padding:0}.topbar-nav-btn:hover{background:#ffffff1f;color:#fff}.topbar-nav-btn:active{background:#fff3}.topbar-title{font-size:14px;font-weight:700;color:#fff;line-height:1.2}.topbar-clinic{font-size:10px;color:#b2bec3;line-height:1.2}.topbar-nav{display:flex;align-items:center;gap:2px;flex:1;justify-content:center}.topbar-link{display:flex;align-items:center;gap:5px;padding:6px 14px;color:#b2bec3;text-decoration:none;font-size:13px;font-weight:500;border-radius:6px;transition:all .15s;white-space:nowrap}.topbar-link:hover{background:#ffffff14;color:#fff;text-decoration:none}.topbar-link.active{background:#0984e333;color:#74b9ff}.topbar-right{display:flex;align-items:center;gap:14px;flex-shrink:0}.topbar-right .global-search-area{max-width:340px}.topbar-user{display:flex;flex-direction:column;align-items:flex-end;min-width:140px}.topbar-user-name{font-size:13px;font-weight:600;color:#fff;line-height:1.2;white-space:nowrap}.topbar-user-role{font-size:10px;color:#b2bec3;text-transform:uppercase;letter-spacing:.5px}.role-badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;line-height:1.4;width:fit-content}.role-badge.manager{background:#0984e3;color:#fff}.role-badge.dentist{background:#00b894;color:#fff}.role-badge.receptionist{background:#fdcb6e;color:#2d3436}.btn-logout{background:none;border:1px solid rgba(255,255,255,.2);color:#b2bec3;padding:5px 10px;border-radius:4px;font-size:11px;cursor:pointer;transition:all .15s}.btn-logout:hover{background:#d6303133;border-color:#d63031;color:#ff7675}.main-content{flex:1;margin-top:50px;padding:16px 24px;min-height:calc(100vh - 50px)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0984e3,#6c5ce7);padding:24px}.login-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0003}.login-header{text-align:center;margin-bottom:32px}.login-logo{font-size:48px;display:block;margin-bottom:8px}.login-header h1{font-size:24px;font-weight:700;margin-bottom:4px}.login-header p{color:#636e72;font-size:14px}.login-form .form-group{margin-bottom:16px}.login-error{background:#fff5f5;color:#d63031;padding:10px 14px;border-radius:6px;margin-bottom:16px;border:1px solid #ffcccc;font-size:14px}.btn-full{width:100%;justify-content:center}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:12px;color:#636e72}.loading-logo{font-size:48px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}}.permission-denied{text-align:center;padding:80px 24px}.permission-denied h2{font-size:24px;margin-bottom:8px;color:#d63031}.permission-denied p{color:#636e72}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:10px;flex-wrap:wrap}.page-header h1{font-size:18px;font-weight:600}.page-header .actions{display:flex;gap:8px;flex-wrap:wrap}.text-muted{color:#636e72;font-size:12px;font-weight:400}.btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid #ddd;border-radius:6px;background:#fff;color:#2d3436;font-size:13px;cursor:pointer;text-decoration:none;transition:all .15s;white-space:nowrap}.btn:hover{background:#f1f2f6;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#0984e3;color:#fff;border-color:#0984e3}.btn-primary:hover{background:#0773c5}.btn-secondary{background:#6c5ce7;color:#fff;border-color:#6c5ce7}.btn-secondary:hover{background:#5a4bd1}.btn-danger{background:#d63031;color:#fff;border-color:#d63031}.btn-danger:hover{background:#c0292a}.btn-sm{padding:3px 8px;font-size:11px}.card{background:#fff;border-radius:8px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px #00000014}.card h2{font-size:14px;font-weight:600;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid #f1f2f6}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid #f1f2f6}.card-header h2{margin-bottom:0;padding-bottom:0;border-bottom:none}.card-section-title{font-size:15px;font-weight:600;color:#0984e3;margin-bottom:12px;margin-top:8px}.dashboard-columns{display:grid;grid-template-columns:1fr 2fr;gap:1rem;margin-bottom:1rem}.dashboard-col-left,.dashboard-col-right{display:flex;flex-direction:column;gap:1rem}.dash-waiting-card .card-header{display:flex;justify-content:space-between;align-items:center}.dash-count-badge{background:#e0e7ff;color:#3730a3;font-weight:700;font-size:.8rem;padding:.15rem .5rem;border-radius:12px}.dash-waiting-search-wrap{padding:.5rem .75rem;position:relative}.dash-waiting-search{width:100%;padding:.4rem .6rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.82rem;outline:none}.dash-waiting-search:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f626}.dash-waiting-suggestions{position:absolute;top:100%;left:.75rem;right:.75rem;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:100;max-height:180px;overflow-y:auto}.dash-waiting-suggestion{display:flex;gap:.5rem;align-items:center;width:100%;padding:.4rem .6rem;border:none;background:none;cursor:pointer;font-size:.82rem;text-align:left}.dash-waiting-suggestion:hover{background:#f1f5f9}.dash-waiting-suggestion span:first-child{font-weight:600;color:#64748b;font-size:.75rem}.dash-waiting-list{list-style:none;padding:0;margin:0}.dash-waiting-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-bottom:1px solid #f1f5f9;font-size:.85rem}.dash-waiting-item:last-child{border-bottom:none}.dash-waiting-num{font-weight:600;color:#94a3b8;width:1.5rem}.dash-waiting-name{flex:1;color:#2563eb;text-decoration:none;font-weight:500}.dash-waiting-name:hover{text-decoration:underline}.dash-waiting-time{font-size:.75rem;color:#94a3b8}.dash-waiting-remove{background:none;border:none;cursor:pointer;color:#ef4444;font-size:.85rem;padding:0 .2rem;opacity:.5;transition:opacity .15s}.dash-waiting-remove:hover{opacity:1}.dash-empty-mini{text-align:center;padding:1rem .75rem;color:#94a3b8;font-size:.82rem}.dash-stats-compact{display:flex;flex-direction:column;gap:.5rem}.dash-stat-box{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem}.dash-stat-num{font-size:1.5rem;font-weight:700;color:#1e293b;line-height:1}.dash-stat-lbl{font-size:.78rem;color:#64748b}.dash-arrived-card .card-header{display:flex;justify-content:space-between;align-items:center}.dash-arrived-list{list-style:none;padding:0;margin:0}.dash-arrived-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-bottom:1px solid #f1f5f9;font-size:.82rem}.dash-arrived-item:last-child{border-bottom:none}.dash-arrived-time{font-weight:600;color:#22c55e;flex:0 0 50px}.dash-arrived-name{flex:1;color:#2563eb;text-decoration:none;font-weight:500}.dash-arrived-name:hover{text-decoration:underline}.dash-arrived-proc{color:#64748b;flex:0 0 120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-arrived-dentist{display:flex;align-items:center;gap:3px;color:#94a3b8;font-size:.78rem;flex:0 0 90px}.dash-toggle-group{display:flex;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.dash-toggle-btn{padding:.3rem .75rem;border:none;background:#fff;cursor:pointer;font-size:.78rem;font-weight:500;color:#64748b;transition:all .15s}.dash-toggle-btn+.dash-toggle-btn{border-left:1px solid #e2e8f0}.dash-toggle-btn.active{background:#2563eb;color:#fff}.dash-toggle-btn:hover:not(.active){background:#f1f5f9}.dash-appt-header-controls{display:flex;align-items:center;gap:.5rem}.dash-dentist-filter{padding:.25rem .5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.78rem;color:#334155;background:#fff;cursor:pointer;outline:none;max-width:170px}.dash-dentist-filter:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #3b82f626}.dash-outstanding-card .card-header{display:flex;justify-content:space-between;align-items:center}.dash-count-badge-warn{background:#fef3c7;color:#92400e}.dash-outstanding-card .table{font-size:.82rem}.dash-outstanding-card .table th{font-size:.75rem;text-transform:uppercase;color:#94a3b8;font-weight:600}@media(max-width:900px){.dashboard-columns{grid-template-columns:1fr}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:#fff;border-radius:8px;padding:14px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 3px #00000014}.stat-icon{font-size:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f5f6fa;border-radius:8px}.stat-info{display:flex;flex-direction:column}.stat-number{font-size:22px;font-weight:700;line-height:1;color:#2d3436}.stat-label{font-size:12px;color:#636e72;margin-top:2px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:7px 10px;text-align:left;border-bottom:1px solid #f1f2f6;font-size:13px}.table th{background:#fafbfc;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#636e72}.table td a{color:#0984e3;text-decoration:none;font-weight:500}.table td a:hover{text-decoration:underline}.table td .btn+.btn{margin-left:4px}.row-inactive td{opacity:.5}.status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.status-scheduled{background:#dfe6e9;color:#636e72}.status-confirmed{background:#dfeeff;color:#0984e3}.status-in_progress{background:#ffeaa7;color:#856404}.status-completed{background:#d4edda;color:#155724}.status-cancelled{background:#f8d7da;color:#721c24}.status-no_show{background:#fddede;color:#d63031}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.info-grid label{display:block;font-size:11px;color:#636e72;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-weight:600}.info-grid span{font-size:15px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid .full-width{grid-column:1 / -1}.detail-block label{display:block;font-size:11px;color:#636e72;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-weight:600}.detail-block p{font-size:14px}.notes-text{white-space:pre-wrap;background:#fafbfc;padding:12px;border-radius:6px;border:1px solid #f1f2f6;font-size:14px;line-height:1.6;min-height:40px}.search-bar{display:flex;gap:8px;margin-bottom:16px;align-items:center}.search-bar input{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit}.search-bar input:focus{outline:none;border-color:#0984e3;box-shadow:0 0 0 3px #0984e31a}.filter-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.view-toggle{display:flex;gap:4px}.filter-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-controls input,.filter-controls select{padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit}.filter-controls input:focus,.filter-controls select:focus{outline:none;border-color:#0984e3}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;padding:16px 0 4px}.pagination-info{font-size:13px;color:#636e72}.form{max-width:600px}.form-group{margin-bottom:10px}.form-group label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:#2d3436}.form-group input,.form-group select,.form-group textarea{width:100%;padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;transition:border-color .15s;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#0984e3;box-shadow:0 0 0 3px #0984e31a}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions{display:flex;gap:8px;margin-top:24px}.form-error{background:#fff5f5;color:#d63031;padding:10px 14px;border-radius:6px;margin-bottom:16px;border:1px solid #ffcccc;font-size:14px}.upload-area{margin-bottom:16px;padding:16px;border:2px dashed #ddd;border-radius:8px;text-align:center}.uploading{margin-left:12px;color:#0984e3;font-size:14px}.attachments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.attachment-card{border:1px solid #f1f2f6;border-radius:8px;padding:12px;text-align:center}.attachment-preview{width:100%;height:140px;object-fit:cover;border-radius:4px;margin-bottom:8px}.attachment-icon{font-size:48px;height:140px;display:flex;align-items:center;justify-content:center}.attachment-info{display:flex;flex-direction:column;margin-bottom:8px}.attachment-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-date{font-size:12px;color:#636e72}.loading{text-align:center;padding:48px;color:#636e72}.error{background:#fff5f5;color:#d63031;padding:12px 16px;border-radius:6px;margin-bottom:16px;border:1px solid #ffcccc}.empty-state{text-align:center;padding:32px;color:#636e72}.empty-state a{color:#0984e3}.users-page .role-badge{font-size:11px}@media(max-width:768px){.topbar{height:auto;min-height:50px;flex-wrap:wrap;padding:6px 12px;gap:6px}.topbar-nav{order:3;width:100%;justify-content:center;gap:2px}.topbar-link{padding:4px 8px;font-size:11px}.topbar-right .global-search-area{max-width:220px}.global-search.expanded{width:180px}.main-content{padding:10px}.stats-grid{grid-template-columns:1fr 1fr}.form-row,.form-grid,.detail-grid{grid-template-columns:1fr}}.appointments-page{display:flex;flex-direction:column;gap:.5rem;height:calc(100vh - 82px);overflow:hidden}.calendar-layout{display:flex;gap:.75rem;flex:1;min-height:0;overflow:hidden}.calendar-sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;gap:.75rem;overflow-y:auto}.calendar-main{flex:1;display:flex;flex-direction:column;gap:.5rem;min-width:0}.mini-calendar{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.75rem}.mini-calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.mini-calendar-header button{background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--text-secondary);padding:.25rem .5rem;border-radius:4px}.mini-calendar-header button:hover{background:var(--bg-hover);color:var(--text-primary)}.mini-calendar-header span{font-weight:600;font-size:.85rem}.mini-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.7rem;color:var(--text-secondary);margin-bottom:.25rem;font-weight:500}.mini-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.mini-cal-day{display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;font-size:.75rem;padding:.15rem;border-radius:4px;color:var(--text-primary);position:relative;height:28px;width:100%}.mini-cal-day:hover{background:var(--bg-hover)}.mini-cal-day.other-month{color:var(--text-secondary);opacity:.4}.mini-cal-day.today{background:var(--primary);color:#fff;font-weight:600;border-radius:50%}.mini-cal-day.selected{outline:2px solid var(--primary);border-radius:50%}.mini-cal-dot{width:4px;height:4px;border-radius:50%;background:var(--primary);position:absolute;bottom:1px}.sidebar-patient-info{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.75rem;flex:1;overflow-y:auto;min-height:0}.sidebar-patient-info h3{font-size:.75rem;margin:0 0 .4rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.sidebar-patient-info.sidebar-empty{display:flex;align-items:center;justify-content:center}.sidebar-apt-details{font-size:.82rem;display:flex;flex-direction:column;gap:.3rem}.sidebar-apt-title{font-weight:600}.sidebar-apt-divider{border:none;border-top:1px solid var(--border);margin:.5rem 0}.sidebar-patient-details{font-size:.82rem;display:flex;flex-direction:column;gap:.3rem}.sidebar-flags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}.sidebar-flag{font-size:.7rem;padding:.1rem .4rem;border-radius:4px;font-weight:500}.sidebar-profile-link{margin-top:.5rem;display:block;text-align:center;font-size:.8rem}.sidebar-loading{font-size:.82rem;color:var(--text-secondary);padding:.5rem 0}.dentist-tabs{display:flex;gap:.5rem;flex-wrap:wrap;padding-bottom:.5rem}.dentist-tab{padding:.3rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-weight:500;transition:all .15s ease}.dentist-tab:hover{border-color:var(--primary);color:var(--primary)}.dentist-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.dentist-color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.4rem;vertical-align:middle;flex-shrink:0;border:2px solid rgba(255,255,255,.3)}.dentist-tab.active .dentist-color-dot{border-color:#fff9}.calendar-container{position:relative;background:var(--bg-card);border-radius:8px;border:1px solid var(--border);padding:.75rem;flex:1;min-height:0;overflow:hidden}.calendar-loading{position:absolute;top:1rem;right:1rem;background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:4px;font-size:.8rem;z-index:10}.calendar-container .fc{font-family:inherit;height:100%}.calendar-container .fc-toolbar-title{font-size:1.2rem!important;font-weight:600}.calendar-container .fc-button{background:var(--bg-card)!important;border:1px solid var(--border)!important;color:var(--text-primary)!important;font-size:.85rem!important;padding:.35rem .75rem!important;box-shadow:none!important}.calendar-container .fc-button:hover{background:var(--bg-hover)!important}.calendar-container .fc-button-active{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}.calendar-container .fc-event{border-radius:4px;padding:1px 4px;font-size:.78rem;cursor:pointer;border:none!important;position:relative}.fc-event-custom-content{display:flex;align-items:flex-start;justify-content:space-between;width:100%;min-height:100%;overflow:hidden}.fc-event-time-title{display:flex;flex-direction:column;overflow:hidden;flex:1;min-width:0}.fc-custom-time{font-weight:600;font-size:.72rem;white-space:nowrap}.fc-custom-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-status-dot{width:9px;height:9px;min-width:9px;border-radius:50%;margin-top:2px;margin-left:4px;box-shadow:0 0 0 1.5px #ffffffb3}.calendar-container .fc-event.status-cancelled{opacity:.6}.calendar-container .fc-event.status-cancelled .fc-custom-title,.calendar-container .fc-event.status-cancelled .fc-custom-time{text-decoration:line-through}.calendar-container .fc-event.cancellation-unjustified{outline:2px dashed rgba(211,47,47,.6);outline-offset:-2px}.calendar-container .fc-event.patient-arrived{box-shadow:inset 0 0 0 2.5px #d32f2f}.fc-hover-preview{position:absolute;background:#2563eb1f;border:2px dashed rgba(37,99,235,.45);border-radius:4px;pointer-events:none;z-index:5;transition:top .06s ease,left .06s ease;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:500;color:#2563ebb3;overflow:hidden}.calendar-container .fc-timegrid-slot{height:1.8em}.calendar-container .fc-col-header-cell-cushion,.calendar-container .fc-daygrid-day-number{color:var(--text-primary);text-decoration:none}.calendar-container .fc-day-today{background:#2563eb0a!important}.calendar-container .fc-highlight{background:#2563eb1a!important}.calendar-container .fc-event.admin-event{border-width:1px!important;border-style:solid!important;border-color:#9ca3af!important;opacity:.85;font-style:italic}.calendar-container .calendar-day-blocked{position:relative}.calendar-container .calendar-day-blocked:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(156,163,175,.15) 6px,rgba(156,163,175,.15) 12px);background-color:#9ca3af2e;pointer-events:none;z-index:1}.calendar-container .calendar-day-closed:after{background-color:#ef44441a;background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(239,68,68,.08) 6px,rgba(239,68,68,.08) 12px)}.calendar-container .calendar-day-off:after{background-color:#f59e0b1a;background-image:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(245,158,11,.08) 6px,rgba(245,158,11,.08) 12px)}.day-header-badge{display:block;font-size:.65rem;font-weight:500;line-height:1.2;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.day-header-closed{color:#ef4444}.day-header-off{color:#d97706}.admin-event-popup{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:0;min-width:280px;max-width:360px;box-shadow:0 8px 24px #00000026;z-index:1100;transform:translate(-50%,-110%)}.admin-event-popup-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.admin-event-popup-header h3{margin:0;font-size:.95rem}.admin-event-popup-body{padding:.75rem 1rem;font-size:.85rem}.admin-event-popup-body p{margin:0 0 .5rem}.status-legend{display:flex;gap:1rem;flex-wrap:wrap;padding:.5rem 0}.legend-item{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-separator{color:var(--border);font-size:.9rem;margin:0 .25rem}.legend-status-marker,.legend-status-bar{width:14px;height:6px;border-radius:3px;display:inline-block}.legend-status-swatch{width:16px;height:12px;border-radius:3px;display:inline-block;border:3px solid currentColor;background:var(--bg-card)}.legend-status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-arrived-swatch{width:14px;height:12px;border-radius:3px;display:inline-block;background:var(--bg-card);box-shadow:inset 0 0 0 2.5px #d32f2f}.legend-section-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);margin-right:-.25rem}.legend-status-item{font-size:.75rem;opacity:.8}.calendar-context-menu{position:fixed;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000026;z-index:1100;min-width:220px;padding:.25rem 0}.context-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:none;border:none;cursor:pointer;font-size:.82rem;color:var(--text-primary);text-align:left}.context-menu-item:hover{background:var(--bg-hover)}.context-menu-item.danger{color:var(--danger)}.context-menu-divider{border-top:1px solid var(--border);margin:.25rem 0}.cancel-popup{background:var(--bg-card);border-radius:12px;padding:1.5rem;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px #0000004d}.cancel-popup h3{margin:0 0 .5rem;font-size:1.1rem}.cancel-popup p{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem}.cancel-popup-actions{display:flex;gap:.75rem;justify-content:center}.btn-justified{background:#059669;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500}.btn-justified:hover{background:#047857}.btn-unjustified{background:#b91c1c;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500}.btn-unjustified:hover{background:#991b1b}.non-payable-badge{display:inline-block;background:#2563eb20;color:#2563eb;font-size:.78rem;padding:.15rem .5rem;border-radius:4px;font-weight:500}.arrived-badge{display:inline-block;background:#16a34a18;color:#16a34a;font-size:.78rem;padding:.15rem .5rem;border-radius:4px;font-weight:600}.non-payable-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;cursor:pointer}.non-payable-toggle input[type=checkbox]{accent-color:var(--primary)}.cancellation-tag{display:inline-block;font-size:.72rem;padding:.1rem .4rem;border-radius:4px;font-weight:500;margin-left:.4rem}.cancellation-tag.justified{background:#05966920;color:#059669}.cancellation-tag.unjustified{background:#b91c1c20;color:#b91c1c}.modal-patient-flags{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.15rem 0 .5rem;padding:0 .1rem}.modal-flag-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:20px;font-size:.95rem;font-weight:600;border:1.5px solid var(--flag-color, #94a3b8);background:color-mix(in srgb,var(--flag-color, #94a3b8) 14%,white);color:color-mix(in srgb,var(--flag-color, #94a3b8) 85%,black);cursor:default;line-height:1.3}.modal-flag-pill-icon{font-size:1.05rem;flex-shrink:0}.modal-flag-pill-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.modal-flag-pill-sm{font-size:.82rem;padding:.3rem .6rem}.modal-flag-pill-sm .modal-flag-pill-icon{font-size:.9rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-card);border-radius:12px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:1.5rem;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.modal-header h2{margin:0;font-size:1.2rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:.25rem;line-height:1}.modal-close:hover{color:var(--text-primary)}.modal-actions{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.appointment-modal-floating{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;width:580px;min-width:400px;min-height:300px;max-height:92vh;overflow-y:auto;resize:both;box-shadow:0 8px 32px #0000002e,0 2px 8px #00000014;border:1px solid var(--border)}.appointment-modal-floating[style*=left]{transform:none}.modal-drag-handle{cursor:move;-webkit-user-select:none;user-select:none}.modal-drag-handle .modal-close{cursor:pointer}.patient-autocomplete{position:relative}.selected-patient{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-hover);border:1px solid var(--border);border-radius:6px;font-size:.9rem}.selected-patient span{flex:1}.btn-clear{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-secondary);padding:0;line-height:1}.btn-clear:hover{color:var(--danger)}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1px solid var(--border);border-top:none;border-radius:0 0 6px 6px;box-shadow:0 8px 24px #00000026;z-index:100;max-height:250px;overflow-y:auto;list-style:none;margin:0;padding:0}.autocomplete-dropdown li{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;cursor:pointer;font-size:.875rem;border-bottom:1px solid var(--border)}.autocomplete-dropdown li:last-child{border-bottom:none}.autocomplete-dropdown li:hover{background:var(--bg-hover)}.autocomplete-dropdown .patient-number{font-weight:600;color:var(--primary);font-size:.8rem;min-width:50px}.autocomplete-dropdown .patient-name{flex:1}.autocomplete-dropdown .patient-phone{color:var(--text-secondary);font-size:.8rem}.autocomplete-empty{padding:.75rem;text-align:center;color:var(--text-secondary);font-size:.875rem}.form-static{padding:.5rem 0;color:var(--text-primary)}.notes-display{white-space:pre-wrap;background:var(--bg-hover);padding:.75rem;border-radius:6px;font-size:.875rem;min-height:3rem}.notes-cell{max-width:300px;font-size:.85rem;color:var(--text-secondary)}.notes-cell-content{display:flex;align-items:flex-start;gap:.5rem}.notes-cell-content>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.btn-edit-notes{background:none;border:none;cursor:pointer;padding:0;font-size:.8rem;opacity:.5;transition:opacity .15s;flex-shrink:0}.btn-edit-notes:hover{opacity:1}.notes-inline-edit{display:flex;flex-direction:column;gap:.4rem}.notes-inline-textarea{width:100%;min-width:200px;padding:.4rem;border:1px solid var(--primary);border-radius:4px;font-size:.85rem;font-family:inherit;resize:vertical}.notes-inline-textarea:focus{outline:none;box-shadow:0 0 0 2px #2563eb33}.notes-inline-actions{display:flex;gap:.3rem}.patient-profile-link{color:var(--primary);text-decoration:none;font-weight:500;cursor:pointer}.patient-profile-link:hover{text-decoration:underline}.patient-id-badge{display:inline-block;background:var(--primary);color:#fff;padding:.15rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;margin-right:.5rem;vertical-align:middle;letter-spacing:.5px}.patient-id-cell{font-weight:600;color:var(--primary);font-size:.85rem;letter-spacing:.3px}.patient-detail-layout{display:flex;gap:16px;align-items:flex-start}.patient-left-panel{width:300px;min-width:300px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;position:sticky;top:66px;max-height:calc(100vh - 82px);overflow-y:auto}.patient-left-panel .panel-header{font-size:13px;font-weight:700;color:#1e293b;padding:12px 14px;border-bottom:2px solid #e2e8f0;background:#f8fafc;border-radius:8px 8px 0 0;text-transform:uppercase;letter-spacing:.3px}.patient-left-panel .panel-body{padding:0;min-height:200px;color:#334155;font-size:12px}.patient-main-content{flex:1;min-width:0}.mmo-panel{width:100%}.mmo-error{display:flex;align-items:center;justify-content:space-between;background:#fef2f2;color:#b91c1c;font-size:11px;padding:6px 10px;border-bottom:1px solid #fecaca}.mmo-error button{background:none;border:none;cursor:pointer;font-size:13px;color:#b91c1c;padding:0 2px}.mmo-toolbar{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid #e2e8f0;background:#fafbfc;flex-wrap:wrap}.mmo-toolbar-btn{background:none;border:1px solid #cbd5e1;border-radius:5px;cursor:pointer;font-size:11px;padding:3px 7px;color:#475569;transition:all .15s;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;gap:3px}.mmo-toolbar-btn:hover:not(:disabled){background:#e0f2fe;border-color:#7dd3fc;color:#0284c7}.mmo-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.mmo-toolbar-btn.active{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.mmo-toolbar-upload{background:#eff6ff;border-color:#93c5fd;color:#2563eb;font-weight:600}.mmo-toolbar-upload:hover:not(:disabled){background:#dbeafe}.mmo-toolbar-xray{background:#faf5ff;border-color:#c084fc;color:#7c3aed;font-weight:600}.mmo-toolbar-xray:hover:not(:disabled){background:#ede9fe;border-color:#a78bfa;color:#6d28d9}.mmo-file-count{margin-left:auto;font-size:10px;color:#94a3b8;font-weight:500}.mmo-scanner-row{display:flex;align-items:center;gap:6px;padding:4px 8px;border-bottom:1px solid #e2e8f0;background:#f8fafc;position:relative}.mmo-scan-btn{font-size:11px;font-weight:600;padding:3px 10px;border-radius:4px;border:1px solid;cursor:pointer;white-space:nowrap;line-height:1.4;transition:background .15s,border-color .15s}.mmo-scan-btn:disabled{cursor:default;opacity:.85}.mmo-scan-ready{background:#f0fdf4;border-color:#86efac;color:#166534}.mmo-scan-ready:hover:not(:disabled){background:#dcfce7;border-color:#4ade80;color:#15803d}.mmo-scan-detecting{background:#fef3c7;border-color:#fcd34d;color:#92400e}.mmo-scan-notconnected{background:#f1f5f9;border-color:#cbd5e1;color:#64748b}.mmo-scan-scanning{background:#dbeafe;border-color:#93c5fd;color:#1e40af;animation:mmo-scanner-pulse 1.5s ease-in-out infinite}.mmo-scan-error{background:#fee2e2;border-color:#fca5a5;color:#991b1b}@keyframes mmo-scanner-pulse{0%,to{opacity:1}50%{opacity:.6}}.mmo-scanner-device-label{font-size:9px;color:#64748b;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:2px}.mmo-scanner-reset{background:none;border:none;cursor:pointer;font-size:10px;color:#94a3b8;padding:0 2px;line-height:1}.mmo-scanner-reset:hover{color:#ef4444}.mmo-scanner-picker{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:20;overflow:hidden}.mmo-scanner-picker-header{font-size:10px;font-weight:700;color:#475569;padding:6px 10px 4px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #f1f5f9}.mmo-scanner-picker-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;font-size:11px;color:#1e293b;background:none;border:none;border-bottom:1px solid #f8fafc;cursor:pointer;text-align:left}.mmo-scanner-picker-item:hover{background:#eff6ff}.mmo-scanner-picker-imaging{color:#94a3b8}.mmo-scanner-picker-imaging:hover{background:#fef2f2}.mmo-scanner-picker-hint{font-size:9px;color:#cbd5e1;font-style:italic;margin-left:4px}.mmo-scanner-picker-cancel{width:100%;padding:5px 10px;font-size:10px;color:#64748b;background:#f8fafc;border:none;border-top:1px solid #e2e8f0;cursor:pointer;text-align:center}.mmo-scanner-picker-cancel:hover{background:#f1f5f9;color:#334155}.mmo-empty{font-size:11px;color:#94a3b8;text-align:center;padding:16px 10px;font-style:italic}.mmo-group{border-bottom:1px solid #f1f5f9}.mmo-group:last-child{border-bottom:none}.mmo-group-header{display:flex;align-items:center;gap:6px;padding:5px 10px;font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.5px;background:#f8fafc;border-bottom:1px solid #f1f5f9}.mmo-group-count{font-size:9px;background:#e2e8f0;color:#475569;border-radius:8px;padding:0 5px;min-width:16px;text-align:center;font-weight:600}.mmo-file-row{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 16px;border-top:1px solid #f8fafc;transition:background .1s}.mmo-file-row:first-child{border-top:none}.mmo-file-row:hover{background:#f8fafc}.mmo-file-icon{font-size:13px;flex-shrink:0}.mmo-file-thumb{flex-shrink:0;width:36px;height:36px;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f1f5f9;cursor:pointer;transition:opacity .15s}.mmo-file-thumb:hover{opacity:.8}.mmo-list-thumb-img{width:100%;height:100%;object-fit:cover}.mmo-file-thumb .mmo-file-icon{font-size:16px}.mmo-file-info{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column}.mmo-file-name{font-size:11px;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mmo-file-date{font-size:9px;color:#94a3b8}.mmo-file-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s}.mmo-file-row:hover .mmo-file-actions{opacity:1}.mmo-action-btn{background:none;border:none;cursor:pointer;font-size:11px;padding:2px 3px;border-radius:3px;transition:background .1s}.mmo-action-btn:hover{background:#e2e8f0}.mmo-delete-btn:hover{background:#fee2e2}.mmo-delink-btn{font-size:.7rem;letter-spacing:-1px}.mmo-delink-btn:hover{background:#fef3c7}.mmo-gallery-overlay{z-index:9999}.mmo-gallery-popup{background:#fff;border-radius:12px;width:90vw;max-width:900px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden}.mmo-gallery-popup .mmo-gallery{overflow-y:auto;padding:16px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.mmo-gallery-popup .mmo-gallery-thumb{height:140px}.mmo-gallery-popup .mmo-gallery-name{font-size:11px;padding:6px 8px 4px}.mmo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;padding:8px}.mmo-gallery-card{border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;background:#fff;transition:box-shadow .15s}.mmo-gallery-card:hover{box-shadow:0 2px 8px #00000014}.mmo-gallery-thumb{width:100%;height:80px;display:flex;align-items:center;justify-content:center;background:#f8fafc;cursor:pointer;overflow:hidden}.mmo-gallery-thumb img{width:100%;height:100%;object-fit:cover}.mmo-gallery-icon{font-size:28px}.mmo-gallery-name{font-size:9px;color:#475569;padding:4px 6px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mmo-gallery-actions{display:flex;justify-content:center;gap:4px;padding:2px 4px 4px}.mmo-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:none;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:10000}.mmo-modal-overlay>*{pointer-events:auto}.floating-popup{position:fixed;z-index:10000;background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000040,0 0 0 1px #00000014;display:flex;flex-direction:column;overflow:hidden}.floating-popup-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;border-bottom:1px solid #e2e8f0;cursor:grab;-webkit-user-select:none;user-select:none;background:#f8fafc;border-radius:10px 10px 0 0;flex-shrink:0}.floating-popup-header:active{cursor:grabbing}.floating-popup-header h4{margin:0;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.floating-popup-body{flex:1;overflow:auto;min-height:0}.floating-preview-popup{width:80vw;max-width:900px;height:80vh;max-height:90vh;resize:both;min-width:400px;min-height:300px}.floating-edit-popup{width:440px;max-width:90vw;max-height:90vh}.floating-gallery-popup{width:80vw;max-width:1000px;height:70vh;max-height:85vh;resize:both;min-width:400px;min-height:250px}.att-edit-thumbnail{display:flex;gap:.75rem;align-items:flex-start}.att-edit-thumb-img{width:80px;height:80px;object-fit:cover;border-radius:6px;border:1px solid #e2e8f0;flex-shrink:0}.att-edit-thumb-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:6px;border:1px solid #e2e8f0;font-size:2rem;flex-shrink:0}.att-edit-name-col{flex:1;min-width:0}.chart-popup-window{position:fixed;z-index:9000;background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000040,0 0 0 1px #00000014;width:90vw;max-width:1100px;height:85vh;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;resize:both;min-width:500px;min-height:400px}.chart-popup-body{flex:1;overflow:auto;padding:.5rem}.mmo-preview-modal{background:#fff;border-radius:10px;width:80vw;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000040;z-index:10001}.mmo-preview-header-actions{display:flex;align-items:center;gap:6px}.mmo-preview-body{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;padding:16px;min-height:300px;background:#f1f5f9}.mmo-preview-image{max-width:100%;max-height:70vh;object-fit:contain;border-radius:4px}.mmo-preview-pdf{width:100%;height:70vh;border:none;border-radius:4px}.mmo-preview-video{max-width:100%;max-height:70vh;border-radius:4px;background:#000}.mmo-preview-unsupported{text-align:center;color:#64748b}.mmo-preview-unsupported p{margin-bottom:12px}.mmo-modal{background:#fff;border-radius:10px;width:420px;max-width:90vw;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003;z-index:10001}.mmo-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e2e8f0}.mmo-modal-header h4{margin:0;font-size:14px;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mmo-modal-close{background:none;border:none;cursor:pointer;font-size:16px;color:#94a3b8;padding:2px;flex-shrink:0}.mmo-modal-body{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.mmo-form-group{position:relative}.mmo-form-group label{display:block;font-size:11px;font-weight:600;color:#64748b;margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px}.mmo-form-group input,.mmo-form-group select{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:5px;font-size:12px;color:#1e293b}.mmo-form-group input:focus,.mmo-form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.mmo-char-count{position:absolute;right:4px;top:0;font-size:9px;color:#94a3b8}.mmo-form-preview{background:#f8fafc;border-radius:6px;padding:8px 10px}.mmo-form-preview label{display:block;font-size:10px;font-weight:600;color:#94a3b8;margin-bottom:2px;text-transform:uppercase;letter-spacing:.3px}.mmo-display-preview{font-size:11px;font-weight:600;color:#0f172a;font-family:Courier New,monospace;word-break:break-all}.mmo-modal-footer{display:flex;gap:8px;justify-content:flex-end;padding:10px 16px;border-top:1px solid #e2e8f0}.mmo-panel-empty{padding:20px;text-align:center;color:#94a3b8;font-size:12px}.dental-chart-container{padding:0}.dental-chart-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.dental-chart-header h3{margin:0;font-size:1.1rem}.dental-chart-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:#64748b}.dental-legend-item{display:flex;align-items:center;gap:.35rem}.dental-legend-dot{width:14px;height:14px;border-radius:3px;display:inline-block;flex-shrink:0}.dental-last-change{margin-left:auto;font-size:.72rem;color:#94a3b8;font-style:italic}.dental-chart-loading{text-align:center;padding:2rem;color:#94a3b8}.dental-chart-svg-wrapper{width:100%;overflow-x:auto;padding:.5rem 0}.dental-chart-svg{width:100%;min-width:600px;height:auto}.dental-chart-svg.marking-active{cursor:crosshair}.dental-chart-toolbar{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;padding:.5rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.marking-mode-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .85rem;border:2px solid #d1d5db;border-radius:6px;background:#fff;font-size:.82rem;font-weight:500;cursor:pointer;transition:all .15s;color:#374151}.marking-mode-btn:hover{border-color:#9ca3af}.marking-mode-btn.external.active{border-color:#dc2626;background:#fef2f2;color:#dc2626;box-shadow:0 0 0 2px #dc262626}.marking-mode-btn.needs-work.active{border-color:#ea580c;background:#fff7ed;color:#ea580c;box-shadow:0 0 0 2px #ea580c26}.marking-mode-btn.removed.active{border-color:#6b7280;background:#f3f4f6;color:#6b7280;box-shadow:0 0 0 2px #6b728026}.dental-tooth-removed path{opacity:.2;filter:blur(1.5px) grayscale(.8)}.dental-tooth-removed text{opacity:.25}.dental-tooth-removed circle{opacity:.2}.marking-mode-hint{font-size:.78rem;color:#64748b;font-style:italic;margin-left:.5rem}.dental-tooth{transition:transform .15s ease}.dental-tooth:hover path{filter:brightness(.92);stroke-width:2}.dental-tooth-selected path{filter:drop-shadow(0 0 4px rgba(37,99,235,.4))}.tooth-history-panel{border-top:1px solid #e2e8f0;margin-top:1rem;padding-top:.75rem;animation:fadeIn .2s ease}.tooth-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.tooth-history-header h4{margin:0;font-size:1rem;color:#1e293b}.tiptap-editor{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff;transition:border-color .2s,box-shadow .2s}.tiptap-editor:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f614}.tiptap-toolbar{display:flex;gap:2px;padding:.4rem .5rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;flex-wrap:wrap}.tiptap-btn{background:none;border:1px solid transparent;border-radius:4px;padding:.25rem .45rem;cursor:pointer;font-size:.82rem;color:#475569;transition:all .15s;line-height:1}.tiptap-btn:hover{background:#e2e8f0}.tiptap-btn.active{background:#dbeafe;color:#2563eb;border-color:#bfdbfe}.tiptap-separator{width:1px;background:#e2e8f0;margin:0 4px;align-self:stretch}.tiptap-content{padding:.75rem 1rem;min-height:120px;max-height:400px;overflow-y:auto;font-size:.9rem;color:#1e293b;line-height:1.6}.tiptap-content:focus{outline:none}.tiptap-content p{margin:0 0 .5rem}.tiptap-content p:last-child{margin-bottom:0}.tiptap-content h2{font-size:1.15rem;margin:.75rem 0 .5rem}.tiptap-content ul,.tiptap-content ol{padding-left:1.5rem;margin:.25rem 0}.tiptap-content blockquote{border-left:3px solid #e2e8f0;padding-left:.75rem;color:#64748b;margin:.5rem 0}.tiptap-content .is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#94a3b8;pointer-events:none;height:0}.tiptap-compact .tiptap-toolbar{padding:.25rem .4rem}.tiptap-compact .tiptap-btn{font-size:.78rem;padding:.2rem .35rem}.tiptap-compact .tiptap-content,.tiptap-editor-compact .tiptap-content{min-height:60px;max-height:200px;padding:.5rem .75rem;font-size:.85rem}.tiptap-display{font-size:.9rem;color:#334155;line-height:1.6}.tiptap-display p{margin:0 0 .25rem}.tiptap-display p:last-child{margin-bottom:0}.tiptap-color-dropdown{position:relative;display:inline-block}.tiptap-color-trigger{display:flex!important;align-items:center;gap:3px;padding:.18rem .4rem!important;font-size:.78rem}.tiptap-color-indicator{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:middle;flex-shrink:0}.tiptap-color-panel{position:absolute;top:calc(100% + 4px);left:0;display:flex;flex-wrap:wrap;gap:4px;padding:6px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 12px #0000001f;z-index:200;min-width:120px}.tiptap-color-swatch{width:24px;height:24px;border:2px solid transparent;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:#94a3b8;padding:0;transition:border-color .15s,transform .1s}.tiptap-color-swatch:hover{transform:scale(1.15);border-color:#64748b}.tiptap-color-swatch.active{border-color:#1e40af;box-shadow:0 0 0 1px #1e40af}.tiptap-content table,.tiptap-display table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.82rem}.tiptap-content table td,.tiptap-content table th,.tiptap-display table td,.tiptap-display table th{border:1px solid #d1d5db;padding:.35rem .5rem;min-width:40px;vertical-align:top}.tiptap-content table th,.tiptap-display table th{background:#f1f5f9;font-weight:600;color:#334155}.tiptap-content table td{background:#fff}.tiptap-content .selectedCell{background:#dbeafe}.tiptap-content mark,.tiptap-display mark{border-radius:2px;padding:0 2px}.tiptap-display h2{font-size:1.05rem;margin:.5rem 0 .25rem}.tiptap-display ul,.tiptap-display ol{padding-left:1.5rem;margin:.25rem 0}.tiptap-display blockquote{border-left:3px solid #e2e8f0;padding-left:.75rem;color:#64748b;margin:.5rem 0}.procedure-selector{min-width:180px}.procedure-selector select{width:100%;padding:.4rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem;background:#fff;color:#1e293b;cursor:pointer}.procedure-selector select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f614}.teeth-selector{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff}.teeth-selector-header{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem}.teeth-selector-toggle{display:flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;font-size:.85rem;color:#475569;padding:0;flex:1}.teeth-selector-toggle:hover{color:#1e293b}.teeth-selector-icon{font-size:1rem}.teeth-selector-label{font-size:.85rem;color:#64748b}.teeth-selector-arrow{font-size:.7rem;transition:transform .2s;margin-left:auto}.teeth-selector-clear{background:none;border:none;color:#ef4444;cursor:pointer;font-size:.78rem;padding:.15rem .35rem;border-radius:4px}.teeth-selector-clear:hover{background:#fef2f2}.teeth-selector-chart{padding:.75rem;border-top:1px solid #e2e8f0;background:#fafbfc}.teeth-selector-info{text-align:center;font-size:.75rem;color:#94a3b8;margin-bottom:.5rem}.teeth-row{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.teeth-row:last-child{margin-bottom:0}.teeth-row-label{font-size:.72rem;color:#94a3b8;width:20px;text-align:center;flex-shrink:0}.teeth-row-teeth{display:flex;gap:2px;flex:1;justify-content:center}.tooth-btn{width:28px;height:26px;border:1px solid #e2e8f0;border-radius:4px;background:#fff;cursor:pointer;font-size:.7rem;color:#475569;font-weight:500;transition:all .12s;padding:0;line-height:1}.tooth-btn:hover{border-color:#3b82f6;background:#eff6ff}.tooth-btn.selected{background:#3b82f6;color:#fff;border-color:#2563eb;font-weight:700}.teeth-divider{width:8px;flex-shrink:0}.teeth-quick-actions{display:flex;justify-content:center;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e2e8f0}.teeth-quick-actions button{font-size:.75rem;padding:.2rem .5rem;border:1px solid #e2e8f0;border-radius:4px;background:#fff;color:#64748b;cursor:pointer;transition:all .15s}.teeth-quick-actions button:hover{background:#f1f5f9;border-color:#94a3b8}.big-notes-section{margin-top:0}.big-notes-card{padding:0!important;overflow:visible;border:none;box-shadow:none;background:transparent}.big-notes-tabs{display:flex;align-items:flex-end;gap:0;padding:0 .5rem;margin-bottom:0;overflow:visible;position:sticky;top:66px;z-index:10;background:#f3f4f6;padding-top:4px}.big-notes-tab{display:flex;align-items:center;gap:.4rem;padding:.6rem 1.3rem .55rem;border:1px solid #d1d5db;border-bottom:none;background:linear-gradient(180deg,#f3f4f6,#e5e7eb);cursor:pointer;font-size:.85rem;color:#6b7280;font-weight:500;white-space:nowrap;transition:all .15s ease;position:relative;top:1px;border-radius:10px 10px 0 0;margin-right:-1px;box-shadow:inset 0 1px #fff9}.big-notes-tab:hover{color:#1f2937;background:linear-gradient(180deg,#fafbfc,#f0f1f3);z-index:1}.big-notes-tab.active{color:#1e40af;background:linear-gradient(180deg,#fff,#fff);border-color:#cbd5e1;font-weight:600;z-index:3;top:1px;padding-bottom:.65rem;box-shadow:-2px -2px 4px #0000000a,2px -2px 4px #0000000a,inset 0 1px #fff}.big-notes-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#fff}.big-notes-tab .tab-icon{font-size:1rem;line-height:1}.big-notes-tab .tab-label{font-size:.85rem}.tab-flags-area{display:flex;align-items:center;gap:.3rem;margin-left:auto;padding:0 .5rem .55rem;align-self:flex-end}.tab-flag{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;font-size:.85rem;cursor:pointer;border-radius:3px;transition:transform .1s,opacity .15s;opacity:.9;line-height:1}.tab-flag:hover{transform:scale(1.2);opacity:1}.tab-flag-risk-a,.tab-flag-risk-b{width:auto;height:auto;font-size:1.7rem;line-height:1}.tab-flag-risk-a{color:#dc2626;filter:saturate(1.4)}.tab-flag-risk-b{color:#7b3f00;filter:none}.tab-flag-task-template{color:#2563eb}.tab-flag-task-custom{color:#059669}.tab-flags-separator{width:1px;height:16px;background:#d1d5db;margin:0 .2rem}.quick-add-wrapper{position:relative}.tab-flag-add-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;font-size:.95rem;font-weight:700;color:#64748b;background:none;border:1.5px dashed #cbd5e1;border-radius:4px;cursor:pointer;transition:all .15s;line-height:1;padding:0}.tab-flag-add-btn:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.quick-add-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0000001f;min-width:220px;z-index:100;overflow:hidden}.quick-add-list{display:flex;flex-direction:column;max-height:200px;overflow-y:auto}.quick-add-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:none;background:none;cursor:pointer;font-size:.82rem;color:#334155;text-align:left;transition:background .1s}.quick-add-item:hover{background:#f1f5f9}.quick-add-item.selected{background:#eff6ff;font-weight:600}.quick-add-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.quick-add-dot.dental{background:#3b82f6}.quick-add-dot.admin{background:#8b5cf6}.quick-add-create-row{display:flex;gap:.35rem;padding:.5rem .75rem;border-top:1px solid #e2e8f0;background:#f8fafc}.quick-add-text{flex:1;border:1px solid #d1d5db;border-radius:4px;padding:.3rem .5rem;font-size:.82rem}.quick-add-text:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.tab-flag-unpaid{color:#1f2937;position:relative;font-size:.9rem}.tab-flag-unpaid .flag-dollar{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.5rem;font-weight:800;color:#fff;pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.6)}.tab-flag-custom-status{font-size:.9rem}.task-flag-ctx-menu{position:fixed;z-index:10000;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 16px #00000024;padding:.25rem 0;min-width:180px}.task-flag-ctx-menu button{display:block;width:100%;text-align:left;padding:.45rem .75rem;border:none;background:none;cursor:pointer;font-size:.82rem;color:#334155;transition:background .1s}.task-flag-ctx-menu button:hover{background:#f1f5f9}.status-flags-section{padding:.75rem 1rem}.status-flags-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.status-flag-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border:1.5px solid #e2e8f0;border-radius:20px;background:#fafafa;cursor:pointer;font-size:.82rem;transition:all .15s;color:#475569}.status-flag-chip:hover{border-color:var(--flag-color, #94a3b8);background:color-mix(in srgb,var(--flag-color, #94a3b8) 8%,white)}.status-flag-chip.active{font-weight:600;color:#1e293b}.status-flag-chip-icon{font-size:.9rem}.status-flag-chip-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-flag-chip-check{font-size:.7rem;font-weight:700;color:var(--flag-color, #059669)}.flag-color-picker{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.flag-color-swatch{width:28px;height:28px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;transition:all .15s;box-shadow:0 1px 3px #00000026}.flag-color-swatch:hover{transform:scale(1.15);box-shadow:0 2px 6px #0003}.flag-color-swatch.selected{border-color:#1e293b;transform:scale(1.2);box-shadow:0 0 0 2px #fff,0 0 0 4px #1e293b}.big-notes-content{background:#fff;border:1px solid #cbd5e1;border-radius:0 8px 12px 12px;padding:1.25rem;min-height:300px;position:relative;z-index:1;box-shadow:0 2px 6px #0000000a,0 1px 2px #00000008}.patient-info-tab{display:flex;flex-direction:column;gap:1.25rem}.patient-info-section h3{font-size:.95rem;font-weight:600;color:#1e293b;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #f1f5f9}.patient-info-section.emergency-section{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:1rem}.patient-info-section.emergency-section h3{color:#991b1b;border-bottom-color:#fecaca}.patient-stats-grid{display:flex;gap:1rem}.patient-stat-card{flex:1;display:flex;flex-direction:column;align-items:center;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;gap:.25rem}.patient-stat-card .stat-value{font-size:1.35rem;font-weight:700;color:#1e293b}.patient-stat-card .stat-label{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.clinical-info-tab{display:flex;flex-direction:column;gap:0}.clinical-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.clinical-field{padding:.75rem;background:#f8fafc;border-radius:8px;border:1px solid #f1f5f9}.clinical-field label{display:block;font-size:.78rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.4rem}.clinical-field textarea{width:100%;min-height:60px;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.88rem;resize:vertical;font-family:inherit}.clinical-field .form-static{font-size:.88rem;color:#334155;min-height:2rem}.clinical-field .tiptap-editor{border-color:#e2e8f0}.clinical-field-full{grid-column:1 / -1}.clinical-actions{display:flex;gap:.5rem;margin-top:.75rem;justify-content:flex-end}.notes-table-tab{display:flex;flex-direction:column;gap:.75rem}.notes-filters-bar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;position:sticky;top:106px;z-index:8;background:#fff;padding:.5rem 0;margin:-.5rem 0 0}.notes-search-input{width:50%;max-width:400px;margin:0 auto;padding:.45rem .75rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.85rem;background:#fff;transition:border-color .2s}.notes-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f614}.notes-filter-checkbox{display:flex;align-items:center;gap:.35rem;font-size:.82rem;color:#64748b;cursor:pointer;white-space:nowrap}.notes-filter-checkbox input[type=checkbox]{accent-color:#3b82f6}.tooth-filter-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;background:#dbeafe;color:#2563eb;border-radius:20px;font-size:.8rem;font-weight:600}.tooth-filter-clear{background:none;border:none;cursor:pointer;font-size:.9rem;padding:0;line-height:1;color:#2563eb;opacity:.7}.tooth-filter-clear:hover{opacity:1}.note-create-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:1rem;animation:fadeIn .2s ease}.note-form-row{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:.75rem;flex-wrap:wrap}.note-general-checkbox{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#475569;cursor:pointer;padding:.35rem 0}.note-general-checkbox input[type=checkbox]{accent-color:#3b82f6;width:16px;height:16px}.note-form-editor{margin-bottom:.75rem}.note-form-actions{display:flex;gap:.5rem;justify-content:flex-end;align-items:center}.note-attach-btn{cursor:pointer;font-size:.8rem}.status-display-row{display:flex;align-items:center;padding:.5rem 0}.notes-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem;table-layout:fixed}.notes-table th{text-align:left;padding:.5rem .6rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:#64748b;background:#f8fafc;border-bottom:2px solid #e2e8f0;white-space:nowrap;position:sticky;top:146px;z-index:7}.notes-table td{padding:.6rem;border-bottom:1px solid #f1f5f9;vertical-align:top;overflow:hidden;text-overflow:ellipsis}.notes-table td:nth-child(2){word-wrap:break-word;overflow-wrap:break-word;white-space:normal}.notes-table tbody tr:hover{background:#fafbfc}.notes-table .general-note-row{background:#fffbeb}.notes-table .general-note-row:hover{background:#fef3c7}.general-note-badge{display:inline-block;padding:.1rem .4rem;background:#fef3c7;color:#92400e;border-radius:4px;font-size:.72rem;font-weight:600;margin-left:.35rem}.note-date-cell{white-space:nowrap;min-width:90px}.note-time{display:block;font-size:.75rem;color:#94a3b8}.note-apt-badge{display:inline-block;font-size:.72rem;color:#3b82f6;background:#eff6ff;padding:.1rem .35rem;border-radius:4px;margin-top:.15rem}.note-author-cell{min-width:50px;text-align:center;padding-left:4px;padding-right:4px}.author-initials{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#dbeafe;color:#1e40af;font-weight:700;font-size:.72rem;letter-spacing:.5px;cursor:default}.author-initials.receptionist{background:#fef3c7;color:#92400e}.author-initials.assistant{background:#dcfce7;color:#166534}.note-author-name{font-weight:500;color:#1e293b;font-size:.85rem}.note-role-badge{display:inline-block;font-size:.68rem;padding:.05rem .35rem;border-radius:4px;margin-left:.25rem;font-weight:600}.note-role-badge.manager{background:#dbeafe;color:#1e40af}.note-role-badge.dentist,.note-role-badge.assistant{background:#dcfce7;color:#166534}.note-role-badge.receptionist{background:#fef3c7;color:#92400e}.note-content-cell{max-width:none}.note-content-cell .tiptap-display{font-size:.83rem}.note-procedure-cell{white-space:nowrap;font-size:.82rem;color:#475569}.note-teeth-cell{min-width:80px}.teeth-display{display:flex;flex-wrap:wrap;gap:3px}.teeth-display span{display:inline-block;padding:.05rem .3rem;background:#f1f5f9;border-radius:3px;font-size:.72rem;font-weight:600;color:#475569}.note-attachments-cell{text-align:center;vertical-align:top;font-size:.82rem;color:#64748b;padding-top:.3rem!important}.note-actions-cell{white-space:nowrap}.note-actions-cell button{font-size:.78rem;padding:.2rem .4rem}.paid-toggle{opacity:.35;filter:grayscale(1);transition:opacity .2s,filter .2s}.paid-toggle.paid{opacity:1;filter:none;color:#16a34a}.paid-toggle:hover{opacity:.8;filter:none}.note-edit-inline{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;margin:.5rem 0;animation:fadeIn .2s ease}.appointments-tab{display:flex;flex-direction:column;gap:.75rem}.appointments-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.appointments-tab-header h3{margin:0;font-size:1rem}.appointments-tab table{width:100%;font-size:.85rem}.appointments-tab th{font-size:.75rem;text-transform:uppercase;color:#64748b;padding:.5rem .6rem;background:#f8fafc;border-bottom:2px solid #e2e8f0;text-align:left}.appointments-tab td{padding:.5rem .6rem;border-bottom:1px solid #f1f5f9}.appointments-tab tbody tr:hover{background:#fafbfc}.apt-datetime-cell{white-space:nowrap}.apt-datetime-cell .apt-time{font-size:.78rem;color:#64748b;margin-top:.1rem}.media-files-tab{display:flex;flex-direction:column;gap:.75rem}.media-files-subtabs{display:flex;gap:0;border-bottom:2px solid #e2e8f0}.media-files-subtab{padding:.5rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.85rem;color:#64748b;font-weight:500;transition:all .15s}.media-files-subtab:hover{color:#1e293b;background:#f8fafc}.media-files-subtab.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.media-files-upload-actions{display:flex;align-items:center;gap:.75rem}.patient-information-tab{display:flex;flex-direction:column;gap:1.25rem}.risk-banner{padding:.6rem 1rem;border-radius:8px;font-weight:700;font-size:.85rem;text-align:center}.risk-banner-a{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.risk-banner-b{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.patient-risk-header{padding:.5rem 1rem;border-radius:8px;font-weight:700;font-size:.85rem;margin-bottom:.75rem}.risk-header-a{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.risk-header-b{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.risk-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.15rem .5rem;border-radius:4px;font-size:.72rem;font-weight:700;border:none;cursor:pointer;margin-left:.5rem;transition:opacity .15s;vertical-align:middle}.risk-badge:hover{opacity:.8}.risk-badge.compact{padding:.1rem .4rem;font-size:.68rem;margin-left:0}.risk-badge.risk-a{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.risk-badge.risk-b{background:#fffbeb;color:#d97706;border:1px solid #fde68a}.patient-id-section{display:flex;flex-direction:column;gap:.5rem}.patient-id-display{font-weight:700;font-size:1rem;color:#1e40af}.editable-field{cursor:pointer;display:inline-flex;align-items:center;gap:.3rem}.editable-field:hover{color:#2563eb}.editable-field .edit-icon{font-size:.75rem;opacity:.5}.editable-field:hover .edit-icon{opacity:1}.inline-edit-row{display:flex;align-items:center;gap:.4rem}.form-input{padding:.35rem .6rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.85rem;color:#1e293b;background:#fff;outline:none;transition:border-color .15s}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.form-input.sm{padding:.25rem .5rem;font-size:.82rem;width:140px}.form-select{padding:.35rem .6rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.85rem;color:#1e293b;background:#fff;outline:none;cursor:pointer}.form-select:focus{border-color:#3b82f6}.address-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.address-section .section-header h3{margin:0}.address-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.address-edit-grid .full-width{grid-column:1 / -1}.address-field label{display:block;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;margin-bottom:.25rem}.address-field .form-input,.address-field .form-select{width:100%}.address-display{font-size:.9rem;color:#334155}.address-city-country{font-size:.82rem;color:#64748b;margin-top:.2rem}.patient-information-tab .clinical-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.patient-information-tab .clinical-section.medical-incomplete{box-shadow:0 0 0 3px #ef444459,0 0 16px #ef444426;border-color:#fca5a5}.medical-incomplete-badge{display:inline-block;margin-left:.5rem;font-size:.75rem;font-weight:600;color:#dc2626;background:#fef2f2;padding:.15rem .5rem;border-radius:4px;vertical-align:middle}.patient-information-tab .clinical-section>h3{margin:0 0 .75rem;font-size:.95rem}.health-boxes-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.health-box{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;transition:border-color .15s}.health-box.risk-highlight-a{border-color:#fecaca;background:#fef7f7}.health-box.risk-highlight-b{border-color:#fde68a;background:#fffef5}.health-box-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.health-box-label{font-weight:600;font-size:.85rem;color:#1e293b}.health-box-risk{font-size:.65rem;font-weight:700;padding:.05rem .35rem;border-radius:4px}.health-box-risk.risk-a{background:#fef2f2;color:#dc2626}.health-box-risk.risk-b{background:#fffbeb;color:#d97706}.health-box-updated{font-size:.68rem;color:#94a3b8;margin-left:auto}.health-box-content{font-size:.85rem;color:#334155;min-height:1.5rem}.health-box-content .text-muted{color:#94a3b8;font-style:italic}.health-box-edit{display:flex;flex-direction:column;gap:.5rem}.health-box-actions{display:flex;gap:.4rem}.btn-xs{padding:.1rem .3rem;font-size:.72rem;border:1px solid #e2e8f0;background:#fff;border-radius:4px;cursor:pointer}.btn-xs:hover{background:#f1f5f9}.review-date-section{margin-top:1rem;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;display:flex;align-items:center;gap:1rem}.review-date-section.overdue{border-color:#fecaca;background:#fef2f2}.review-date-label{font-size:.82rem;font-weight:600;color:#475569}.review-date-section.overdue .review-date-label{color:#dc2626}.mini-calendar-wrapper{position:relative;display:inline-flex;align-items:center;gap:.35rem}.mini-calendar-label{font-size:.78rem;color:#64748b;font-weight:500}.mini-calendar-trigger{padding:.3rem .6rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;cursor:pointer;font-size:.82rem;color:#1e293b;transition:all .15s}.mini-calendar-trigger:hover{border-color:#3b82f6;background:#eff6ff}.mini-calendar-trigger.overdue{border-color:#fecaca;background:#fef2f2;color:#dc2626;font-weight:600}.mini-calendar-trigger.disabled{opacity:.5;cursor:not-allowed}.mini-calendar-dropdown{position:absolute;top:100%;left:0;z-index:100;margin-top:4px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 24px #0000001f;padding:.75rem;width:260px;animation:fadeIn .15s ease}.mini-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.mini-cal-title{font-weight:600;font-size:.85rem;color:#1e293b}.mini-cal-nav{padding:.2rem .4rem;border:none;background:none;cursor:pointer;font-size:.8rem;color:#64748b;border-radius:4px}.mini-cal-nav:hover{background:#f1f5f9;color:#1e293b}.mini-cal-days-header{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:.25rem}.mini-cal-day-name{font-size:.68rem;font-weight:600;color:#94a3b8;text-transform:uppercase}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-cal-cell{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:6px;cursor:pointer;font-size:.78rem;color:#334155;transition:all .1s}.mini-cal-cell:hover:not(.empty):not(:disabled){background:#eff6ff;color:#2563eb}.mini-cal-cell.selected{background:#2563eb;color:#fff;font-weight:600}.mini-cal-cell.today:not(.selected){border:1px solid #3b82f6;font-weight:600}.mini-cal-cell.empty{cursor:default}.clinical-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.clinical-info-header h3{margin:0!important}.clinical-info-actions{display:flex;gap:.5rem}.clinical-value{font-size:.88rem;color:#334155;min-height:1.5rem}.clinical-value .text-muted{color:#94a3b8;font-style:italic}.stats-section h3{margin:0 0 .75rem;font-size:.95rem}.media-tab{display:flex;flex-direction:column;gap:1rem}.media-upload-bar{display:flex;align-items:center;gap:.75rem}.upload-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .9rem;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc;cursor:pointer;font-size:.85rem;color:#475569;transition:all .15s}.upload-btn:hover{border-color:#3b82f6;background:#eff6ff;color:#2563eb}.upload-btn input[type=file]{display:none}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.media-card{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;transition:box-shadow .2s,border-color .2s;position:relative}.media-card:hover{border-color:#94a3b8;box-shadow:0 4px 12px #0000000f}.media-preview{width:100%;height:140px;object-fit:cover;display:block;background:#f1f5f9;cursor:pointer}.media-icon{width:100%;height:140px;display:flex;align-items:center;justify-content:center;background:#f8fafc;font-size:2.5rem}.media-info{padding:.5rem .65rem;border-top:1px solid #f1f5f9}.media-name{font-size:.82rem;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-date{font-size:.72rem;color:#94a3b8;margin-top:.15rem}.media-delete{position:absolute;top:6px;right:6px;background:#ef4444e6;color:#fff;border:none;border-radius:50%;width:24px;height:24px;font-size:.75rem;cursor:pointer;display:none;align-items:center;justify-content:center;line-height:1}.media-card:hover .media-delete{display:flex}.files-tab{display:flex;flex-direction:column;gap:.75rem}.files-upload-bar{display:flex;align-items:center;gap:.75rem}.files-table{width:100%;font-size:.85rem}.files-table th{font-size:.75rem;text-transform:uppercase;color:#64748b;padding:.5rem .6rem;background:#f8fafc;border-bottom:2px solid #e2e8f0;text-align:left}.files-table td{padding:.5rem .6rem;border-bottom:1px solid #f1f5f9}.files-table tbody tr:hover{background:#fafbfc}.file-name-cell{display:flex;align-items:center;gap:.5rem}.file-icon{font-size:1.1rem}.tab-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;color:#94a3b8;text-align:center}.tab-empty .empty-icon{font-size:2rem;margin-bottom:.5rem;opacity:.5}.tab-empty p{font-size:.9rem;margin:0}.apt-notes{padding:0}.apt-notes-compact{max-height:400px;overflow-y:auto}.apt-notes-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.apt-notes-header h4{margin:0;font-size:.95rem}.apt-notes-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;margin-bottom:.75rem;animation:fadeIn .2s ease}.apt-notes-form-row{display:flex;gap:.75rem;margin-top:.5rem;flex-wrap:wrap}.apt-notes-form-actions{display:flex;gap:.5rem;margin-top:.5rem;justify-content:flex-end}.apt-notes-empty,.apt-notes-loading{color:#94a3b8;font-size:.85rem;text-align:center;padding:1rem}.apt-notes-list{display:flex;flex-direction:column;gap:.5rem}.apt-note-card{padding:.65rem .75rem;background:#f8fafc;border-radius:6px;border-left:3px solid #94a3b8}.apt-note-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;flex-wrap:wrap;font-size:.78rem}.apt-note-author{font-weight:600;color:#1e293b}.apt-note-date{color:#94a3b8}.apt-note-procedure{background:#eff6ff;color:#2563eb;padding:.1rem .4rem;border-radius:4px;font-weight:500}.apt-note-teeth{color:#64748b}.apt-note-content{font-size:.88rem;color:#334155;line-height:1.5}.apt-note-content .tiptap-display{font-size:.86rem}.apt-note-edit{margin-top:.25rem}.apt-note-actions{display:flex;gap:.25rem;margin-top:.35rem}.appointment-notes-in-modal{border-top:1px solid #e2e8f0;padding-top:.75rem;margin-top:.5rem}.btn-link{background:none;border:none;color:var(--primary);cursor:pointer;text-decoration:underline;font-size:inherit;padding:0}.btn-link:hover{color:#1d4ed8}.btn-icon{background:none;border:none;cursor:pointer;font-size:.85rem;padding:.15rem .3rem;border-radius:4px;opacity:.6;transition:opacity .15s}.btn-icon:hover{opacity:1;background:#e2e8f0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.filter-select{padding:.4rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem;background:#fff}.template-selector{margin-bottom:.5rem}.template-select{width:100%;padding:.4rem .75rem;border:1px dashed #cbd5e1;border-radius:6px;font-size:.85rem;background:#f8fafc;color:#64748b;cursor:pointer}.template-select:hover{border-color:#94a3b8;background:#f1f5f9}.conflict-warning{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.75rem 1rem;margin-bottom:.75rem;font-size:.85rem}.conflict-warning strong{color:#dc2626;font-size:.9rem}.conflict-warning p{color:#991b1b;margin:.25rem 0 .5rem}.conflict-warning ul{margin:0;padding-left:1.25rem;color:#b91c1c}.conflict-warning li{margin-bottom:.2rem}.recurrence-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.recurrence-row select{flex:1;min-width:200px}.recurrence-count{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#64748b}.recurrence-count input{width:60px;padding:.3rem .5rem;border:1px solid #e2e8f0;border-radius:6px;text-align:center;font-size:.85rem}.recurrence-indicator{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:.5rem .75rem;margin-bottom:.75rem;font-size:.85rem;color:#2563eb}.btn-outline{padding:.5rem 1rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;font-size:.85rem;cursor:pointer;transition:all .15s}.btn-outline:hover{background:#f1f5f9;border-color:#94a3b8}.global-search-area{display:flex;align-items:center;gap:6px;position:relative}.recent-patients-wrapper{position:relative}.recent-patients-btn{width:34px;height:34px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#ffffff14;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.recent-patients-btn:hover{background:#ffffff26;border-color:#ffffff4d}.recent-patients-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:260px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 25px #0000001f;z-index:200;overflow:hidden;animation:fadeIn .15s ease}.recent-patients-title{padding:.6rem .75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#94a3b8;border-bottom:1px solid #f1f5f9}.recent-patients-empty{padding:1rem;text-align:center;color:#94a3b8;font-size:.82rem}.recent-patient-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .75rem;border:none;background:none;cursor:pointer;font-size:.85rem;text-align:left;transition:background .1s;font-family:inherit}.recent-patient-item:hover{background:#f1f5f9}.recent-patient-number{font-weight:600;color:#2563eb;font-size:.78rem;white-space:nowrap}.recent-patient-name{color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-search{position:relative;transition:width .2s ease}.global-search.collapsed{width:34px}.global-search.expanded{width:300px}.search-expand-btn{width:34px;height:34px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#ffffff14;cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.search-expand-btn:hover{background:#ffffff26;border-color:#ffffff4d}.global-search-input-wrapper{display:flex;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s}.global-search-input-wrapper:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.search-icon{font-size:.9rem;margin-right:.5rem;opacity:.5}.global-search-input{flex:1;border:none;outline:none;font-size:.9rem;background:transparent;color:#1e293b}.global-search-input::placeholder{color:#94a3b8}.search-spinner{font-size:.8rem;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.global-search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 25px #0000001a;z-index:200;max-height:400px;overflow-y:auto}.search-empty{padding:1rem;text-align:center;color:#94a3b8;font-size:.85rem}.search-results-list{list-style:none;padding:.25rem 0;margin:0}.search-result-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;cursor:pointer;transition:background .1s}.search-result-item:hover,.search-result-item.selected{background:#f1f5f9}.search-result-icon{font-size:1.1rem;flex-shrink:0}.search-result-content{flex:1;min-width:0}.search-result-title{font-size:.9rem;font-weight:500;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{font-size:.78rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-type{font-size:.72rem;color:#94a3b8;background:#f1f5f9;padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.badge-you{color:#2563eb;font-size:.78rem;font-weight:500}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-active{background:#22c55e}.status-inactive{background:#ef4444}.actions-cell{display:flex;gap:.4rem;flex-wrap:wrap}.btn-success{background:#22c55e;color:#fff}.btn-success:hover{background:#16a34a}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:.5rem .75rem;border-radius:6px;font-size:.85rem;margin:.5rem 0}.permission-editor-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.permission-grid{margin-top:.75rem;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;font-size:.82rem}.perm-grid-header{display:flex;background:#f8fafc;padding:.5rem .75rem;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0}.perm-resource-col{flex:0 0 140px;font-weight:500}.perm-actions-col{flex:1;display:flex;gap:0}.perm-action-label,.perm-action-cell{flex:1;text-align:center;text-transform:capitalize;font-size:.78rem}.perm-grid-row{display:flex;align-items:center;padding:.4rem .75rem;border-bottom:1px solid #f1f5f9}.perm-grid-row:last-of-type{border-bottom:none}.perm-grid-row:hover{background:#f8fafc}.perm-na{color:#cbd5e1}.perm-toggle{position:relative;display:inline-block;width:32px;height:18px;cursor:pointer}.perm-toggle input{opacity:0;width:0;height:0}.perm-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:18px;transition:background .2s}.perm-toggle-slider:before{content:"";position:absolute;width:14px;height:14px;left:2px;bottom:2px;background:#fff;border-radius:50%;transition:transform .2s}.perm-toggle input:checked+.perm-toggle-slider{background:#3b82f6}.perm-toggle input:checked+.perm-toggle-slider:before{transform:translate(14px)}.perm-help{padding:.5rem .75rem;font-size:.78rem;color:#94a3b8;background:#f8fafc;border-top:1px solid #e2e8f0;margin:0}.settings-tab-bar{display:flex;gap:0;border-bottom:2px solid #e2e8f0;margin-bottom:1.25rem;padding:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.settings-tab-bar::-webkit-scrollbar{height:4px}.settings-tab-bar::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.settings-tab-bar::-webkit-scrollbar-track{background:transparent}.settings-tab-btn{display:flex;align-items:center;gap:.4rem;padding:.6rem 1.1rem;border:1.5px solid #e2e8f0;border-bottom:none;background:#f8fafc;cursor:pointer;font-size:.88rem;font-weight:500;color:#64748b;margin-bottom:-2px;transition:color .15s,background .15s,border-color .15s;border-radius:8px 8px 0 0;white-space:nowrap;margin-left:-1px}.settings-tab-btn:first-child{margin-left:0}.settings-tab-btn:hover{color:#1e40af;background:#eef2ff;border-color:#cbd5e1}.settings-tab-btn.active{color:#1e40af;background:var(--bg-card, #fff);border-color:#e2e8f0;border-bottom:2px solid var(--bg-card, #fff);font-weight:600;z-index:1}.settings-tab-icon{font-size:1rem}.settings-tab-label{font-size:.88rem}.clinic-settings-page .settings-card{margin-bottom:1.5rem}.settings-body{padding:1rem}.settings-form .form-actions{margin-top:.75rem;display:flex;gap:.5rem}.settings-display .setting-row{display:flex;padding:.5rem 0;border-bottom:1px solid #f1f5f9}.settings-display .setting-row:last-child{border-bottom:none}.setting-label{flex:0 0 120px;color:#64748b;font-weight:500;font-size:.85rem}.setting-value{color:#1e293b;font-size:.9rem}.clinic-stats-row{display:flex;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.mini-stat{display:flex;flex-direction:column;align-items:center}.mini-stat-value{font-size:1.5rem;font-weight:700;color:#1e293b}.mini-stat-label{font-size:.78rem;color:#94a3b8}.template-form-section{padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.template-form-section .form-actions{margin-top:.5rem;display:flex;gap:.5rem}.duration-combo{display:flex;gap:.4rem;align-items:center}.duration-combo select{flex:1;min-width:0;padding:.4rem .5rem;font-size:.85rem;border:1px solid #e2e8f0;border-radius:6px;background:#fff}.duration-custom-input{width:60px;padding:.4rem .5rem;font-size:.85rem;border:1px solid #e2e8f0;border-radius:6px;text-align:center}.duration-custom-input:focus{border-color:#93c5fd;outline:none;box-shadow:0 0 0 2px #3b82f626}.color-picker-row{display:flex;align-items:center;gap:.5rem}.color-picker-row input[type=color]{width:36px;height:36px;padding:2px;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer}.color-value{font-size:.82rem;color:#64748b;font-family:monospace}.templates-list{padding:.5rem 1rem}.template-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-bottom:1px solid #f1f5f9}.template-item:last-child{border-bottom:none}.template-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.template-info{flex:1;display:flex;flex-direction:column}.template-info strong{font-size:.9rem;color:#1e293b}.template-meta{font-size:.78rem;color:#94a3b8}.template-actions{display:flex;gap:.3rem}.inactive-item{opacity:.55}.empty-state{color:#94a3b8;font-size:.85rem;text-align:center;padding:1.5rem}.welcome-banner{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.welcome-banner h1{font-size:1.5rem;margin-bottom:.25rem}.quick-actions{display:flex;gap:.5rem}.tomorrow-reminder{margin-bottom:1.5rem;border-left:4px solid #3b82f6}.tomorrow-list{padding:.25rem 0}.tomorrow-item{display:flex;align-items:center;gap:.75rem;padding:.4rem 1rem;font-size:.85rem;border-bottom:1px solid #f1f5f9}.tomorrow-item:last-child{border-bottom:none}.tomorrow-time{font-weight:600;color:#2563eb;flex:0 0 60px}.tomorrow-title{flex:1;color:#1e293b}.tomorrow-patient{color:#64748b;flex:0 0 160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tomorrow-dentist{display:flex;align-items:center;gap:4px;color:#94a3b8;font-size:.8rem;flex:0 0 100px}.empty-state-card{display:flex;flex-direction:column;align-items:center;padding:2rem;color:#94a3b8}.empty-state-card .empty-icon{font-size:2rem;margin-bottom:.5rem;opacity:.5}.empty-state-card p{margin-bottom:.75rem;font-size:.9rem}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.skeleton-card{height:90px;background:linear-gradient(110deg,#f1f5f9 8%,#e2e8f0 18%,#f1f5f9 33%);background-size:200% 100%;animation:shimmer 1.5s linear infinite;border-radius:12px}.skeleton-table{height:250px;background:linear-gradient(110deg,#f1f5f9 8%,#e2e8f0 18%,#f1f5f9 33%);background-size:200% 100%;animation:shimmer 1.5s linear infinite;border-radius:12px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:768px){.sidebar{width:60px;overflow:hidden}.sidebar-header h2,.sidebar-header .clinic-name,.nav-item span:not(.nav-icon),.user-info{display:none}.sidebar-header{justify-content:center;padding:16px 8px}.nav-item{justify-content:center;padding:12px 8px}.main-content{margin-left:60px}.stats-grid{grid-template-columns:repeat(2,1fr)}.welcome-banner{flex-direction:column;align-items:flex-start}.dentist-tabs{flex-wrap:wrap}.calendar-layout{flex-direction:column}.calendar-sidebar{width:100%;flex-direction:row;max-height:200px}.mini-calendar,.sidebar-patient-info{flex:1;min-width:0}.tomorrow-item{flex-wrap:wrap;gap:.25rem}.tomorrow-patient,.tomorrow-dentist{flex:auto}}.notes-table-scrollable{max-height:400px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:6px}.notes-table-scrollable .notes-table th{top:0}.note-attachment-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:.35rem}.note-att-badge{display:inline-flex;align-items:center;gap:3px;padding:.15rem .5rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;font-size:.72rem;color:#2563eb;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.note-att-badge.new-file{background:#f0fdf4;border-color:#bbf7d0;color:#16a34a}.note-att-badge button{background:none;border:none;cursor:pointer;font-size:.7rem;color:inherit;padding:0;margin-left:2px;opacity:.6}.note-att-badge button:hover{opacity:1}.note-attachment-picker{margin-top:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.6rem;max-height:200px;overflow-y:auto}.note-att-picker-title{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.4rem}.note-att-picker-empty{font-size:.82rem;color:#94a3b8;font-style:italic;padding:.25rem 0}.note-att-picker-list{display:flex;flex-direction:column;gap:2px}.note-att-picker-item{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem;border-radius:4px;cursor:pointer;font-size:.82rem;transition:background .1s}.note-att-picker-item:hover{background:#e2e8f0}.note-att-picker-item input[type=checkbox]{width:auto;margin:0;cursor:pointer}.note-att-picker-icon{font-size:.9rem;flex-shrink:0}.note-att-picker-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#334155}.attachment-count-link{background:none;border:none;color:#2563eb;cursor:pointer;font-size:.82rem;font-weight:500;padding:0;text-decoration:underline;text-underline-offset:2px;font-family:inherit}.attachment-count-link:hover{color:#1d4ed8}.note-att-column{display:flex;flex-direction:column;align-items:center;gap:3px}.note-att-eye-btn{background:none;border:none;cursor:pointer;font-size:.9rem;padding:1px 2px;border-radius:3px;line-height:1;opacity:.7;transition:opacity .15s,background .15s}.note-att-eye-btn:hover{opacity:1;background:#e2e8f0}.note-att-thumbs{display:flex;flex-wrap:wrap;justify-content:center;gap:2px}.note-att-mini-thumb{width:28px;height:28px;border-radius:3px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:1px solid #e2e8f0;cursor:pointer;transition:opacity .15s,border-color .15s}.note-att-mini-thumb:hover{opacity:.85;border-color:#94a3b8}.note-att-mini-thumb img{width:100%;height:100%;object-fit:cover}.note-att-mini-thumb span{font-size:13px;line-height:1}.id-conflict-warning{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:.4rem .6rem;font-size:.78rem;color:#dc2626;margin-top:.35rem;display:flex;align-items:center;gap:.35rem;animation:fadeIn .2s ease}.id-conflict-warning:before{content:"⚠️";font-size:.85rem}.patient-status-bar{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-left:.5rem}.patient-name-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.patient-toolbar{display:inline-flex;align-items:center;gap:.4rem;margin-left:.5rem}.patient-toolbar-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .55rem;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;font-size:.75rem;cursor:pointer;transition:all .15s;color:#475569;white-space:nowrap}.patient-toolbar-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.consent-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.consent-dot.missing{background:#ef4444;animation:pulse-dot 2s infinite}.consent-dot.present{background:#22c55e}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.status-flag{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .65rem;border-radius:12px;font-size:.78rem;font-weight:600;border:none;cursor:pointer;transition:opacity .15s}.status-flag:hover{opacity:.85}.status-flag-unpaid{background:#fef3c7;color:#92400e}.status-flag-tasks{background:#dbeafe;color:#1e40af}.tasks-tab{padding:0}.task-create-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;margin-bottom:.75rem}.task-text-input{width:100%;padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.85rem;resize:vertical;font-family:inherit}.task-form-row{margin-bottom:.5rem}.task-form-options{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.task-form-options select{padding:.35rem .5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.8rem}.tasks-list{display:flex;flex-direction:column;gap:.4rem}.task-card{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;transition:background .15s}.task-card:hover{background:#f8fafc}.task-card.task-completed{opacity:.6;background:#f1f5f9}.task-card.task-completed .task-card-text{text-decoration:line-through;color:#94a3b8}.task-card-left{flex-shrink:0;padding-top:.1rem}.task-checkbox{width:20px;height:20px;border:2px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#059669;transition:all .15s}.task-checkbox:hover{border-color:#059669;background:#ecfdf5}.task-checkbox.checked{background:#059669;border-color:#059669;color:#fff}.task-card-body{flex:1;min-width:0}.task-card-text{font-size:.85rem;color:#1e293b;margin-bottom:.25rem;line-height:1.4}.task-card-meta{display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:#94a3b8;flex-wrap:wrap}.task-type-badge{padding:.1rem .45rem;border-radius:8px;font-size:.7rem;font-weight:600}.task-type-dental{background:#dbeafe;color:#1e40af}.task-type-admin{background:#fef3c7;color:#92400e}.task-type-other{background:#f1f5f9;color:#475569}.task-assignee{color:#2563eb;font-weight:500}.task-date,.task-creator{color:#94a3b8}.task-completed-date{color:#059669;font-weight:500}.task-card-actions{flex-shrink:0;display:flex;align-items:center;gap:.35rem}.task-reassign-select{padding:.2rem .35rem;border:1px solid #e2e8f0;border-radius:5px;font-size:.72rem;color:#475569;max-width:130px}.tasks-status-filter{padding:.35rem .5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.8rem}.tasks-page{padding:0}.tasks-page-filters{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.tasks-page-filters select{padding:.4rem .6rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.85rem;background:#fff}.tasks-count{margin-left:auto;font-size:.8rem;color:#94a3b8;font-weight:500}.tasks-page-list{display:flex;flex-direction:column;gap:.5rem}.task-page-card{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border:1px solid #e2e8f0;border-radius:10px;background:#fff;transition:background .15s,box-shadow .15s}.task-page-card:hover{background:#f8fafc;box-shadow:0 1px 4px #0000000a}.task-page-card.task-completed{opacity:.6;background:#f1f5f9}.task-page-card.task-completed .task-page-card-text{text-decoration:line-through;color:#94a3b8}.task-page-card-left{flex-shrink:0;padding-top:.2rem}.task-page-card-body{flex:1;min-width:0}.task-page-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.task-patient-link{font-size:.8rem;font-weight:600;color:#2563eb;text-decoration:none}.task-patient-link:hover{text-decoration:underline}.task-page-card-text{font-size:.9rem;color:#1e293b;margin-bottom:.3rem;line-height:1.4}.task-page-card-actions{flex-shrink:0;display:flex;align-items:center;gap:.5rem}.note-context-menu-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999}.note-context-menu{position:fixed;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 16px #00000026;z-index:10000;min-width:150px;padding:4px 0}.note-context-menu button{display:block;width:100%;text-align:left;padding:8px 16px;background:none;border:none;cursor:pointer;font-size:.85rem;color:#dc2626}.note-context-menu button:hover{background:#fef2f2}.diary-note-row{cursor:default}.diary-note-row:hover{background:#f8fafc!important}.note-procedure-header{display:inline-block;font-size:.75rem;font-weight:600;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;padding:1px 8px;margin-bottom:4px}.diary-note-row.editing-row{background:#eff6ff!important;outline:2px solid #3b82f6;outline-offset:-2px}.note-edit-modal{position:fixed;z-index:9000;background:#fff;border-radius:10px;box-shadow:0 8px 32px #00000040,0 0 0 1px #00000014;width:1200px;height:82vh;min-width:400px;min-height:350px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;resize:both}.note-edit-modal-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;border-bottom:1px solid #e2e8f0;cursor:grab;-webkit-user-select:none;user-select:none;background:#f8fafc;border-radius:10px 10px 0 0}.note-edit-modal-header:active{cursor:grabbing}.note-edit-modal-header h4{margin:0;font-size:1rem}.note-edit-modal-body{padding:1rem;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;flex:1 1 0;min-height:0}.note-edit-modal-body .tiptap-editor{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.note-edit-modal-body .tiptap-content{flex:1 1 0;min-height:120px;max-height:none}.note-edit-modal.maximized{left:0!important;top:0!important;width:100vw!important;height:100vh!important;max-width:100vw;max-height:100vh;border-radius:0;resize:none}.note-edit-modal.maximized .note-edit-modal-header{cursor:default;border-radius:0}.note-edit-modal-footer{display:flex;gap:.5rem;justify-content:flex-end;padding:.75rem 1rem;border-top:1px solid #e2e8f0}.patient-status-cell{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.patient-status-cell .status-flag{font-size:.7rem;padding:1px 5px;border-radius:4px;white-space:nowrap}.clinic-logo-section{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.25rem}.clinic-logo-preview{width:80px;height:80px;border-radius:8px;border:2px dashed #cbd5e1;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;background:#f8fafc}.clinic-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.clinic-logo-placeholder{color:#94a3b8;font-size:.75rem;text-align:center}.clinic-logo-actions{display:flex;flex-direction:column;gap:.5rem}.clinic-logo-hint{font-size:.7rem;color:#94a3b8}.patient-list-flags{display:flex;flex-wrap:wrap;gap:3px;align-items:center}.patient-list-flags .tab-flag{font-size:1rem;padding:3px 8px;border-radius:6px;font-weight:600;white-space:nowrap;line-height:1.3;cursor:pointer}.rx-panel{margin-top:.5rem}.rx-toolbar{display:flex;gap:.4rem;margin-bottom:.6rem;flex-wrap:wrap}.rx-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;margin-bottom:.75rem}.rx-form textarea{width:100%;min-height:80px;background:#fff;color:#1e293b;border:1px solid #d1d5db;border-radius:6px;padding:.5rem;font-family:inherit;resize:vertical}.rx-form-actions{display:flex;gap:.4rem;margin-top:.5rem;justify-content:flex-end}.rx-upload-zone{border:2px dashed #475569;border-radius:8px;padding:1rem;text-align:center;color:#94a3b8;cursor:pointer;margin-bottom:.75rem;transition:border-color .2s}.rx-upload-zone:hover{border-color:#60a5fa}.rx-upload-zone input[type=file]{display:none}.rx-list{display:flex;flex-direction:column;gap:0;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.rx-card{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 12px;border-top:1px solid #f1f5f9;background:#fff;transition:background .1s;border-radius:0}.rx-card:first-child{border-top:none}.rx-card:hover{background:#f8fafc}.rx-card-header{display:flex;flex-direction:column;flex-shrink:0;min-width:70px;margin-bottom:0}.rx-card-meta{font-size:.7rem;color:#94a3b8}.rx-card-meta strong{color:#475569}.rx-card-body{color:#1e293b;font-size:.78rem;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.rx-card-preview{max-height:none;overflow:hidden}.rx-card-preview:after{display:none}.rx-card-file{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .4rem;background:#f1f5f9;border-radius:4px;color:#2563eb;font-size:.72rem;cursor:pointer;text-decoration:none;border:1px solid #e2e8f0;flex:1;min-width:0}.rx-card-file:hover{background:#e2e8f0;border-color:#2563eb}.rx-file-size{color:#94a3b8;font-size:.65rem}.rx-card-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s}.rx-card:hover .rx-card-actions{opacity:1}.note-template-picker{padding:.3rem .5rem;background:#fff;color:#1e293b;border:1px solid #d1d5db;border-radius:6px;font-size:.75rem;max-width:180px;cursor:pointer}.note-template-picker:hover{border-color:#2563eb}.note-template-picker option{background:#fff}.todo-card-unified{margin-top:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.todo-card-unified .card-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e2e8f0}.todo-card-unified .card-header h2{margin:0;font-size:1rem;color:#1e293b}.todo-body{padding:.5rem 0}.todo-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.todo-item{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0;transition:background .15s}.todo-item:hover{background:#f1f5f9}.todo-item.completed{opacity:.7}.todo-checkbox{display:flex;align-items:center;gap:.4rem;cursor:pointer;flex:1;min-width:0}.todo-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#22c55e;cursor:pointer;flex-shrink:0}.todo-text{font-size:.82rem;color:#334155;word-break:break-word}.todo-item.completed .todo-text{text-decoration:line-through;color:#94a3b8}.todo-freq-badge{font-size:.6rem;font-weight:700;color:#64748b;background:#e2e8f0;border-radius:3px;padding:.1rem .3rem;text-transform:uppercase;flex-shrink:0}.todo-completed-by{font-size:.65rem;color:#22c55e;white-space:nowrap;flex-shrink:0}.todo-empty{text-align:center;color:#64748b;font-size:.8rem;padding:1rem;font-style:italic}.todo-history{max-height:350px;overflow-y:auto;padding:.4rem 0}.todo-history-day{margin-bottom:.6rem}.todo-history-date{font-size:.72rem;font-weight:600;color:#94a3b8;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.5px}.todo-history-empty{font-size:.75rem;color:#64748b;font-style:italic}.todo-items-readonly .todo-item{background:transparent;border-color:transparent;padding:.2rem .4rem}.todo-items-readonly .todo-text.done{color:#22c55e}.todo-items-readonly .todo-text.missed{color:#ef4444}.jump-to-today-btn{font-size:.78rem;padding:.25rem .6rem;white-space:nowrap}.diary-note-row.drag-over{outline:2px solid #3b82f6;outline-offset:-2px;background:#3b82f614!important}@keyframes flashHighlight{0%{background:#22c55e40}to{background:transparent}}.diary-note-row.flash-highlight{animation:flashHighlight 1.5s ease-out}.mmo-file-row[draggable=true]{cursor:grab}.mmo-file-row[draggable=true]:active{cursor:grabbing}.rx-doc-modal{background:#fff;color:#1a1a1a;border-radius:8px;width:92vw;max-width:640px;max-height:90vh;overflow-y:auto;padding:1.5rem 1.5rem 1rem;position:relative;box-shadow:0 12px 40px #0006}.rx-doc-modal-close{position:absolute;top:.75rem;right:1rem;font-size:1.3rem;cursor:pointer;color:#64748b;background:none;border:none;z-index:1;line-height:1}.rx-doc-modal-close:hover{color:#1e293b}.rx-doc-header{display:flex;align-items:center;gap:.75rem;border-bottom:2px solid #2563eb;padding-bottom:.6rem;margin-bottom:.75rem}.rx-doc-logo{max-height:40px;max-width:80px;object-fit:contain}.rx-doc-clinic-name{font-size:1rem;font-weight:700;color:#1e40af}.rx-doc-clinic-detail{font-size:.65rem;color:#555;line-height:1.4}.rx-doc-title{font-size:1.1rem;font-weight:700;text-align:center;color:#1e40af;margin:.5rem 0 .35rem}.rx-doc-meta{display:flex;justify-content:space-between;font-size:.75rem;color:#444;margin-bottom:.35rem;padding:.35rem .6rem;background:#f8fafc;border-radius:5px}.rx-doc-meta strong{color:#1e293b}.rx-doc-editor{margin:.6rem 0;border:1px solid #d1d5db;border-radius:6px;min-height:120px}.rx-doc-editor .rich-text-editor{border:none}.rx-doc-body{padding:.75rem;border:1px solid #e2e8f0;border-radius:6px;min-height:80px;line-height:1.6;font-size:.85rem;margin:.6rem 0;color:#1a1a1a}.rx-doc-signature{display:flex;flex-direction:column;align-items:flex-end;margin-top:1rem;padding-right:.75rem}.rx-doc-sig-line{width:150px;border-top:1px solid #333;margin-bottom:.2rem}.rx-doc-sig-label{font-size:.7rem;color:#555;text-align:center;width:150px}.rx-doc-actions{display:flex;gap:.4rem;justify-content:center;margin-top:.75rem;padding-top:.6rem;border-top:1px solid #e2e8f0}.rx-doc-readonly .rx-doc-actions{margin-top:.5rem}.rx-card-date{font-size:.68rem;color:#94a3b8;line-height:1.2}.rx-card-author{font-size:.65rem;color:#94a3b8;line-height:1.2}.note-tpl-form-section{padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0}.note-tpl-name-row{margin-bottom:.75rem}.note-tpl-name-row label{display:block;font-size:.8rem;font-weight:600;color:#475569;margin-bottom:.3rem}.note-tpl-name-row input{width:100%;padding:.45rem .6rem;background:#fff;color:#1e293b;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.note-tpl-name-row input:focus{border-color:#2563eb;outline:none}.note-tpl-fields{border:1px solid #e2e8f0;border-radius:8px;padding:.75rem;background:#fff}.note-tpl-fields .note-form-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.note-tpl-fields .procedure-selector{flex:1;min-width:180px}.delete-patient-modal{max-width:480px!important}.delete-modal-warning-banner{display:flex;justify-content:center;gap:1rem;padding:1rem;background:#fef2f2;border:2px solid #ef4444;border-radius:8px;margin-bottom:1rem}.delete-modal-warning-icon{font-size:2.5rem;animation:pulse-warning 1.5s ease-in-out infinite}@keyframes pulse-warning{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.delete-modal-body{padding:.5rem 0}.delete-modal-patient-name{font-size:1.1rem;padding:.75rem;background:var(--bg-secondary, #f8f9fa);border-radius:6px;margin-bottom:1rem}.delete-modal-warning-text{color:#dc2626;font-weight:500;line-height:1.5;margin-bottom:1.25rem}.delete-modal-checkbox-label{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border:1px solid #fca5a5;border-radius:6px;background:#fef2f2;cursor:pointer;-webkit-user-select:none;user-select:none}.delete-modal-checkbox-label input[type=checkbox]{margin-top:3px;width:18px;height:18px;cursor:pointer;accent-color:#dc2626}.delete-modal-checkbox-label span{font-size:.9rem;color:#7f1d1d;font-weight:500}.dp-description{color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.6;padding:0 1rem}.dp-section{padding:0 1rem 1rem}.dp-section h3{margin:0 0 .5rem;font-size:1.05rem}.dp-hint{color:var(--text-secondary);font-size:.9rem;margin-bottom:1rem}.dp-search-row{display:flex;gap:.75rem;margin-bottom:1rem}.dp-search-row .form-input{flex:1}.dp-search-results{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:1rem;max-height:250px;overflow-y:auto}.dp-patient-result{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:none;background:var(--bg-card);cursor:pointer;text-align:left;width:100%;transition:background .15s}.dp-patient-result:hover{background:var(--bg-secondary, #f0f4ff)}.dp-patient-id{font-weight:600;font-size:.85rem;color:var(--primary);min-width:60px}.dp-patient-name{flex:1;font-weight:500}.dp-patient-phone{color:var(--text-secondary);font-size:.85rem}.dp-selected-patient{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:var(--bg-secondary, #f0f4ff);border:1px solid var(--primary);border-radius:8px}.dp-selected-info{display:flex;align-items:center;gap:.75rem}.platform-login-page{background:linear-gradient(135deg,#2d3436,#636e72)}.login-switch{text-align:center;margin-top:20px;padding-top:16px;border-top:1px solid #f1f2f6}.login-switch a{color:#636e72;text-decoration:none;font-size:13px;transition:color .15s ease}.login-switch a:hover{color:#0984e3}.platform-layout{min-height:100vh;display:flex;flex-direction:column;background:#f5f6fa}.platform-header{display:flex;align-items:center;justify-content:space-between;background:#2d3436;color:#fff;padding:0 24px;height:56px;gap:24px}.platform-header-left{display:flex;align-items:center;gap:10px}.platform-header-left h1{font-size:16px;font-weight:600;white-space:nowrap}.platform-header-logo{font-size:24px}.platform-nav{display:flex;gap:4px}.platform-nav a{color:#ffffffb3;text-decoration:none;padding:8px 14px;border-radius:6px;font-size:14px;font-weight:500;transition:all .15s ease}.platform-nav a:hover{color:#fff;background:#ffffff1a}.platform-nav a.active{color:#fff;background:#ffffff26}.platform-header-right{display:flex;align-items:center;gap:12px}.platform-user-name{font-size:13px;opacity:.8}.platform-main{flex:1;padding:24px 32px;max-width:1400px;width:100%;margin:0 auto}.platform-loading{padding:48px;text-align:center;color:#636e72;font-size:14px}.platform-error{padding:12px 16px;background:#fff5f5;color:#d63031;border:1px solid #ffcccc;border-radius:6px;margin-bottom:16px;font-size:14px}.platform-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px}.platform-page-header h2{font-size:20px;font-weight:600;margin:0}.platform-header-actions{display:flex;align-items:center;gap:12px}.platform-back-link{display:inline-block;color:#0984e3;text-decoration:none;font-size:13px;margin-bottom:8px}.platform-back-link:hover{text-decoration:underline}.platform-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:16px}.platform-stat-card{background:#fff;border:1px solid #dfe6e9;border-radius:10px;padding:20px;text-decoration:none;color:inherit;transition:all .15s ease;cursor:default}a.platform-stat-card{cursor:pointer}a.platform-stat-card:hover{border-color:#0984e3;box-shadow:0 2px 8px #0984e31a}.platform-stat-card.warning{border-color:#fdcb6e}.stat-icon{font-size:28px;margin-bottom:8px}.stat-value{font-size:32px;font-weight:700;line-height:1.1;margin-bottom:4px}.stat-label{font-size:13px;color:#636e72;font-weight:500}.stat-sub{font-size:12px;color:#b2bec3;margin-top:2px}.platform-table-wrap{background:#fff;border:1px solid #dfe6e9;border-radius:10px;overflow:auto}.platform-table{width:100%;border-collapse:collapse;font-size:14px}.platform-table th{background:#f8f9fa;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#636e72;padding:10px 14px;text-align:left;border-bottom:2px solid #dfe6e9;white-space:nowrap}.platform-table td{padding:10px 14px;border-bottom:1px solid #f1f2f6;vertical-align:middle}.platform-table tbody tr:hover{background:#f8f9fa}.platform-table tbody tr:last-child td{border-bottom:none}.platform-table .table-sub{font-size:12px;color:#636e72}.platform-table .mono{font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:13px}.platform-table .actions-cell{display:flex;gap:4px}.platform-table .empty-state{text-align:center;color:#b2bec3;padding:32px 14px}.platform-link{color:#0984e3;text-decoration:none;font-weight:500}.platform-link:hover{text-decoration:underline}.unpaid-row{background:#fffbf0}.status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.status-badge.active{background:#e8f8f0;color:#00b894}.status-badge.inactive{background:#f5f5f5;color:#636e72}.status-badge.paid{background:#e8f8f0;color:#00b894}.status-badge.unpaid{background:#fff5f5;color:#d63031}.role-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.role-badge.role-manager{background:#e8f0fe;color:#0984e3}.role-badge.role-dentist{background:#e8f8f0;color:#00b894}.role-badge.role-receptionist{background:#fef5e8;color:#e17055}.role-badge.role-assistant{background:#e8f8f0;color:#00a07a}.duration-badge{font-size:13px}.duration-badge.active{color:#00b894;font-weight:600}.platform-detail-info{background:#fff;border:1px solid #dfe6e9;border-radius:10px;padding:20px;margin-bottom:24px}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.info-grid div{font-size:14px}.info-grid strong{color:#636e72;font-weight:500}.platform-filter{display:flex;align-items:center;gap:8px;font-size:13px}.platform-filter label{color:#636e72;white-space:nowrap}.platform-filter select{padding:6px 10px;border:1px solid #dfe6e9;border-radius:6px;font-size:13px;background:#fff}.platform-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.platform-modal{background:#fff;border-radius:12px;padding:28px;width:100%;max-width:460px;box-shadow:0 20px 60px #0003}.platform-modal h3{margin:0 0 20px;font-size:18px}.platform-modal .modal-subtitle{display:block;font-size:13px;color:#636e72;font-weight:400;margin-top:4px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.btn-sm{padding:6px 14px;font-size:13px}.btn-xs{padding:3px 8px;font-size:12px}.btn-ghost{background:transparent;color:#636e72;border:1px solid #dfe6e9;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px;transition:all .15s ease}.btn-ghost:hover{background:#f5f6fa;color:#2d3436}.btn-success{background:#00b894;color:#fff;border:none;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px;transition:all .15s ease}.btn-success:hover{background:#00a381}.btn-danger{background:#d63031;color:#fff;border:none;padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px;transition:all .15s ease}.btn-danger:hover{background:#c0392b}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1}@media(max-width:768px){.platform-header{flex-wrap:wrap;height:auto;padding:12px 16px;gap:8px}.platform-nav{order:3;width:100%;overflow-x:auto}.platform-main{padding:16px}.platform-stats-grid{grid-template-columns:repeat(2,1fr)}}.platform-stat-card.clickable{cursor:pointer}.platform-stat-card.clickable:hover{border-color:#0984e3;box-shadow:0 2px 8px #0984e31a}.platform-breakdown-panel{background:#fff;border:1px solid #dfe6e9;border-radius:10px;padding:20px;margin-top:24px}.platform-breakdown-panel h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px;font-size:16px}.empty-state-text{text-align:center;color:#b2bec3;padding:16px;font-size:14px}.discount-badge{display:inline-block;padding:1px 6px;margin-left:6px;border-radius:3px;font-size:11px;font-weight:600;background:#fff3cd;color:#856404}.form-section-title{font-size:14px;font-weight:600;color:#2d3436;margin:16px 0 8px;padding-top:12px;border-top:1px solid #f1f2f6}.form-section-title:first-of-type{border-top:none;margin-top:0;padding-top:0}.form-hint{display:block;font-size:11px;color:#b2bec3;margin-top:2px}.platform-modal-wide{max-width:600px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-header h3{margin:0;font-size:16px}.platform-detail-section{margin-bottom:24px}.billing-display{display:flex;gap:24px;font-size:14px;padding:12px 0}.billing-display strong{color:#636e72;font-weight:500}.billing-edit-form{padding:8px 0}.billing-actions{display:flex;align-items:flex-end;gap:6px;padding-bottom:4px}.inactive-row{opacity:.5}.status-badge.refunded{background:#f0f0f5;color:#636e72}.status-badge.skipped{background:#fff3cd;color:#856404}.paid-row{background:#f8faf8}.paid-cell{text-decoration:line-through;opacity:.5}.audit-row td{background:#f8f9fa;padding:0!important}.audit-trail{padding:12px 16px;font-size:13px}.audit-trail strong{display:block;margin-bottom:8px;font-size:12px;text-transform:uppercase;color:#636e72}.audit-trail ul{list-style:none;padding:0;margin:0}.audit-trail li{padding:4px 0;border-bottom:1px solid #eee;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.audit-trail li:last-child{border-bottom:none}.audit-action{font-weight:600;color:#2d3436;font-size:12px}.audit-by{color:#636e72;font-size:12px}.audit-time{color:#b2bec3;font-size:12px;margin-left:auto}.audit-details{width:100%;color:#636e72;font-size:12px;padding-left:8px;word-break:break-all}.balance-table .amount-col{text-align:right}.balance-table .paid-col{color:#00b894}.balance-table .due-col{color:#d63031}.balance-table .totals-row{background:#f8f9fa;border-top:2px solid #dfe6e9}.balance-table .empty-month{opacity:.4}.clinic-balance-section{margin-bottom:32px}.clinic-balance-title{font-size:16px;font-weight:600;margin:0 0 12px;padding-left:4px}.platform-settings{max-width:600px}.settings-section{background:#fff;border:1px solid #dfe6e9;border-radius:10px;padding:24px;margin-bottom:20px}.settings-section h3{margin:0 0 16px;font-size:16px;font-weight:600}.settings-form .form-group{margin-bottom:12px}.settings-actions{margin-top:16px}.settings-success{padding:8px 12px;background:#e8f8f0;color:#00b894;border:1px solid #b8e6d0;border-radius:6px;margin-bottom:12px;font-size:13px}.platform-settings-link{color:#ffffffb3;text-decoration:none;font-size:13px;padding:4px 8px;border-radius:4px;transition:all .15s ease}.platform-settings-link:hover,.platform-settings-link.active{color:#fff;background:#ffffff1a}
