/* ==========================================================================
   PREMIUM SLATE THEME (GLOBAL)
   ========================================================================== */
:root[data-bs-theme="dark"] {
    --bs-body-bg: #0f1113;
    --bs-tertiary-bg: #1e2227;
    --bs-border-color: #2d3238;
    --accent-gold: #f1c40f;
}

body {
    background-color: var(--bs-body-bg);
    padding-bottom: 80px; /* Mobile bottom-nav clearance */
}
@media (min-width: 768px) { body { padding-bottom: 0; } }

/* Global Card & Input Overrides */
.card, .modal-content {
    background-color: var(--bs-tertiary-bg) !important;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    border-color: var(--bs-border-color);
}
.input-group-text, .form-control, .form-select {
    background-color: #14171a; 
    border-color: #3d444d;
    color: #fff;
}
.form-control:focus, .form-select:focus {
    background-color: #161b22;
    border-color: #0d6efd;
    color: #fff;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
}

/* Hide Numeric Spinners Globally */
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none; margin: 0;
}
input[type="number"] { -moz-appearance: textfield; }

/* ==========================================================================
   GLOBAL UTILITIES & ANIMATIONS
   ========================================================================== */
.hover-card { transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s; cursor: pointer; }
.hover-card:hover { transform: translateY(-3px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; border-color: #6c757d !important; }
.dashed-border { border: 1px dashed #0dcaf0; transition: all 0.2s; }
.dashed-border:hover { background: rgba(13, 202, 240, 0.1); border-style: solid; }
.letter-spacing-1 { letter-spacing: 1px; }

@keyframes pulse-green {
    0% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0.7); }
    70% { box-shadow: 0 0 0 6px rgba(46, 204, 113, 0); }
    100% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0); }
}
.pulse-animation { animation: pulse-green 1.5s infinite; }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.fade-in { animation: fadeIn 0.3s ease-in; }

/* Custom Badges */
.badge-category {
    color: var(--accent-gold);
    background-color: rgba(241, 196, 15, 0.1);
    border: 1px solid rgba(241, 196, 15, 0.4);
    letter-spacing: 0.5px;
}

/* ==========================================================================
   NAVIGATION (BOTTOM NAV & TABS)
   ========================================================================== */
.bottom-nav {
    background-color: #14171a;
    border-top: 1px solid var(--bs-border-color);
    padding-bottom: env(safe-area-inset-bottom);
    z-index: 1050;
}
.bottom-nav-link {
    color: #6c757d; font-size: 0.75rem; text-decoration: none;
    display: flex; flex-direction: column; align-items: center;
    padding: 0.6rem 0; transition: color 0.2s;
}
.bottom-nav-link i { font-size: 1.25rem; margin-bottom: 4px; }
.bottom-nav-link.active, .bottom-nav-link:hover { color: #0dcaf0; }

.nav-tabs { border-bottom: 1px solid #495057; }
.nav-tabs .nav-link { color: #aaa; border: 1px solid transparent; }
.nav-tabs .nav-link.active { background-color: #212529; color: #fff; border-color: #495057 #495057 #212529; font-weight: bold; }
.nav-tabs .nav-link:hover { color: #fff; }

/* ==========================================================================
   MODULE: LEDGER
   ========================================================================== */
.ledger-table { border-collapse: separate; border-spacing: 0; width: 100%; }
.spacer-row td { height: 16px; background-color: transparent !important; border: none !important; padding: 0 !important; }
.ledger-row td {
    background-color: #1e2227; padding: 16px 12px;
    border-top: 1px solid #3d444d; border-bottom: 1px solid #3d444d;
    transition: background-color 0.15s;
}
.ledger-row:hover td { background-color: #252a30; cursor: pointer; }
.ledger-row td:first-child { border-left: 1px solid #3d444d; border-top-left-radius: 8px; border-bottom-left-radius: 8px; }
.ledger-row td:last-child { border-right: 1px solid #3d444d; border-top-right-radius: 8px; border-bottom-right-radius: 8px; }
.ledger-row.income td:first-child { border-left: 6px solid #198754; }
.ledger-row.expense td:first-child { border-left: 6px solid #dc3545; }
.ledger-row.open td { border-bottom: none; border-bottom-left-radius: 0 !important; border-bottom-right-radius: 0 !important; }

.details-row td { padding: 0; border: none; background-color: transparent; }
.detail-container {
    background-color: #14171a; border: 1px solid #3d444d; border-top: none;
    border-bottom-left-radius: 8px; border-bottom-right-radius: 8px;
    padding: 24px; box-shadow: inset 0 8px 12px -8px rgba(0,0,0,0.6);
    border-left: 6px solid #2d3238; 
}
.income-details .detail-container { border-left-color: #198754; }
.expense-details .detail-container { border-left-color: #dc3545; }

.summary-box { background-color: #21262d; border: 2px solid #30363d; border-radius: 10px; padding: 20px; box-shadow: 0 8px 24px rgba(0,0,0,0.4); }
.detail-header {
    color: #8b949e; font-size: 0.75rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: 0.05rem; border-bottom: 1px solid #30363d; padding-bottom: 12px; margin-bottom: 20px;
}
.filter-bar { background-color: #161b22; border: 1px solid #30363d; border-radius: 8px; padding: 16px; }

/* ==========================================================================
   MODULE: POS & PROJECTS
   ========================================================================== */
.pos-container { height: calc(100vh - 150px); }
.catalog-area { height: 100%; overflow-y: auto; padding-right: 5px; }
.category-card { height: 120px; border-left: 5px solid var(--bs-info); }
.project-card { border: 1px solid #495057; }
.category-card:active, .project-card:active { transform: scale(0.98); }
.project-card:hover { border-color: var(--bs-primary) !important; transform: translateY(-2px); }

.sticky-back-btn-container { position: sticky; top: 0; z-index: 10; padding-bottom: 10px; }
.back-btn-card {
    aspect-ratio: 1 / 1; border: 2px dashed #6c757d; background-color: rgba(0,0,0,0.8);
    display: flex; flex-direction: column; align-items: center; justify-content: center; backdrop-filter: blur(4px);
}
.variant-item { background-color: var(--bs-dark); transition: background-color 0.2s, border-color 0.2s; }
.variant-item:hover { background-color: #343a40 !important; border-color: var(--bs-primary) !important; z-index: 5; }

/* Universal Tooltips / Modals */
.filament-hover-trigger:hover .filament-breakdown,
.price-hover-trigger:hover .filament-breakdown { display: block !important; }
.search-result-item { cursor: pointer; transition: background-color 0.1s; }
.search-result-item:hover { background-color: #34495e !important; }

/* ==========================================================================
   MODULE: SETTINGS
   ========================================================================== */
.settings-container { max-width: 1200px; margin: 0 auto; }
.settings-card {
    background-color: #1e2227; border: 1px solid #3d444d; border-radius: 12px;
    padding: 24px; box-shadow: 0 4px 15px rgba(0,0,0,0.3);
}
.card-header-custom {
    color: #8b949e; font-size: 0.75rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: 0.05rem; border-bottom: 1px solid #30363d; padding-bottom: 12px; margin-bottom: 24px;
    display: flex; align-items: center;
}
.form-label { color: #adb5bd; font-weight: 700; font-size: 0.8rem; margin-bottom: 8px; }

/* Custom Utility Classes */
.whitespace-nowrap { 
    white-space: nowrap; 
}

.hover-elevate { 
    transition: transform 0.2s ease, box-shadow 0.2s ease; 
}

.hover-elevate:hover { 
    transform: translateY(-3px); 
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.5) !important; 
}