.bet-files-app { max-width: 1280px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif; color:#1d2327; }
.bet-files-header { margin-bottom: 20px; }
.bet-files-header h2 { margin: 0 0 4px; font-size: 26px; font-weight: 700; }
.bet-files-sub { margin: 0; color: #646970; font-size: 14px; }

.bet-files-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 12px; margin-bottom: 18px; }
.bf-stat { background:#fff; border:1px solid #e0e3e7; border-radius:10px; padding:14px 16px; }
.bf-stat-value { font-size:24px; font-weight:700; color:#2271b1; }
.bf-stat-label { font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:#646970; margin-top:2px; font-weight:600; }

.bet-files-filters { background:#fff; border:1px solid #e0e3e7; border-radius:10px; padding:14px; margin-bottom:14px; }
.bet-filter-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.bet-filter-row label { display:flex; flex-direction:column; font-size:12px; font-weight:600; color:#3c434a; gap:4px; }
.bet-filter-row input, .bet-filter-row select { padding:6px 8px; border:1px solid #ccd0d4; border-radius:5px; font-size:13px; min-width:130px; }
.bet-filter-search { flex:1; min-width:180px; }
.bet-filter-search input { width:100%; }
.bet-filter-perpage select { min-width:70px; }
.bet-filter-row .bet-btn { padding:7px 14px; align-self:flex-end; }

.bet-files-bulkbar { display:flex; gap:12px; align-items:center; background:#e7f3fd; border:1px solid #b8d9f0; border-radius:8px; padding:10px 14px; margin-bottom:12px; font-size:13px; }
#bf-selected-count { font-weight:600; color:#0b4a6f; }

.bet-files-table-wrap { background:#fff; border:1px solid #e0e3e7; border-radius:10px; overflow: hidden; }
.bf-table { width:100%; border-collapse: collapse; font-size: 13px; }
.bf-table th, .bf-table td { padding:10px 12px; text-align:left; border-bottom:1px solid #eef0f2; }
.bf-table th { background:#f8f9fa; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.4px; color:#3c434a; }
.bf-table tr:hover { background:#fafbfc; }
.bf-table tr.selected { background:#f0f6fc; }
.bf-table input[type=checkbox] { cursor:pointer; }
.bf-icon { font-size:16px; opacity:.7; }
.bf-name { font-weight:600; color:#1d2327; word-break: break-all; }
.bf-meta { color:#646970; font-size:12px; }
.bf-badge { display:inline-block; padding:2px 8px; border-radius:10px; font-size:11px; background:#f0f0f1; color:#646970; font-weight:600; }
.bf-actions { display:flex; gap:4px; }
.bf-icon-btn { background:none; border:none; cursor:pointer; padding:4px 6px; border-radius:5px; font-size:14px; color:#2271b1; }
.bf-icon-btn:hover { background:#f0f6fc; }
.bf-icon-btn.danger { color:#b32d2e; }
.bf-icon-btn.danger:hover { background:#fdecea; }

.bet-files-pagination { display:flex; justify-content:center; align-items:center; gap:8px; margin-top:16px; font-size:13px; color:#646970; }
.bet-files-pagination button { background:#fff; border:1px solid #ccd0d4; padding:5px 10px; border-radius:5px; cursor:pointer; font-size:13px; }
.bet-files-pagination button:hover:not(:disabled) { background:#f0f6fc; }
.bet-files-pagination button:disabled { opacity:.4; cursor:not-allowed; }
.bet-files-pagination .bf-page-current { font-weight:600; color:#1d2327; padding:5px 10px; }

.bf-empty { padding:40px; text-align:center; color:#888; font-size:14px; }

.bet-toast { position:fixed; bottom:24px; right:24px; background:#1e1e1e; color:#fff; padding:12px 18px; border-radius:6px; z-index:10000; max-width:400px; font-size:13px; }
.bet-toast[hidden] { display:none; }
.bet-toast.ok { background:#155724; }
.bet-toast.err { background:#721c24; }
.bet-notice { padding:16px; background:#fff3cd; border:1px solid #ffeeba; border-radius:6px; margin:20px 0; }
.bet-btn { display:inline-flex; align-items:center; gap:6px; background:#2271b1; color:#fff; border:none; padding:7px 14px; border-radius:6px; cursor:pointer; font-size:13px; font-weight:500; line-height:1; }
.bet-btn:hover { background:#135e96; color:#fff; }
.bet-btn-ghost { background:#fff; color:#2271b1; border:1px solid #2271b1; }
.bet-btn-ghost:hover { background:#f0f6fc; }
.bet-btn-danger { background:#b32d2e; }
.bet-btn-danger:hover { background:#8a2424; }
.bet-dash-loader { padding:30px; text-align:center; color:#888; }
.bf-icon-btn[data-act="preview"] {
    color: #2271b1;
}
.bf-icon-btn[data-act="preview"]:hover {
    background: #f0f6fc;
}
