/* 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; } }