/* bootstrap-overrides.css - All Bootstrap component overrides + dark theme specific associations */

/* Buttons */
.btn-primary { background-color: var(--primary-color); border-color: var(--primary-color); font-weight:600; padding:12px 24px; border-radius:8px; transition-property: transform, background-color, border-color, box-shadow; transition-duration: var(--duration-normal); transition-timing-function: var(--ease-out-expo); position:relative; overflow:hidden; transform:translateZ(0); will-change:transform, box-shadow; cursor:pointer; }
.btn-primary::before { content:''; position:absolute; top:0; left:-100%; width:100%; height:100%; background:linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); transition:left 0.8s var(--ease-out-expo); }
.btn-primary:hover::before { left:100%; }
.btn-primary::after { content:''; position:absolute; top:50%; left:50%; width:0; height:0; border-radius:50%; background:rgba(255,255,255,0.3); transform:translate(-50%,-50%); transition:width 0.8s var(--ease-out-expo), height 0.8s var(--ease-out-expo); }
.btn-primary:active::after { width:300px; height:300px; }
.btn-primary:hover, .btn-primary:focus { background-color:var(--primary-hover); border-color:var(--primary-hover); transform:translateY(-3px) translateZ(0); box-shadow:0 12px 35px rgba(233,55,78,0.4), 0 4px 15px rgba(233,55,78,0.2); }

.btn-outline-primary { color:var(--primary-color); border-color:var(--primary-color); font-weight:600; }
.btn-outline-primary:hover { background-color:var(--primary-color); border-color:var(--primary-color); }

.text-primary { color: var(--primary-color) !important; }

.bg-gradient-primary { background: var(--primary-gradient); }
.bg-gradient-secondary { background: var(--secondary-gradient); }

/* Navbar / Navigation */
.navbar { background-color:var(--overlay-light); backdrop-filter:blur(10px); transition:all 0.3s ease; }
.navbar-brand img { transition:transform 0.3s ease; }
.navbar-brand:hover img { transform:scale(1.05); }
.nav-link { font-weight:500; color:var(--text-color); transition:color 0.3s ease; position:relative; }
.nav-link:hover, .nav-link.active { color:var(--primary-color); }
.nav-link.active::after { content:''; position:absolute; bottom:-8px; left:50%; transform:translateX(-50%); width:30px; height:3px; background-color:var(--primary-color); border-radius:2px; }

/* Forms */
.form-control:focus { border-color:var(--primary-color); box-shadow:0 0 0 0.2rem var(--focus-shadow); }

/* Utility */
.btn-outline-secondary:hover { background-color: var(--bg-secondary); }

/* Dark Theme Associations (Bootstrap-related elements) */
[data-theme="dark"] .navbar { background-color: var(--navbar-bg) !important; border-bottom:1px solid var(--border); }
[data-theme="dark"] .bg-light { background-color: var(--bg-secondary) !important; }
[data-theme="dark"] .card { background-color: var(--card-bg); border-color: var(--border); color: var(--text-color); }
[data-theme="dark"] .text-muted { color: var(--text-secondary) !important; }
[data-theme="dark"] .border { border-color: var(--border) !important; }
[data-theme="dark"] .dropdown-menu { background-color: var(--card-bg); border-color: var(--border); }
[data-theme="dark"] .dropdown-item { color: var(--text-color); }
[data-theme="dark"] .dropdown-item:hover { background-color: var(--bg-secondary); }
[data-theme="dark"] .form-control { background-color: var(--bg-secondary); border-color: var(--border); color: var(--text-color); }
[data-theme="dark"] .form-control:focus { background-color: var(--bg-secondary); border-color: var(--primary-color); color: var(--text-color); }
[data-theme="dark"] .btn-outline-secondary { color: var(--text-color); border-color: var(--border); }
[data-theme="dark"] .btn-outline-secondary:hover { background-color: var(--bg-secondary); border-color: var(--border); color: var(--text-color); }
[data-theme="dark"] .btn-outline-primary { color: var(--primary-color); border-color: var(--primary-color); }
[data-theme="dark"] .modal-content { background-color: var(--card-bg); color: var(--text-color); }
[data-theme="dark"] .modal-header { border-bottom-color: var(--border); }
[data-theme="dark"] .modal-footer { border-top-color: var(--border); }
[data-theme="dark"] .navbar-toggler { border-color: var(--border); }
[data-theme="dark"] .navbar-toggler-icon { background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='m4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
[data-theme="dark"] .feature-card:hover, [data-theme="dark"] .capability-card:hover { transform:translateY(-8px); box-shadow:0 20px 25px -5px rgba(255,255,255,0.1), 0 10px 10px -5px rgba(255,255,255,0.04); }
[data-theme="dark"] .alert { background-color: var(--bg-secondary); border-color: var(--border); color: var(--text-color); }
[data-theme="dark"] .list-group-item { background-color: var(--card-bg); border-color: var(--border); color: var(--text-color); }
[data-theme="dark"] .nav-link { color: var(--text-color) !important; }
[data-theme="dark"] .nav-link:hover, [data-theme="dark"] .nav-link.active { color: var(--primary-color) !important; }
[data-theme="dark"] .nav-tabs .nav-link { color: var(--text-color); border-color: var(--border); }
[data-theme="dark"] .nav-tabs .nav-link.active { background-color: var(--card-bg); border-color: var(--border); color: var(--text-color); }
[data-theme="dark"] .table { color: var(--text-color); }
[data-theme="dark"] .table th, [data-theme="dark"] .table td { border-color: var(--border); }
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > td { background-color: var(--bg-secondary); }
[data-theme="dark"] .btn-light { color: var(--text-color); background-color: var(--bg-color); border-color: var(--border); }
[data-theme="dark"] .btn-outline-light:hover { color: var(--text-color); background-color: var(--bg-color); }
[data-theme="dark"] .btn-outline-success { color: var(--success-color); border-color: var(--success-border); }
[data-theme="dark"] .btn-outline-danger { color: var(--error-color); border-color: var(--error-border); }
[data-theme="dark"] .badge { background-color: var(--bg-secondary); color: var(--text-color); }
[data-theme="dark"] .progress { background-color: var(--bg-secondary); }
[data-theme="dark"] .progress-bar { background-color: var(--primary-color); }
[data-theme="dark"] .alert-success { background-color: var(--success-bg); border-color: var(--success-border); color: var(--success-color); }
[data-theme="dark"] .alert-danger { background-color: var(--error-bg); border-color: var(--error-border); color: var(--error-color); }
