/* ---------- Misc ---------- */
.dropzone { border: 2px dashed #c7cde2; border-radius: var(--em-radius); padding: 1.5rem; text-align: center; background: var(--em-surface-2); color: var(--em-muted); cursor: pointer; transition: border-color .15s, background .15s; }
.dropzone.dragover, .dropzone:hover { border-color: var(--em-primary); background: var(--em-primary-050); }
.dropzone .bi { font-size: 2rem; color: var(--em-primary); }
.notif-dot { position: absolute; top: 6px; right: 6px; min-width: 18px; height: 18px; border-radius: 999px; background: var(--em-danger); color: #fff; font-size: .65rem; font-weight: 700; display: grid; place-items: center; padding: 0 4px; }
.notif-menu { width: min(360px, calc(100vw - 24px)); max-height: 420px; overflow-y: auto; }
.timeline { list-style: none; padding: 0; margin: 0; }
.timeline li { position: relative; padding: 0 0 1rem 1.5rem; border-left: 2px solid var(--em-border); margin-left: .5rem; }
.timeline li::before { content: ""; position: absolute; left: -7px; top: 3px; width: 12px; height: 12px; border-radius: 50%; background: var(--em-primary); box-shadow: 0 0 0 3px var(--em-primary-050); }
.timeline li:last-child { border-left-color: transparent; }
.thumb { width: 44px; height: 44px; border-radius: 10px; object-fit: cover; border: 1px solid var(--em-border); }
.gallery-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--em-radius) var(--em-radius) 0 0; }
.signature-pad { width: 100%; height: 180px; border: 1px dashed #c7cde2; border-radius: var(--em-radius-sm); background: #fff; touch-action: none; }
.text-truncate-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.chart-box { position: relative; height: 260px; }
.min-w-0 { min-width: 0; }
.nav-tabs-modern { border-bottom: 1px solid var(--em-border); gap: .25rem; }
.nav-tabs-modern .nav-link { border: 0; border-bottom: 3px solid transparent; color: var(--em-muted); font-weight: 600; border-radius: 0; padding: .75rem 1rem; }
.nav-tabs-modern .nav-link.active { color: var(--em-primary); border-bottom-color: var(--em-primary); background: none; }
@media print { .app-sidebar, .app-topbar, .page-actions, .list-toolbar, .list-footer { display: none !important; } .app-main { margin: 0 !important; } }
.topbar-role { font-size: .7rem; }
.empty-hidden:empty { display: none; }
.avatar-picker { cursor: pointer; }
.form-narrow { max-width: 520px; }
