:root {
    --rbw-bg: #101418;
    --rbw-panel: #182028;
    --rbw-panel-soft: #202a34;
    --rbw-line: #32404d;
    --rbw-gold: #d6a84f;
    --rbw-cyan: #3ab7c9;
    --rbw-text: #edf2f7;
}

body {
    background: var(--rbw-bg);
    color: var(--rbw-text);
}

.rbw-nav {
    background: #0b0f13;
    border-bottom: 1px solid var(--rbw-line);
}

.rbw-logo {
    width: 34px;
    height: 34px;
    object-fit: contain;
    border-radius: 6px;
}

.rbw-card {
    background: var(--rbw-panel);
    border: 1px solid var(--rbw-line);
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
}

.form-control,
.form-select {
    background: #111820;
    border-color: #394856;
    color: var(--rbw-text);
}

.form-control:focus,
.form-select:focus {
    background: #111820;
    border-color: var(--rbw-cyan);
    color: var(--rbw-text);
    box-shadow: 0 0 0 .2rem rgba(58, 183, 201, .18);
}

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--rbw-text);
    --bs-table-border-color: var(--rbw-line);
}

.table-wrap {
    max-height: 62vh;
    overflow: auto;
    border: 1px solid var(--rbw-line);
    border-radius: 8px;
}

.module-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1rem;
}

.module-tile {
    display: block;
    min-height: 118px;
    padding: 1rem;
    color: var(--rbw-text);
    text-decoration: none;
    background: var(--rbw-panel);
    border: 1px solid var(--rbw-line);
    border-radius: 8px;
}

.module-tile:hover {
    border-color: var(--rbw-gold);
    color: #fff;
}

.badge-soft {
    background: rgba(214, 168, 79, .16);
    color: #f5d78d;
    border: 1px solid rgba(214, 168, 79, .3);
}
