/* Bspro - Custom styles */
body { font-family: system-ui, "Segoe UI", Tahoma, sans-serif; }

.card-module {
    transition: transform .15s ease, box-shadow .15s ease;
    cursor: pointer;
}
.card-module:hover {
    transform: translateY(-3px);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.12) !important;
}

/* RTL tweaks */
html[dir="rtl"] .ms-auto { margin-right: auto !important; margin-left: 0 !important; }

/* Clickable stat cards (filtering from the dashboard) */
.stat-card-link { transition: transform .15s ease, box-shadow .15s ease; }
.stat-card-link:hover { transform: translateY(-3px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.12) !important; }
a:hover > .stat-card-link { cursor: pointer; }


/* ===================================================================
   Bspro - Professional touches (forms, buttons, cards)
   Compatible with light/dark mode and mobile. Does not change any behavior.
   =================================================================== */
:root { --bs-border-radius: .6rem; --bs-border-radius-sm: .45rem; --bs-border-radius-lg: .9rem; }

body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Buttons */
.btn { font-weight: 500; border-radius: .55rem; transition: transform .12s ease, box-shadow .15s ease, filter .15s ease; }
.btn-sm { border-radius: .45rem; }
.btn-lg { border-radius: .7rem; padding-inline: 1.1rem; }
.btn-primary, .btn-success, .btn-danger, .btn-warning, .btn-info, .btn-secondary, .btn-dark { box-shadow: 0 1px 2px rgba(0,0,0,.10); }
.btn-primary:hover, .btn-success:hover, .btn-danger:hover, .btn-warning:hover, .btn-info:hover, .btn-secondary:hover, .btn-dark:hover { transform: translateY(-1px); box-shadow: 0 .35rem .8rem rgba(0,0,0,.16); }
.btn:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(0,0,0,.12); }
.btn:focus-visible { box-shadow: 0 0 0 .22rem rgba(13,110,253,.30); }
.btn i.bi { vertical-align: -.05em; }

/* Form fields */
.form-control, .form-select { border-radius: .55rem; padding: .5rem .75rem; transition: border-color .15s ease, box-shadow .15s ease; }
.form-control-sm, .form-select-sm { border-radius: .45rem; }
.form-control:focus, .form-select:focus { border-color: #86b7fe; box-shadow: 0 0 0 .2rem rgba(13,110,253,.18); }
.form-label { font-weight: 500; margin-bottom: .35rem; font-size: .92rem; }
.input-group-text { border-radius: .55rem; }
.form-check-input:focus { box-shadow: 0 0 0 .2rem rgba(13,110,253,.18); }
.form-switch .form-check-input { cursor: pointer; }

/* Cards */
.card { border-radius: .9rem; }
.card.shadow-sm { box-shadow: 0 1px 2px rgba(15,27,45,.05), 0 2px 10px rgba(15,27,45,.05) !important; }

/* Tables */
.table > thead th { font-weight: 500; letter-spacing: .2px; }
.table-hover > tbody > tr { transition: background-color .12s ease; }

/* Badges */
.badge { font-weight: 500; letter-spacing: .2px; }

/* Mobile tweaks: prevent iOS zoom + comfortable touch targets */
@media (max-width: 575.98px) {
  .form-control, .form-select { font-size: 16px; }
  .btn { padding-top: .5rem; padding-bottom: .5rem; }
  .card-body { padding: 1rem; }
  h1.h4 { font-size: 1.15rem; }
}
