Paneli Scripti - Sorgu
// Sıfırlama işlemi function resetFilters() searchInput.value = ""; statusFilter.value = "all"; roleFilter.value = "all"; filterAndRender();
.btn-primary background: #1a2c3e; color: white; box-shadow: 0 2px 6px rgba(0,0,0,0.1);
.badge-active background: #d1fae5; color: #0b5e42;
.btn-secondary background: #e2e8f0;
.data-table td padding: 14px 20px; border-bottom: 1px solid #ecf3fa; color: #1f2d3d;
.badge-inactive background: #ffe4e2; color: #9b2c1d;
.stat-number font-size: 2rem; font-weight: 800; color: #1a2c3e; line-height: 1; Sorgu Paneli Scripti
/* HEADER */ .panel-header background: #1a2c3e; color: white; padding: 20px 28px; border-bottom: 4px solid #f39c12;
.data-table th text-align: left; padding: 16px 20px; background-color: #f1f5f9; color: #1e2f3e; font-weight: 600; border-bottom: 2px solid #e2e8f0;
// Basit XSS koruması function escapeHtml(str) if (!str) return ''; return str.replace(/[&<>]/g, function(m) if (m === '&') return '&'; if (m === '<') return '<'; if (m === '>') return '>'; return m; ).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, function(c) return c; ); // Sıfırlama işlemi function resetFilters() searchInput
.data-table tr:hover td background-color: #fef9e6;
.btn border: none; padding: 10px 24px; border-radius: 40px; font-weight: 600; cursor: pointer; transition: 0.2s; font-size: 0.85rem; background: #eef2f6; color: #1e2f3e;
.btn-primary:hover background: #f39c12; color: #1e2f3e; transform: translateY(-1px); statusFilter.value = "all"
.stat-card background: #f1f5f9; border-radius: 28px; padding: 12px 24px; flex: 1; min-width: 130px; text-align: center;
.filter-group input, .filter-group select width: 100%; padding: 12px 16px; font-size: 0.95rem; border: 1px solid #cbd5e1; border-radius: 20px; background: white; transition: 0.2s; outline: none;