body {
    background: #14141c;
    color: #e4e4e8;
}
.card {
    background: #1c1c28;
    border: 1px solid #2c2c3c;
    color: #e4e4e8;
}
.form-control, .form-select {
    background: #12121a;
    border: 1px solid #2c2c3c;
    color: #e4e4e8;
}
.form-control:focus, .form-select:focus {
    background: #12121a;
    color: #e4e4e8;
    border-color: #4a7fd6;
    box-shadow: 0 0 0 0.2rem rgba(74,127,214,0.25);
}
.form-control::placeholder { color: #6c6c7c; }
a { color: #6fa8ff; }
.btn-primary {
    background: #2f5fb0;
    border-color: #2f5fb0;
}
.btn-primary:hover {
    background: #3b6fc9;
    border-color: #3b6fc9;
}
.alert-danger {
    background: #3a1f24;
    border-color: #5a2c34;
    color: #ff9daa;
}
.alert-warning {
    background: #3a3320;
    border-color: #5a4f2c;
    color: #ffd98a;
}
.alert-info {
    background: #1f2f3a;
    border-color: #2c4a5a;
    color: #8ad0ff;
}
.recovery-key-box {
    font-family: 'Courier New', monospace;
    font-size: 1.3rem;
    letter-spacing: 0.1rem;
    background: #0d0d13;
    border: 2px dashed #4a7fd6;
    padding: 1rem;
    text-align: center;
    border-radius: 6px;
    user-select: all;
}
.strength-meter { height: 6px; border-radius: 3px; background: #2c2c3c; overflow: hidden; margin-top: 6px; }
.strength-meter-fill { height: 100%; width: 0%; transition: width 0.2s, background 0.2s; }
.nav-tabs .nav-link { color: #a0a0b0; }
.nav-tabs .nav-link.active { background: #2c2c3c; color: #fff; border-color: #2c2c3c; }
.tab-content { background: #1c1c28; padding: 1rem; border: 1px solid #2c2c3c; border-top: none; }

/* State-resources map - see state-resources.php: inline SVG styles are
   stripped there, fill/stroke/hover come from here instead, same pattern
   already proven on govote.joethevoter.org / VoteAssist. */
#us-state-map { max-width: 100%; height: auto; }
#us-state-map path {
    fill: #6a84b8;
    stroke: #14141c;
    stroke-width: 1.5;
    cursor: pointer;
    transition: fill 0.2s;
}
#us-state-map path:hover { fill: #4a7fd6; }
#us-state-map path:active { filter: brightness(0.85); }
