/* RONIN Modern UI Enhancements */
:root {
    --border-radius-sm: 6px;
    --border-radius-md: 12px;
    --border-radius-lg: 16px;
    --transition-speed: 0.2s;
}

/* Buttons */
.btn:not(.btn-circle):not(.waves-circle) {
    border-radius: var(--border-radius-sm);
    transition: all var(--transition-speed) ease-in-out;
}

/* Preserve circular elements */
.btn-circle,
.waves-circle {
    border-radius: 50% !important;
}

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

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

/* Main background */
body,
#main-container,
.main-container,
#page-loader,
.page-loader,
.loading-overlay {
    background-color: #151a1e !important;
}

/* Header */
#header,
.header,
.navbar {
    background-color: #1a2125 !important;
}

/* Cards */
.card {
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

.card:has(.progress-bar),
.card:has(.dropdown),
.card:has([data-toggle="tooltip"]),
.card:has(.c-overflow-table),
.card:has(.date-picker),
.card:has(.selectpicker),
.card:has(select),
.card.table-card {
    overflow: visible;
}

.card:not([id^="parallelcluster"]) .progress {
    border-bottom-left-radius: var(--border-radius-md);
    border-bottom-right-radius: var(--border-radius-md);
    overflow: hidden;
}

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

/* Apply rounded bottom corners to card-header when it's the last child */
.card-header:last-child {
    border-bottom-left-radius: var(--border-radius-md);
    border-bottom-right-radius: var(--border-radius-md);
}


/* Modals - no rounded corners */
.modal-content,
.modal-content > .card,
.modal-content > .card > .card-body,
.modal-content > .card > .card-header,
.modal-content > .card > .card-footer,
.modal-header,
.modal-body,
.modal-footer {
    border-radius: 0 !important;
    background-color: #2b343a;
}

/* Only round corners of nested cards inside modal body */
.modal-body .card:not(.modal-content > .card),
.modal-body .alert,
.modal-body .notification,
.modal-body .panel,
.modal-body .dropdown-menu {
    border-radius: var(--border-radius-md);
}

.modal-body .btn:not(.btn-circle):not(.waves-circle) {
    border-radius: var(--border-radius-sm);
}

/* Keep modal footer square */
.modal-footer {
    border-radius: 0;
}

/* Stats and metrics */
.stats-card {
    border-radius: var(--border-radius-md);
}

/* Form elements */
.form-control,
.input-group-addon,
.bootstrap-select > .dropdown-toggle {
    border-radius: var(--border-radius-sm);
}


/* Dropdown menus */
.dropdown-menu:not(.bootstrap-datetimepicker-widget .dropdown-menu) {
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

/* Alerts and notifications */
.alert,
.notification {
    border-radius: var(--border-radius-md);
}

/* Panels */
.panel {
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

/* List groups - no rounded corners */
.list-group,
.list-group-item:first-child,
.list-group-item:last-child {
    border-radius: 0;
}

/* Tables */
.table-responsive {
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

/* Navigation tabs */
.nav-tabs {
    border-radius: var(--border-radius-sm);
}

.nav-tabs > li > a {
    border-top-left-radius: var(--border-radius-sm);
    border-top-right-radius: var(--border-radius-sm);
}

/* Progress bars */
/* Removed custom progress bar styling to maintain original functionality */

/* Tooltips and popovers */
.tooltip-inner,
.popover {
    border-radius: var(--border-radius-sm);
}

/* Header hover effects */
#header a:not(.new-proj):not(.projectItems *),
#header a:not(.new-proj):not(.projectItems *) i,
#header .dropdown-toggle:not(.projectItems *),
#header .dropdown-toggle:not(.projectItems *) i,
.top-nav a:not(.new-proj):not(.projectItems *),
.top-nav a:not(.new-proj):not(.projectItems *) i,
.top-nav .dropdown-toggle:not(.projectItems *),
.top-nav .dropdown-toggle:not(.projectItems *) i {
    transition: color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

#header a:not(.new-proj):not(.projectItems *):hover,
#header a:not(.new-proj):not(.projectItems *):hover i,
#header .dropdown-toggle:not(.projectItems *):hover,
#header .dropdown-toggle:not(.projectItems *):hover i,
.top-nav a:not(.new-proj):not(.projectItems *):hover,
.top-nav a:not(.new-proj):not(.projectItems *):hover i,
.top-nav .dropdown-toggle:not(.projectItems *):hover,
.top-nav .dropdown-toggle:not(.projectItems *):hover i {
    color: white !important;
    transform: translateY(-1px);
    background-color: transparent !important;
}



/* Sweet Alert modals */
.swal2-modal {
    border-radius: var(--border-radius-lg) !important;
}

/* Button gradients */
.btn:not(.btn-link):not(.btn-flat):not(.block-header .btn) {
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(0, 0, 0, 0.1) 100%);
    transition: background-color 0.2s, transform 0.1s;
}

.btn:not(.btn-link):not(.btn-flat):not(.block-header .btn):hover {
    background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(0, 0, 0, 0.15) 100%);
    transform: translateY(-1px);
}

.btn:not(.btn-link):not(.btn-flat):not(.block-header .btn):active {
    background-image: linear-gradient(135deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0.2) 100%);
    transform: translateY(0);
}

/* Block header buttons */
.block-header .btn:not(.btn-primary) {
    background: #282f35 !important;
    border: none;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: all 0.2s ease;
}

.block-header .btn:not(.btn-primary):hover {
    background: #374249 !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15);
    transform: translateY(-1px);
}

.block-header .btn:not(.btn-primary):active {
    background: #2a3238 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
    transform: translateY(0);
}

.block-header .btn:not(.btn-primary).active {
    background: #3f4b52 !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

/* Table styles */
.c-overflow-table {
    overflow: auto;
    border-radius: var(--border-radius-md);
}

#grid-buckets,
#grid-people {
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

#grid-buckets thead tr:first-child th:first-child,
#grid-people thead tr:first-child th:first-child {
    border-top-left-radius: var(--border-radius-md);
}

#grid-buckets thead tr:first-child th:last-child,
#grid-people thead tr:first-child th:last-child {
    border-top-right-radius: var(--border-radius-md);
}

#grid-buckets tbody tr:last-child td:first-child,
#grid-people tbody tr:last-child td:first-child {
    border-bottom-left-radius: var(--border-radius-md);
}

