body {
    font-family: "Source Sans 3", sans-serif;
}

.help-center {
    --help-ink: #241a35;
    --help-accent: #67369a;
    --help-accent-soft: #eee4f8;
    --help-warm: #f3b33d;
    color: var(--help-ink);
}

.help-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 12rem;
    min-height: 23rem;
    margin: -1rem -0.75rem 2rem;
    padding: clamp(2rem, 5vw, 4.5rem);
    overflow: hidden;
    border-radius: .35rem;
    color: #fff;
    background:
        linear-gradient(115deg, rgba(16, 29, 52, .96), rgba(19, 111, 99, .9)),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, .045) 0, rgba(255, 255, 255, .045) 1px, transparent 1px, transparent 18px);
}

.help-hero::after {
    position: absolute;
    inset: auto 0 0;
    height: .35rem;
    content: "";
    background: linear-gradient(90deg, var(--help-warm) 0 30%, #a982cb 30% 68%, #e56b6f 68% 100%);
}

.help-hero-content {
    position: relative;
    z-index: 1;
    max-width: 54rem;
}

.help-kicker {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1rem;
    color: #bde9df;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.help-hero h1 {
    margin: 0 0 .85rem;
    color: #fff;
    font-size: 3.75rem;
    font-weight: 750;
    line-height: 1.02;
}

/* Finance application shell */
:root {
    --finance-ink: #241a35;
    --finance-canvas: #f6f3fa;
    --finance-surface: #ffffff;
    --finance-sidebar: #211238;
    --finance-sidebar-muted: #b7a6c8;
    --finance-teal: #67369a;
    --finance-teal-dark: #3d1d62;
    --finance-teal-soft: #eee4f8;
    --finance-gold: #c28a2b;
    --finance-gold-soft: #fbf2df;
    --finance-coral: #ce6268;
    --finance-coral-soft: #f9e8e9;
    --finance-blue: #7651a6;
    --finance-blue-soft: #eee8f7;
    --finance-border: #e1d8eb;
    --bs-primary: #67369a;
    --bs-primary-rgb: 103, 54, 154;
    --bs-link-color: #593083;
    --bs-link-hover-color: #3d1d62;
}

body.finance-app-shell {
    color: var(--finance-ink);
    background: var(--finance-canvas);
}

.finance-app-content {
    padding: 1.25rem 0 2rem;
}

.finance-app-content > .container-fluid {
    width: min(100%, 120rem);
    padding-inline: 1.25rem;
}

.dashboard-page .finance-app-content {
    padding-top: 1.25rem;
}

.app-header {
    position: sticky;
    top: 0;
    z-index: 1035;
    min-height: 4rem;
    border-bottom: 1px solid rgba(21, 48, 40, .08);
    background: rgba(255, 255, 255, .97) !important;
    transition: box-shadow .2s ease;
}

.app-header.is-scrolled {
    box-shadow: 0 .4rem 1.25rem rgba(23, 33, 58, .09);
}

.topbar-search {
    display: grid;
    grid-template-columns: auto minmax(10rem, 18rem) auto;
    align-items: center;
    gap: .65rem;
    height: 2.35rem;
    padding: 0 .45rem 0 .75rem;
    border: 1px solid var(--finance-border);
    border-radius: .4rem;
    color: #66736f;
    background: #f7f9f8;
    font-size: .85rem;
    text-align: left;
}

.topbar-search:hover,
.topbar-search:focus-visible {
    border-color: var(--finance-teal);
    color: var(--finance-teal-dark);
    background: #fff;
    outline: 0;
}

.topbar-search kbd,
.quick-navigator kbd {
    border: 1px solid #d7dfdc;
    color: #52605c;
    background: #fff;
    box-shadow: 0 1px 1px rgba(23, 33, 58, .08);
    font-size: .67rem;
}

.topbar-icon-link {
    display: grid !important;
    width: 2.35rem;
    height: 2.35rem;
    place-items: center;
    padding: 0 !important;
    border-radius: 50%;
    color: #53615d !important;
}

.topbar-icon-link:hover,
.topbar-icon-link:focus-visible {
    color: var(--finance-teal-dark) !important;
    background: var(--finance-teal-soft);
}

.topbar-touch-space {
    display: inline-flex;
    min-height: 2.15rem;
    align-items: center;
    gap: .42rem;
    padding-inline: .75rem;
    border: 1px solid #486ca8;
    color: #fff;
    background: linear-gradient(120deg, #7651a6, #4268a8);
    box-shadow: 0 .25rem .65rem rgba(66, 104, 168, .2);
}

.topbar-touch-space:hover,
.topbar-touch-space:focus-visible {
    border-color: #354f87;
    color: #fff;
    background: linear-gradient(120deg, #674590, #36598f);
}

.topbar-user {
    gap: .55rem;
    min-width: 0;
}

.topbar-user-avatar {
    display: grid;
    width: 2.1rem;
    height: 2.1rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--finance-ink);
    font-size: .78rem;
    font-weight: 700;
}

.topbar-user-copy {
    display: flex;
    max-width: 12rem;
    min-width: 0;
    flex-direction: column;
    line-height: 1.15;
}

.topbar-user-copy strong,
.topbar-user-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.topbar-user-copy strong { font-size: .78rem; }
.topbar-user-copy small { color: #74807d; font-size: .66rem; }

.finance-sidebar {
    display: flex;
    flex-direction: column;
    border-right: 0;
    background: var(--finance-sidebar) !important;
    box-shadow: .5rem 0 2rem rgba(14, 35, 29, .12) !important;
}

.finance-sidebar .sidebar-brand {
    flex: 0 0 4rem;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.finance-sidebar .brand-link {
    display: flex;
    height: 4rem;
    align-items: center;
    gap: .7rem;
    padding: 0 1rem;
    color: #fff;
    letter-spacing: 0;
}

.brand-symbol {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .4rem;
    color: #12241f;
    background: #8fd1c4;
    font-size: 1rem;
}

.brand-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    line-height: 1.05;
}

.brand-copy strong { font-size: 1rem; }
.brand-copy small { margin-top: .25rem; color: #93aca4; font-size: .65rem; font-weight: 500; }

.finance-sidebar .sidebar-wrapper {
    flex: 1 1 auto;
    min-height: 0;
}

.finance-sidebar .nav-header {
    margin: .75rem .65rem .25rem;
    padding: .45rem .7rem;
    color: var(--finance-sidebar-muted);
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.finance-sidebar .nav-link {
    min-height: 2.45rem;
    margin-block: .08rem;
    padding: .55rem .75rem;
    border-radius: .35rem;
    color: #c9d6d2;
    font-size: .82rem;
}

.finance-sidebar .nav-link .nav-icon {
    width: 1.35rem;
    color: #8fa9a1;
    font-size: .93rem;
}

.finance-sidebar .nav-link:hover,
.finance-sidebar .nav-link:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .07);
}

.finance-sidebar .nav-link.active {
    color: #fff;
    background: var(--finance-teal) !important;
    box-shadow: none;
}

.finance-sidebar .nav-link.active .nav-icon { color: #fff; }
.finance-sidebar .nav-treeview { padding-left: .55rem; }
.finance-sidebar .nav-treeview .nav-link { min-height: 2.2rem; color: #aebfba; font-size: .76rem; }
.finance-sidebar .nav-treeview .nav-link.active { color: #bcebe1; background: rgba(93, 192, 173, .13) !important; }

.sidebar-footer-link {
    flex: 0 0 auto;
    padding: .7rem .8rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.sidebar-footer-link a {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .6rem .75rem;
    border-radius: .35rem;
    color: #b9cbc5;
    font-size: .8rem;
    text-decoration: none;
}

.sidebar-footer-link a:hover,
.sidebar-footer-link a:focus-visible { color: #fff; background: rgba(255, 255, 255, .07); }

.card,
.small-box {
    border-radius: .5rem !important;
}

.card {
    border-color: var(--finance-border);
    box-shadow: 0 .25rem 1rem rgba(23, 33, 58, .045);
}

.card-header {
    border-bottom-color: #e7ecea;
}

.finance-page-header h1 {
    color: var(--finance-ink);
    font-weight: 750;
}

.finance-filter-card {
    border-color: var(--finance-border);
    box-shadow: 0 .25rem 1rem rgba(23, 33, 58, .035);
}

.form-control,
.form-select,
.input-group-text {
    border-color: #cfd9d6;
    border-radius: .35rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--finance-teal);
    box-shadow: 0 0 0 .2rem rgba(103, 54, 154, .13);
}

.btn { border-radius: .35rem; }
.btn-primary { border-color: var(--finance-teal); background: var(--finance-teal); }
.btn-primary:hover, .btn-primary:focus { border-color: var(--finance-teal-dark); background: var(--finance-teal-dark); }

.table > thead > tr > th {
    border-bottom-width: 1px;
    color: #64716d;
    background: #f6f8f7;
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: 0;
    text-transform: uppercase;
}

.table-hover > tbody > tr:hover > * { --bs-table-bg-state: #f3f9f7; }

.app-footer {
    color: #65726e;
    background: #fff !important;
    font-size: .76rem;
}

/* Permission-aware global navigation */
.quick-navigator .modal-content {
    overflow: hidden;
    border: 0;
    border-radius: .5rem;
    box-shadow: 0 1.5rem 4rem rgba(15, 34, 29, .28);
}

.quick-navigator-search {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    min-height: 4rem;
    padding: 0 1.15rem;
    border-bottom: 1px solid var(--finance-border);
    color: #67746f;
}

.quick-navigator-search input {
    min-width: 0;
    border: 0;
    outline: 0;
    color: var(--finance-ink);
    background: transparent;
    font-size: 1rem;
}

.quick-navigator-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.quick-navigator-grid section { min-width: 0; }
.quick-navigator-grid h3 { margin: 0 0 .45rem; color: #788480; font-size: .67rem; font-weight: 750; text-transform: uppercase; }
.quick-navigator-grid a {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    align-items: center;
    gap: .65rem;
    min-height: 3.4rem;
    padding: .55rem .65rem;
    border-radius: .35rem;
    color: var(--finance-ink);
    text-decoration: none;
}

.quick-navigator-grid a:hover,
.quick-navigator-grid a:focus-visible,
.quick-navigator-grid a.is-active { outline: 0; background: var(--finance-teal-soft); }
.quick-navigator-grid a > .bi { color: var(--finance-teal); font-size: 1.1rem; text-align: center; }
.quick-navigator-grid a span { display: flex; min-width: 0; flex-direction: column; }
.quick-navigator-grid a strong { font-size: .82rem; }
.quick-navigator-grid a small { overflow: hidden; color: #74817d; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.quick-navigator-empty { display: grid; min-height: 12rem; place-items: center; align-content: center; gap: .35rem; color: #788480; text-align: center; }
.quick-navigator-empty .bi { font-size: 1.5rem; }
.quick-navigator-footer { justify-content: flex-start; gap: 1rem; color: #74817d; background: #f7f9f8; font-size: .67rem; }

.dashboard-hero {
    position: relative;
    display: flex;
    min-height: 21rem;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin: 0 0 1rem;
    padding: 2.5rem 3rem;
    overflow: hidden;
    border-radius: .5rem;
    color: #fff;
    background-color: rgba(9, 25, 21, .72);
    background-image: url("../images/erp360-command-center-hero-v2.png");
    background-position: center;
    background-size: cover;
    background-blend-mode: multiply;
    box-shadow: 0 1rem 2.5rem rgba(20, 37, 32, .18);
}

.dashboard-hero-content { position: relative; z-index: 1; max-width: 49rem; }
.dashboard-hero-kicker { display: flex; align-items: center; gap: .5rem; margin-bottom: .8rem; color: #d8c4ee; font-size: .7rem; font-weight: 750; text-transform: uppercase; }
.dashboard-hero h1 { max-width: 38rem; margin: 0 0 .8rem; color: #fff; font-size: 3.1rem; font-weight: 760; line-height: 1.03; letter-spacing: 0; }
.dashboard-hero p { max-width: 44rem; margin: 0 0 1.35rem; color: rgba(255,255,255,.78); font-size: 1rem; }
.dashboard-hero-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.dashboard-hero-actions .btn { min-height: 2.45rem; padding-inline: .9rem; }
.dashboard-hero-context { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 1.65rem; }
.dashboard-hero-context span { display: flex; min-width: 8rem; flex-direction: column; }
.dashboard-hero-context small { color: rgba(255,255,255,.58); font-size: .64rem; text-transform: uppercase; }
.dashboard-hero-context strong { color: #fff; font-size: .78rem; }
.dashboard-refresh-meta { position: relative; z-index: 1; display: flex; flex: 0 0 auto; align-items: center; gap: .4rem; color: rgba(255,255,255,.68); font-size: .72rem; }

/* Permission-aware touch launchpad */
.touch-launchpad {
    margin: 0 0 1.15rem;
    overflow: hidden;
    border: 1px solid rgba(103, 54, 154, .2);
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 .65rem 1.8rem rgba(23, 33, 58, .08);
}

.touch-launchpad-hero {
    display: flex;
    min-height: 7rem;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem 1.4rem;
    color: #fff;
    background:
        radial-gradient(circle at 82% 20%, rgba(255, 255, 255, .16), transparent 23%),
        linear-gradient(118deg, #32174f, #67369a 55%, #8b62b8);
}

.touch-launchpad-heading { display: flex; align-items: center; gap: 1rem; }
.touch-launchpad-mark { display: grid; width: 3.5rem; height: 3.5rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: .8rem; background: rgba(255,255,255,.13); font-size: 1.55rem; }
.touch-launchpad-kicker { color: #e0ccf3; font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.touch-launchpad h2 { margin: .1rem 0 .18rem; color: #fff; font-size: 1.45rem; font-weight: 760; }
.touch-launchpad-hero p { margin: 0; color: rgba(255,255,255,.73); font-size: .78rem; }
.touch-launchpad-tip { display: flex; flex: 0 0 auto; align-items: center; gap: .55rem; padding: .6rem .75rem; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: rgba(255,255,255,.85); background: rgba(7,31,27,.18); font-size: .72rem; }
.touch-launchpad-tip .bi { font-size: 1rem; }

.touch-launchpad-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1rem; background: #f6f9f8; }
.touch-launch-group { --touch-accent: var(--finance-teal); --touch-soft: var(--finance-teal-soft); min-width: 0; padding: .9rem; border: 1px solid var(--finance-border); border-radius: .65rem; background: #fff; }
.touch-theme-home { --touch-accent: #67369a; --touch-soft: #eee4f8; }
.touch-theme-operations { --touch-accent: #8b4eb1; --touch-soft: #f3eafa; }
.touch-theme-structure { --touch-accent: #56317f; --touch-soft: #ece4f5; }
.touch-theme-insights { --touch-accent: #7651a6; --touch-soft: #f0eafb; }
.touch-theme-admin { --touch-accent: #934d9c; --touch-soft: #f5e8f6; }
.touch-launch-group-title { display: flex; align-items: center; gap: .7rem; margin-bottom: .75rem; }
.touch-launch-group-title > span { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; border-radius: .55rem; color: var(--touch-accent); background: var(--touch-soft); }
.touch-launch-group-title h3 { margin: 0; color: var(--finance-ink); font-size: .88rem; font-weight: 760; }
.touch-launch-group-title p { margin: .05rem 0 0; color: #74817d; font-size: .66rem; }
.touch-launch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.touch-launch-tile {
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr) auto;
    min-height: 4.75rem;
    align-items: center;
    gap: .65rem;
    padding: .7rem;
    border: 1px solid #e3e9e7;
    border-radius: .55rem;
    color: var(--finance-ink);
    background: #fbfcfc;
    text-decoration: none;
    touch-action: manipulation;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background-color .16s ease;
}
.touch-launch-tile > .bi:first-child { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; border-radius: .5rem; color: var(--touch-accent); background: var(--touch-soft); font-size: 1.05rem; }
.touch-launch-tile > .bi:last-child { color: #a1aaa7; font-size: .7rem; }
.touch-launch-tile span { display: flex; min-width: 0; flex-direction: column; }
.touch-launch-tile strong { color: var(--finance-ink); font-size: .75rem; line-height: 1.25; }
.touch-launch-tile small { overflow: hidden; color: #77837f; font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }
.touch-launch-tile:hover,
.touch-launch-tile:focus-visible { outline: 0; border-color: var(--touch-accent); color: var(--finance-ink); background: var(--touch-soft); box-shadow: 0 .4rem .9rem rgba(23,33,58,.09); transform: translateY(-2px); }
.touch-launch-tile:active { transform: translateY(0) scale(.985); }
.touch-launch-tile.is-current { border-color: color-mix(in srgb, var(--touch-accent) 35%, white); background: var(--touch-soft); }

.dashboard-scope-card { margin-bottom: 1.15rem; border-left: 0; }
.dashboard-scope-header { display: flex; align-items: center; justify-content: space-between; padding: .7rem .9rem; background: #f8faf9; }
.dashboard-scope-header > div { display: flex; align-items: center; gap: .65rem; }
.dashboard-scope-header > div > .bi { color: var(--finance-teal); }
.dashboard-scope-header span { display: flex; flex-direction: column; }
.dashboard-scope-header strong { font-size: .8rem; }
.dashboard-scope-header small { color: #74817d; font-size: .67rem; }
.dashboard-scope-card .card-body { padding: .9rem; }
.dashboard-scope-card .form-label { margin-bottom: .3rem; color: #64716d; font-size: .68rem; font-weight: 700; }
.dashboard-scope-summary { margin-top: .7rem; padding-top: .65rem; font-size: .72rem; }

.dashboard-kpi-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 0 1.65rem;
    overflow: hidden;
    border: 1px solid var(--finance-border);
    border-radius: .5rem;
    background: #fff;
    box-shadow: 0 .35rem 1.25rem rgba(23, 33, 58, .05);
}

.dashboard-kpi { display: grid; grid-template-columns: 2.65rem minmax(0, 1fr); align-items: center; gap: .75rem; min-height: 5.4rem; padding: .9rem 1rem; border-right: 1px solid var(--finance-border); }
.dashboard-kpi:last-child { border-right: 0; }
.dashboard-kpi > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.dashboard-kpi small { color: #73807c; font-size: .68rem; }
.dashboard-kpi strong { overflow: hidden; color: var(--finance-ink); font-size: 1.15rem; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-kpi-icon { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: .45rem; font-size: 1.1rem; }
.dashboard-kpi-assets .dashboard-kpi-icon { color: var(--finance-teal); background: var(--finance-teal-soft); }
.dashboard-kpi-liabilities .dashboard-kpi-icon { color: var(--finance-coral); background: var(--finance-coral-soft); }
.dashboard-kpi-profit .dashboard-kpi-icon { color: var(--finance-blue); background: var(--finance-blue-soft); }
.dashboard-kpi-health .dashboard-kpi-icon { color: var(--finance-gold); background: var(--finance-gold-soft); }

.dashboard-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin: 1.75rem 0 .75rem; }
.dashboard-section-heading span { color: var(--finance-teal); font-size: .66rem; font-weight: 750; text-transform: uppercase; }
.dashboard-section-heading h2 { margin: .15rem 0 0; color: var(--finance-ink); font-size: 1.15rem; font-weight: 750; }
.dashboard-section-heading p { max-width: 34rem; margin: 0; color: #74817d; font-size: .75rem; text-align: right; }

.dashboard-grid { gap: .85rem; margin-bottom: .5rem; }
.dashboard-panel { border: 1px solid var(--finance-border); box-shadow: 0 .25rem 1rem rgba(23, 33, 58, .04); }
.dashboard-panel-header { min-height: 3.35rem; border-bottom: 1px solid #e8edeb; background: #fff; }
.dashboard-panel-header h2 { color: var(--finance-ink); font-size: .82rem !important; }
.dashboard-panel-header h2 .bi { color: var(--finance-teal); }
.dashboard-primary-value { color: var(--finance-ink); font-size: 1.7rem; }
.dashboard-count-grid > div, .dashboard-count-grid > a { border-color: #e0e7e4; border-radius: .35rem; background: #fafcfb; }
.dashboard-count-grid > a:hover, .dashboard-count-grid > a:focus-visible { border-color: var(--finance-teal); background: var(--finance-teal-soft); }
.dashboard-financial-position { margin-top: .85rem; }
.dashboard-financial-grid > div { border-radius: .3rem; background: #f7f9f8; }
.dashboard-health-state, .dashboard-reconciliation-state { border-radius: .3rem; }
.dashboard-quick-actions a { border-radius: .35rem; background: #fafcfb; }
.dashboard-quick-actions a .bi { color: var(--finance-teal); }

.help-hero {
    min-height: 21rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 1.25rem;
    background:
        radial-gradient(circle at 88% 15%, rgba(216, 180, 254, .28), transparent 24%),
        radial-gradient(circle at 72% 110%, rgba(139, 92, 246, .32), transparent 34%),
        linear-gradient(125deg, #211238 0%, #4b1f78 45%, #7a3db1 100%);
    box-shadow: 0 1.4rem 3.4rem rgba(42, 18, 67, .24);
}
.help-hero::after { height: .3rem; background: linear-gradient(90deg, #d8b4fe, #a78bfa, #f0abfc); }

.login-page {
    background-color: rgba(30, 13, 51, .78);
    background-image: url("../images/finance-dashboard-hero.png");
    background-position: center;
    background-size: cover;
    background-blend-mode: multiply;
}
.login-box .card { border: 0; box-shadow: 0 1.5rem 4rem rgba(8, 24, 19, .32); }

@media (max-width: 991.98px) {
    .dashboard-hero { min-height: 19rem; padding: 2rem; }
    .dashboard-hero h1 { font-size: 2.5rem; }
    .dashboard-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-kpi:nth-child(2) { border-right: 0; }
    .dashboard-kpi:nth-child(-n+2) { border-bottom: 1px solid var(--finance-border); }
    .quick-navigator-grid { grid-template-columns: 1fr; }
    .help-hero h1 { font-size: 3rem; }
    .touch-launchpad-groups { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .finance-app-content { padding-top: .75rem; }
    .dashboard-page .finance-app-content { padding-top: .75rem; }
    .finance-app-content > .container-fluid { padding-inline: .75rem; }
    .dashboard-hero { min-height: 24rem; align-items: flex-end; padding: 1.5rem; background-position: 62% center; }
    .dashboard-hero h1 { font-size: 2.15rem; }
    .dashboard-hero p { font-size: .9rem; }
    .dashboard-refresh-meta { display: none; }
    .dashboard-hero-context { gap: .8rem 1.35rem; }
    .dashboard-hero-context span { min-width: 6.5rem; }
    .dashboard-section-heading { align-items: flex-start; flex-direction: column; }
    .dashboard-section-heading p { text-align: left; }
    .help-hero h1 { font-size: 2.3rem; }
    .touch-launchpad-hero { align-items: flex-start; flex-direction: column; gap: .8rem; }
    .touch-launchpad-tip { align-self: flex-start; }
}

@media (max-width: 575.98px) {
    .dashboard-kpi-strip { grid-template-columns: 1fr; }
    .dashboard-kpi { border-right: 0; border-bottom: 1px solid var(--finance-border); }
    .dashboard-kpi:last-child { border-bottom: 0; }
    .dashboard-hero-actions .btn { flex: 1 1 auto; }
    .touch-launchpad-hero { padding: 1.1rem; }
    .touch-launchpad-mark { width: 3rem; height: 3rem; }
    .touch-launchpad h2 { font-size: 1.2rem; }
    .touch-launchpad-groups { padding: .7rem; }
    .touch-launch-grid { grid-template-columns: 1fr; }
    .touch-launch-tile { min-height: 4.5rem; }
}

/* Contextual examples for every user-editable form control. */
.finance-input-help-trigger {
    display: inline-grid;
    width: 1.15rem;
    height: 1.15rem;
    margin: 0 0 .2rem .35rem;
    place-items: center;
    padding: 0;
    border: 1px solid #7ea99d;
    border-radius: 50%;
    color: var(--finance-teal-dark);
    background: #eef8f5;
    font-size: .72rem;
    font-weight: 800;
    line-height: 1;
    vertical-align: middle;
}

.finance-input-help-trigger:hover,
.finance-input-help-trigger:focus-visible,
.finance-input-help-trigger[aria-expanded="true"] {
    border-color: var(--finance-teal);
    color: #fff;
    background: var(--finance-teal);
    outline: 0;
    box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb), .16);
}

.form-check > .finance-input-help-trigger,
.input-group > .finance-input-help-trigger,
.table .finance-input-help-trigger {
    margin-top: .45rem;
}

.finance-input-help-popover {
    position: fixed;
    z-index: 1090;
    width: min(19rem, calc(100vw - 1.5rem));
    padding: .85rem;
    border: 1px solid #bfd3cd;
    border-radius: .5rem;
    color: var(--finance-ink);
    background: #fff;
    box-shadow: 0 .65rem 1.75rem rgba(23, 33, 58, .18);
}

.finance-input-help-popover[hidden] {
    display: none;
}

.finance-input-help-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    color: var(--finance-ink);
    font-size: .85rem;
    font-weight: 750;
}

.finance-input-help-close {
    width: 1.5rem;
    height: 1.5rem;
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    border-radius: .25rem;
    color: #66736f;
    background: transparent;
    font-size: 1.2rem;
    line-height: 1;
}

.finance-input-help-close:hover,
.finance-input-help-close:focus-visible {
    color: var(--finance-teal-dark);
    background: var(--finance-teal-soft);
    outline: 0;
}

.finance-input-help-copy {
    margin: .55rem 0 .25rem;
    color: #687570;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.finance-input-help-example {
    overflow-wrap: anywhere;
    padding: .55rem .65rem;
    border: 1px solid #d8e6e2;
    border-radius: .35rem;
    color: #164f45;
    background: #f7f2fc;
    font-family: var(--bs-font-monospace);
    font-size: .8rem;
}

.finance-input-help-note {
    margin: .45rem 0 .7rem;
    color: #687570;
    font-size: .72rem;
    line-height: 1.35;
}

.finance-input-help-use {
    min-width: 5.25rem;
}

@media (prefers-reduced-motion: no-preference) {
    .finance-input-help-trigger {
        transition: color .15s ease, background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
    }
}

.help-hero p {
    max-width: 48rem;
    margin-bottom: 1.5rem;
    color: rgba(255, 255, 255, .8);
    font-size: 1.1rem;
}

.help-search-wrap {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    max-width: 43rem;
    padding: .35rem .5rem .35rem .9rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: .35rem;
    background: #fff;
    box-shadow: 0 1rem 2.5rem rgba(3, 12, 22, .25);
}

.help-search-wrap > .bi {
    color: #566175;
    font-size: 1.1rem;
}

.help-search-wrap .form-control {
    width: 100%;
    min-width: 0;
    padding-inline: .7rem;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.help-search-wrap kbd {
    color: #526071;
    background: #eef1f4;
}

.help-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.25rem;
    margin-top: 1.25rem;
    color: rgba(255, 255, 255, .72);
    font-size: .83rem;
}

.help-hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.help-hero-mark {
    display: grid;
    align-self: center;
    width: 10rem;
    height: 10rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 2rem;
    color: rgba(255, 255, 255, .72);
    background: rgba(255, 255, 255, .08);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1rem 2rem rgba(18, 8, 31, .18);
    font-size: 5.5rem;
    transform: rotate(3deg);
}

.help-mobile-nav {
    margin-bottom: 1.25rem;
}

.help-workspace {
    display: grid;
    grid-template-columns: minmax(16rem, 20rem) minmax(0, 1fr);
    align-items: start;
    gap: clamp(1.25rem, 2.7vw, 3rem);
    max-width: 108rem;
    margin-inline: auto;
}

.help-sidebar {
    min-width: 0;
}

.help-sidebar-inner {
    position: sticky;
    top: 5.25rem;
    max-height: calc(100vh - 6.25rem);
    overflow-y: auto;
    padding: .85rem;
    border: 1px solid #e4dced;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .65rem 1.8rem rgba(45, 25, 66, .08);
    scrollbar-width: thin;
}

.help-sidebar-title {
    padding: .35rem .75rem .6rem;
    color: var(--bs-secondary-color);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.help-topic-nav {
    display: grid;
    gap: .75rem;
}

.help-nav-group {
    min-width: 0;
}

.help-nav-group + .help-nav-group {
    padding-top: .75rem;
    border-top: 1px solid #eee8f4;
}

.help-nav-group-title {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .45rem;
    margin: 0 0 .3rem;
    padding: .2rem .65rem;
    color: #65417f;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.25;
    text-transform: uppercase;
}

.help-nav-group-title span {
    display: inline-grid;
    min-width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    border-radius: 999px;
    color: #5d2f88;
    background: #f0e7f8;
    font-size: .68rem;
}

.help-nav-group-links {
    display: grid;
    gap: .08rem;
}

.help-topic-nav a {
    padding: .48rem .68rem;
    border-left: .18rem solid transparent;
    border-radius: 0 .45rem .45rem 0;
    color: #4d596a;
    font-size: .84rem;
    line-height: 1.28;
    text-decoration: none;
}

.help-topic-nav a.help-nav-playbook {
    padding-left: 1.45rem;
    color: #584a64;
    font-size: .79rem;
}

.help-topic-nav a.help-nav-playbook::before {
    display: inline-block;
    width: .42rem;
    height: .42rem;
    margin: 0 .5rem .08rem -1rem;
    border-radius: 50%;
    content: "";
    background: #a982cb;
}

.help-topic-nav a:hover,
.help-topic-nav a:focus,
.help-topic-nav a.active {
    border-left-color: var(--help-accent);
    color: var(--help-accent);
    background: var(--help-accent-soft);
}

.help-source-link {
    margin-top: 1rem;
    padding: 1rem .75rem 0;
    border-top: 1px solid var(--bs-border-color);
}

.help-source-link a {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    color: var(--help-accent);
    font-size: .84rem;
    font-weight: 600;
    text-decoration: none;
}

.help-document {
    min-width: 0;
    max-width: 70rem;
    padding: clamp(1.15rem, 2.5vw, 2.5rem);
    border: 1px solid #e4dced;
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .65rem 1.8rem rgba(45, 25, 66, .07);
}

.help-search-status {
    margin-bottom: 1rem;
    padding: .7rem .85rem;
    border-left: .2rem solid var(--help-accent);
    background: var(--help-accent-soft);
    font-weight: 600;
}

.help-article > h1,
.help-article > h1 + p,
.help-article > h1 + p + blockquote,
.help-article > h1 + p + blockquote + h2,
.help-article > h1 + p + blockquote + h2 + ol {
    display: none;
}

.help-article h2,
.help-article h3 {
    scroll-margin-top: 5.5rem;
    color: var(--help-ink);
}

.help-article h2 {
    margin: 0 0 1rem;
    padding: 2.5rem 0 .7rem;
    border-bottom: 2px solid #dbe2e8;
    font-size: 1.65rem;
    font-weight: 750;
}

.help-article h2:first-of-type {
    padding-top: 0;
}

.help-article h3 {
    margin: 1.8rem 0 .75rem;
    font-size: 1.12rem;
    font-weight: 700;
}

.help-article h2.help-playbooks-title {
    margin-top: 1rem;
    padding: 1.25rem 1.4rem;
    border: 0;
    border-radius: 1rem;
    color: #fff;
    background: linear-gradient(120deg, #25133d, #5d2d89 62%, #8d55ba);
    box-shadow: 0 .8rem 1.8rem rgba(48, 22, 73, .16);
}

.help-article h3.help-playbook-hero {
    position: relative;
    margin: 3rem 0 0;
    padding: 2.1rem 2rem 1.55rem 5.75rem;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 1.05rem 1.05rem 0 0;
    color: #fff;
    background:
        radial-gradient(circle at 92% 10%, rgba(216, 180, 254, .28), transparent 28%),
        linear-gradient(125deg, #211238, #51247a 58%, #8046ad);
    box-shadow: 0 .9rem 2rem rgba(44, 20, 67, .16);
    font-size: clamp(1.25rem, 2.1vw, 1.75rem);
    line-height: 1.2;
    scroll-margin-top: 5.5rem;
}

.help-article h3.help-playbook-hero::before {
    position: absolute;
    top: 1.25rem;
    left: 1.35rem;
    display: grid;
    width: 3.35rem;
    height: 3.35rem;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: .85rem;
    content: "\F1AD";
    color: #f4e9ff;
    background: rgba(255, 255, 255, .1);
    font-family: "bootstrap-icons";
    font-size: 1.5rem;
}

.help-article h3.help-playbook-hero::after {
    display: block;
    margin-top: .55rem;
    content: "Complete organization playbook • Setup to recovery";
    color: rgba(255, 255, 255, .75);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.help-article .help-playbook-summary {
    margin: 0 0 1rem;
    padding: 1rem 1.25rem;
    border: 1px solid #e1d5eb;
    border-top: 0;
    border-radius: 0 0 1rem 1rem;
    color: #49345b;
    background: linear-gradient(135deg, #faf7fd, #f2eaf8);
    box-shadow: 0 .55rem 1.2rem rgba(44, 20, 67, .07);
}

.help-article table.help-playbook-steps {
    border: 1px solid #d9cce5;
    border-radius: .7rem;
    box-shadow: 0 .45rem 1rem rgba(45, 25, 66, .06);
}

.help-article table.help-playbook-steps th {
    color: #fff;
    background: #32184f;
}

.help-article table.help-playbook-steps th:first-child,
.help-article table.help-playbook-steps td:first-child {
    width: 10.5rem;
    min-width: 10.5rem;
}

.help-article table.help-playbook-steps td:first-child {
    color: #5e2e87;
    background: #f5effa;
}

.help-article table.help-playbook-steps tr:nth-child(even) td:not(:first-child) {
    background: #fbf9fd;
}

.help-article h4 {
    margin: 1.5rem 0 .75rem;
    color: #5b2d82;
    font-size: 1rem;
    font-weight: 800;
    scroll-margin-top: 5.5rem;
}

.help-article p,
.help-article li {
    color: #3f4b5d;
    line-height: 1.68;
}

.help-article li + li {
    margin-top: .28rem;
}

.help-article blockquote {
    margin: 1rem 0;
    padding: .9rem 1rem;
    border-left: .25rem solid var(--help-warm);
    background: #fff6df;
}

.help-article blockquote p:last-child {
    margin-bottom: 0;
}

.help-article code {
    color: #9b3148;
    overflow-wrap: anywhere;
}

.help-article pre {
    padding: 1rem;
    overflow-x: auto;
    border: 1px solid #28354a;
    border-radius: .35rem;
    color: #e8edf4;
    background: #17213a;
}

.help-article pre code {
    color: inherit;
}

.help-article table {
    width: 100%;
    margin: 1rem 0 1.5rem;
    border-collapse: collapse;
    font-size: .9rem;
}

.help-article table th,
.help-article table td {
    padding: .65rem .75rem;
    border: 1px solid #d9e0e6;
    vertical-align: top;
}

.help-article table th {
    color: var(--help-ink);
    background: #edf2f4;
}

.help-article table tr:nth-child(even) td {
    background: #fafbfc;
}

.help-no-results {
    min-height: 18rem;
    padding: 3rem 1rem;
    text-align: center;
}

.help-no-results > .bi {
    color: var(--bs-secondary-color);
    font-size: 2rem;
}

.help-no-results h2 {
    margin-top: .75rem;
    font-size: 1.35rem;
}

.help-back-to-top {
    position: fixed;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 1030;
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    padding: 0;
    opacity: 0;
    pointer-events: none;
    transform: translateY(.5rem);
    transition: opacity .18s ease, transform .18s ease;
}

.help-back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

@media (max-width: 991.98px) {
    .help-hero {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .help-hero-mark {
        display: none;
    }

    .help-workspace {
        grid-template-columns: 1fr;
    }

    .help-document {
        max-width: none;
    }
}

@media (max-width: 575.98px) {
    .help-hero {
        margin-inline: -.75rem;
        padding: 2rem 1.25rem;
    }

    .help-search-wrap kbd,
    .help-hero-meta {
        display: none;
    }

    .help-article table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .help-document {
        padding: 1rem;
        border-radius: .75rem;
    }

    .help-article h3.help-playbook-hero {
        padding: 5rem 1.1rem 1.25rem;
    }

    .help-article h3.help-playbook-hero::before {
        top: 1rem;
        left: 1.1rem;
    }
}

@media print {
    .help-hero,
    .help-mobile-nav,
    .help-sidebar,
    .help-search-status,
    .help-no-results,
    .help-back-to-top {
        display: none !important;
    }

    .help-workspace,
    .help-document {
        display: block;
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .help-article h2,
    .help-article h3,
    .help-article h4 {
        break-after: avoid;
        color: #000 !important;
    }

    .help-article h2.help-playbooks-title,
    .help-article h3.help-playbook-hero,
    .help-article .help-playbook-summary {
        padding: 0 0 .35rem;
        border: 0;
        border-bottom: 1px solid #000;
        border-radius: 0;
        color: #000 !important;
        background: #fff !important;
        box-shadow: none;
    }

    .help-article h3.help-playbook-hero::before,
    .help-article h3.help-playbook-hero::after {
        display: none;
    }

    .help-article table {
        break-inside: auto;
        font-size: .72rem;
    }

    .help-article tr {
        break-inside: avoid;
    }
}

.app-main {
    min-height: calc(100vh - 114px);
}

.card,
.small-box {
    border-radius: 1rem !important;
}

.small-box {
    overflow: hidden;
    border: none;
}

.small-box .inner {
    padding: 1.4rem;
}

.small-box .small-box-icon {
    top: 12px;
    right: 18px;
    font-size: 2rem;
    opacity: .18;
}

.brand-link {
    font-weight: 700;
    letter-spacing: 0;
}

.login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 1.5rem;
}

.login-box {
    width: min(100%, 400px);
}

.login-brand-mark {
    width: 3.5rem;
    height: 3.5rem;
    display: grid;
    place-items: center;
    border-radius: .5rem;
    background: var(--bs-primary);
    color: var(--bs-white);
    font-size: 1.6rem;
}

.finance-page-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.erp-module-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
    padding: 1.55rem 1.75rem;
    overflow: hidden;
    position: relative;
    border: 1px solid rgba(192, 150, 241, .28);
    border-radius: 1.15rem;
    color: #fff;
    background: radial-gradient(circle at 87% 16%, rgba(255,255,255,.2), transparent 23rem), linear-gradient(115deg, #241035 0%, #5f2c91 56%, #9b6dcc 100%);
    box-shadow: 0 1rem 2.25rem rgba(36, 16, 53, .18);
}

.erp-module-banner::after {
    content: "";
    position: absolute;
    right: -3rem;
    bottom: -6rem;
    width: 15rem;
    height: 15rem;
    border: 2rem solid rgba(255,255,255,.055);
    border-radius: 50%;
    pointer-events: none;
}

.erp-module-banner > * { position: relative; z-index: 1; }
.erp-module-banner h1 { margin: .3rem 0; color: #fff; font-size: clamp(1.55rem, 2.6vw, 2.2rem); font-weight: 800; letter-spacing: -.03em; }
.erp-module-banner p { max-width: 760px; margin: 0; color: rgba(255,255,255,.84); }
.erp-module-banner-kicker { font-size: .78rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.erp-module-banner .btn { flex: 0 0 auto; font-weight: 700; box-shadow: 0 .45rem 1rem rgba(20,7,34,.2); }

@media (max-width: 767.98px) {
    .erp-module-banner { align-items: flex-start; flex-direction: column; padding: 1.25rem; }
}

@media print {
    .erp-module-banner { padding: 0 0 .65rem; border: 0; border-bottom: 1px solid #000; border-radius: 0; color: #000; background: #fff !important; box-shadow: none; }
    .erp-module-banner h1, .erp-module-banner p, .erp-module-banner-kicker { color: #000 !important; }
    .erp-module-banner .btn, .erp-module-banner::after { display: none !important; }
}

.finance-filter-card {
    margin-bottom: 1.5rem;
}

.finance-numeric {
    text-align: end;
    font-variant-numeric: tabular-nums;
}

.finance-sticky-actions {
    position: sticky;
    bottom: 0;
    z-index: 10;
    padding: .75rem 0;
    background: var(--bs-body-bg);
    border-top: var(--bs-border-width) solid var(--bs-border-color);
}

.finance-loading,
.finance-empty-state {
    min-height: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    color: var(--bs-secondary-color);
}

.finance-empty-state .bi {
    font-size: 1.25rem;
}

.finance-conflict-alert {
    border-left: .25rem solid var(--bs-warning-border-subtle);
}

form[data-finance-command-form][aria-busy="true"] {
    cursor: wait;
}

.finance-form-section {
    padding: 0 0 1.25rem;
    margin: 0 0 1.25rem;
    border: 0;
    border-bottom: var(--bs-border-width) solid var(--bs-border-color);
}

.finance-current-strip,
.finance-command-band {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: var(--bs-tertiary-bg);
}

.finance-current-strip > .bi {
    color: var(--bs-primary);
    font-size: 1.25rem;
}

.finance-command-band {
    display: block;
    background: var(--bs-body-bg);
}

.finance-fiscal-table {
    min-width: 64rem;
}

.validation-summary-valid {
    display: none;
}

.finance-form-section legend {
    float: none;
    width: auto;
    margin-bottom: 1rem;
    font-size: 1rem;
    font-weight: 600;
}

.finance-choice-group {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.finance-coa-table,
.finance-coa-tree {
    min-width: 920px;
}

.finance-account-flags .badge {
    white-space: nowrap;
}

.finance-row-inactive > * {
    color: var(--bs-secondary-color);
    background-color: var(--bs-tertiary-bg);
}

.finance-tree-account {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-width: 18rem;
    padding-left: calc(var(--coa-depth) * 1.25rem);
}

.finance-tree-spacer,
.finance-tree-account .account-toggle {
    flex: 0 0 2rem;
    width: 2rem;
    height: 2rem;
}

.finance-coa-hierarchy-grid tbody tr > td {
    border-color: #e8eeec;
}

.finance-coa-hierarchy-grid .finance-tree-account {
    position: relative;
    min-width: 22rem;
    padding-left: calc(var(--coa-depth) * 1.45rem);
}

.finance-coa-hierarchy-grid .finance-tree-account[data-depth]:not([data-depth="0"])::before {
    position: absolute;
    top: 1rem;
    left: calc((var(--coa-depth) * 1.45rem) - .7rem);
    width: .85rem;
    border-top: 1px solid #b8c9c4;
    content: "";
}

.finance-coa-hierarchy-grid .account-toggle {
    display: inline-grid;
    place-items: center;
    padding: 0;
    border-radius: .35rem;
    color: var(--finance-teal-dark) !important;
    text-decoration: none;
}

.finance-coa-hierarchy-grid .account-toggle:hover,
.finance-coa-hierarchy-grid .account-toggle:focus-visible {
    color: #fff !important;
    background: var(--finance-teal);
    outline: 0;
}

.finance-account-node-icon {
    display: inline-grid;
    width: 1.85rem;
    height: 1.85rem;
    flex: 0 0 1.85rem;
    place-items: center;
    border-radius: .35rem;
}

.finance-account-node-icon.is-group {
    color: #8a5b0a;
    background: var(--finance-gold-soft);
}

.finance-account-node-icon.is-posting {
    color: var(--finance-teal-dark);
    background: var(--finance-teal-soft);
}

.finance-tree-context-row > * {
    background: #f7faf9;
}

.finance-context-badge {
    border: 1px solid #c9d9d4;
    color: #526660;
    background: #eef4f2;
    font-size: .62rem;
    font-weight: 650;
}

.finance-admin-table {
    min-width: 52rem;
}

.finance-dimension-tree .list-group-item {
    min-height: 3rem;
}

.finance-dimension-tree .finance-tree-spacer,
.finance-dimension-tree [data-tree-toggle] {
    flex: 0 0 1.5rem;
    width: 1.5rem;
}

.finance-tree-search {
    width: min(100%, 18rem);
}

.finance-readonly-owner {
    padding: .75rem 1rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background: var(--bs-tertiary-bg);
}

.finance-voucher-register,
.finance-voucher-lines-readonly {
    min-width: 70rem;
}

.finance-voucher-lines-readonly td,
.finance-voucher-lines-readonly th {
    vertical-align: middle;
}

.finance-cash-bank-table {
    min-width: 62rem;
}

.cash-bank-binding-section {
    scroll-margin-top: 1rem;
}

.cash-bank-binding-section .cash-bank-needs-attention > td {
    background: color-mix(in srgb, var(--bs-warning-bg-subtle) 45%, transparent);
}

.cash-bank-metadata-form {
    min-width: 19rem;
}

.cash-bank-binding-section:target {
    outline: .2rem solid rgba(var(--bs-primary-rgb), .18);
    outline-offset: .15rem;
}

.finance-banking-table {
    min-width: 64rem;
}

.finance-statement-entry,
.finance-statement-workspace {
    min-width: 76rem;
}

.finance-statement-entry input,
.finance-statement-workspace input {
    min-width: 7rem;
}

.statement-line-number {
    min-width: 4.5rem !important;
}

.reconciliation-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

.reconciliation-candidates {
    max-height: 31rem;
    overflow: auto;
}

.reconciliation-candidates table {
    min-width: 39rem;
}

.reconciliation-candidates thead {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--bs-body-bg);
}

.reconciliation-selected > td {
    background: var(--bs-primary-bg-subtle) !important;
    box-shadow: inset 0 1px 0 var(--bs-primary-border-subtle), inset 0 -1px 0 var(--bs-primary-border-subtle);
}

.reconciliation-selected > td:first-child::after {
    content: "Selected";
    display: block;
    margin-top: .25rem;
    font-size: .7rem;
    font-weight: 600;
}

.reconciliation-match-bar {
    position: sticky;
    bottom: .5rem;
    z-index: 2;
    box-shadow: var(--bs-box-shadow);
}

.finance-status-draft,
.finance-status-imported {
    color: var(--bs-warning-text-emphasis);
    background: var(--bs-warning-bg-subtle);
    border: 1px solid var(--bs-warning-border-subtle);
}

.finance-status-ready,
.finance-status-inprogress,
.finance-status-validated,
.finance-status-issued,
.finance-status-received,
.finance-status-deposited,
.finance-status-presented {
    color: var(--bs-primary-text-emphasis);
    background: var(--bs-primary-bg-subtle);
    border: 1px solid var(--bs-primary-border-subtle);
}

.finance-status-cleared,
.finance-status-reconciled,
.finance-status-completed,
.finance-status-posted {
    color: var(--bs-success-text-emphasis);
    background: var(--bs-success-bg-subtle);
    border: 1px solid var(--bs-success-border-subtle);
}

.finance-status-cancelled,
.finance-status-dishonoured {
    color: var(--bs-danger-text-emphasis);
    background: var(--bs-danger-bg-subtle);
    border: 1px solid var(--bs-danger-border-subtle);
}

.opening-balance-register {
    min-width: 72rem;
}

.opening-balance-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-block: var(--bs-border-width) solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}

.opening-balance-summary > div {
    min-width: 0;
    padding: .85rem 1rem;
    border-inline-end: var(--bs-border-width) solid var(--bs-border-color);
}

.opening-balance-summary > div:last-child {
    border-inline-end: 0;
}

.opening-balance-summary span,
.opening-balance-summary strong {
    display: block;
}

.opening-balance-summary span {
    margin-bottom: .2rem;
    color: var(--bs-secondary-color);
    font-size: .75rem;
    text-transform: uppercase;
}

.opening-balance-lines {
    min-width: 88rem;
}

.opening-balance-lines th:nth-last-child(-n+2),
.opening-balance-lines td:nth-last-child(-n+2) {
    width: 9rem;
}

.opening-balance-import {
    scroll-margin-top: 1rem;
}

.opening-import-preview {
    min-width: 70rem;
}

.opening-import-totals {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    font-size: .875rem;
}

.finance-status-returned,
.finance-status-replaced,
.finance-status-expired {
    color: var(--bs-secondary-text-emphasis);
    background: var(--bs-secondary-bg-subtle);
    border: 1px solid var(--bs-secondary-border-subtle);
}

.number-series-register {
    min-width: 78rem;
}

.number-series-template {
    display: inline-block;
    max-width: 20rem;
    overflow-wrap: anywhere;
    white-space: normal;
}

.number-series-preview {
    display: grid;
    grid-template-columns: minmax(8rem, auto) minmax(0, 1fr);
    align-items: center;
    gap: .15rem 1rem;
    padding: .8rem 1rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: .25rem;
    background: var(--bs-tertiary-bg);
}

.number-series-preview span,
.number-series-preview small {
    color: var(--bs-secondary-color);
}

.number-series-preview strong {
    min-width: 0;
    overflow-wrap: anywhere;
    font-family: var(--bs-font-monospace);
    font-size: 1.1rem;
}

.number-series-preview small {
    grid-column: 2;
}

.finance-policy-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.finance-policy-options label {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: .8rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    border-radius: .25rem;
    cursor: pointer;
}

.finance-policy-options input {
    margin-top: .3rem;
}

.finance-policy-options strong,
.finance-policy-options small {
    display: block;
}

.finance-policy-options small {
    color: var(--bs-secondary-color);
}

.report-page-header {
    align-items: flex-start;
    position: relative;
    overflow: hidden;
    padding: 1.15rem 1.35rem;
    border: 1px solid rgba(151, 104, 211, .28);
    border-radius: .75rem;
    color: #fff;
    background:
        radial-gradient(circle at 88% 10%, rgba(196, 151, 255, .28), transparent 24rem),
        linear-gradient(125deg, #1d082f 0%, #33104d 48%, #5d2687 100%);
    box-shadow: 0 .8rem 2rem rgba(35, 9, 55, .18);
}

.report-page-header::after {
    content: "";
    position: absolute;
    inset: auto -2rem -4.5rem auto;
    width: 14rem;
    height: 14rem;
    border: 2rem solid rgba(255, 255, 255, .045);
    border-radius: 50%;
    pointer-events: none;
}

.report-page-header > * {
    position: relative;
    z-index: 1;
}

.report-page-header h1 {
    margin-bottom: .25rem;
    color: #fff;
    font-size: clamp(1.35rem, 2vw, 1.85rem);
    letter-spacing: -.025em;
}

.report-page-header p,
.report-page-header .text-muted {
    margin-bottom: 0;
    color: rgba(255, 255, 255, .76) !important;
}

.report-page-header .badge {
    padding: .48rem .72rem;
    border: 1px solid rgba(255, 255, 255, .25) !important;
    box-shadow: 0 .3rem .8rem rgba(15, 3, 24, .2);
}

.report-page-header .btn-outline-secondary {
    --bs-btn-color: #fff;
    --bs-btn-border-color: rgba(255, 255, 255, .48);
    --bs-btn-hover-color: #2b0d41;
    --bs-btn-hover-bg: #fff;
    --bs-btn-hover-border-color: #fff;
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(6px);
}

.report-filter-panel {
    margin-bottom: 1rem;
    overflow: hidden;
    border: 1px solid rgba(97, 45, 143, .18);
    border-radius: .7rem;
    background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(248, 243, 253, .96));
    box-shadow: 0 .55rem 1.5rem rgba(43, 13, 65, .08);
}

.report-filter-panel::before {
    content: "Report scope & filters";
    display: block;
    padding: .65rem 1rem;
    color: #fff;
    background: linear-gradient(90deg, #311047, #652b91);
    font-size: .73rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* Keep long organization labels inside the report grid on narrow screens. */
.report-filter-panel .row > [class*="col-"] {
    min-width: 0;
}

.report-filter-panel .form-control,
.report-filter-panel .form-select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

@media (max-width: 575.98px) {
    .report-page-header {
        flex-wrap: wrap;
    }

    .report-page-header > * {
        min-width: 0;
        max-width: 100%;
    }

    .report-page-header > .d-flex {
        flex-wrap: wrap;
    }
}

.report-surface {
    overflow: hidden;
    padding: 1.35rem;
    border: 1px solid rgba(93, 38, 135, .18);
    border-radius: .75rem;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(135deg, #b88ae0, #573078) border-box;
    box-shadow: 0 .75rem 2rem rgba(43, 13, 65, .1);
}

.report-print-title {
    display: none;
}

.report-scope {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem 1rem;
    padding: .2rem 0 1rem;
    margin-bottom: 1rem;
    border-bottom: 0;
}

.report-scope div {
    position: relative;
    min-height: 4.7rem;
    padding: .72rem .8rem .72rem 1rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--report-widget, #6f36a0) 20%, white);
    border-radius: .55rem;
    background: linear-gradient(145deg, color-mix(in srgb, var(--report-widget, #6f36a0) 8%, white), #fff 68%);
    box-shadow: 0 .3rem .75rem rgba(46, 15, 69, .06);
}

.report-scope div::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: .28rem;
    background: var(--report-widget, #6f36a0);
}

.report-scope div:nth-child(6n + 1) { --report-widget: #57277d; }
.report-scope div:nth-child(6n + 2) { --report-widget: #3569a8; }
.report-scope div:nth-child(6n + 3) { --report-widget: #a75287; }
.report-scope div:nth-child(6n + 4) { --report-widget: #c26b2d; }
.report-scope div:nth-child(6n + 5) { --report-widget: #218078; }
.report-scope div:nth-child(6n + 6) { --report-widget: #7046b5; }

.report-scope div,
.report-table td > small,
.statement-derived small {
    display: block;
}

.report-scope span,
.report-table td > small,
.statement-derived small {
    color: var(--bs-secondary-color);
    font-size: .78rem;
}

.report-scope span {
    display: block;
    margin-bottom: .18rem;
    color: var(--report-widget, #6f36a0);
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.report-scope strong {
    display: block;
    color: #24132f;
    font-size: .88rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.report-table {
    min-width: 62rem;
    margin-bottom: 0;
}

.report-table thead th,
.report-table tfoot th {
    white-space: nowrap;
}

.report-table thead th {
    padding-block: .7rem;
    border-color: rgba(255, 255, 255, .14);
    color: #fff;
    background: linear-gradient(180deg, #3d1558, #290c3e);
    font-size: .72rem;
    letter-spacing: .025em;
}

.report-table tbody tr:nth-child(even) > * {
    background: #faf7fd;
}

.report-table tbody tr:hover > * {
    background: #eadcf6;
}

.report-table tfoot th {
    border-top: 2px solid #6d3993;
    color: #311047;
    background: #f0e5f8;
}

.finance-numeric {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.report-reconciliation {
    display: grid;
    grid-template-columns: auto auto minmax(12rem, 1fr);
    gap: .75rem;
    align-items: center;
    margin-top: 1rem;
    padding: .75rem 1rem;
    border-left: .25rem solid var(--bs-warning);
    background: var(--bs-warning-bg-subtle);
}

.report-reconciliation.is-balanced {
    border-left-color: var(--bs-success);
    background: var(--bs-success-bg-subtle);
}

.financial-statement {
    max-width: 70rem;
    margin-inline: auto;
}

.statement-section {
    margin-top: 1.25rem;
}

.statement-section h2 {
    margin: 0;
    padding: .55rem .75rem;
    border: 1px solid rgba(95, 43, 137, .18);
    border-left: .3rem solid #693493;
    border-radius: .35rem;
    color: #35124c;
    background: linear-gradient(90deg, #efe2f8, #fbf9fd);
    font-size: 1rem;
    font-weight: 700;
}

.statement-row,
.statement-total,
.statement-subtotal,
.statement-grand-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(8rem, auto);
    gap: 1rem;
    padding: .45rem .75rem;
}

.statement-row:nth-child(even) {
    background: var(--bs-tertiary-bg);
}

.statement-row > :last-child,
.statement-total > :last-child,
.statement-subtotal > :last-child,
.statement-grand-total > :last-child {
    text-align: right;
}

.statement-total,
.statement-subtotal {
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    font-weight: 600;
}

.statement-subtotal {
    margin-top: .5rem;
    color: #35124c;
    background: #f5edf9;
}

.statement-grand-total {
    margin-top: 1.25rem;
    border: 0;
    border-radius: .45rem;
    color: #fff;
    background: linear-gradient(110deg, #2c0c41, #64278e);
    box-shadow: 0 .45rem 1rem rgba(44, 12, 65, .14);
    font-size: 1.05rem;
    font-weight: 700;
}

.statement-derived {
    border-left: .2rem solid var(--bs-info);
    background: var(--bs-info-bg-subtle) !important;
}

@media print {
    .app-header,
    .app-sidebar,
    .app-footer,
    .voucher-screen-actions,
    .finance-command-band,
    .cash-bank-binding-section {
        display: none !important;
    }

    .report-page-header,
    .report-filter-panel,
    .finance-empty-state {
        display: none !important;
    }

    .app-main,
    .app-content,
    .container-fluid {
        margin: 0 !important;
        padding: 0 !important;
        width: 100% !important;
    }

    .voucher-print-section {
        break-inside: avoid;
        box-shadow: none !important;
    }

    .finance-voucher-lines-readonly {
        min-width: 0;
        font-size: .75rem;
    }

    .report-surface {
        max-width: none;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: #fff !important;
        box-shadow: none !important;
    }

    .report-print-title {
        display: block;
        margin-bottom: .75rem;
        text-align: center;
    }

    .report-print-title h2,
    .report-print-title p {
        margin: 0;
    }

    .report-table {
        min-width: 0;
        font-size: .72rem;
    }

    .report-table thead th,
    .report-table tfoot th,
    .report-table tbody tr > * {
        border-color: #777 !important;
        color: #000 !important;
        background: #fff !important;
    }

    .report-table thead th,
    .report-table tfoot th {
        font-weight: 700;
    }

    .report-scope {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: .35rem .75rem;
        padding-bottom: .6rem;
        border-bottom: 1px solid #777;
    }

    .report-scope div {
        min-height: 0;
        padding: .25rem 0;
        border: 0;
        border-radius: 0;
        background: #fff !important;
        box-shadow: none;
    }

    .report-scope div::before {
        display: none;
    }

    .report-scope span,
    .report-scope strong {
        color: #000 !important;
    }

    .statement-section h2,
    .statement-row,
    .statement-total,
    .statement-subtotal,
    .statement-grand-total,
    .statement-derived,
    .report-reconciliation {
        color: #000 !important;
        background: #fff !important;
        box-shadow: none !important;
    }

    .statement-section h2 {
        border: 0;
        border-bottom: 2px solid #444;
        border-radius: 0;
    }

    .statement-grand-total {
        border-top: 3px double #000;
        border-bottom: 3px double #000;
        border-radius: 0;
    }

    .table-responsive {
        overflow: visible !important;
    }

    tr,
    .statement-row,
    .statement-total,
    .statement-subtotal,
    .statement-grand-total,
    .report-reconciliation {
        break-inside: avoid;
    }
}

@media (max-width: 767.98px) {
    .finance-sticky-actions {
        position: static;
    }

    .reconciliation-grid {
        grid-template-columns: 1fr;
    }

    .reconciliation-match-bar {
        position: static;
    }

    .opening-balance-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .opening-balance-summary > div {
        border-block-end: var(--bs-border-width) solid var(--bs-border-color);
    }

    .number-series-preview,
    .finance-policy-options {
        grid-template-columns: 1fr;
    }

    .number-series-preview small {
        grid-column: 1;
    }

    .report-scope {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .report-reconciliation {
        grid-template-columns: auto auto;
    }

    .report-reconciliation span:last-child {
        grid-column: 1 / -1;
    }
}

.dashboard-page-header {
    margin-bottom: 1rem;
}

/* High-impact dashboard widgets and touch workspace */
.dashboard-kpi-strip {
    gap: .85rem;
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.dashboard-kpi {
    --widget-color: #67369a;
    --widget-deep: #3d1d62;
    position: relative;
    min-height: 7rem;
    overflow: hidden;
    border: 0 !important;
    border-radius: .75rem;
    color: #fff;
    background: linear-gradient(135deg, var(--widget-color), var(--widget-deep));
    box-shadow: 0 .7rem 1.5rem color-mix(in srgb, var(--widget-color) 28%, transparent);
}
.dashboard-kpi::after { position: absolute; right: -1rem; bottom: -2rem; color: rgba(255,255,255,.09); content: "360"; font-size: 5rem; font-weight: 800; line-height: 1; }
.dashboard-kpi-assets { --widget-color: #7651a6; --widget-deep: #4a276f; }
.dashboard-kpi-liabilities { --widget-color: #dc6673; --widget-deep: #a43c55; }
.dashboard-kpi-profit { --widget-color: #4c82bd; --widget-deep: #315b91; }
.dashboard-kpi-health { --widget-color: #d59a32; --widget-deep: #a66d18; }
.dashboard-kpi .dashboard-kpi-icon { position: relative; z-index: 1; width: 3rem; height: 3rem; color: #fff; background: rgba(255,255,255,.18); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); font-size: 1.3rem; }
.dashboard-kpi > span:last-child { position: relative; z-index: 1; }
.dashboard-kpi small { color: rgba(255,255,255,.76); font-weight: 650; text-transform: uppercase; letter-spacing: .035em; }
.dashboard-kpi strong { color: #fff; font-size: 1.3rem; }

.dashboard-panel { --panel-accent: #67369a; overflow: hidden; border: 0; border-top: .28rem solid var(--panel-accent); border-radius: .75rem; box-shadow: 0 .65rem 1.6rem rgba(36,26,53,.09); transition: transform .18s ease, box-shadow .18s ease; }
.dashboard-panel:nth-child(5n + 2) { --panel-accent: #4268a8; }
.dashboard-panel:nth-child(5n + 3) { --panel-accent: #7651a6; }
.dashboard-panel:nth-child(5n + 4) { --panel-accent: #c46f18; }
.dashboard-panel:nth-child(5n + 5) { --panel-accent: #b44d62; }
.dashboard-panel:hover { transform: translateY(-2px); box-shadow: 0 .9rem 2rem rgba(23,33,58,.12); }
.dashboard-panel-header { background: linear-gradient(90deg, color-mix(in srgb, var(--panel-accent) 10%, white), #fff 70%); }
.dashboard-panel-header h2 .bi { color: var(--panel-accent); }
.dashboard-panel-header .btn { border-color: color-mix(in srgb, var(--panel-accent) 45%, white); color: var(--panel-accent); font-weight: 700; }
.dashboard-panel-header .btn:hover { border-color: var(--panel-accent); color: #fff; background: var(--panel-accent); }
.dashboard-count-grid > div, .dashboard-count-grid > a, .dashboard-quick-actions a { border: 1px solid color-mix(in srgb, var(--panel-accent) 18%, white); background: linear-gradient(145deg, #fff, color-mix(in srgb, var(--panel-accent) 7%, white)); }
.dashboard-count-grid strong, .dashboard-quick-actions a .bi { color: var(--panel-accent); }

.touch-launch-group { border: 0; border-top: .3rem solid var(--touch-accent); border-radius: .8rem; background: linear-gradient(155deg, #fff 55%, var(--touch-soft)); box-shadow: 0 .6rem 1.35rem rgba(23,33,58,.09); }
.touch-launch-group-title > span { color: #fff; background: linear-gradient(135deg, var(--touch-accent), color-mix(in srgb, var(--touch-accent) 70%, #17213a)); box-shadow: 0 .35rem .75rem color-mix(in srgb, var(--touch-accent) 28%, transparent); }
.touch-launch-tile { border: 1px solid color-mix(in srgb, var(--touch-accent) 16%, white); border-bottom-width: 3px; background: rgba(255,255,255,.88); box-shadow: 0 .25rem .65rem rgba(23,33,58,.06); }
.touch-launch-tile > .bi:first-child { color: #fff; background: linear-gradient(135deg, var(--touch-accent), color-mix(in srgb, var(--touch-accent) 72%, #17213a)); }
.touch-launch-tile > .bi:last-child { color: var(--touch-accent); }
.touch-launch-tile:hover, .touch-launch-tile:focus-visible { border-color: var(--touch-accent); color: #fff; background: linear-gradient(135deg, var(--touch-accent), color-mix(in srgb, var(--touch-accent) 74%, #17213a)); box-shadow: 0 .65rem 1.1rem color-mix(in srgb, var(--touch-accent) 25%, transparent); }
.touch-launch-tile:hover strong, .touch-launch-tile:focus-visible strong, .touch-launch-tile:hover small, .touch-launch-tile:focus-visible small { color: #fff; }
.touch-launch-tile:hover > .bi:first-child, .touch-launch-tile:focus-visible > .bi:first-child { color: var(--touch-accent); background: #fff; }
.touch-launch-tile:hover > .bi:last-child, .touch-launch-tile:focus-visible > .bi:last-child { color: #fff; }

/* ERP 360 sign-in hero */
.login-page { display: grid; min-height: 100vh; padding: clamp(1rem, 3vw, 2.5rem); place-items: center; background-position: center; }
.login-hero-shell { display: grid; width: min(100%, 74rem); min-height: min(46rem, calc(100vh - 3rem)); overflow: hidden; grid-template-columns: minmax(0, 1.25fr) minmax(22rem, .75fr); border: 1px solid rgba(255,255,255,.38); border-radius: 1.25rem; background: rgba(255,255,255,.12); box-shadow: 0 2rem 5rem rgba(4,18,14,.42); backdrop-filter: blur(7px); }
.login-hero-copy { display: flex; min-width: 0; flex-direction: column; justify-content: space-between; padding: clamp(2rem, 5vw, 4.5rem); color: #fff; background: radial-gradient(circle at 85% 12%, rgba(255,255,255,.17), transparent 25%), linear-gradient(145deg, rgba(30,13,51,.78), rgba(103,54,154,.66)); backdrop-filter: blur(3px); }
.login-hero-brand { display: flex; align-items: center; gap: .85rem; }
.login-hero-brand .login-brand-mark { flex: 0 0 auto; background: rgba(255,255,255,.16); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); }
.login-hero-brand > span:last-child { display: flex; flex-direction: column; }
.login-hero-brand strong { font-size: 1.15rem; }
.login-hero-brand small { color: rgba(255,255,255,.65); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.login-hero-message { max-width: 38rem; margin-block: 3rem; }
.login-hero-kicker { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 1rem; color: #e0ccf3; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.login-hero-message h1 { max-width: 34rem; margin: 0 0 1rem; color: #fff; font-size: clamp(2.4rem, 4.4vw, 4.3rem); font-weight: 780; line-height: .98; }
.login-hero-message > p { max-width: 35rem; color: rgba(255,255,255,.75); font-size: 1rem; }
.login-feature-list { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.5rem; }
.login-feature-list span { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem .7rem; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: rgba(255,255,255,.88); background: rgba(255,255,255,.1); font-size: .72rem; }
.login-hero-footnote { margin: 0; color: rgba(255,255,255,.58); font-size: .7rem; }
.login-box { display: flex; width: auto; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(2rem, 4vw, 3.5rem); background: rgba(255,255,255,.8); backdrop-filter: blur(12px) saturate(115%); }
.login-form-heading { display: flex; align-items: center; gap: .8rem; }
.login-form-icon { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: .65rem; color: #fff; background: linear-gradient(135deg, var(--finance-teal), var(--finance-blue)); font-size: 1.25rem; box-shadow: 0 .45rem 1rem rgba(103,54,154,.24); }
.login-form-heading span { color: var(--finance-teal); font-size: .7rem; font-weight: 750; text-transform: uppercase; }
.login-form-heading h2 { margin: .1rem 0 0; color: var(--finance-ink); font-size: 1.45rem; font-weight: 760; }
.login-form-intro { margin: 1rem 0 1.25rem; color: #6d7975; font-size: .82rem; }
.login-box .card { border: 1px solid rgba(255,255,255,.58) !important; border-radius: .8rem; background: rgba(255,255,255,.58); box-shadow: 0 .8rem 2rem rgba(23,33,58,.11) !important; backdrop-filter: blur(14px); }
.login-box .form-control, .login-box .input-group-text { min-height: 3rem; }
.login-box .input-group-text { color: var(--finance-teal); background: var(--finance-teal-soft); }
.login-submit { min-height: 3.25rem; border: 0; background: linear-gradient(110deg, var(--finance-teal-dark), var(--finance-teal), #8b62b8); box-shadow: 0 .55rem 1.1rem rgba(103,54,154,.23); font-size: .9rem; font-weight: 700; }
.login-support-note { margin: 1.1rem 0 0; color: #7b8783; font-size: .7rem; text-align: center; }

.login-is-loading { overflow: hidden; }
.login-loader { position: fixed; inset: 0; z-index: 9999; display: grid; visibility: hidden; place-items: center; opacity: 0; transition: visibility 0s linear .25s, opacity .25s ease; }
.login-loader.is-visible { visibility: visible; opacity: 1; transition-delay: 0s; }
.login-loader-backdrop { position: absolute; inset: 0; background: linear-gradient(145deg, rgba(30,13,51,.24), rgba(103,54,154,.16)); backdrop-filter: blur(2px); }
.login-loader-content { position: relative; display: flex; width: min(86vw, 18rem); align-items: center; flex-direction: column; padding: 1.35rem 1.5rem; border: 1px solid rgba(255,255,255,.22); border-radius: .9rem; color: #fff; background: rgba(32,17,48,.82); box-shadow: 0 1rem 2.5rem rgba(3,19,15,.3); text-align: center; backdrop-filter: blur(10px); }
.login-loader-emblem { position: relative; display: grid; width: 4rem; height: 4rem; margin-bottom: .8rem; place-items: center; }
.login-loader-emblem i { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; border-radius: .65rem; color: var(--finance-teal-dark); background: #fff; box-shadow: 0 .45rem 1rem rgba(0,0,0,.18); font-size: 1.05rem; animation: login-loader-pulse 1.8s ease-in-out infinite; }
.login-loader-orbit { position: absolute; inset: 0; border: 2px solid transparent; border-top-color: #d7b9f0; border-right-color: rgba(255,255,255,.28); border-radius: 50%; animation: login-loader-spin 1.25s linear infinite; }
.login-loader-orbit-secondary { inset: .55rem; border-top-color: transparent; border-right-color: #fff; border-bottom-color: rgba(141,224,208,.6); animation-direction: reverse; animation-duration: 1.8s; }
.login-loader-content strong { font-size: 1.15rem; font-weight: 760; letter-spacing: .01em; }
.login-loader-content > span { margin-top: .35rem; color: rgba(255,255,255,.7); font-size: .78rem; }
.login-loader-content .login-loader-elapsed { min-width: 4.5rem; margin-top: .65rem; padding: .2rem .55rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,255,255,.88); background: rgba(255,255,255,.08); font-size: .68rem; font-variant-numeric: tabular-nums; }
.login-loader-progress { width: 100%; height: .18rem; margin-top: .85rem; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.15); }
.login-loader-progress span { display: block; width: 45%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, transparent, #fff, #d7b9f0, transparent); animation: login-loader-progress 1.35s ease-in-out infinite; }
@keyframes login-loader-spin { to { transform: rotate(360deg); } }
@keyframes login-loader-pulse { 50% { transform: scale(1.06); box-shadow: 0 .85rem 1.8rem rgba(0,0,0,.28); } }
@keyframes login-loader-progress { from { transform: translateX(-110%); } to { transform: translateX(235%); } }
@media (prefers-reduced-motion: reduce) {
    .login-loader-orbit, .login-loader-emblem i, .login-loader-progress span { animation-duration: 3s; }
}

@media (max-width: 899.98px) {
    .login-page { place-items: start center; }
    .login-hero-shell { min-height: auto; grid-template-columns: 1fr; }
    .login-hero-copy { min-height: 25rem; }
    .login-hero-message { margin-block: 2.5rem; }
}

/* Phase 4.2 Sales & AR workspace */
.sales-workspace { --sales-ink:#24162f; --sales-purple:#60348c; --sales-soft:#f7f3fb; max-width: 1600px; margin: 0 auto; padding-bottom: 2rem; }
.sales-hero { display:flex; justify-content:space-between; gap:2rem; align-items:center; margin-bottom:1.25rem; padding:1.5rem 1.7rem; border-radius:1.1rem; color:#fff; background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.18),transparent 28%),linear-gradient(125deg,#2e153f,#67389a 65%,#8555ad); box-shadow:0 .9rem 2rem rgba(52,24,73,.18); }
.sales-hero h1 { margin:.22rem 0 .35rem; font-size:clamp(1.55rem,2.3vw,2.25rem); font-weight:750; letter-spacing:-.025em; }
.sales-hero p { max-width:48rem; margin:0; color:rgba(255,255,255,.8); font-size:.82rem; }
.sales-eyebrow { display:inline-flex; gap:.45rem; align-items:center; color:#eadcf5; font-size:.66rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.sales-hero-actions { display:flex; flex-wrap:wrap; gap:.65rem; justify-content:flex-end; align-items:center; }
.sales-status-pill { padding:.48rem .7rem; border:1px solid rgba(255,255,255,.25); border-radius:999px; background:rgba(255,255,255,.1); font-size:.7rem; font-weight:700; }
.sales-card { margin-bottom:1rem; padding:1.15rem; border:1px solid #e7dfee; border-radius:.9rem; background:#fff; box-shadow:0 .35rem 1rem rgba(49,26,65,.055); }
.sales-filter-card { background:linear-gradient(180deg,#fff,#fcfaff); }
.sales-entry-card { border-top:3px solid #74439f; }
.sales-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1rem; }
.sales-section-heading > div { display:flex; gap:.7rem; align-items:center; }
.sales-section-heading h2 { margin:0 0 .15rem; color:var(--sales-ink); font-size:1rem; font-weight:750; }
.sales-section-heading p { margin:0; color:#796e81; font-size:.7rem; }
.sales-section-icon { display:grid; flex:0 0 auto; width:2.15rem; height:2.15rem; place-items:center; border-radius:.65rem; color:#67369a; background:#f1e9f8; font-size:.95rem; }
.sales-workspace .form-label { margin-bottom:.32rem; color:#44344f; font-size:.7rem; font-weight:750; }
.sales-workspace .form-label span { color:#b4234e; }
.sales-workspace .form-control,.sales-workspace .form-select { min-height:2.38rem; border-color:#dcd2e4; border-radius:.55rem; background-color:#fff; }
.sales-workspace .form-control:focus,.sales-workspace .form-select:focus { border-color:#8656ad; box-shadow:0 0 0 .2rem rgba(103,54,154,.12); }
.sales-workspace .form-text { margin-top:.25rem; color:#8b8191; font-size:.62rem; }
.sales-workspace fieldset { margin:0 0 1rem; padding:1rem; border:1px solid #eee7f3; border-radius:.75rem; background:#fdfcfe; }
.sales-workspace legend { float:none; width:auto; margin:0 0 .75rem; padding:0 .3rem; color:#675b6f; font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.sales-form-actions { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding-top:.85rem; border-top:1px solid #eee8f2; color:#756a7d; font-size:.67rem; }
.sales-tabs { margin:1rem 0; padding:.35rem; border:1px solid #e5dceb; border-radius:.8rem; background:#f5f0f8; }
.sales-tabs .nav { gap:.35rem; }
.sales-tabs .nav-link { display:flex; gap:.45rem; align-items:center; min-height:2.45rem; padding:.55rem .85rem; border-radius:.58rem; color:#665570; font-size:.72rem; font-weight:750; }
.sales-tabs .nav-link span { padding:.1rem .38rem; border-radius:999px; background:rgba(103,54,154,.1); font-size:.6rem; }
.sales-tabs .nav-link.active { color:#fff; background:linear-gradient(135deg,#4c286d,#75429e); box-shadow:0 .25rem .65rem rgba(76,40,109,.2); }
.sales-tabs .nav-link.active span { background:rgba(255,255,255,.18); }
.sales-table { margin:0; font-size:.72rem; }
.sales-table thead th { padding:.65rem .7rem; border-bottom:1px solid #ddd2e5; color:#77677f; background:#faf7fc; font-size:.61rem; font-weight:800; letter-spacing:.045em; text-transform:uppercase; white-space:nowrap; }
.sales-table tbody td { padding:.68rem .7rem; border-color:#eee8f2; vertical-align:middle; }
.sales-table tbody tr:hover { background:#fcf9fe; }
.sales-table td strong { display:block; color:#302039; font-size:.73rem; }
.sales-table td small { display:block; margin-top:.12rem; color:#8a7e91; font-size:.61rem; }
.sales-numeric-table td:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; }
.sales-badge { display:inline-flex; padding:.25rem .5rem; border-radius:999px; font-size:.6rem; font-weight:800; }
.sales-badge-draft { color:#785a12; background:#fff1c7; }.sales-badge-confirmed { color:#185d77; background:#dff3fa; }.sales-badge-issued { color:#16633f; background:#dcf6e8; }.sales-badge-cancelled { color:#8b2f43; background:#fde3e8; }
.sales-inline-action { display:inline-flex; gap:.35rem; justify-content:flex-end; align-items:center; }.sales-inline-action .form-control { width:7.5rem; min-height:1.9rem; }
.sales-empty { padding:2rem!important; text-align:center; color:#8c8092; }.sales-empty i,.sales-empty strong,.sales-empty span { display:block; }.sales-empty i { margin-bottom:.4rem; font-size:1.5rem; }.sales-empty strong { color:#4b3b55; }
.sales-alert { display:flex; gap:.65rem; align-items:center; border-radius:.7rem; }
.sales-switch { width:100%; padding:.7rem .8rem .7rem 2.7rem; border:1px solid #e1d8e7; border-radius:.6rem; background:#faf7fc; }
@media (max-width:767.98px){.sales-hero{align-items:flex-start;flex-direction:column;padding:1.2rem}.sales-hero-actions{justify-content:flex-start}.sales-tabs .nav{display:grid;grid-template-columns:1fr}.sales-form-actions{align-items:stretch;flex-direction:column}.sales-form-actions .btn{width:100%}.sales-inline-action{align-items:stretch;flex-direction:column}.sales-inline-action .form-control{width:100%}}

@media (max-width: 575.98px) {
    .login-page { padding: 0; background: #fff; }
    .login-hero-shell { border: 0; border-radius: 0; box-shadow: none; }
    .login-hero-copy { min-height: 22rem; padding: 1.5rem; }
    .login-hero-message h1 { font-size: 2.35rem; }
    .login-feature-list span:nth-child(n+3) { display: none; }
    .login-box { padding: 1.5rem; }
}

.dashboard-refresh-meta {
    font-size: .82rem;
    font-variant-numeric: tabular-nums;
}

.dashboard-scope-card,
.dashboard-panel {
    border-radius: .35rem;
    box-shadow: none;
}

.dashboard-scope-card {
    border-left: .25rem solid var(--bs-primary);
}

.dashboard-scope-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.25rem;
    margin-top: .85rem;
    padding-top: .75rem;
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    color: var(--bs-secondary-color);
    font-size: .82rem;
}

.dashboard-loading {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: 1rem;
    padding: .65rem .8rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.dashboard-operations-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dashboard-panel {
    min-width: 0;
    margin: 0;
}

.dashboard-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 3.25rem;
    padding: .65rem .85rem;
    background: var(--bs-body-bg);
}

.dashboard-panel-header h2 {
    font-weight: 700;
}

.dashboard-primary-value {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.2;
}

.dashboard-facts {
    margin: 0;
}

.dashboard-facts > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .38rem 0;
    border-bottom: var(--bs-border-width) solid var(--bs-border-color-translucent);
}

.dashboard-facts > div:last-child {
    border-bottom: 0;
}

.dashboard-facts dt {
    color: var(--bs-secondary-color);
    font-weight: 500;
}

.dashboard-facts dd {
    margin: 0;
    text-align: right;
    font-weight: 600;
}

.dashboard-count-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem;
}

.dashboard-count-grid > div,
.dashboard-count-grid > a {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .1rem;
    min-height: 4.4rem;
    padding: .45rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    color: inherit;
    text-align: center;
    text-decoration: none;
}

.dashboard-count-grid strong {
    font-size: 1.2rem;
    font-variant-numeric: tabular-nums;
}

.dashboard-count-grid span,
.dashboard-count-grid small {
    overflow-wrap: normal;
    word-break: normal;
}

.dashboard-count-grid span {
    font-size: .75rem;
}

.dashboard-count-grid small {
    color: var(--bs-secondary-color);
    font-size: .68rem;
}

.dashboard-count-grid-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dashboard-context-note {
    margin: .7rem 0 0;
    color: var(--bs-secondary-color);
    font-size: .75rem;
}

.dashboard-policy-line {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .75rem;
    padding-top: .65rem;
    border-top: var(--bs-border-width) solid var(--bs-border-color);
    font-size: .82rem;
}

.dashboard-health-state,
.dashboard-reconciliation-state {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: .75rem;
    padding: .6rem .75rem;
    border-left: .25rem solid var(--bs-success);
    background: var(--bs-success-bg-subtle);
}

.dashboard-health-state.is-warning,
.dashboard-reconciliation-state.is-warning {
    border-left-color: var(--bs-warning);
    background: var(--bs-warning-bg-subtle);
}

.dashboard-financial-position {
    margin-bottom: 1rem;
}

.dashboard-financial-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .75rem;
}

.dashboard-financial-grid > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .3rem;
    padding: .7rem;
    border-top: .2rem solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
}

.dashboard-financial-grid > div.is-derived {
    border-top-color: var(--bs-info);
    background: var(--bs-info-bg-subtle);
}

.dashboard-financial-grid span {
    color: var(--bs-secondary-color);
    font-size: .76rem;
}

.dashboard-financial-grid span small {
    display: block;
    margin-top: .15rem;
}

.dashboard-financial-grid strong {
    overflow-wrap: anywhere;
    font-size: 1rem;
}

.dashboard-reconciliation-state {
    justify-content: space-between;
    flex-wrap: wrap;
    margin: .8rem 0 0;
}

.dashboard-attention-list,
.dashboard-attention-group {
    display: grid;
    gap: .45rem;
}

.dashboard-attention-list span,
.dashboard-attention-group span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding-bottom: .35rem;
    border-bottom: var(--bs-border-width) solid var(--bs-border-color-translucent);
    font-size: .82rem;
}

.dashboard-attention-group + .dashboard-attention-group {
    margin-top: .85rem;
}

.dashboard-attention-group > a {
    font-weight: 600;
}

.dashboard-widget-error {
    padding: .65rem .75rem;
    border-left: .25rem solid var(--bs-warning);
    background: var(--bs-warning-bg-subtle);
    color: var(--bs-body-color);
    font-size: .82rem;
}

.dashboard-recent-table {
    min-width: 48rem;
}

.dashboard-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem;
}

.dashboard-quick-actions a {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
    padding: .6rem .7rem;
    border: var(--bs-border-width) solid var(--bs-border-color);
    color: var(--bs-body-color);
    text-decoration: none;
}

.dashboard-quick-actions a:hover,
.dashboard-quick-actions a:focus-visible,
.dashboard-count-grid > a:hover,
.dashboard-count-grid > a:focus-visible {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.dashboard-quick-actions span {
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 1199.98px) {
    .dashboard-grid,
    .dashboard-operations-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-financial-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .dashboard-refresh-meta {
        width: 100%;
        text-align: left !important;
    }

    .dashboard-grid,
    .dashboard-operations-grid,
    .dashboard-financial-grid {
        grid-template-columns: 1fr;
    }

    .dashboard-count-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dashboard-panel-header {
        align-items: flex-start;
    }

    .dashboard-quick-actions {
        grid-template-columns: 1fr;
    }

    .dashboard-reconciliation-state {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Late cascade alignment for the shared shell and dashboard. */
.card,
.small-box {
    border-radius: .5rem !important;
}

.dashboard-scope-card,
.dashboard-panel {
    border-radius: .5rem;
    box-shadow: 0 .25rem 1rem rgba(23, 33, 58, .04);
}

.dashboard-scope-card {
    border-left: 1px solid var(--finance-border);
}

.dashboard-grid {
    gap: .85rem;
    margin-bottom: .5rem;
}

.dashboard-panel-header {
    border-bottom: 1px solid #e8edeb;
    background: #fff;
}

.dashboard-panel-header h2 {
    color: var(--finance-ink);
    font-size: .82rem;
}

.dashboard-panel-header h2 .bi {
    color: var(--finance-teal);
}

.dashboard-primary-value {
    color: var(--finance-ink);
    font-size: 1.7rem;
}

.dashboard-count-grid > div,
.dashboard-count-grid > a {
    border-radius: .35rem;
    background: #fafcfb;
}

.dashboard-financial-position {
    margin-top: .85rem;
}

.dashboard-financial-grid > div {
    border-radius: .3rem;
}

.dashboard-health-state,
.dashboard-reconciliation-state,
.dashboard-quick-actions a {
    border-radius: .35rem;
}

/* Access control workspace */
.rbac-table th {
    white-space: nowrap;
}

.rbac-avatar,
.rbac-role-icon {
    display: inline-grid;
    width: 2.15rem;
    height: 2.15rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .35rem;
    background: #e8f4f0;
    color: #593083;
    font-weight: 750;
}

.rbac-avatar-lg {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.05rem;
}

.rbac-identity-band {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .85rem 1rem;
    border: 1px solid var(--finance-border);
    border-radius: .5rem;
    background: #fff;
}

.rbac-identity-band span:last-child,
.rbac-choice span {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.rbac-identity-band small,
.rbac-choice small {
    color: var(--bs-secondary-color);
}

.rbac-choice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.rbac-choice {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    min-height: 3.25rem;
    padding: .7rem;
    border: 1px solid var(--finance-border);
    border-radius: .4rem;
    cursor: pointer;
}

.rbac-choice:has(input:checked) {
    border-color: #a982cb;
    background: #f7f2fc;
}

.rbac-role-card {
    border-top: 3px solid #67369a;
}

.rbac-role-description {
    min-height: 2.6rem;
}

.rbac-role-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem;
    margin-top: 1rem;
}

.rbac-role-metrics span {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: .6rem;
    border-radius: .35rem;
    background: #f7f9f8;
}

.rbac-role-metrics small {
    color: var(--bs-secondary-color);
    font-size: .68rem;
    text-transform: uppercase;
}

.rbac-permission-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid var(--finance-border);
}

.rbac-permission-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin-top: .85rem;
}

.rbac-permission-group {
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--finance-border);
    border-radius: .4rem;
}

.rbac-permission-group legend {
    float: none;
    width: auto;
    margin: 0 0 .45rem;
    padding: 0 .2rem;
    color: #593083;
    font-size: .75rem;
    font-weight: 750;
    text-transform: uppercase;
}

.rbac-permission-group label {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .45rem .25rem;
    cursor: pointer;
}

.rbac-permission-group label + label {
    border-top: 1px solid #edf0ef;
}

.rbac-permission-group label span {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.rbac-permission-group label small {
    overflow: hidden;
    color: var(--bs-secondary-color);
    font-size: .66rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .rbac-permission-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .rbac-choice-grid,
    .rbac-permission-grid {
        grid-template-columns: 1fr;
    }

    .rbac-permission-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Keep the dashboard theme above legacy compatibility rules. */
.dashboard-page .dashboard-panel {
    overflow: hidden;
    border: 0;
    border-top: .28rem solid var(--panel-accent);
    border-radius: .75rem;
    box-shadow: 0 .65rem 1.6rem rgba(23,33,58,.09);
}
.dashboard-page .dashboard-panel:hover { box-shadow: 0 .9rem 2rem rgba(23,33,58,.12); }
.dashboard-page .dashboard-panel-header { background: linear-gradient(90deg, color-mix(in srgb, var(--panel-accent) 10%, white), #fff 70%); }
.dashboard-page .dashboard-panel-header h2 .bi { color: var(--panel-accent); }
.dashboard-page .dashboard-count-grid > div,
.dashboard-page .dashboard-count-grid > a,
.dashboard-page .dashboard-quick-actions a { background: linear-gradient(145deg, #fff, color-mix(in srgb, var(--panel-accent) 7%, white)); }

/* Professional form controls */
.finance-app-shell .form-label,
.login-page .form-label { margin-bottom: .38rem; color: #455450; font-size: .72rem; font-weight: 750; letter-spacing: .018em; }
.finance-app-shell .form-control:not(.form-control-color):not(.form-control-plaintext),
.finance-app-shell .form-select,
.login-page .form-control:not(.form-control-color):not(.form-control-plaintext),
.login-page .form-select {
    min-height: 2.6rem;
    padding: .48rem .72rem;
    border: 1px solid #cdd9d5;
    border-radius: .5rem;
    color: var(--finance-ink);
    background-color: rgba(255,255,255,.92);
    box-shadow: inset 0 1px 2px rgba(23,33,58,.025), 0 .12rem .3rem rgba(23,33,58,.035);
    transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease;
}
.finance-app-shell .form-control-sm,
.finance-app-shell .form-select-sm { min-height: 2.15rem; padding-block: .3rem; border-radius: .4rem; font-size: .78rem; }
.finance-app-shell textarea.form-control { min-height: 5.5rem; resize: vertical; }
.finance-app-shell .form-control:hover:not(:disabled):not([readonly]),
.finance-app-shell .form-select:hover:not(:disabled),
.login-page .form-control:hover:not(:disabled):not([readonly]) { border-color: #8fbab0; background-color: #fff; }
.finance-app-shell .form-control:focus,
.finance-app-shell .form-select:focus,
.login-page .form-control:focus,
.login-page .form-select:focus {
    border-color: var(--finance-teal);
    outline: 0;
    background-color: #fff;
    box-shadow: 0 0 0 .18rem rgba(103,54,154,.14), 0 .5rem 1.15rem rgba(103,54,154,.1);
    transform: translateY(-1px);
}
.finance-app-shell .form-control:disabled,
.finance-app-shell .form-select:disabled,
.finance-app-shell .form-control[readonly] { color: #6f7b77; background-color: #edf2f0; box-shadow: none; cursor: not-allowed; }
.finance-app-shell .input-group-text,
.login-page .input-group-text { min-width: 2.65rem; justify-content: center; border-color: #d8cce5; color: var(--finance-teal); background: linear-gradient(145deg, #f6f0fb, #ebe1f5); }
.finance-app-shell .input-group:focus-within .input-group-text,
.login-page .input-group:focus-within .input-group-text { border-color: var(--finance-teal); color: #fff; background: linear-gradient(135deg, var(--finance-teal), var(--finance-blue)); box-shadow: 0 0 0 .18rem rgba(103,54,154,.1); }
.finance-app-shell .form-check-input { width: 1.08rem; height: 1.08rem; border: 1px solid #aebdb8; box-shadow: 0 .1rem .25rem rgba(23,33,58,.06); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.finance-app-shell .form-check-input:checked { border-color: var(--finance-teal); background-color: var(--finance-teal); }
.finance-app-shell .form-check-input:focus { border-color: var(--finance-teal); box-shadow: 0 0 0 .2rem rgba(103,54,154,.16); transform: scale(1.05); }
.finance-app-shell .form-text { color: #74817d; font-size: .68rem; }
.finance-app-shell .input-validation-error { border-color: var(--finance-coral) !important; box-shadow: 0 0 0 .16rem rgba(206,98,104,.1) !important; }

/* Universal hero grid and export toolbar */
.finance-grid-toolbar { display: flex; min-height: 4.25rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; border: 1px solid rgba(103,54,154,.24); border-bottom: 0; border-radius: .72rem .72rem 0 0; color: #fff; background: radial-gradient(circle at 85% 20%, rgba(255,255,255,.16), transparent 22%), linear-gradient(112deg, #32174f, #67369a 56%, #8b62b8); box-shadow: 0 .55rem 1.25rem rgba(36,26,53,.12); }
.finance-grid-identity { display: flex; min-width: 0; align-items: center; gap: .7rem; }
.finance-grid-identity > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.finance-grid-identity strong { overflow: hidden; color: #fff; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.finance-grid-identity small { color: rgba(255,255,255,.68); font-size: .66rem; }
.finance-grid-mark { display: grid; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: .55rem; background: rgba(255,255,255,.14); font-size: 1.05rem; }
.finance-grid-actions { display: flex; flex: 0 0 auto; gap: .4rem; }
.finance-grid-actions .btn { display: inline-flex; min-height: 2.25rem; align-items: center; gap: .38rem; padding: .35rem .62rem; border: 1px solid rgba(255,255,255,.28); border-radius: .45rem; color: #fff; background: rgba(255,255,255,.1); font-size: .7rem; font-weight: 700; }
.finance-grid-actions .btn:hover,
.finance-grid-actions .btn:focus-visible { border-color: #fff; color: var(--finance-teal-dark); background: #fff; box-shadow: 0 .4rem .8rem rgba(0,0,0,.14); transform: translateY(-1px); }
.finance-grid-shell { overflow: auto; border: 1px solid var(--finance-border); border-top: 0; border-radius: 0 0 .72rem .72rem; background: #fff; box-shadow: 0 .65rem 1.45rem rgba(23,33,58,.08); }
.finance-professional-grid { margin-bottom: 0 !important; border-collapse: separate; border-spacing: 0; }
.finance-professional-grid thead th { position: sticky; top: 0; z-index: 2; padding: .72rem .75rem; border-bottom: 0; color: #40304f; background: linear-gradient(180deg, #f7f2fc, #eee5f6); box-shadow: inset 0 -1px #d9cde5; font-size: .68rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.finance-professional-grid tbody td { padding: .7rem .75rem; border-color: #e8eeec; vertical-align: middle; transition: background-color .14s ease; }
.finance-professional-grid tbody tr:nth-child(even) td { background: rgba(237,246,243,.42); }
.finance-professional-grid.table-hover tbody tr:hover > td { background: #eee4f8; }
.finance-professional-grid tbody tr:focus-within > td { background: #eef7ff; box-shadow: inset 0 1px rgba(61,109,153,.15), inset 0 -1px rgba(61,109,153,.15); }
.finance-professional-grid tfoot td,
.finance-professional-grid tfoot th { padding: .75rem; border-top: 2px solid #b9ccc6; background: #f0f6f4; font-weight: 750; }

@media (max-width: 575.98px) {
    .finance-grid-toolbar { align-items: flex-start; flex-direction: column; }
    .finance-grid-actions { width: 100%; }
    .finance-grid-actions .btn { flex: 1 1 0; justify-content: center; }
    .finance-grid-actions .btn span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .finance-app-shell .form-control,
    .finance-app-shell .form-select,
    .finance-grid-actions .btn { transition: none; }
}

/* Compact loader for authenticated application navigation and actions */
.app-action-is-loading { cursor: wait; }
.app-action-loader { position: fixed; inset: 0; z-index: 9998; display: grid; visibility: hidden; place-items: center; opacity: 0; pointer-events: none; transition: visibility 0s linear .18s, opacity .18s ease; }
.app-action-loader.is-visible { visibility: visible; opacity: 1; pointer-events: auto; transition-delay: 0s; }
.app-action-loader-backdrop { position: absolute; inset: 0; background: rgba(42,20,67,.13); backdrop-filter: blur(1.5px); }
.app-action-loader-card { position: relative; display: flex; min-width: 13.5rem; align-items: center; gap: .8rem; padding: .72rem .9rem; border: 1px solid rgba(255,255,255,.72); border-radius: .8rem; color: #fff; background: linear-gradient(120deg, rgba(50,23,79,.95), rgba(103,54,154,.93)); box-shadow: 0 .9rem 2.2rem rgba(32,16,48,.25); backdrop-filter: blur(10px); }
.app-action-loader-card > div:last-child { display: flex; flex-direction: column; }
.app-action-loader-card strong { color: #fff; font-size: .78rem; font-weight: 780; letter-spacing: .025em; }
.app-action-loader-card small { color: rgba(255,255,255,.7); font-size: .62rem; }
.app-action-loader-emblem { position: relative; display: grid; width: 2.7rem; height: 2.7rem; flex: 0 0 auto; place-items: center; }
.app-action-loader-emblem > span { position: absolute; inset: 0; border: 2px solid rgba(255,255,255,.2); border-top-color: #fff; border-right-color: #d7b9f0; border-radius: 50%; animation: app-action-loader-spin .9s linear infinite; }
.app-action-loader-emblem i { display: grid; width: 1.75rem; height: 1.75rem; place-items: center; border-radius: .38rem; color: var(--finance-teal-dark); background: #fff; font-size: .78rem; box-shadow: 0 .3rem .65rem rgba(0,0,0,.18); }
@keyframes app-action-loader-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .app-action-loader-emblem > span { animation-duration: 2.2s; } }

/* Final visual refinement: natural hero, deeper purple, compact forms, colorful workspaces. */
.dashboard-page .dashboard-hero {
    isolation: isolate;
    background-color: transparent;
    background-blend-mode: normal;
}
.dashboard-page .dashboard-hero::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(9,7,13,.78) 0%, rgba(9,7,13,.5) 46%, rgba(9,7,13,.08) 78%, transparent 100%);
    pointer-events: none;
}

.login-page {
    background-color: rgba(18,6,31,.92);
    background-image: url("../images/erp360-login-hero-v2.png");
}
.login-hero-copy {
    background:
        radial-gradient(circle at 85% 12%, rgba(188,151,224,.14), transparent 24%),
        linear-gradient(145deg, rgba(18,6,31,.95), rgba(53,18,78,.9));
}
.login-hero-shell { border-color: rgba(211,184,235,.26); box-shadow: 0 2rem 5rem rgba(10,3,18,.58); }

.finance-app-shell .form-control:not(.form-control-color):not(.form-control-plaintext),
.finance-app-shell .form-select,
.login-page .form-control:not(.form-control-color):not(.form-control-plaintext),
.login-page .form-select {
    min-height: 2.25rem;
    padding: .34rem .62rem;
    font-size: .76rem;
    line-height: 1.25;
}
.login-box .form-control,
.login-box .input-group-text { min-height: 2.45rem; }
.finance-app-shell .form-control-sm,
.finance-app-shell .form-select-sm { min-height: 1.95rem; padding-block: .22rem; font-size: .7rem; }
.finance-app-shell textarea.form-control { min-height: 4.5rem; }
.finance-app-shell .form-control:disabled,
.finance-app-shell .form-select:disabled,
.finance-app-shell .form-control[readonly],
.finance-app-shell fieldset:disabled .form-control,
.finance-app-shell fieldset:disabled .form-select {
    border-color: #d3d5da;
    color: #85868c;
    background: #ececef;
    box-shadow: inset 0 1px 2px rgba(30,30,35,.04);
    cursor: not-allowed;
    opacity: 1;
}
.finance-app-shell .form-control:disabled:hover,
.finance-app-shell .form-select:disabled:hover,
.finance-app-shell .form-control[readonly]:hover { border-color: #c5c7cd; background: #e6e7ea; cursor: not-allowed; }
.finance-app-shell .input-group:has(.form-control:disabled) .input-group-text,
.finance-app-shell .input-group:has(.form-control[readonly]) .input-group-text { border-color: #d3d5da; color: #8d8e94; background: #e3e4e8; cursor: not-allowed; }
.finance-app-shell button:disabled,
.finance-app-shell .btn.disabled,
.finance-app-shell .btn:disabled { cursor: not-allowed; filter: grayscale(.35); opacity: .58; }

.finance-grid-toolbar {
    border-color: rgba(74,31,107,.5);
    background:
        radial-gradient(circle at 84% 16%, rgba(199,164,231,.16), transparent 22%),
        linear-gradient(112deg, #160820, #301044 55%, #4a1f6b);
    box-shadow: 0 .6rem 1.4rem rgba(24,8,35,.2);
}
.finance-grid-actions .btn { border-color: rgba(225,204,243,.34); background: rgba(25,7,38,.28); }
.finance-grid-actions .btn:hover,
.finance-grid-actions .btn:focus-visible { color: #251031; background: #f1e6fa; }
.finance-professional-grid thead th {
    color: #fff;
    background: linear-gradient(180deg, #321448, #241031);
    box-shadow: inset 0 -1px rgba(223,197,244,.22);
}

.touch-theme-home { --touch-accent: #6b35a0; --touch-soft: #eee3f8; }
.touch-theme-operations { --touch-accent: #c56824; --touch-soft: #fff0e2; }
.touch-theme-structure { --touch-accent: #3568a9; --touch-soft: #e5effa; }
.touch-theme-insights { --touch-accent: #6050b0; --touch-soft: #ebe8fb; }
.touch-theme-admin { --touch-accent: #b4487a; --touch-soft: #f9e5ef; }
.touch-launch-group { border-top-width: .38rem; box-shadow: 0 .75rem 1.65rem color-mix(in srgb, var(--touch-accent) 16%, transparent); }
.touch-launch-tile {
    min-height: 5rem;
    border-bottom-width: 4px;
    background: linear-gradient(145deg, #fff 35%, var(--touch-soft));
    box-shadow: 0 .38rem .8rem color-mix(in srgb, var(--touch-accent) 12%, transparent);
}
.touch-launch-tile strong { color: color-mix(in srgb, var(--touch-accent) 72%, #16111d); font-weight: 780; }

.dashboard-page .dashboard-panel { border-top-width: .38rem; box-shadow: 0 .75rem 1.75rem color-mix(in srgb, var(--panel-accent) 14%, transparent); }
.dashboard-page .dashboard-panel-header {
    background: linear-gradient(100deg, color-mix(in srgb, var(--panel-accent) 17%, white), #fff 76%);
}
.dashboard-page .dashboard-count-grid > div,
.dashboard-page .dashboard-count-grid > a { border-left: .24rem solid var(--panel-accent); box-shadow: 0 .24rem .55rem color-mix(in srgb, var(--panel-accent) 9%, transparent); }
.dashboard-page .dashboard-quick-actions a {
    --quick-accent: #67369a;
    min-height: 4rem;
    border: 1px solid color-mix(in srgb, var(--quick-accent) 32%, white);
    border-left: .3rem solid var(--quick-accent);
    color: color-mix(in srgb, var(--quick-accent) 76%, #17111c);
    background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--quick-accent) 12%, white));
    box-shadow: 0 .35rem .75rem color-mix(in srgb, var(--quick-accent) 13%, transparent);
    font-weight: 730;
    transition: transform .16s ease, box-shadow .16s ease, color .16s ease, background .16s ease;
}
.dashboard-page .dashboard-quick-actions a:nth-child(6n + 2) { --quick-accent: #3568a9; }
.dashboard-page .dashboard-quick-actions a:nth-child(6n + 3) { --quick-accent: #c56824; }
.dashboard-page .dashboard-quick-actions a:nth-child(6n + 4) { --quick-accent: #b4487a; }
.dashboard-page .dashboard-quick-actions a:nth-child(6n + 5) { --quick-accent: #217d8f; }
.dashboard-page .dashboard-quick-actions a:nth-child(6n + 6) { --quick-accent: #4f7e45; }
.dashboard-page .dashboard-quick-actions a .bi { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border-radius: .45rem; color: #fff; background: var(--quick-accent); box-shadow: 0 .3rem .65rem color-mix(in srgb, var(--quick-accent) 25%, transparent); }
.dashboard-page .dashboard-quick-actions a:hover,
.dashboard-page .dashboard-quick-actions a:focus-visible { border-color: var(--quick-accent); color: #fff; background: linear-gradient(135deg, var(--quick-accent), color-mix(in srgb, var(--quick-accent) 72%, #17111c)); box-shadow: 0 .65rem 1.15rem color-mix(in srgb, var(--quick-accent) 24%, transparent); transform: translateY(-2px); }
.dashboard-page .dashboard-quick-actions a:hover .bi,
.dashboard-page .dashboard-quick-actions a:focus-visible .bi { color: var(--quick-accent); background: #fff; }

/* Give every Touch Space action its own AdminLTE-style accent. */
.touch-launch-grid .touch-launch-tile { --tile-accent: #67369a; }
.touch-launch-grid .touch-launch-tile:nth-child(6n + 2) { --tile-accent: #3568a9; }
.touch-launch-grid .touch-launch-tile:nth-child(6n + 3) { --tile-accent: #c56824; }
.touch-launch-grid .touch-launch-tile:nth-child(6n + 4) { --tile-accent: #b4487a; }
.touch-launch-grid .touch-launch-tile:nth-child(6n + 5) { --tile-accent: #217d8f; }
.touch-launch-grid .touch-launch-tile:nth-child(6n + 6) { --tile-accent: #4f7e45; }
.touch-launch-grid .touch-launch-tile {
    border-color: color-mix(in srgb, var(--tile-accent) 30%, white);
    border-left: .3rem solid var(--tile-accent);
    border-bottom-color: var(--tile-accent);
    background: linear-gradient(135deg, #fff 35%, color-mix(in srgb, var(--tile-accent) 12%, white));
    box-shadow: 0 .38rem .8rem color-mix(in srgb, var(--tile-accent) 14%, transparent);
}
.touch-launch-grid .touch-launch-tile > .bi:first-child {
    color: #fff;
    background: linear-gradient(135deg, var(--tile-accent), color-mix(in srgb, var(--tile-accent) 72%, #17111c));
    box-shadow: 0 .3rem .65rem color-mix(in srgb, var(--tile-accent) 26%, transparent);
}
.touch-launch-grid .touch-launch-tile > .bi:last-child { color: var(--tile-accent); }
.touch-launch-grid .touch-launch-tile strong { color: color-mix(in srgb, var(--tile-accent) 78%, #17111c); }
.touch-launch-grid .touch-launch-tile:hover,
.touch-launch-grid .touch-launch-tile:focus-visible {
    border-color: var(--tile-accent);
    color: #fff;
    background: linear-gradient(135deg, var(--tile-accent), color-mix(in srgb, var(--tile-accent) 72%, #17111c));
    box-shadow: 0 .7rem 1.2rem color-mix(in srgb, var(--tile-accent) 26%, transparent);
}
.touch-launch-grid .touch-launch-tile:hover strong,
.touch-launch-grid .touch-launch-tile:focus-visible strong,
.touch-launch-grid .touch-launch-tile:hover small,
.touch-launch-grid .touch-launch-tile:focus-visible small { color: #fff; }
.touch-launch-grid .touch-launch-tile:hover > .bi:first-child,
.touch-launch-grid .touch-launch-tile:focus-visible > .bi:first-child { color: var(--tile-accent); background: #fff; }
.touch-launch-grid .touch-launch-tile:hover > .bi:last-child,
.touch-launch-grid .touch-launch-tile:focus-visible > .bi:last-child { color: #fff; }

/* Consistent, restrained row contrast for every enhanced grid. */
.finance-professional-grid tbody tr:nth-child(even):not(.table-danger):not(.table-warning):not(.table-success):not(.table-info) > td {
    --bs-table-bg-type: #faf7fd;
    background-color: #faf7fd;
}
.finance-professional-grid.table-hover tbody tr:not(.table-danger):not(.table-warning):not(.table-success):not(.table-info):hover > td {
    --bs-table-bg-state: #ddcbed;
    color: #241a35;
    background-color: #ddcbed;
}

.finance-professional-grid { font-size: .72rem; line-height: 1.25; }
.finance-professional-grid thead th { padding: .52rem .62rem; font-size: .62rem; }
.finance-professional-grid tbody td { padding: .44rem .62rem; }
.finance-professional-grid tfoot td,
.finance-professional-grid tfoot th { padding: .5rem .62rem; }
.finance-professional-grid .small,
.finance-professional-grid small { font-size: .64rem; }
.finance-professional-grid .btn-sm,
.finance-professional-grid .btn-group-sm > .btn { min-height: 1.8rem; padding: .2rem .42rem; font-size: .66rem; }
.finance-professional-grid .form-control-sm,
.finance-professional-grid .form-select-sm { min-height: 1.75rem; padding: .18rem .38rem; font-size: .68rem; }

/* Near-transparent login glass with protected content contrast. */
.login-hero-shell {
    border-color: rgba(235,220,248,.4);
    background: rgba(34,14,51,.08);
    backdrop-filter: blur(5px) saturate(110%);
}
.login-hero-copy {
    background:
        radial-gradient(circle at 85% 12%, rgba(220,194,243,.12), transparent 24%),
        linear-gradient(145deg, rgba(18,6,31,.52), rgba(53,18,78,.42));
    backdrop-filter: blur(3px);
    text-shadow: 0 1px 2px rgba(8,3,14,.5);
}
.login-box {
    background: rgba(255,255,255,.42);
    backdrop-filter: blur(18px) saturate(125%);
}
.login-box .card {
    border-color: rgba(255,255,255,.68) !important;
    background: rgba(255,255,255,.28);
    box-shadow: 0 .9rem 2.2rem rgba(20,8,31,.16) !important;
    backdrop-filter: blur(18px) saturate(120%);
}
.login-form-heading h2,
.login-box .form-label { color: #1f1429; text-shadow: 0 1px 0 rgba(255,255,255,.55); }
.login-form-intro,
.login-support-note { color: #45394e; }
.login-box .form-control,
.login-box .form-select { border-color: rgba(103,54,154,.3); background-color: rgba(255,255,255,.9); backdrop-filter: blur(8px); }
.login-box .input-group-text { border-color: rgba(103,54,154,.3); background: rgba(238,228,248,.9); }
.login-box .alert { border-width: 1px; background-color: rgba(var(--bs-danger-rgb),.9); }

/* Compact, elegant control and display typography across ERP 360. */
.finance-app-content { font-size: .84rem; }
.finance-app-content .card-body,
.finance-app-content .card-footer,
.finance-app-content .alert,
.finance-app-content .dropdown-menu { font-size: .8rem; }
.finance-app-content p,
.finance-app-content dl,
.finance-app-content .form-text,
.finance-app-content .text-body-secondary { line-height: 1.42; }

.finance-app-shell input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]),
.finance-app-shell select,
.finance-app-shell textarea,
.login-page input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]),
.login-page select,
.login-page textarea {
    font-size: .74rem;
    letter-spacing: .008em;
}
.finance-app-shell .form-control::placeholder,
.login-page .form-control::placeholder { color: #98939e; font-size: .7rem; opacity: 1; }
.finance-app-shell .form-select,
.login-page .form-select { padding-right: 2rem; background-size: 12px 9px; }
.finance-app-shell input[type="date"],
.finance-app-shell input[type="datetime-local"],
.finance-app-shell input[type="month"],
.finance-app-shell input[type="time"] { font-variant-numeric: tabular-nums; }
.finance-app-shell input[type="file"] { padding: .22rem .35rem; }
.finance-app-shell input[type="file"]::file-selector-button {
    margin: -.22rem .55rem -.22rem -.35rem;
    padding: .38rem .6rem;
    border: 0;
    border-right: 1px solid #d8cce5;
    color: #fff;
    background: linear-gradient(135deg, #3d1d62, #67369a);
    font-size: .68rem;
    font-weight: 700;
    transition: background .16s ease;
}
.finance-app-shell input[type="file"]:hover::file-selector-button { background: linear-gradient(135deg, #2b123f, #512679); }
.finance-app-shell .form-range { height: 1.35rem; }
.finance-app-shell .form-range::-webkit-slider-thumb { width: .9rem; height: .9rem; background: #67369a; box-shadow: 0 .18rem .4rem rgba(61,29,98,.25); }
.finance-app-shell .form-range::-moz-range-thumb { width: .9rem; height: .9rem; border: 0; background: #67369a; box-shadow: 0 .18rem .4rem rgba(61,29,98,.25); }
.finance-app-shell .form-check-label { color: #44374f; font-size: .75rem; line-height: 1.35; }
.finance-app-shell .form-floating > .form-control,
.finance-app-shell .form-floating > .form-select { min-height: 3rem; }
.finance-app-shell .form-floating > label { padding: .72rem; color: #716879; font-size: .72rem; }
.finance-app-shell .input-group .btn { font-size: .72rem; }
.finance-app-shell .badge { font-size: .64rem; font-weight: 700; }

@media (prefers-reduced-motion: reduce) {
    .finance-app-shell input,
    .finance-app-shell select,
    .finance-app-shell textarea { transition: none !important; }
}

/* Vertically compact login composition. */
.login-hero-shell { min-height: min(38rem, calc(100vh - 2rem)); }
.login-hero-copy { padding: clamp(1.5rem, 3.5vw, 3rem); }
.login-hero-message { margin-block: 1.5rem; }
.login-hero-message h1 { max-width: 32rem; margin-bottom: .7rem; font-size: clamp(2.15rem, 3.7vw, 3.55rem); line-height: 1; }
.login-hero-message > p { margin-bottom: .75rem; font-size: .88rem; line-height: 1.4; }
.login-hero-kicker { margin-bottom: .65rem; }
.login-feature-list { gap: .45rem; margin-top: .9rem; }
.login-feature-list span { padding: .4rem .58rem; font-size: .66rem; }
.login-box { padding: clamp(1.4rem, 3vw, 2.5rem); }
.login-form-heading h2 { font-size: 1.25rem; }
.login-form-icon { width: 2.6rem; height: 2.6rem; font-size: 1.05rem; }
.login-form-intro { margin: .65rem 0 .85rem; font-size: .76rem; }
.login-box .card-body { padding: 1.2rem !important; }
.login-box .card-body .mb-3 { margin-bottom: .65rem !important; }
.login-box .card-body .mb-4 { margin-bottom: .85rem !important; }
.login-submit { min-height: 2.7rem; }
.login-support-note { margin-top: .7rem; }

@media (max-width: 899.98px) {
    .login-hero-copy { min-height: 20rem; }
    .login-hero-message { margin-block: 1.5rem; }
}
/* Phase 4.4 Inventory workspace */
.purchase-hero{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2rem;margin-bottom:1.25rem;border-radius:1.25rem;color:#fff;background:linear-gradient(125deg,#34205d,#7841a5 58%,#a95e84);box-shadow:0 18px 40px rgba(45,23,70,.2)}.purchase-hero h1{margin:.35rem 0;font-weight:750}.purchase-hero p{margin:0;max-width:760px;color:#f4eaff}.purchase-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700}.purchase-filter,.purchase-card{background:#fff;border:1px solid #eadff0;border-radius:1rem;padding:1.35rem;box-shadow:0 8px 25px rgba(48,31,76,.07)}.purchase-tabs{gap:.5rem;margin:1.25rem 0}.purchase-tabs .nav-link{color:#56365f;background:#f1e9f3;font-weight:650}.purchase-tabs .nav-link.active{background:#754095}.purchase-card h2{font-size:1.12rem;font-weight:750}.purchase-heading{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1.25rem}.purchase-heading>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:#f2e7f4;color:#754095}.purchase-heading h2,.purchase-heading p{margin:0}.purchase-heading p{color:#75677a;font-size:.88rem}.purchase-subtitle{font-size:.95rem;font-weight:700}.purchase-card .form-label,.purchase-filter .form-label{font-weight:650;color:#3a2940}@media(max-width:768px){.purchase-hero{align-items:flex-start;flex-direction:column;padding:1.4rem}.purchase-hero .btn{width:100%}.purchase-filter,.purchase-card{padding:1rem}}
.touch-launch-tile.is-unavailable,.dashboard-quick-action-unavailable{cursor:not-allowed;filter:saturate(.35);opacity:.68}.touch-launch-tile.is-unavailable{display:flex}.dashboard-quick-action-unavailable{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px dashed #cfc5dd;border-radius:.65rem;color:#756b80;background:#f5f2f8}.dashboard-quick-action-unavailable small{display:block;font-size:.64rem;color:#8f8499}
.inventory-hero{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:2rem;margin-bottom:1.25rem;border-radius:1.25rem;color:#fff;background:linear-gradient(125deg,#211044,#5b2aa5 58%,#7854d8);box-shadow:0 18px 40px rgba(39,18,78,.2)}.inventory-hero h1{margin:.35rem 0;font-weight:750}.inventory-hero p{margin:0;max-width:750px;color:#eee7ff}.inventory-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700}.inventory-filter,.inventory-card{background:#fff;border:1px solid #e8e2f2;border-radius:1rem;padding:1.35rem;box-shadow:0 8px 25px rgba(48,31,76,.07)}.inventory-tabs{gap:.5rem;margin:1.25rem 0}.inventory-tabs .nav-link{color:#4a326f;background:#eee9f7;font-weight:650}.inventory-tabs .nav-link.active{background:#56309a}.inventory-card h2{font-size:1.12rem;font-weight:750}.card-heading{display:flex;gap:.85rem;align-items:flex-start;margin-bottom:1.25rem}.card-heading>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:#eee8fa;color:#56309a}.card-heading h2,.card-heading p{margin:0}.card-heading p{color:#746b82;font-size:.88rem}.inventory-subtitle{font-size:.95rem;font-weight:700}.inventory-card .form-label,.inventory-filter .form-label{font-weight:650;color:#342449}.inventory-card .field-validation-error{display:block;color:#b42318;font-size:.8rem;margin-top:.25rem}@media(max-width:768px){.inventory-hero{align-items:flex-start;flex-direction:column;padding:1.4rem}.inventory-hero .btn{width:100%}.inventory-filter,.inventory-card{padding:1rem}}
