@import "@tabler/core/dist/css/tabler.min.css"; :root { --tblr-border-radius: 1rem; --tblr-border-radius-lg: 1rem; --tblr-border-radius-sm: 0.75rem; --tblr-card-border-radius: 1rem; --tblr-body-bg: #f4f6f8; --ec-shell-bg: #f4f6f8; --ec-card-shadow: 0 2px 8px rgba(15, 23, 42, 0.05); --ec-card-border: rgba(15, 23, 42, 0.08); --ec-navbar-bg: rgba(255, 255, 255, 0.95); --ec-subnav-bg: rgba(255, 255, 255, 0.9); --ec-light-radius-sm: 0.75rem; --ec-light-radius-md: 1rem; } html, body { min-height: 100%; } body { background: var(--ec-shell-bg); } [data-bs-theme="light"] { --tblr-border-radius: var(--ec-light-radius-md); --tblr-border-radius-lg: var(--ec-light-radius-md); --tblr-border-radius-sm: var(--ec-light-radius-sm); --tblr-card-border-radius: var(--ec-light-radius-md); } [data-bs-theme="dark"] { --tblr-body-bg: #06080d; --ec-shell-bg: #06080d; --ec-card-shadow: 0 2px 10px rgba(0, 0, 0, 0.22); --ec-card-border: rgba(255, 255, 255, 0.06); --ec-navbar-bg: rgba(6, 8, 13, 0.96); --ec-subnav-bg: rgba(10, 13, 20, 0.96); } [data-bs-theme="light"] .card, [data-bs-theme="light"] .pv-card, [data-bs-theme="light"] .login-card, [data-bs-theme="light"] .modal-content, [data-bs-theme="light"] .alert, [data-bs-theme="light"] .toast, [data-bs-theme="light"] .dropdown-menu, [data-bs-theme="light"] .table-responsive, [data-bs-theme="light"] .form-control, [data-bs-theme="light"] .form-select, [data-bs-theme="light"] .form-check-input, [data-bs-theme="light"] .input-group-text, [data-bs-theme="light"] .btn, [data-bs-theme="light"] .nav-segmented, [data-bs-theme="light"] .nav-pills .nav-link, [data-bs-theme="light"] .nav-tabs .nav-link, [data-bs-theme="light"] .page-link { border-radius: var(--ec-light-radius-md); } [data-bs-theme="light"] .rounded-3 { border-radius: var(--ec-light-radius-md) !important; } [data-bs-theme="light"] .rounded-2 { border-radius: var(--ec-light-radius-sm) !important; } .page { min-height: 100vh; } .page-body { padding-top: 1rem; padding-bottom: 1.5rem; } .pv-navbar, .pv-subnav { backdrop-filter: blur(10px); } .pv-navbar { background: var(--ec-navbar-bg); border-bottom: 1px solid var(--ec-card-border); } .pv-subnav { background: var(--ec-subnav-bg); border-bottom: 1px solid var(--ec-card-border); } .pv-subnav-shell { display: flex; align-items: center; gap: 1rem; min-height: 4rem; padding-block: 0.65rem; } .pv-subnav-main { width: 100%; } .pv-subnav-tabs { display: flex; gap: 0.5rem; flex-wrap: wrap; } .pv-subnav .nav-link { border-radius: 999px; padding: 0.55rem 0.9rem; font-weight: 600; color: var(--tblr-secondary); } .pv-subnav .nav-link.active { background: #111827; color: #fff; } [data-bs-theme="dark"] .pv-subnav .nav-link.active { background: #f8fafc; color: #0f172a; } .pv-navbar-user, .min-w-0 { min-width: 0; } .ec-footer { background: var(--ec-navbar-bg); border-color: var(--ec-card-border) !important; } .ec-footer-shell { min-height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 0; } .card, .pv-card, .login-card, .modal-content, .alert, .toast { border: 1px solid var(--ec-card-border); box-shadow: var(--ec-card-shadow); } .card-header, .card-body, .login-card .card-body { padding: 1rem; } .card .card-title, .login-card .card-title { font-weight: 700; } .ec-page-header .page-title, .page-title, .display-6, .h1, .h2, .h3 { letter-spacing: -0.03em; } .ec-page-header-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: flex-end; } .ec-chart-wrap { width: 100%; height: 340px; max-width: 100%; margin-inline: auto; } .ec-chart-wrap-sm { height: 280px; } .ec-accent-card { position: relative; } .ec-accent-card::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; } .ec-accent-card-primary::before { background: linear-gradient(90deg, var(--tblr-primary), rgba(var(--tblr-primary-rgb), 0.35)); } .ec-accent-card-success::before { background: linear-gradient(90deg, var(--tblr-success), rgba(var(--tblr-success-rgb), 0.35)); } .ec-accent-card-info::before { background: linear-gradient(90deg, var(--tblr-info), rgba(var(--tblr-info-rgb), 0.35)); } .ec-stat-tile, .ec-mini-kpi { border: 1px solid var(--ec-card-border); border-radius: 1rem; padding: 1rem; background: rgba(var(--tblr-bg-surface-rgb), 0.7); } .ec-stat-tile-primary { background: rgba(var(--tblr-primary-rgb), 0.08); } .ec-stat-tile-success { background: rgba(var(--tblr-success-rgb), 0.08); } .ec-stat-label { color: var(--tblr-secondary); font-size: 0.875rem; margin-bottom: 0.35rem; } .ec-stat-value { font-size: clamp(1.4rem, 2vw, 2rem); font-weight: 700; letter-spacing: -0.04em; } .ec-mini-kpi { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; } .ec-mini-kpi span { color: var(--tblr-secondary); font-size: 0.875rem; } .ec-mini-kpi strong { font-size: 1.15rem; } .login-page-shell { min-height: 100vh; background: radial-gradient(circle at top, rgba(255, 255, 255, 0.03), transparent 30%), var(--ec-shell-bg); } .login-layout { min-height: calc(100vh - 3rem); } .login-card-enhanced { position: relative; overflow: hidden; border-width: 1px; } .login-card-enhanced::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: linear-gradient(90deg, rgba(32, 107, 196, 0.95), rgba(47, 179, 68, 0.9)); } .login-card-enhanced .card-body { position: relative; } .login-input-stack { display: grid; gap: 1rem; } .login-submit-button { display: inline-flex; align-items: center; justify-content: center; gap: 0.55rem; } .login-footer-note { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(148, 163, 184, 0.18); color: var(--tblr-secondary); font-size: 0.875rem; } .table-responsive { overflow-x: auto; } .card-table tbody tr:last-child td { border-bottom-width: 0; } .toast-host { pointer-events: none; z-index: 1080; } .toast-host .toast, .toast-host .btn-close { pointer-events: auto; } .toast-host .toast { opacity: 1; background-clip: padding-box; } .ec-toast { width: min(420px, calc(100vw - 1.5rem)); border-top: 3px solid transparent; backdrop-filter: blur(10px); } .ec-toast .toast-header, .ec-toast .toast-body { background: transparent; } .ec-toast-success { border-top-color: var(--tblr-success); } .ec-toast-danger { border-top-color: var(--tblr-danger); } .ec-toast-warning { border-top-color: var(--tblr-warning); } .ec-toast-info { border-top-color: var(--tblr-info); } .ec-toast-dot { width: 0.625rem; height: 0.625rem; border-radius: 999px; display: inline-block; } .ec-segmented-control { gap: 0.35rem; } .ec-segmented-control .nav-link { min-width: 3rem; justify-content: center; font-weight: 600; } .ec-segmented-control .nav-link.active { box-shadow: inset 0 0 0 1px rgba(var(--tblr-primary-rgb), 0.1); } .login-toolbar-controls { min-width: min(100%, 17rem); } .badge { color: #fff !important; } .badge * { color: inherit !important; } .ec-picker-badge { color: #fff !important; background: rgba(var(--tblr-secondary-rgb), 0.16); border: 1px solid rgba(var(--tblr-secondary-rgb), 0.18); } .ec-picker-dot { min-width: 0.75rem; min-height: 0.75rem; border: 1px solid rgba(255, 255, 255, 0.28); } .ec-proof-preview { width: 100%; max-height: 75vh; object-fit: contain; } .ec-card-header-muted { color: var(--tblr-secondary); font-size: 0.875rem; } .ec-color-swatch { width: 1.25rem; height: 1.25rem; border-radius: 999px; display: inline-block; border: 1px solid rgba(255, 255, 255, 0.2); } .dropdown-menu { border: 1px solid var(--ec-card-border); } .ec-category-picker { z-index: 5; } .ec-category-picker .dropdown-menu, .ec-category-picker-menu { z-index: 1085; } .ec-nav-caption { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tblr-secondary); margin-bottom: 0.5rem; } .ec-modal-close { min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; flex: 0 0 auto; cursor: pointer; position: relative; z-index: 2; } .ec-proof-modal-body { min-height: min(70vh, 720px); display: flex; align-items: center; justify-content: center; padding: 0.75rem; } .ec-proof-frame { display: block; width: 100%; min-height: 78vh; border: 0; border-radius: 0.75rem; background: rgba(15, 23, 42, 0.04); } .ec-scroll-list { max-height: 36rem; overflow: auto; } .ec-toolbar-toggle { border: 1px solid var(--ec-card-border); border-radius: 999px; padding: 0.125rem; background: rgba(var(--tblr-bg-surface-rgb), 0.75); box-shadow: var(--ec-card-shadow); } .ec-toolbar-toggle .btn { border-radius: 999px; } [data-bs-theme="dark"] .btn-primary, [data-bs-theme="dark"] .btn-success, [data-bs-theme="dark"] .btn-danger, [data-bs-theme="dark"] .btn-warning, [data-bs-theme="dark"] .btn-info, [data-bs-theme="dark"] .btn-outline-primary, [data-bs-theme="dark"] .btn-outline-secondary, [data-bs-theme="dark"] .btn-outline-danger, [data-bs-theme="dark"] .btn-outline-info, [data-bs-theme="dark"] .btn-outline-warning { filter: none; } [data-bs-theme="dark"] .badge { color: #fff !important; } [data-bs-theme="dark"] .ec-picker-badge { color: #fff !important; background: rgba(248, 250, 252, 0.12); border-color: rgba(248, 250, 252, 0.18); } [data-bs-theme="dark"] .badge.bg-dark-lt { color: #f8fafc; background: rgba(248, 250, 252, 0.14) !important; } [data-bs-theme="dark"] .badge.bg-secondary { color: #f8fafc; } [data-bs-theme="dark"] .bg-body-tertiary { background: rgba(255, 255, 255, 0.03) !important; } @media (max-width: 992px) { .pv-subnav-shell, .pv-subnav-main { align-items: flex-start; flex-direction: column; } .pv-subnav-tabs { overflow-x: auto; flex-wrap: nowrap; width: 100%; padding-bottom: 0.25rem; } .ec-chart-wrap { height: 300px; } .ec-chart-wrap-sm { height: 250px; } } @media (max-width: 768px) { .page-body { padding-top: 0.75rem; } .pv-navbar-user { display: none; } .pv-subnav { display: none; } .pv-subnav.is-open { display: block; } .pv-subnav .nav-link { width: 100%; border-radius: 0.85rem; } .pv-subnav-tabs { flex-direction: column; width: 100%; } .ec-page-header-actions { justify-content: stretch; } .ec-page-header-actions > .btn { flex: 1 1 100%; } .toast-host { top: 0.75rem !important; left: 0; right: 0; width: 100%; } .ec-footer-shell { flex-direction: column; align-items: flex-start; } }