You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

765 lines
16 KiB

/* Custom CSS for Plutus - God of Wealth Theme - Bootstrap 5 Compatible */
/* Plutus-inspired theme colors extracted from the god image */
:root {
--plutus-gold: #d4af37;
--plutus-rich-gold: #b8860b;
--plutus-amber: #ffbf00;
--plutus-bronze: #cd7f32;
--plutus-dark-bronze: #8b4513;
--plutus-charcoal: #2c2c2c;
--plutus-deep-navy: #1a1a2e;
--plutus-warm-white: #faf8f0;
--plutus-cream: #f5e6d3;
--plutus-success: #228b22;
--plutus-warning: #ff8c00;
--plutus-danger: #dc143c;
}
.modal-backdrop {
z-index: 1050 !important; /* Bootstrap order */
position: fixed !important;
pointer-events: auto; /* backdrop blocks the page */
}
/* Modal container sits above backdrop; keep it transparent */
.modal {
z-index: 1055 !important; /* above backdrop */
position: fixed !important;
background-color: transparent !important; /* backdrop provides the dim */
pointer-events: none; /* container shouldn't intercept */
}
/* Dialog/content are interactive */
.modal .modal-dialog,
.modal .modal-content {
position: relative;
z-index: 1056; /* top of the small stack */
pointer-events: auto;
}
/* Remove accidental stacking contexts that can trap modals */
.container, .container-fluid,
main, .footer, .navbar {
z-index: auto !important;
}
/* Custom navbar styling with Plutus theme */
.navbar.navbar-dark {
background: linear-gradient(135deg, var(--plutus-deep-navy) 0%, var(--plutus-charcoal) 100%) !important;
border-bottom: 2px solid var(--plutus-gold);
box-shadow: 0 2px 10px rgba(212, 175, 55, 0.3);
}
.navbar-brand {
font-weight: 700;
font-size: 1.2rem;
color: var(--plutus-gold) !important;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.navbar-dark .nav-link {
color: var(--plutus-warm-white) !important;
transition: color 0.3s ease, background-color 0.3s ease;
}
.navbar-dark .nav-link:hover, .navbar-dark .nav-link:focus {
color: var(--plutus-amber) !important;
background-color: rgba(212, 175, 55, 0.1);
}
/* Navbar dropdown styling */
.dropdown-menu {
background-color: var(--plutus-deep-navy) !important;
border: 1px solid var(--plutus-gold) !important;
box-shadow: 0 8px 16px rgba(212, 175, 55, 0.2) !important;
}
.dropdown-item {
color: var(--plutus-warm-white) !important;
}
.dropdown-item:hover, .dropdown-item:focus {
color: var(--plutus-amber) !important;
background-color: rgba(212, 175, 55, 0.1) !important;
}
.dropdown-divider {
border-top-color: var(--plutus-gold) !important;
opacity: 0.5;
}
/* Hero/Jumbotron section */
.hero {
background: linear-gradient(135deg, var(--plutus-gold) 0%, var(--plutus-amber) 100%);
color: var(--plutus-charcoal);
padding: 3rem 2rem;
border-radius: 8px;
margin-bottom: 2rem;
}
/* Card styling (replaces .box from Bulma) */
.card {
background-color: rgba(250, 248, 240, 0.95);
border: 1px solid rgba(212, 175, 55, 0.3);
box-shadow: 0 0.5em 1em -0.125em rgba(212, 175, 55, 0.2);
backdrop-filter: blur(5px);
}
.card:hover {
box-shadow: 0 0.5em 1.5em -0.125em rgba(212, 175, 55, 0.3);
border-color: rgba(212, 175, 55, 0.5);
transition: all 0.3s ease;
}
.card-body {
background-color: rgba(250, 248, 240, 0.95);
}
/* Legacy .box support for templates not yet migrated */
.box {
background-color: rgba(250, 248, 240, 0.95);
border: 1px solid rgba(212, 175, 55, 0.3);
box-shadow: 0 0.5em 1em -0.125em rgba(212, 175, 55, 0.2);
backdrop-filter: blur(5px);
padding: 1.25rem;
border-radius: 6px;
}
.box:hover {
box-shadow: 0 0.5em 1.5em -0.125em rgba(212, 175, 55, 0.3);
border-color: rgba(212, 175, 55, 0.5);
transition: all 0.3s ease;
}
/* Button styling with Plutus theme */
.btn-primary {
background-color: var(--plutus-gold);
border-color: var(--plutus-rich-gold);
color: var(--plutus-charcoal);
font-weight: 600;
}
.btn-primary:hover, .btn-primary:focus {
background-color: var(--plutus-amber);
border-color: var(--plutus-gold);
color: var(--plutus-charcoal);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(212, 175, 55, 0.4);
}
.btn:hover {
transform: translateY(-1px);
transition: all 0.2s ease;
}
/* Legacy button support */
.button.is-primary {
background-color: var(--plutus-gold);
border-color: var(--plutus-rich-gold);
color: var(--plutus-charcoal);
font-weight: 600;
padding: 0.5rem 1rem;
border-radius: 4px;
border-width: 1px;
border-style: solid;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.button.is-primary:hover {
background-color: var(--plutus-amber);
border-color: var(--plutus-gold);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(212, 175, 55, 0.4);
}
.button.is-warning {
background-color: var(--plutus-warning);
border-color: var(--plutus-dark-bronze);
color: white;
}
.button.is-light {
background-color: #f5f5f5;
border-color: #dbdbdb;
color: #363636;
}
/* Table enhancements with Plutus theme */
.table-responsive {
border-radius: 8px;
box-shadow: 0 4px 15px rgba(212, 175, 55, 0.2);
border: 1px solid rgba(212, 175, 55, 0.3);
}
/* Legacy support */
.table-container {
overflow-x: auto;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(212, 175, 55, 0.2);
border: 1px solid rgba(212, 175, 55, 0.3);
}
.table {
background-color: rgba(250, 248, 240, 0.95);
backdrop-filter: blur(5px);
}
.table th {
background-color: var(--plutus-gold);
color: var(--plutus-charcoal);
font-weight: 700;
border-color: var(--plutus-rich-gold);
}
.table td {
border-color: rgba(212, 175, 55, 0.2);
}
.table-hover tbody tr:hover {
background-color: rgba(212, 175, 55, 0.1);
}
/* Footer styling */
.footer {
background: linear-gradient(135deg, var(--plutus-deep-navy) 0%, var(--plutus-charcoal) 100%);
color: var(--plutus-warm-white);
border-top: 2px solid var(--plutus-gold);
}
/* Alert styling (replaces .notification from Bulma) */
.alert {
border-radius: 8px;
backdrop-filter: blur(5px);
border: 1px solid rgba(212, 175, 55, 0.3);
}
.alert-success {
background-color: rgba(34, 139, 34, 0.9);
color: var(--plutus-warm-white);
border-color: var(--plutus-success);
}
.alert-danger {
background-color: rgba(220, 20, 60, 0.9);
color: var(--plutus-warm-white);
border-color: var(--plutus-danger);
}
.alert-info {
background-color: rgba(212, 175, 55, 0.9);
color: var(--plutus-charcoal);
border-color: var(--plutus-gold);
}
/* Legacy notification support */
.notification {
border-radius: 8px;
backdrop-filter: blur(5px);
border: 1px solid rgba(212, 175, 55, 0.3);
padding: 1.25rem 2.5rem 1.25rem 1.5rem;
position: relative;
}
.notification.is-success {
background-color: rgba(34, 139, 34, 0.9);
color: var(--plutus-warm-white);
}
.notification.is-danger {
background-color: rgba(220, 20, 60, 0.9);
color: var(--plutus-warm-white);
}
.notification.is-info {
background-color: rgba(212, 175, 55, 0.9);
color: var(--plutus-charcoal);
}
.notification.is-light {
background-color: rgba(245, 245, 245, 0.95);
color: #363636;
}
/* Form styling with Plutus theme */
.form-control:focus, .form-select:focus {
border-color: var(--plutus-gold);
box-shadow: 0 0 0 0.25rem rgba(212, 175, 55, 0.25);
}
.form-control, .form-select {
background-color: rgba(250, 248, 240, 0.95);
border-color: rgba(212, 175, 55, 0.4);
}
/* Legacy field/control/input support */
.field .control .input:focus,
.field .control .textarea:focus,
.field .control .select select:focus {
border-color: var(--plutus-gold);
box-shadow: 0 0 0 0.125em rgba(212, 175, 55, 0.25);
outline: none;
}
.field .control .input,
.field .control .textarea,
.field .control .select select {
background-color: rgba(250, 248, 240, 0.95);
border-color: rgba(212, 175, 55, 0.4);
border-width: 1px;
border-style: solid;
border-radius: 4px;
padding: 0.5rem 0.75rem;
width: 100%;
}
.field .control .select {
display: inline-block;
max-width: 100%;
position: relative;
vertical-align: top;
width: 100%;
}
.field .control .select.is-fullwidth {
width: 100%;
}
.field .control .select select {
cursor: pointer;
display: block;
font-size: 1rem;
max-width: 100%;
outline: none;
}
.label, .form-label {
color: var(--plutus-charcoal);
font-weight: 600;
}
/* Badge styling (replaces .tag from Bulma) */
.badge.bg-success {
background-color: var(--plutus-success) !important;
}
.badge.bg-warning {
background-color: var(--plutus-warning) !important;
color: var(--plutus-charcoal) !important;
}
.badge.bg-danger {
background-color: var(--plutus-danger) !important;
}
.badge.bg-info {
background-color: var(--plutus-gold) !important;
color: var(--plutus-charcoal) !important;
}
/* Legacy tag support */
.tag.is-success {
background-color: var(--plutus-success);
color: var(--plutus-warm-white);
padding: 0.25rem 0.75rem;
border-radius: 4px;
display: inline-block;
font-size: 0.875rem;
}
.tag.is-warning {
background-color: var(--plutus-warning);
color: var(--plutus-charcoal);
padding: 0.25rem 0.75rem;
border-radius: 4px;
display: inline-block;
font-size: 0.875rem;
}
.tag.is-danger {
background-color: var(--plutus-danger);
color: var(--plutus-warm-white);
padding: 0.25rem 0.75rem;
border-radius: 4px;
display: inline-block;
font-size: 0.875rem;
}
.tag.is-info {
background-color: var(--plutus-gold);
color: var(--plutus-charcoal);
padding: 0.25rem 0.75rem;
border-radius: 4px;
display: inline-block;
font-size: 0.875rem;
}
.tag.is-light {
background-color: #f5f5f5;
color: #363636;
padding: 0.25rem 0.75rem;
border-radius: 4px;
display: inline-block;
font-size: 0.875rem;
}
.tag.is-small {
font-size: 0.75rem;
padding: 0.15rem 0.5rem;
}
/* Body and background styling */
body {
background: linear-gradient(to bottom, rgba(26, 26, 46, 0.05) 0%, rgba(212, 175, 55, 0.05) 100%);
background-attachment: fixed;
min-height: 100vh;
color: var(--plutus-charcoal);
}
/* Container customization */
.container {
max-width: 1488px;
}
/* Breadcrumb styling */
.breadcrumb {
background-color: transparent;
padding: 0.75rem 1rem;
border-radius: 6px;
margin-bottom: 1rem;
}
.breadcrumb-item.active {
color: var(--plutus-gold);
}
.breadcrumb-item + .breadcrumb-item::before {
color: var(--plutus-gold);
}
/* Level component (horizontal layout) - legacy support */
.level {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1.5rem;
}
.level-left, .level-right {
display: flex;
align-items: center;
gap: 0.75rem;
}
/* Modal customization */
.modal-content {
background-color: rgba(250, 248, 240, 0.98);
border: 1px solid rgba(212, 175, 55, 0.3);
box-shadow: 0 10px 40px rgba(212, 175, 55, 0.3);
}
.modal-header {
border-bottom-color: rgba(212, 175, 55, 0.3);
}
.modal-footer {
border-top-color: rgba(212, 175, 55, 0.3);
}
.modal-header.bg-warning {
background-color: var(--plutus-warning) !important;
color: var(--plutus-charcoal);
}
.modal-header.bg-success {
background-color: var(--plutus-success) !important;
color: white;
}
.modal-header.bg-danger {
background-color: var(--plutus-danger) !important;
color: white;
}
/* Legacy modal support (Bulma-style) */
/* Backdrop blocks the page */
/* Backdrop sits under modal container */
.modal-backdrop {
z-index: 1050 !important; /* Bootstrap default order */
position: fixed !important;
}
/* Modal container sits above backdrop; keep it transparent */
.modal {
z-index: 1055 !important; /* above backdrop */
position: fixed !important;
background-color: transparent !important; /* backdrop provides the dim */
}
/* Dialog/content are interactive */
.modal .modal-dialog,
.modal .modal-content {
position: relative;
z-index: 1056;
}
/* Optional: ensure dropdowns/nav still layer correctly */
.navbar { z-index: 1030 !important; }
.navbar .dropdown-menu { z-index: 1031 !important; }
/* Remove accidental stacking contexts that could trap modals */
.container, .container-fluid,
main, .footer, .navbar {
z-index: auto !important; /* prevents parent stacks (e.g., z-index:1) */
}
.modal-card-title {
color: currentColor;
flex-grow: 1;
flex-shrink: 0;
font-size: 1.5rem;
line-height: 1;
margin: 0;
}
.modal-card-body {
flex-grow: 1;
flex-shrink: 1;
overflow: auto;
padding: 20px;
background-color: rgba(250, 248, 240, 0.98);
}
.modal-card-foot {
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
border-top: 1px solid rgba(212, 175, 55, 0.3);
justify-content: flex-end;
}
.delete {
background-color: rgba(10, 10, 10, 0.2);
border: none;
border-radius: 290486px;
cursor: pointer;
pointer-events: auto;
display: inline-block;
flex-grow: 0;
flex-shrink: 0;
font-size: 0;
height: 20px;
max-height: 20px;
max-width: 20px;
min-height: 20px;
min-width: 20px;
outline: none;
position: relative;
vertical-align: top;
width: 20px;
}
.delete::before, .delete::after {
background-color: white;
content: "";
display: block;
left: 50%;
position: absolute;
top: 50%;
transform: translateX(-50%) translateY(-50%) rotate(45deg);
transform-origin: center center;
}
.delete::before {
height: 2px;
width: 50%;
}
.delete::after {
height: 50%;
width: 2px;
}
.delete:hover {
background-color: rgba(10, 10, 10, 0.3);
}
/* Custom status badges */
.status-badge {
padding: 0.25rem 0.75rem;
border-radius: 4px;
font-weight: 600;
font-size: 0.875rem;
display: inline-block;
}
.status-badge.success {
background-color: var(--plutus-success);
color: white;
}
.status-badge.failed {
background-color: var(--plutus-danger);
color: white;
}
.status-badge.pending {
background-color: var(--plutus-warning);
color: var(--plutus-charcoal);
}
/* Custom spinner */
.spinner {
display: inline-block;
width: 40px;
height: 40px;
border: 4px solid rgba(212, 175, 55, 0.3);
border-radius: 50%;
border-top-color: var(--plutus-gold);
animation: spin 1s ease-in-out infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
/* Utility classes to match Bulma */
.is-hidden {
display: none !important;
}
.has-text-centered, .text-center {
text-align: center !important;
}
.has-text-weight-bold {
font-weight: 700 !important;
}
.has-text-weight-semibold {
font-weight: 600 !important;
}
.has-text-grey {
color: #7a7a7a !important;
}
.has-background-light {
background-color: #f5f5f5 !important;
}
.is-size-7 {
font-size: 0.875rem !important;
}
.is-fullwidth {
width: 100% !important;
}
/* Icon spacing */
.icon {
display: inline-flex;
align-items: center;
justify-content: center;
height: 1.5rem;
width: 1.5rem;
}
.icon.is-small {
height: 1rem;
width: 1rem;
}
.icon.is-left {
margin-right: 0.5rem;
}
/* Field grouping */
.field.is-grouped {
display: flex;
gap: 0.5rem;
}
.field .control {
position: relative;
}
.field.has-addons {
display: flex;
}
.field.has-addons .control {
flex-grow: 1;
}
/* Typography */
.title {
font-weight: 600;
line-height: 1.125;
margin-bottom: 1rem;
color: var(--plutus-charcoal);
}
.title.is-4 {
font-size: 1.5rem;
}
.title.is-5 {
font-size: 1.25rem;
}
.subtitle {
font-weight: 400;
line-height: 1.25;
color: #4a4a4a;
}
.subtitle.is-5 {
font-size: 1.25rem;
}
/* Content formatting */
.content {
line-height: 1.7;
}
.help {
display: block;
font-size: 0.875rem;
margin-top: 0.25rem;
color: #7a7a7a;
}
/* --- Bootstrap 5 modal fixes --- */
/* Keep Bootstrap’s stacking order (backdrop under modal): */
/* Responsive utilities */
@media (max-width: 768px) {
.container {
padding-left: 1rem;
padding-right: 1rem;
}
.level {
flex-direction: column;
align-items: flex-start;
gap: 1rem;
}
.level-left, .level-right {
width: 100%;
flex-direction: column;
align-items: flex-start;
}
}