/* Theme refresh: softer surfaces, rounded corners, micro-interactions.
   Loaded last (after qs.css) so it wins the cascade without !important. */

:root {
    --radius-sm: .35rem;
    --radius: .6rem;
    --radius-lg: .85rem;
    --shadow-soft: 0 .25rem .75rem rgba(30, 41, 59, .08);
    --shadow-soft-lg: 0 .5rem 1.5rem rgba(30, 41, 59, .12);
    --ease: cubic-bezier(.4, 0, .2, 1);
    --focus-ring: 0 0 0 .2rem rgba(51, 118, 232, .15);
}

/* Cards */
.card {
    border-radius: var(--radius);
    border-color: rgba(0, 0, 0, .06);
    box-shadow: var(--shadow-soft);
    transition: box-shadow .2s var(--ease), transform .2s var(--ease);
}

a.card:hover,
.card.card-link:hover,
.card[role="button"]:hover {
    box-shadow: var(--shadow-soft-lg);
    transform: translateY(-2px);
}

.card-header {
    border-top-left-radius: var(--radius) !important;
    border-top-right-radius: var(--radius) !important;
}

/* Buttons */
.btn {
    border-radius: var(--radius-sm);
    transition: background-color .15s var(--ease), border-color .15s var(--ease),
                box-shadow .15s var(--ease), transform .15s var(--ease);
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-soft);
}

.btn:active {
    transform: translateY(0);
    box-shadow: none;
}

.btn.btn-float {
    border-radius: var(--radius);
}

/* Inputs */
.form-control,
.custom-select,
.select2-selection,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border-radius: var(--radius-sm) !important;
    border-color: rgba(0, 0, 0, .1);
    background-color: #fbfbfd;
    transition: border-color .15s var(--ease), box-shadow .15s var(--ease), background-color .15s var(--ease);
}

.form-control:focus,
.custom-select:focus,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple {
    background-color: #fff;
    border-color: #7ea6f0;
    box-shadow: var(--focus-ring);
}

textarea.form-control {
    border-radius: var(--radius-sm) !important;
}

.input-group-text {
    border-radius: var(--radius-sm);
    background-color: #f4f6fa;
}

/* Modals */
.modal-content {
    border-radius: var(--radius-lg);
    border: none;
    box-shadow: var(--shadow-soft-lg);
}

.modal-header {
    border-top-left-radius: var(--radius-lg);
    border-top-right-radius: var(--radius-lg);
}

.modal-footer {
    border-bottom-left-radius: var(--radius-lg);
    border-bottom-right-radius: var(--radius-lg);
}

.modal.fade .modal-dialog {
    transition: transform .25s var(--ease), opacity .25s var(--ease);
}

/* Dropdowns */
.dropdown-menu {
    border-radius: var(--radius);
    border-color: rgba(0, 0, 0, .06);
    box-shadow: var(--shadow-soft-lg);
    animation: theme-refresh-fade-in .15s var(--ease);
}

.dropdown-item {
    border-radius: var(--radius-sm);
    transition: background-color .15s var(--ease), color .15s var(--ease);
}

@keyframes theme-refresh-fade-in {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Badges & alerts */
.badge {
    border-radius: var(--radius-sm);
}

.alert {
    border-radius: var(--radius);
    border: none;
}

/* Tables */
.table-responsive,
.card > .table {
    border-radius: var(--radius);
}

.table tbody tr {
    transition: background-color .15s var(--ease);
}

/* Sidebar nav */
.sidebar-main .nav-sidebar > .nav-item > .nav-link {
    border-radius: var(--radius-sm);
    transition: background-color .15s var(--ease), color .15s var(--ease);
}

/* Page header */
.page-header {
    transition: box-shadow .2s var(--ease);
}
