*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { height: 100%; }
body { min-height: 100vh; display: flex; font-family: 'Inter', system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; }

#sidebar-container { position: fixed; left: 0; top: 0; bottom: 0; z-index: 40; width: 256px; height: 100vh; }
#sidebar-container > aside { width: 100%; height: 100%; }
.main-content { margin-left: 256px; width: calc(100% - 256px); min-height: 100vh; }

.stat-card { transition: transform 0.15s, box-shadow 0.15s; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }

.table-container { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-container table { width: 100%; border-collapse: collapse; }
.table-container th { text-align: left; padding: 10px 14px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: #64748b; background: #f8fafc; border-bottom: 1px solid #e2e8f0; white-space: nowrap; cursor: pointer; user-select: none; }
.table-container th:hover { color: #334155; }
.table-container td { padding: 10px 14px; font-size: 13px; color: #334155; border-bottom: 1px solid #f1f5f9; }
.table-container tr:hover td { background: #f8fafc; }
.table-container .sort-icon { opacity: 0.3; margin-left: 4px; display: inline-block; }

input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="search"], select, textarea { font-family: inherit; outline: none; }
input:focus, select:focus, textarea:focus { ring: 2px solid #6366f1; }

.toast-enter { opacity: 0; transform: translateY(8px); }
.toast-enter-active { opacity: 1; transform: translateY(0); transition: all 0.3s; }
.toast-exit-active { opacity: 0; transform: translateY(8px); transition: all 0.3s; }

.modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 50; display: flex; align-items: center; justify-content: center; }
.modal-content { background: white; border-radius: 12px; padding: 24px; max-width: 500px; width: 90%; max-height: 90vh; overflow-y: auto; box-shadow: 0 20px 60px rgba(0,0,0,0.15); }

@media (max-width: 768px) {
  #sidebar-container { display: none; }
  .main-content { margin-left: 0; width: 100%; }
}
