:root {
    --primary: #12312f;
    --primary-2: #1f4a45;
    --accent: #2563eb;
    --income: #0f9f6e;
    --expense: #dc3f33;
    --warning: #d08700;
    --bg-color: #f4f7f6;
    --card-bg: #ffffff;
    --text-main: #10201d;
    --text-muted: #6b7d79;
    --border-color: #dce7e3;
    --radius: 16px;
    --radius-sm: 12px;
    --nav-height: 68px;
    --sidebar-width: 264px;
}

* { box-sizing: border-box; }
html, body { width: 100%; min-height: 100%; overflow-x: hidden; }
body {
    margin: 0;
    font-family: Manrope, sans-serif;
    color: var(--text-main);
    background: var(--bg-color);
    -webkit-tap-highlight-color: transparent;
    overscroll-behavior: none;
}
a { color: inherit; text-decoration: none; }
button, a, input, select, textarea { touch-action: manipulation; }
.text-income { color: var(--income) !important; }
.text-expense { color: var(--expense) !important; }
.text-primary-app { color: var(--primary) !important; }
.text-muted { color: var(--text-muted) !important; }
.text-white { color: #fff !important; }
.bg-income { background: var(--income) !important; }
.bg-expense { background: var(--expense) !important; }
.min-w-0 { min-width: 0 !important; }
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-flex { display: flex !important; }
.w-100 { width: 100% !important; }
.flex-grow-1 { flex-grow: 1 !important; }
.align-items-center { align-items: center !important; }
.text-end { text-align: right !important; }
.fw-semibold { font-weight: 700 !important; }
.fw-bold { font-weight: 800 !important; }

#app-wrapper {
    display: flex;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
}
#sidebar {
    width: var(--sidebar-width);
    min-width: var(--sidebar-width);
    height: 100vh;
    background: var(--primary);
    color: #fff;
    flex-direction: column;
}
.sidebar-brand {
    min-height: 84px;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 22px;
    color: #fff;
    font-size: 20px;
    font-weight: 800;
    border-bottom: 1px solid rgba(255,255,255,.10);
}
.brand-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: #e7f7f1;
    color: var(--income);
    font-size: 25px;
}
.sidebar-nav {
    flex: 1;
    padding: 22px 14px;
    overflow-y: auto;
}
.sidebar-section-label {
    padding: 0 14px 10px;
    color: rgba(255,255,255,.52);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.sidebar-item {
    position: relative;
    min-height: 50px;
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 8px;
    padding: 12px 14px;
    border-radius: 10px;
    color: rgba(255,255,255,.74);
    font-weight: 800;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
.sidebar-item i {
    width: 25px;
    text-align: center;
    font-size: 21px;
}
.sidebar-item:hover {
    background: rgba(255,255,255,.08);
    color: #fff;
}
.sidebar-item.active {
    background: rgba(255,255,255,.14);
    color: #fff;
    box-shadow: inset 4px 0 0 #e7f7f1;
}
.sidebar-user {
    flex: 0 0 auto;
    display: grid;
    gap: 12px;
    padding: 14px 16px 16px;
    border-top: 1px solid rgba(255,255,255,.10);
    background: var(--primary);
    box-shadow: 0 -10px 24px rgba(5, 24, 22, .16);
}
.sidebar-user-profile {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}
.sidebar-logout-action {
    width: 100%;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    color: #fff;
    font: inherit;
    font-weight: 800;
    transition: background .16s ease, border-color .16s ease;
}
.sidebar-logout-action:hover,
.sidebar-logout-action:focus-visible {
    border-color: rgba(255,255,255,.42);
    background: rgba(255,255,255,.15);
}
.user-avatar {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255,255,255,.16);
}

#main-content {
    position: relative;
    flex: 1;
    min-width: 0;
    height: 100vh;
    height: 100dvh;
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 0%, rgba(15,159,110,.08), transparent 32rem),
        linear-gradient(180deg, #f8fbfa 0%, var(--bg-color) 48%, #edf4f1 100%);
}
#desktop-app-bar {
    position: absolute;
    inset: 0 0 auto 0;
    z-index: 40;
    min-height: 62px;
    align-items: center;
    gap: 14px;
    padding: 10px 28px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--border-color);
    box-shadow: 0 8px 24px rgba(18,49,47,.06);
    backdrop-filter: blur(12px);
}
.desktop-back-button {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    background: #fff;
    color: var(--text-main);
    font: inherit;
    font-weight: 800;
}
.desktop-back-button:hover,
.desktop-back-button:focus-visible {
    border-color: #b8cbc5;
    background: #f2f7f5;
}
.desktop-back-button.is-hidden {
    visibility: hidden;
    pointer-events: none;
}
.desktop-screen-title {
    overflow: hidden;
    color: var(--text-main);
    font-size: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
#mobile-global-logout {
    position: absolute;
    top: 10px;
    right: 16px;
    z-index: 45;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid var(--border-color);
    border-radius: 13px;
    background: #fff;
    color: var(--text-main);
    font-size: 20px;
    box-shadow: 0 8px 18px rgba(18,49,47,.08);
}
.screen {
    position: absolute;
    inset: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px) scale(.992);
    transition: opacity .18s ease-out, transform .18s ease-out, visibility .18s ease-out;
    padding-bottom: var(--nav-height);
}
.screen.active {
    z-index: 10;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.screen-header {
    position: sticky;
    top: 0;
    z-index: 25;
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    background: rgba(255,255,255,.96);
    border-bottom: 1px solid rgba(220,231,227,.86);
    backdrop-filter: blur(12px);
}
.eyebrow {
    margin: 0;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.02em;
}
.header-back,
.icon-button {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid var(--border-color);
    border-radius: 13px;
    background: #fff;
    color: var(--text-main);
    font-size: 20px;
}
.action-header {
    color: #fff;
    border-bottom: 0;
}
.action-header .header-back {
    color: #fff;
    border-color: rgba(255,255,255,.28);
    background: rgba(255,255,255,.14);
}
.income-header { background: var(--income); }
.expense-header { background: var(--expense); }
.screen-body {
    width: 100%;
    padding: 18px;
    padding-bottom: calc(var(--nav-height) + 24px + env(safe-area-inset-bottom));
}
.desktop-header { display: none; }
.desktop-header h2 {
    margin: 0 0 6px;
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -.04em;
}
.desktop-header p {
    margin: 0;
    color: var(--text-muted);
    font-size: 16px;
}
.app-card {
    background: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    box-shadow: 0 14px 38px rgba(18,49,47,.07);
    padding: 18px;
}
.btn-primary-app {
    --bs-btn-bg: var(--accent);
    --bs-btn-border-color: var(--accent);
    --bs-btn-hover-bg: #1d4ed8;
    --bs-btn-hover-border-color: #1d4ed8;
    color: #fff;
    border-radius: var(--radius-sm);
}
.btn-income {
    --bs-btn-bg: var(--income);
    --bs-btn-border-color: var(--income);
    --bs-btn-hover-bg: #0b855c;
    --bs-btn-hover-border-color: #0b855c;
    color: #fff;
}
.btn-expense {
    --bs-btn-bg: var(--expense);
    --bs-btn-border-color: var(--expense);
    --bs-btn-hover-bg: #be3329;
    --bs-btn-hover-border-color: #be3329;
    color: #fff;
}
.form-control,
.form-select,
.input-group-text {
    min-height: 50px;
    border-color: var(--border-color);
    border-radius: var(--radius-sm);
    box-shadow: none !important;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--accent);
}
.form-label {
    margin-bottom: 7px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 800;
}
.table-card {
    padding: 0;
    overflow: hidden;
}
.table {
    --bs-table-bg: transparent;
    margin: 0;
}
.table thead th {
    padding: 14px 16px;
    color: var(--text-main);
    border-bottom: 1px solid var(--border-color);
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
}
.table tbody td {
    padding: 15px 16px;
    border-color: var(--border-color);
    font-size: 14px;
    white-space: nowrap;
}
.badge-income,
.badge-expense {
    border-radius: 999px;
    padding: 6px 9px;
    font-weight: 800;
}
.badge-income { background: rgba(15,159,110,.12); color: var(--income); }
.badge-expense { background: rgba(220,63,51,.12); color: var(--expense); }
.summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.summary-card {
    min-height: 104px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.summary-card span {
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 800;
}
.summary-card strong {
    font-size: clamp(20px, 5vw, 28px);
    line-height: 1.12;
}
.summary-income strong { color: var(--income); }
.summary-expense strong { color: var(--expense); }
.summary-primary strong { color: var(--primary); }
.summary-accent {
    background: #edf7ff;
    border-color: #bddbff;
}
.summary-accent strong { color: var(--accent); }
.quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}
.action-button,
.submit-button {
    min-height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border-radius: var(--radius);
    font-weight: 800;
}
.section-title-row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.section-title-row h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
}
.section-title-row p {
    margin: 2px 0 0;
    color: var(--text-muted);
    font-size: 13px;
}
.tx-card {
    min-height: 76px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    transition: background .16s ease, transform .16s ease;
}
.tx-card:last-child { border-bottom: 0; }
.tx-card:active { background: #eef7f3; transform: scale(.992); }
.tx-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 18px;
}
.tx-income { background: rgba(15,159,110,.12); color: var(--income); }
.tx-expense { background: rgba(220,63,51,.12); color: var(--expense); }
.tx-details { flex: 1; min-width: 0; }
.tx-details h3 {
    margin: 0;
    overflow: hidden;
    color: var(--text-main);
    font-size: 15px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tx-details p {
    margin: 3px 0 0;
    overflow: hidden;
    color: var(--text-muted);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tx-subline {
    display: flex;
    gap: 8px;
    margin-top: 3px;
    overflow: hidden;
    color: var(--text-muted);
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tx-right {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
}
.tx-amount { font-size: 14px; white-space: nowrap; }
.empty-state {
    min-height: 132px;
    display: grid;
    place-items: center;
    gap: 8px;
    padding: 24px;
    color: var(--text-muted);
    font-weight: 800;
    text-align: center;
}
.empty-state i { display: block; font-size: 30px; opacity: .6; }
.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.field-block { min-width: 0; }
.field-wide { grid-column: 1 / -1; }
.report-layout,
.settings-layout {
    display: grid;
    gap: 18px;
}
.report-filter-card {
    display: grid;
    gap: 14px;
}
.report-results {
    display: grid;
    gap: 14px;
}
.report-hero {
    display: grid;
    gap: 4px;
    min-height: 150px;
    align-content: center;
    border: 0;
    background: linear-gradient(135deg, var(--primary), var(--primary-2));
}
.report-hero span,
.report-hero small { color: rgba(255,255,255,.68); font-weight: 800; }
.report-hero strong { color: #fff; font-size: 34px; line-height: 1.1; }
.report-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.report-stat {
    display: grid;
    gap: 8px;
    text-align: center;
    border-top: 4px solid transparent;
}
.report-stat span { color: var(--text-muted); font-size: 13px; font-weight: 800; }
.report-stat strong { font-size: 24px; }
.income-stat { border-top-color: var(--income); }
.expense-stat { border-top-color: var(--expense); }
.export-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.export-actions .btn { min-height: 48px; border-radius: var(--radius-sm); font-weight: 800; }
.accounts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
}
.account-row {
    display: flex;
    align-items: center;
    gap: 14px;
}
.account-row h3 {
    margin: 0;
    overflow: hidden;
    font-size: 16px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.account-row p {
    margin: 3px 0 0;
    color: var(--text-muted);
    font-size: 13px;
}
.account-row strong { white-space: nowrap; font-size: 17px; }
.account-icon,
.settings-avatar {
    display: grid;
    place-items: center;
    border-radius: 50%;
}
.account-icon {
    width: 50px;
    height: 50px;
    flex: 0 0 50px;
    font-size: 22px;
}
.account-cash { background: rgba(15,159,110,.12); color: var(--income); }
.account-bank { background: rgba(37,99,235,.12); color: var(--accent); }
.account-upi { background: rgba(208,135,0,.14); color: var(--warning); }
.settings-layout {
    grid-template-columns: 360px minmax(0, 1fr);
    align-items: start;
}
.settings-profile-card {
    min-height: 174px;
    display: flex;
    align-items: center;
    gap: 18px;
}
.settings-avatar {
    width: 74px;
    height: 74px;
    flex: 0 0 74px;
    background: var(--primary);
    color: #fff;
    font-size: 32px;
}
.settings-profile-card h3 {
    margin: 0 0 4px;
    font-size: 20px;
    font-weight: 800;
}
.settings-profile-card p {
    margin: 0;
    color: var(--text-muted);
}
.settings-panel {
    padding: 0;
    overflow: hidden;
}
.settings-row {
    width: 100%;
    min-height: 70px;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 18px 20px;
    border: 0;
    border-bottom: 1px solid var(--border-color);
    background: #fff;
    color: var(--text-main);
    text-align: left;
    font-weight: 800;
}
.settings-row:last-child { border-bottom: 0; }
.settings-row span { flex: 1; }
.settings-row i:first-child { color: var(--accent); font-size: 20px; }
.settings-row i:last-child { color: var(--text-muted); }
.logout-button {
    grid-column: 1 / -1;
    min-height: 56px;
    border: 1px solid var(--expense);
    border-radius: var(--radius);
    background: #fff;
    color: var(--expense);
    font-weight: 800;
}
#bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 50;
    height: calc(var(--nav-height) + env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-around;
    padding-bottom: env(safe-area-inset-bottom);
    background: rgba(255,255,255,.98);
    border-top: 1px solid var(--border-color);
    box-shadow: 0 -14px 34px rgba(18,49,47,.10);
    transition: transform .2s ease;
}
.bottom-nav-item {
    flex: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 800;
}
.bottom-nav-item i { font-size: 21px; }
.bottom-nav-item.active { color: var(--income); }
.toast { border-radius: var(--radius-sm); }
.modal-handle {
    width: 42px;
    height: 5px;
    margin: 10px auto 0;
    border-radius: 999px;
    background: #d3dedb;
}
.action-sheet-title {
    padding: 12px 18px 4px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.action-sheet-modal .list-group-item {
    min-height: 54px;
    text-align: left;
}
.auth-body {
    min-height: 100vh;
    background: linear-gradient(145deg, #f2f7f5 0%, #dfece8 100%);
}
.auth-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 22px;
}
.auth-card {
    width: min(100%, 420px);
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: var(--radius);
    padding: 34px 26px;
    box-shadow: 0 24px 70px rgba(30,74,69,.16);
}
.auth-logo {
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    margin: 0 auto;
    border-radius: var(--radius-sm);
    background: var(--primary);
    color: #fff;
    font-size: 28px;
}

@media (min-width: 992px) {
    .d-lg-none { display: none !important; }
    .d-lg-block { display: block !important; }
    .d-lg-flex { display: flex !important; }
    .screen { top: 62px; padding-bottom: 0; }
    .screen-header { display: none; }
    .screen-body {
        max-width: 1160px;
        margin: 0 auto;
        padding: 36px 38px;
    }
    .desktop-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        margin-bottom: 28px;
    }
    .summary-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 14px;
        margin-bottom: 22px;
    }
    .summary-card { min-height: 118px; }
    .summary-card strong { font-size: 24px; }
    .quick-actions {
        max-width: 560px;
        margin-bottom: 28px;
    }
    .filter-card { margin-bottom: 18px; }
    .filter-grid {
        display: grid;
        grid-template-columns: minmax(240px, 1.25fr) minmax(145px, .75fr) minmax(145px, .75fr) minmax(150px, .8fr) 140px;
        gap: 10px;
    }
    .filter-grid .btn { min-height: 50px; }
    .form-screen-body { max-width: 900px; }
    .form-card { padding: 22px; }
    .report-layout {
        grid-template-columns: 330px minmax(0, 1fr);
        align-items: start;
    }
}

@media (max-width: 991.98px) {
    .d-lg-block,
    .d-lg-flex { display: none !important; }
    .d-lg-none { display: block !important; }
    body {
        height: 100vh;
        height: 100dvh;
        overflow: hidden;
    }
    #sidebar { display: none !important; }
    #main-content {
        width: 100%;
        height: 100vh;
        height: 100dvh;
    }
    #mobile-global-logout { display: grid !important; }
    .screen-header { padding-right: 72px; }
    .screen-body {
        max-width: none;
        padding: 14px;
        padding-bottom: calc(var(--nav-height) + 48px + env(safe-area-inset-bottom));
    }
    .screen.active { transform: none; }
    .app-card {
        border-radius: 18px;
        padding: 15px;
        box-shadow: 0 14px 32px rgba(18,49,47,.07);
    }
    .summary-grid { gap: 10px; }
    .summary-card {
        min-height: 98px;
        padding: 13px;
    }
    .summary-card strong { font-size: 20px; word-break: break-word; }
    .quick-actions {
        position: sticky;
        top: 74px;
        z-index: 12;
        gap: 10px;
    }
    .action-button {
        min-height: 54px;
        border-radius: 18px;
        box-shadow: 0 12px 24px rgba(18,49,47,.11);
    }
    .section-title-row h2 { font-size: 17px; }
    .section-title-row p { display: none; }
    .filter-card { padding: 12px; }
    .filter-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
    .transaction-filter-grid > :first-child,
    .transaction-filter-grid > :last-child {
        grid-column: 1 / -1;
    }
    .filter-grid .form-control,
    .filter-grid .form-select,
    .filter-grid .btn {
        min-height: 48px;
        border-radius: 16px;
    }
    .mobile-list { border-radius: 18px; overflow: hidden; }
    .tx-card { padding: 14px 12px; gap: 11px; }
    .tx-details h3 { font-size: 14px; }
    .tx-details p { font-size: 11px; }
    .tx-amount { font-size: 13px; }
    body.is-action-screen #bottom-nav { transform: translateY(112%); }
    body.is-action-screen .screen.active { padding-bottom: 0; }
    .form-screen-body { padding-bottom: 18px; }
    .form-card {
        border: 0;
        box-shadow: none;
        background: transparent;
        padding: 0;
    }
    .form-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .form-label {
        padding-left: 2px;
        font-size: 12px;
        letter-spacing: .02em;
        text-transform: uppercase;
    }
    .form-control,
    .form-select,
    .input-group-text {
        min-height: 52px;
        border-radius: 17px;
        background-color: #fff;
        font-size: 16px;
    }
    .input-group .input-group-text {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .input-group .form-control {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
    textarea.form-control { min-height: 98px; }
    [data-transaction-form] .submit-button {
        position: sticky;
        bottom: 12px;
        z-index: 25;
        width: 100%;
        min-height: 56px;
        border-radius: 18px;
        box-shadow: 0 16px 30px rgba(18,49,47,.22);
    }
    .report-layout { gap: 14px; }
    .report-filter-card { gap: 12px; }
    .report-hero { min-height: 132px; text-align: center; }
    .report-hero strong { font-size: 30px; }
    .report-stat strong { font-size: 20px; }
    .export-actions { gap: 10px; }
    .export-actions .btn { min-height: 48px; font-size: 13px; }
    .accounts-grid { grid-template-columns: 1fr; gap: 12px; }
    .account-row { border-radius: 18px; }
    .settings-layout {
        grid-template-columns: 1fr;
        gap: 14px;
    }
    .settings-profile-card {
        min-height: auto;
        flex-direction: column;
        justify-content: center;
        gap: 12px;
        padding: 22px 16px;
        text-align: center;
    }
    .settings-avatar {
        width: 70px;
        height: 70px;
        flex-basis: 70px;
    }
    .settings-panel { border-radius: 18px; }
    .settings-row { min-height: 62px; padding: 16px; }
    .logout-button { border-radius: 18px; }
    #bottom-nav.d-lg-none { display: flex !important; }
    .bottom-nav-item { padding-top: 6px; }
    .action-sheet-modal .modal-dialog {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-width: none;
        margin: 0;
        transform: translateY(100%);
        transition: transform .22s ease-out;
    }
    .action-sheet-modal.show .modal-dialog { transform: translateY(0); }
    .action-sheet-modal .modal-content {
        border-radius: 26px 26px 0 0 !important;
        padding-bottom: env(safe-area-inset-bottom);
        box-shadow: 0 -22px 60px rgba(18,49,47,.24);
    }
    .action-sheet-modal .list-group-item {
        min-height: 58px;
        padding-left: 22px !important;
        padding-right: 22px !important;
        font-size: 15px;
    }
    .toast-container {
        width: min(94vw, 420px);
        top: 10px !important;
    }
}

@media (max-width: 430px) {
    .screen-body { padding-left: 12px; padding-right: 12px; }
    .summary-card { min-height: 94px; padding: 12px; }
    .summary-card strong { font-size: 18px; }
    .action-button span { font-size: 13px; }
}

@media (max-width: 340px) {
    .summary-grid,
    .quick-actions,
    .report-stat-grid,
    .export-actions { grid-template-columns: 1fr; }
}
.transaction-list-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px;
}
.transaction-count {
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 800;
}
.desktop-pagination {
    align-items: center;
    gap: 10px;
}
.desktop-pagination .btn,
.mobile-load-more {
    min-height: 42px;
    border-radius: 12px;
    font-weight: 800;
}
.desktop-pagination [data-pagination-label] {
    min-width: 120px;
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 800;
    text-align: center;
}
.mobile-load-more {
    width: 100%;
    background: #fff;
}
.mobile-load-more[hidden],
.desktop-pagination[hidden] {
    display: none !important;
}
@media (max-width: 991.98px) {
    .transaction-list-footer {
        display: grid;
        grid-template-columns: 1fr;
        margin-top: 12px;
    }
    .transaction-count {
        text-align: center;
    }
    .transaction-filter-grid > :first-child,
    .transaction-filter-grid > :last-child {
        grid-column: 1 / -1;
    }
}
/* App validation and full-action modal support */
.btn.is-loading {
    opacity: .72;
    pointer-events: none;
}
.field-has-error .form-label {
    color: var(--expense);
}
.field-error {
    margin-top: 7px;
    color: var(--expense);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.35;
}
.form-control.is-invalid,
.form-select.is-invalid {
    border-color: var(--expense) !important;
    background-image: none !important;
    box-shadow: 0 0 0 3px rgba(220,63,51,.10) !important;
}
.input-group.is-invalid .input-group-text,
.input-group.is-invalid .form-control {
    border-color: var(--expense) !important;
}
.app-dialog .modal-dialog {
    max-width: min(92vw, 680px);
}
.app-dialog .modal-content {
    overflow: hidden;
}
.modal-form-body {
    padding-top: 18px;
}
.modal-actions-stack {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}
.modal-actions-stack .btn {
    min-width: 150px;
    min-height: 48px;
    border-radius: var(--radius-sm);
}
.detail-amount {
    margin-bottom: 18px;
    font-size: 34px;
    font-weight: 900;
    letter-spacing: -.04em;
    text-align: center;
}
.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.detail-row {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: #f8fbfa;
}
.detail-row span {
    display: block;
    margin-bottom: 4px;
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.detail-row strong {
    display: block;
    overflow-wrap: anywhere;
    font-size: 14px;
}
.detail-wide {
    grid-column: 1 / -1;
}

@media (max-width: 991.98px) {
    .field-error {
        padding: 0 2px;
        font-size: 12px;
    }
    .app-dialog.action-sheet-modal .modal-dialog {
        max-height: 94dvh;
    }
    .app-dialog.action-sheet-modal .modal-content {
        max-height: 94dvh;
        display: flex;
        flex-direction: column;
    }
    .app-dialog .modal-header,
    .app-dialog .modal-footer {
        flex: 0 0 auto;
    }
    .app-dialog .modal-body {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .modal-form-body {
        padding: 16px;
    }
    .modal-form-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .modal-actions-stack {
        display: grid;
        grid-template-columns: 1fr;
        gap: 9px;
        padding: 12px 16px calc(14px + env(safe-area-inset-bottom));
        background: #fff;
        box-shadow: 0 -12px 28px rgba(18,49,47,.08);
    }
    .modal-actions-stack .btn {
        width: 100%;
        min-width: 0;
        min-height: 52px;
        border-radius: 16px;
    }
    .detail-amount {
        font-size: 30px;
    }
    .detail-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .detail-row {
        padding: 13px;
    }
}

/* Admin-controlled master data */
.master-actions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.account-row .master-actions {
    margin-left: auto;
}
.master-list {
    display: grid;
    gap: 10px;
}
.master-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 13px;
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    background: #f8fbfa;
}
.master-row strong,
.master-row span {
    display: block;
}
.master-row strong {
    font-weight: 800;
}
.master-row span {
    color: var(--text-muted);
    font-size: 12px;
}
.master-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-left: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.master-status-success {
    background: rgba(15,159,110,.12);
    color: var(--income);
}
.master-status-secondary {
    background: rgba(107,125,121,.14);
    color: var(--text-muted);
}
.account-inactive {
    opacity: .68;
}
.form-hint {
    margin-top: 7px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 700;
}
@media (max-width: 991.98px) {
    .account-row {
        flex-wrap: wrap;
    }
    .account-row .master-actions {
        width: 100%;
        margin-left: 64px;
    }
    .master-row {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .master-row .master-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
    }
}

/* AIM1 showroom modules */
.showroom-body .filter-card { margin-bottom: 20px; }
.showroom-two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.showroom-list { display: grid; gap: 12px; }
.showroom-card,
.stock-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(18, 49, 47, .12);
    border-radius: 18px;
    background: linear-gradient(135deg, #fff, #f6fbf9);
}
.showroom-card h3,
.stock-card h3 { margin: 0; font-size: 16px; font-weight: 800; color: var(--ink); }
.showroom-card p,
.stock-card p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.showroom-actions { display: flex; gap: 8px; align-items: center; }
.status-pill { display: inline-flex; align-items: center; justify-content: center; padding: 5px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; text-transform: capitalize; background: #e9f2ef; color: #12312f; }
.status-inactive,
.status-cancelled { background: #ffe7e7; color: #b42318; }
.status-sold { background: #e8efff; color: #2154d8; }
.status-available { background: #e8f8ed; color: #117a37; }
.status-reserved { background: #fff3d6; color: #a15c00; }
.showroom-form-panel { overflow: visible; }
.purchase-unit-list { display: grid; gap: 14px; }
.purchase-unit-row {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
    gap: 12px;
    align-items: end;
    padding: 14px;
    border-radius: 18px;
    background: #f8fbfa;
    border: 1px solid rgba(18, 49, 47, .12);
}
.purchase-unit-row .unit-remove { height: 48px; width: 48px; }
.invoice-stock-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    max-height: 360px;
    overflow: auto;
    padding-right: 4px;
}
.invoice-stock-option {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px;
    border: 1px solid rgba(18, 49, 47, .14);
    border-radius: 16px;
    background: #fff;
    cursor: pointer;
}
.invoice-stock-option input { margin-top: 5px; width: 18px; height: 18px; }
.invoice-stock-option strong { display: block; color: var(--ink); }
.invoice-stock-option small { display: block; color: var(--muted); margin-top: 4px; }
.compact-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.empty-state { padding: 22px; text-align: center; color: var(--muted); font-weight: 700; }

@media (max-width: 991.98px) {
    .showroom-two-col,
    .invoice-stock-list,
    .compact-summary { grid-template-columns: 1fr; }
    .purchase-unit-row { grid-template-columns: 1fr; padding: 12px; }
    .purchase-unit-row .unit-remove { width: 100%; }
    .showroom-card,
    .stock-card { align-items: flex-start; flex-direction: column; }
    .showroom-actions { width: 100%; }
    .showroom-actions .btn { flex: 1; min-height: 42px; }
    .bottom-nav-scroll { overflow-x: auto; justify-content: space-around; }
}


.color-picker-row { display: flex; align-items: center; gap: 12px; }
.color-picker-row .form-control-color { width: 64px; height: 48px; padding: 6px; border-radius: 14px; cursor: pointer; }
.color-value { font-weight: 800; color: var(--ink); }
.color-chip { display: inline-flex; align-items: center; gap: 7px; vertical-align: middle; font-weight: 800; color: var(--ink); }
.color-chip-swatch { width: 16px; height: 16px; border-radius: 999px; border: 1px solid rgba(18, 49, 47, .22); box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .7); flex: 0 0 auto; }
.color-chip strong { font-size: 13px; }
.showroom-report-grid { display: grid; gap: 16px; }
.showroom-report-grid .table-responsive { max-height: 360px; overflow: auto; }
.permission-check { min-width: 92px; font-weight: 700; }
@media (max-width: 991.98px) {
    .showroom-report-grid .table-responsive { max-height: none; }
    .showroom-report-grid table { min-width: 640px; }
}
/* AIM1 mobile modal scroll hardening */
@media (max-width: 991.98px) {
    .modal.show {
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
    }
    .modal-open {
        overflow: hidden;
        touch-action: none;
    }
    .action-sheet-modal .modal-dialog,
    .app-dialog.action-sheet-modal .modal-dialog {
        position: fixed;
        left: 8px;
        right: 8px;
        bottom: 8px;
        width: auto;
        max-width: none;
        max-height: calc(100dvh - 32px);
        margin: 0;
        display: flex;
        align-items: flex-end;
    }
    .action-sheet-modal .modal-content,
    .app-dialog.action-sheet-modal .modal-content {
        width: 100%;
        max-height: calc(100dvh - 32px);
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    .action-sheet-modal .modal-content > form,
    .app-dialog.action-sheet-modal .modal-content > form {
        min-height: 0;
        max-height: inherit;
        display: flex;
        flex-direction: column;
    }
    .action-sheet-modal .modal-body,
    .app-dialog .modal-body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }
    .action-sheet-modal .modal-footer,
    .app-dialog .modal-footer,
    .modal-actions-stack {
        flex: 0 0 auto;
        padding-bottom: max(16px, env(safe-area-inset-bottom));
    }
}

@supports (height: 100svh) {
    @media (max-width: 991.98px) {
        .action-sheet-modal .modal-dialog,
        .app-dialog.action-sheet-modal .modal-dialog,
        .action-sheet-modal .modal-content,
        .app-dialog.action-sheet-modal .modal-content {
            max-height: calc(100svh - 32px);
        }
    }
}
/* AIM1 desktop modal scroll hardening */
@media (min-width: 992px) {
    .app-dialog .modal-dialog {
        max-height: calc(100vh - 56px);
    }
    .app-dialog .modal-content {
        max-height: calc(100vh - 56px);
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }
    .app-dialog .modal-content > form {
        min-height: 0;
        max-height: inherit;
        display: flex;
        flex-direction: column;
    }
    .app-dialog .modal-body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    .app-dialog .modal-footer {
        flex: 0 0 auto;
    }
}


/* AIM1 guided purchase entry */
.label-optional { color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.purchase-main-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.optional-panel { margin-top: 14px; border: 1px dashed rgba(18, 49, 47, .22); border-radius: 18px; background: #fbfdfc; }
.optional-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; cursor: pointer; list-style: none; }
.optional-panel summary::-webkit-details-marker { display: none; }
.optional-panel summary strong { display: block; color: var(--ink); }
.optional-panel summary small { display: block; margin-top: 2px; color: var(--muted); font-weight: 700; }
.optional-panel[open] summary i { transform: rotate(180deg); }
.optional-grid { padding: 0 16px 16px; }
.readonly-pill { min-height: 48px; display: flex; align-items: center; padding: 10px 12px; border: 1px solid rgba(18, 49, 47, .12); border-radius: 14px; background: #fff; color: var(--ink); font-weight: 800; }
.purchase-unit-row { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
.purchase-unit-row .unit-remove { align-self: end; }
.invoice-stock-option .color-chip, .stock-card .color-chip { margin-right: 4px; }
@media (max-width: 991.98px) {
    .purchase-main-grid { grid-template-columns: 1fr; }
    .optional-panel summary { align-items: flex-start; }
    .purchase-unit-row { grid-template-columns: 1fr; }
}


/* AIM1 corporate purchase workflow */
.purchase-workspace { padding: 0; overflow: hidden; }
.purchase-workspace form { display: grid; }
.purchase-step { padding: 24px; }
.purchase-header-step { border-bottom: 1px solid var(--border-color); }
.purchase-step-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
.purchase-step-heading h2 { margin: 0; color: var(--ink); font-size: 20px; font-weight: 900; letter-spacing: -.02em; }
.purchase-step-heading p { margin: 3px 0 0; color: var(--muted); font-size: 13px; }
.purchase-step-number { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 10px; background: var(--primary); color: #fff; font-size: 14px; font-weight: 900; }
.required-mark { color: var(--expense); }
.purchase-unit-heading .btn-add-unit { margin-left: auto; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(37, 99, 235, .22); border-radius: 13px; background: #eef4ff; color: var(--accent); font-weight: 900; }
.purchase-unit-card { display: block; padding: 0; overflow: hidden; border: 1px solid rgba(18, 49, 47, .14); border-radius: 20px; background: #fff; box-shadow: 0 10px 28px rgba(18, 49, 47, .06); }
.unit-card-header { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--border-color); background: linear-gradient(135deg, #f5faf8, #fff); }
.unit-sequence { display: block; margin-bottom: 2px; color: var(--income); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.unit-card-header h3 { margin: 0; color: var(--ink); font-size: 16px; font-weight: 900; }
.unit-remove { min-height: 40px; display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border: 0; border-radius: 11px; background: #fff0ef; color: var(--expense); font-size: 12px; font-weight: 900; }
.unit-primary-grid, .unit-business-grid, .unit-more-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; padding: 18px; }
.unit-business-grid { padding-top: 0; }
.money-input { position: relative; }
.money-input > span { position: absolute; left: 14px; top: 50%; z-index: 1; transform: translateY(-50%); color: var(--muted); font-weight: 900; }
.money-input .form-control { padding-left: 32px; }
.unit-more-details { margin: 0 18px 18px; border: 1px solid var(--border-color); border-radius: 14px; background: #fbfdfc; }
.unit-more-details summary { min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 11px 14px; cursor: pointer; list-style: none; color: var(--ink); font-size: 13px; font-weight: 900; }
.unit-more-details summary::-webkit-details-marker { display: none; }
.unit-more-details summary span { display: inline-flex; align-items: center; gap: 8px; }
.unit-more-details summary small { margin-left: auto; color: var(--muted); font-weight: 700; }
.unit-more-details summary > i:last-child { transition: transform .18s ease; }
.unit-more-details[open] summary > i:last-child { transform: rotate(180deg); }
.unit-more-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 8px; }
.purchase-save-bar { display: flex; justify-content: flex-end; padding: 0 24px 24px; }
.purchase-save-bar .submit-button { min-width: 280px; min-height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; }
.purchase-save-bar .submit-button span { display: grid; text-align: left; line-height: 1.15; }
.purchase-save-bar .submit-button strong { font-size: 15px; }
.purchase-save-bar .submit-button small { margin-top: 3px; color: rgba(255,255,255,.76); font-size: 10px; font-weight: 700; }

@media (max-width: 991.98px) {
    #screen-purchase .showroom-body { padding: 12px 12px calc(var(--nav-height) + 14px); }
    #screen-purchase .purchase-workspace { margin: 0; border-radius: 22px; }
    .purchase-step { padding: 18px 16px; }
    .purchase-step-heading { align-items: flex-start; margin-bottom: 16px; }
    .purchase-step-heading h2 { font-size: 18px; }
    .purchase-step-heading p { line-height: 1.45; }
    .purchase-unit-heading { display: grid; grid-template-columns: auto minmax(0, 1fr); }
    .purchase-unit-heading .btn-add-unit { grid-column: 1 / -1; width: 100%; min-height: 50px; justify-content: center; margin: 2px 0 0; border-radius: 15px; }
    .purchase-main-grid { gap: 14px; }
    .optional-panel { border-radius: 16px; }
    .optional-panel summary { min-height: 60px; padding: 13px 14px; }
    .optional-panel summary small { line-height: 1.4; }
    .optional-grid { grid-template-columns: 1fr; padding: 0 14px 14px; }
    .purchase-unit-list { gap: 16px; }
    .purchase-unit-card { border-radius: 18px; }
    .unit-card-header { min-height: 64px; padding: 12px 14px; }
    .unit-card-header h3 { max-width: 230px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .unit-remove { width: auto !important; min-width: 42px; min-height: 42px; justify-content: center; }
    .unit-remove span { display: none; }
    .unit-primary-grid, .unit-business-grid, .unit-more-grid { grid-template-columns: 1fr; gap: 13px; padding: 15px; }
    .unit-business-grid { padding-top: 0; }
    .unit-derived .readonly-pill { background: #f7faf9; }
    .unit-more-details { margin: 0 15px 15px; }
    .unit-more-details summary { min-height: 52px; }
    .unit-more-details summary small { display: none; }
    .unit-more-grid { padding-top: 7px; }
    .purchase-save-bar { position: sticky; bottom: calc(var(--nav-height) + 8px); z-index: 22; margin: 0 10px 10px; padding: 8px; border: 1px solid rgba(18, 49, 47, .10); border-radius: 19px; background: rgba(255,255,255,.94); box-shadow: 0 14px 40px rgba(18,49,47,.20); backdrop-filter: blur(12px); }
    .purchase-save-bar .submit-button { width: 100%; min-width: 0; min-height: 58px; border-radius: 15px; }
    #screen-purchase .table-card { margin-top: 14px !important; }
}

@media (min-width: 640px) and (max-width: 991.98px) {
    .purchase-main-grid, .optional-grid, .unit-primary-grid, .unit-business-grid, .unit-more-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* AIM1 purchase action bar overlap fix */
@media (max-width: 991.98px) {
    .purchase-save-bar {
        position: static;
        bottom: auto;
        z-index: auto;
        margin: 0 10px 12px;
        box-shadow: none;
        backdrop-filter: none;
    }
}


/* AIM1 dynamic product system */
.product-master-grid { grid-template-columns: minmax(280px,.72fr) minmax(420px,1.5fr); }
.mobile-product-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.mobile-product-actions .btn { min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 8px; border-radius: 15px; font-weight: 900; }
.product-config-modal .modal-dialog { max-width: min(94vw, 1120px); }
.modal-subtitle { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.config-section + .config-section { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--border-color); }
.config-section h6 { margin: 0 0 14px; color: var(--ink); font-size: 15px; font-weight: 900; }
.product-field-builder { display: grid; gap: 14px; }
.product-field-row { padding: 16px; border: 1px solid var(--border-color); border-radius: 18px; background: #f8fbfa; }
.field-row-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.field-row-head strong { color: var(--ink); font-size: 13px; }
.product-field-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.field-flags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }
.field-flags label { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--border-color); border-radius: 10px; background: #fff; color: var(--ink); font-size: 11px; font-weight: 800; cursor: pointer; }
.field-flags input { width: 16px; height: 16px; accent-color: var(--accent); }
.compact-empty { padding: 14px; border: 1px dashed var(--border-color); border-radius: 14px; }
.dynamic-entry-fields { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--border-color); }
.dynamic-check { min-height: 48px; display: flex; align-items: center; gap: 10px; padding: 10px 13px; border: 1px solid var(--border-color); border-radius: 14px; background: #fff; font-weight: 800; }
.dynamic-check input { width: 20px; height: 20px; accent-color: var(--accent); }
.purchase-item-actions { display: grid; grid-template-columns: auto minmax(190px,auto) minmax(160px,auto); gap: 10px; }
.purchase-item-actions .btn { min-height: 50px; border-radius: 14px; font-weight: 900; }
.purchase-unit-empty { padding: 34px 18px; border: 1px dashed rgba(18,49,47,.22); border-radius: 20px; background: #fbfdfc; text-align: center; }
.purchase-unit-empty > span { width: 54px; height: 54px; display: grid; place-items: center; margin: 0 auto 12px; border-radius: 18px; background: #eaf7f2; color: var(--income); font-size: 25px; }
.purchase-unit-empty h3 { margin: 0; color: var(--ink); font-size: 17px; font-weight: 900; }
.purchase-unit-empty p { margin: 6px auto 16px; max-width: 430px; color: var(--muted); font-size: 13px; }
.purchase-unit-empty .btn-add-unit { min-height: 46px; display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 14px; background: var(--accent); color: #fff; font-weight: 900; }
.purchase-unit-summary { display: block; padding: 0; overflow: hidden; }
.unit-card-actions { display: flex; align-items: center; gap: 8px; }
.unit-action { min-height: 38px; display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid var(--border-color); border-radius: 11px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 900; }
.unit-action.unit-delete { border-color: rgba(220,63,51,.18); background: #fff5f4; color: var(--expense); }
.unit-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; padding: 17px 18px; }
.unit-summary-grid span, .stock-counts span { display: block; color: var(--muted); font-size: 10px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.unit-summary-grid strong { display: block; margin-top: 4px; overflow-wrap: anywhere; color: var(--ink); font-size: 14px; }
.dynamic-summary { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 18px 16px; }
.dynamic-summary > span { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 5px 8px; border-radius: 9px; background: #eef4f2; color: var(--text-muted); font-size: 11px; overflow-wrap: anywhere; }
.dynamic-summary.compact { padding: 0; }
.dynamic-summary.compact > span { padding: 3px 6px; }
.unit-card-error { margin: 0 18px 16px; padding: 10px 12px; border-radius: 11px; background: #fff0ef; color: var(--expense); font-size: 12px; font-weight: 800; }
.purchase-unit-has-error { border-color: var(--expense) !important; box-shadow: 0 0 0 3px rgba(220,63,51,.08); }
.product-stock-filters { grid-template-columns: 1.4fr repeat(3,minmax(150px,.8fr)) auto; }
.stock-group-card { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--border-color); border-radius: 18px; background: #fff; }
.stock-group-card h3 { margin: 3px 0 8px; color: var(--ink); font-size: 16px; font-weight: 900; }
.stock-category { color: var(--income); font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.stock-group-card .dynamic-summary { padding: 0; }
.stock-counts { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.stock-counts span { padding: 10px; border-radius: 12px; background: #f5f8f7; text-align: center; }
.stock-counts b { display: block; margin-bottom: 3px; color: var(--ink); font-size: 18px; }
.stock-detail-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 14px; border: 1px solid var(--border-color); border-radius: 16px; background: #f8fbfa; }
.stock-detail-row .dynamic-summary { padding: 8px 0; }
.stock-detail-row small { color: var(--muted); }
.invoice-product-option { display: grid; grid-template-columns: minmax(0,1fr) 90px; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--border-color); border-radius: 16px; background: #fff; }
.invoice-product-option > label { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.invoice-product-option > label > input { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 3px; accent-color: var(--accent); }
.invoice-product-option strong, .invoice-product-option em { display: block; }
.invoice-product-option small { display: block; margin-top: 5px; }
.invoice-product-option .dynamic-summary { display: inline-flex; padding: 0; }
.invoice-product-option em { margin-top: 6px; color: var(--income); font-size: 12px; font-style: normal; font-weight: 800; }
.invoice-qty label { display: block; margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }

@media (max-width: 991.98px) {
    .product-master-grid { grid-template-columns: 1fr; }
    .product-master-actions { width: 100%; }
    .product-field-grid { grid-template-columns: 1fr; }
    .product-field-row { padding: 14px; }
    .field-flags { display: grid; grid-template-columns: 1fr 1fr; }
    .field-flags label { min-height: 42px; }
    .product-config-modal .modal-dialog, .purchase-item-modal .modal-dialog { left: 0; right: 0; bottom: 0; max-width: none; max-height: 100dvh; }
    .product-config-modal .modal-content, .purchase-item-modal .modal-content { max-height: 100dvh; border-radius: 24px 24px 0 0 !important; }
    .purchase-item-actions { grid-template-columns: 1fr 1fr; padding: 12px 16px max(14px,env(safe-area-inset-bottom)); }
    .purchase-item-actions .btn:first-child { display: none; }
    .purchase-item-actions .btn { min-width: 0; min-height: 54px; padding: 8px; font-size: 12px; }
    .unit-card-header { align-items: flex-start; }
    .unit-action { min-width: 42px; min-height: 42px; justify-content: center; padding: 8px; }
    .unit-action span { display: none; }
    .unit-summary-grid { grid-template-columns: 1fr 1fr; padding: 15px; }
    .dynamic-summary { padding: 0 15px 14px; }
    .product-stock-filters { grid-template-columns: 1fr; }
    .invoice-product-option { grid-template-columns: minmax(0,1fr) 76px; padding: 13px; }
}
