.calendar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 1px 3px #00000005}.calendar-header{padding:var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);justify-content:space-between;align-items:center;display:flex}.calendar-header-title{color:var(--color-text);font-size:1rem;font-weight:500}.calendar-nav{align-items:center;gap:var(--space-2);display:flex}.calendar-nav-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:32px;height:32px;color:var(--color-text-secondary);cursor:pointer;justify-content:center;align-items:center;transition:all .15s;display:flex}.calendar-nav-btn:hover{background:var(--color-bg);color:var(--color-text)}.calendar-view-toggle{background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border);gap:2px;padding:2px;display:flex}.calendar-view-btn{border-radius:calc(var(--radius-sm) - 2px);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:6px 14px;font-size:.8rem;font-weight:500;transition:all .15s}.calendar-view-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.calendar-week-header{border-bottom:2px solid var(--color-border);background:var(--color-surface);grid-template-columns:60px repeat(7,1fr);display:grid}.calendar-day-header{padding:var(--space-3)0;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-left:1px solid var(--color-border);font-size:.75rem;font-weight:600}.calendar-day-header:first-child{border-left:none}.calendar-day-header.today{color:var(--color-text);background:#00000005}.calendar-day-header .day-number{color:var(--color-text);margin-top:4px;font-size:1.1rem;font-weight:500;display:block}.calendar-time-col{color:var(--color-text-muted);text-align:right;padding-right:var(--space-2);padding-top:4px;font-size:.7rem;font-weight:500}.calendar-grid{background:var(--color-surface);grid-template-columns:60px repeat(7,1fr);display:grid;position:relative}.calendar-grid.day-view{grid-template-columns:60px 1fr}.calendar-time-slot{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);cursor:pointer;height:48px;transition:background .1s;position:relative}.calendar-time-slot:hover{background:#00000005}.appt-card{border-radius:var(--radius-sm);cursor:pointer;z-index:10;border-left:3px solid;padding:4px 8px;font-size:.75rem;font-weight:500;line-height:1.4;transition:transform .15s,box-shadow .15s;position:absolute;left:4px;right:4px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.appt-card:hover{z-index:20;transform:translateY(-1px);box-shadow:0 4px 6px #00000014}.appt-card .appt-title{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;font-weight:600;overflow:hidden}.appt-card .appt-time{opacity:.7;margin-top:2px;font-size:.65rem}.appt-card .appt-patient{opacity:.8;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.7rem;overflow:hidden}.appt-card.type-chairside{color:#0f172a;background:#f1f5f9;border-left-color:#3b82f6}.appt-card.type-admin_task{color:#78350f;background:#fffbeb;border-left-color:#f59e0b}.appt-card.type-tele_diagnosis{color:#581c87;background:#faf5ff;border-left-color:#a855f7}.appt-card.type-blocked{color:#7f1d1d;cursor:not-allowed;background:#fef2f2;border-left-color:#ef4444}.appt-card.status-confirmed{border-left-width:4px}.appt-card.status-completed{opacity:.6}.appt-card.status-cancelled{opacity:.4;text-decoration:line-through}.agenda-layout{display:block}.current-time-line{z-index:3;pointer-events:none;background:#ef4444;height:2px;position:absolute;left:0;right:0}.current-time-line:before{content:"";background:#ef4444;border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.appt-modal-type-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.appt-type-option{align-items:center;gap:var(--space-2);padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;font-size:.85rem;font-weight:500;transition:all .15s;display:flex}.appt-type-option:hover{border-color:var(--color-primary-light)}.appt-type-option.selected{border-color:var(--color-primary);background:#2563eb0f}.appt-type-option .type-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}@media (max-width:768px){.agenda-layout{grid-template-columns:1fr}.today-sidebar{order:-1;position:static}.calendar-header{gap:var(--space-3);padding:var(--space-3);flex-wrap:wrap}.calendar-header>div:first-child{display:none!important}.calendar-header>div:last-child{gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;width:100%}.calendar-header>div:last-child>div:first-child{flex:1;min-width:0}.calendar-header>div:last-child>div:first-child>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.8rem!important}.calendar-week-header,.calendar-grid{grid-template-columns:48px 1fr!important}.calendar-day-header:not(.today):not(:first-child){display:none}.calendar-time-col{padding-right:var(--space-1);font-size:.65rem}.appt-card{padding:3px 6px;font-size:.7rem;left:2px;right:2px}.appt-card .appt-time{font-size:.6rem}.appt-card .appt-patient{display:none}}
.inventory-table{border-collapse:separate;border-spacing:0;width:100%}.inventory-table th{text-align:left;padding:var(--space-2)var(--space-3);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);background:var(--color-bg);border-bottom:1px solid var(--color-border);z-index:1;font-size:.75rem;font-weight:600;position:sticky;top:0}.inventory-table td{padding:var(--space-3);border-bottom:1px solid var(--color-border-light,#0000000d);vertical-align:middle;font-size:.875rem}.inventory-table tr:hover td{background:#2563eb08}.stock-badge{border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.stock-badge.ok{color:#16a34a;background:#22c55e1a}.stock-badge.low{color:#d97706;background:#f59e0b1a}.stock-badge.critical{color:#dc2626;background:#ef44441a}.stock-badge.out{color:#dc2626;background:#ef444426;font-weight:700}.stock-adjust-row{align-items:center;gap:var(--space-2);display:flex}.stock-adjust-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;width:70px;padding:4px 8px;font-size:.8rem}.txn-timeline{flex-direction:column;gap:0;display:flex;position:relative}.txn-timeline:before{content:"";background:var(--color-border);width:2px;position:absolute;top:0;bottom:0;left:15px}.txn-item{gap:var(--space-3);padding:var(--space-3)0;display:flex;position:relative}.txn-dot{z-index:1;border:2px solid var(--color-surface);border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:4px;margin-left:11px}.txn-dot.positive{background:#22c55e}.txn-dot.negative{background:#ef4444}.txn-details{flex:1;min-width:0}.txn-reason{color:var(--color-text);font-size:.85rem;font-weight:600}.txn-qty{font-size:.8rem;font-weight:600}.txn-qty.positive{color:#16a34a}.txn-qty.negative{color:#dc2626}.txn-date{color:var(--color-text-muted);font-size:.75rem}.low-stock-alert{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2);background:#f59e0b0f;border:1px solid #f59e0b33;display:flex}.low-stock-alert .alert-icon{color:#d97706;flex-shrink:0}.low-stock-alert .alert-text{color:var(--color-text);font-size:.85rem}.low-stock-alert .alert-text strong{font-weight:600}.material-detail-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:768px){.material-detail-grid{grid-template-columns:1fr}}