#grid-buckets tbody tr:last-child td:last-child,
#grid-people tbody tr:last-child td:last-child {
    border-bottom-right-radius: var(--border-radius-md);
}

table:not(.table-transparent):not(.bootstrap-datetimepicker-widget table) {
    background: #252d33 !important;
}

table:not(.table-transparent):not(.bootstrap-datetimepicker-widget table) thead tr {
    background: linear-gradient(135deg, #252d33 0%, #1a2024 100%) !important;
}

table:not(.table-transparent):not(.bootstrap-datetimepicker-widget table) tbody tr {
    background: #252d33;
}

table:not(.table-transparent):not(.bootstrap-datetimepicker-widget table) tbody tr:nth-child(even) {
    background: #2a3238;
}

table:not(.table-transparent):not(.bootstrap-datetimepicker-widget table) tbody tr:hover {
    background: #374249;
}

/* More specific selectors to ensure table striping works */
.table-striped:not(.bootstrap-datetimepicker-widget .table-striped) > tbody > tr:nth-child(odd) {
    background-color: #252d33 !important;
}

.table-striped:not(.bootstrap-datetimepicker-widget .table-striped) > tbody > tr:nth-child(even) {
    background-color: #2a3238 !important;
}

.table-striped:not(.bootstrap-datetimepicker-widget .table-striped) > tbody > tr:hover {
    background-color: #374249 !important;
}

/* Color gradients */
.bgm-lightest-grey {
    background: linear-gradient(135deg, rgba(231, 234, 255, 0.15) 0%, rgba(231, 234, 255, 0.11) 100%) !important;
}

.bgm-light-grey {
    background: linear-gradient(135deg, #374249 0%, #2d363c 100%) !important;
}

.bgm-grey {
    background: linear-gradient(135deg, #2b343a 0%, #252d33 100%) !important;
}

.bgm-dark-grey {
    background: linear-gradient(135deg, #252d33 0%, #1a2024 100%) !important;
}

.bgm-red {
    background: linear-gradient(135deg, #f55a4e 0%, #d32f2f 100%) !important;
}

.bgm-red-dark {
    background: linear-gradient(135deg, #d32f2f 0%, #b71c1c 100%) !important;
}

.bgm-blue {
    background: linear-gradient(135deg, #2196f3 0%, #1976d2 100%) !important;
}

.bgm-blue-dark {
    background: linear-gradient(135deg, #1976d2 0%, #0d47a1 100%) !important;
}

.bgm-green {
    background: linear-gradient(135deg, #4caf50 0%, #388e3c 100%) !important;
}

.bgm-green-dark {
    background: linear-gradient(135deg, #388e3c 0%, #1b5e20 100%) !important;
}

.bgm-orange {
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%) !important;
}

.bgm-amber {
    background: linear-gradient(135deg, #ffc107 0%, #ffa000 100%) !important;
}

.bgm-purple {
    background: linear-gradient(135deg, #9c27b0 0%, #7b1fa2 100%) !important;
}

.bgm-cyan {
    background: linear-gradient(135deg, #00bcd4 0%, #0097a7 100%) !important;
}

/* Override for instance table cards and package headers */
.package-header {
    background: none !important;
    background-image: none !important;
    background-color: transparent !important;
}

/* Override for instance table cards */
.card.instance-card:not(.modal-content > .card) {
    background: none !important;
    background-image: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

.card.instance-card:not(.modal-content > .card) .card-header {
    background: none !important;
    background-image: none !important;
    background-color: transparent !important;
}

/* Card gradients */
.card:not(.modal-content > .card) {
    background: linear-gradient(135deg, #2f3940 0%, #232a30 100%) !important;
    box-shadow: 0 8px 24px 0 rgba(0, 0, 0, 0.15);
    border: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* Search results hover effects */
.search-projects img,
.search-projects svg {    
    transition: transform 0.3s cubic-bezier(0.2, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.2, 0, 0.2, 1);
}

.search-projects:hover img,
.search-projects:hover svg {
    transform: translateY(-6px) scale(1.03);
    box-shadow: 0 20px 40px 8px rgba(0, 0, 0, 0.65);
}

/* Remove top border radius when card has image */
.card > img + .card-header,
.card > img + .card-body {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

.card:not(.modal-content > .card) .card-header:not(.ch-alt) {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.02) 100%);
    border-bottom: none;
    padding-bottom: 20px;
}

.card:not(.modal-content > .card) .card-body {
    background: transparent;
    position: relative;
    z-index: 1;
}

.card:not(.modal-content > .card) .card-footer {
    background: linear-gradient(135deg, transparent 0%, rgba(0, 0, 0, 0.1) 100%);
    border-top: none;
    padding-top: 20px;
}

/* Sidebar gradients */

#sidebar,
#chat {
    background: linear-gradient(180deg, #2f3940 0%, #1a2025 100%) !important;
    border: none;
}

/* Custom RONIN elements */
.smart-schedule-card {
    border-radius: var(--border-radius-md);
}

.bootgrid-table {
    border-radius: var(--border-radius-md);
    overflow: hidden;
}

/* Tag elements */
.tag {
    border-radius: var(--border-radius-lg) !important;
}

/* Force date picker to always appear above the input - project timeframe only */
.project-timeframe .bootstrap-datetimepicker-widget.dropdown-menu.bottom {
    top: auto !important;
    bottom: 100% !important;
    margin-bottom: 2px !important;
}

/* Override tagsinput label-info with light grey styling */
.bootstrap-tagsinput .label-info {
    background-color: #6c757d !important; /* Light grey */
    border-color: #5a6268 !important;
}

.bootstrap-tagsinput .label-info:hover {
    background-color: #5a6268 !important;
    border-color: #495057 !important;
}
