.fwb-root {
    --fwb-bg: #ffffff;
    --fwb-accent: #c5161b;
    --fwb-text: #1a1a1a;
    --fwb-border: #e0e0e0;
    --fwb-font: Inter, Roboto, sans-serif;
    --fwb-font-size: 16px;
    --fwb-radius: 8px;
    --fwb-padding: 16px;
    --fwb-shadow: 0 2px 8px rgba(0,0,0,0.08);
    background: var(--fwb-bg);
    color: var(--fwb-text);
    font-family: var(--fwb-font);
    font-size: var(--fwb-font-size);
    border-radius: var(--fwb-radius);
    padding: var(--fwb-padding);
    margin: var(--fwb-margin, 8px) 0;
}

.fwb-input, .fwb-textarea, .fwb-select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--fwb-border);
    border-radius: var(--fwb-radius);
    background: #fff;
    color: var(--fwb-text);
    box-sizing: border-box;
}

.fwb-input:focus, .fwb-textarea:focus, .fwb-select:focus {
    outline: none;
    border-color: var(--fwb-accent);
    box-shadow: 0 0 0 2px rgba(197, 22, 27, 0.15);
}

.fwb-label { display: block; margin-bottom: 6px; font-weight: 600; }
.fwb-field { margin-bottom: 16px; }
.fwb-btn {
    background: var(--fwb-accent);
    color: #fff;
    border: none;
    padding: 10px 20px;
    border-radius: var(--fwb-radius);
    cursor: pointer;
    font-weight: 600;
}
.fwb-btn:hover { opacity: 0.9; }

.fwb-table-wrap { overflow-x: auto; }
.fwb-table { width: 100%; border-collapse: collapse; }
.fwb-table th {
    background: var(--fwb-accent);
    color: #fff;
    padding: 12px;
    text-align: left;
}
.fwb-table td { padding: 10px 12px; border-bottom: 1px solid var(--fwb-border); }
.fwb-table tbody tr:nth-child(even) { background: rgba(0,0,0,0.02); }

.fwb-mobile-scroll .fwb-table-wrap { overflow-x: auto; }
.fwb-mobile-cards .fwb-table { display: none; }

.fwb-cards { display: grid; gap: 12px; }
.fwb-card {
    background: #fff;
    border: 1px solid var(--fwb-border);
    border-radius: var(--fwb-radius);
    padding: 16px;
    box-shadow: var(--fwb-shadow);
}
.fwb-card-label { font-weight: 600; margin-right: 8px; color: var(--fwb-accent); }

.fwb-stat-tile {
    text-align: center;
    padding: 24px;
    background: var(--fwb-accent);
    color: #fff;
    border-radius: var(--fwb-radius);
}
.fwb-stat-value { font-size: 2.5rem; font-weight: 700; }
.fwb-stat-number { font-size: 2rem; font-weight: 700; color: var(--fwb-accent); }

.fwb-toggle { position: relative; display: inline-block; width: 48px; height: 26px; }
.fwb-toggle input { opacity: 0; width: 0; height: 0; }
.fwb-toggle-slider {
    position: absolute; inset: 0; background: #ccc; border-radius: 26px; transition: 0.3s;
}
.fwb-toggle input:checked + .fwb-toggle-slider { background: var(--fwb-accent); }

.fwb-success { background: #d4edda; color: #155724; padding: 12px; border-radius: var(--fwb-radius); margin-top: 12px; }
.fwb-error { background: #f8d7da; color: #721c24; padding: 12px; border-radius: var(--fwb-radius); margin-top: 12px; }

.fwb-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; align-items: center; }
.fwb-columns { display: grid; gap: 16px; }
.fwb-cols-1 { grid-template-columns: 1fr; }
.fwb-cols-2 { grid-template-columns: 1fr 1fr; }
.fwb-cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.fwb-cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }

@media (max-width: 768px) {
    .fwb-cols-2, .fwb-cols-3, .fwb-cols-4 { grid-template-columns: 1fr; }
    .fwb-mobile-reduced .fwb-table th:nth-child(n+4),
    .fwb-mobile-reduced .fwb-table td:nth-child(n+4) { display: none; }
}

.fwb-section { margin-bottom: 24px; }
.fwb-section-title { color: var(--fwb-accent); border-bottom: 2px solid var(--fwb-accent); padding-bottom: 8px; }
