:root {
    --finbu-ink: #0b2e32;
    --finbu-ink-soft: #476568;
    --finbu-brand-950: #04272b;
    --finbu-brand-900: #07363a;
    --finbu-brand-800: #0b484b;
    --finbu-brand-700: #0e5c5d;
    --finbu-brand-600: #137573;
    --finbu-brand-500: #17918b;
    --finbu-accent: #27b4aa;
    --finbu-gold: #cfb265;
    --finbu-canvas: #edf4f3;
    --finbu-surface: rgba(255, 255, 255, .82);
    --finbu-surface-strong: rgba(255, 255, 255, .94);
    --finbu-surface-dark: rgba(5, 42, 46, .88);
    --finbu-border: rgba(255, 255, 255, .72);
    --finbu-border-dark: rgba(9, 74, 77, .13);
    --finbu-shadow-sm: 0 10px 28px rgba(7, 54, 58, .08);
    --finbu-shadow-md: 0 22px 54px rgba(5, 43, 47, .13);
    --finbu-shadow-lg: 0 34px 90px rgba(2, 27, 31, .24);
    --finbu-radius-sm: 12px;
    --finbu-radius-md: 18px;
    --finbu-radius-lg: 26px;
    --finbu-sidebar-width: 286px;
    --finbu-transition: 180ms cubic-bezier(.2, .75, .25, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.finbu-admin-body,
body.finbu-auth-body {
    color: var(--finbu-ink);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.finbu-skip-link {
    position: fixed;
    left: 1rem;
    top: -6rem;
    z-index: 10000;
    padding: .8rem 1rem;
    border-radius: 10px;
    color: #fff;
    background: var(--finbu-brand-950);
    transition: top var(--finbu-transition);
}

.finbu-skip-link:focus { top: 1rem; color: #fff; }

:where(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid rgba(39, 180, 170, .42) !important;
    outline-offset: 3px;
}

/* Authentication */
.finbu-auth-body { min-width: 320px; min-height: 100vh; margin: 0; background: var(--finbu-brand-950); }

.finbu-auth {
    position: relative;
    min-height: 100svh;
    isolation: isolate;
    overflow: hidden;
    background-color: var(--finbu-brand-950);
    background-image: var(--finbu-auth-image);
    background-position: center;
    background-size: cover;
}

@supports (background-image: url("image.webp")) {
    .finbu-auth { background-image: url('/img/config/login/bg/fondo-finbu.webp'); }
}

.finbu-auth__overlay {
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        linear-gradient(100deg, rgba(2, 31, 36, .92) 0%, rgba(3, 45, 50, .72) 48%, rgba(3, 34, 39, .82) 100%),
        radial-gradient(circle at 80% 20%, rgba(39, 180, 170, .22), transparent 35%);
}

.finbu-auth__orb {
    position: absolute;
    z-index: -2;
    width: 28rem;
    height: 28rem;
    border-radius: 50%;
    filter: blur(4px);
    opacity: .3;
    pointer-events: none;
}

.finbu-auth__orb--one { top: -13rem; right: -7rem; background: rgba(92, 226, 211, .48); }
.finbu-auth__orb--two { bottom: -17rem; left: 30%; background: rgba(207, 178, 101, .32); }

.finbu-auth__container { min-height: 100svh; padding: clamp(1rem, 3vw, 3rem); display: grid; place-items: center; }

.finbu-auth__frame {
    width: min(1180px, 100%);
    min-height: min(760px, calc(100svh - clamp(2rem, 6vw, 6rem)));
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: clamp(22px, 3vw, 34px);
    background: rgba(4, 42, 47, .34);
    box-shadow: var(--finbu-shadow-lg), inset 0 1px 0 rgba(255, 255, 255, .22);
}

.finbu-auth__story {
    position: relative;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(2rem, 5vw, 4.5rem);
    color: #fff;
    background: linear-gradient(145deg, rgba(3, 44, 49, .54), rgba(4, 63, 66, .12));
}

.finbu-auth__brand-mark {
    display: inline-grid;
    place-items: center;
    width: 92px;
    height: 72px;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 22px;
    background: rgba(255, 255, 255, .88);
    box-shadow: inset 0 1px 0 #fff, 0 12px 30px rgba(0, 0, 0, .12);
}

.finbu-auth__story-logo { width: 72px; height: 72px; object-fit: contain; }
.finbu-auth__story-copy { max-width: 610px; }

.finbu-auth__eyebrow {
    display: inline-block;
    margin-bottom: 1rem;
    color: var(--finbu-accent);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.finbu-auth__story .finbu-auth__eyebrow { color: #aaf3e8; }

.finbu-auth__story h2 {
    max-width: 11ch;
    margin: 0 0 1.4rem;
    color: #fff;
    font-size: clamp(2.7rem, 5vw, 5.3rem);
    font-weight: 650;
    letter-spacing: -.055em;
    line-height: .98;
}

.finbu-auth__story p { max-width: 56ch; margin-bottom: 1.75rem; color: rgba(255, 255, 255, .76); font-size: 1.05rem; line-height: 1.75; }
.finbu-auth__trust { display: flex; flex-wrap: wrap; gap: .75rem 1.4rem; color: rgba(255, 255, 255, .88); font-size: .85rem; }
.finbu-auth__trust span { display: inline-flex; align-items: center; gap: .45rem; }
.finbu-auth__trust i { color: #87e3d8; }
.finbu-auth__caption { color: rgba(255, 255, 255, .56); font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; }

.finbu-auth__form-column {
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 3rem);
    background: rgba(246, 251, 250, .74);
}

.finbu-auth-card {
    width: min(430px, 100%);
    padding: clamp(1.5rem, 4vw, 3.2rem);
    border: 1px solid var(--finbu-border);
    border-radius: var(--finbu-radius-lg);
    background: var(--finbu-surface);
    box-shadow: var(--finbu-shadow-md), inset 0 1px 0 rgba(255, 255, 255, .92);
}

.finbu-auth-card__mobile-logo { width: 76px; height: 62px; margin: 0 auto 1.25rem; border-radius: 18px; background: rgba(255,255,255,.86); box-shadow: var(--finbu-shadow-sm); }
.finbu-auth-card__mobile-logo img { width: 100%; height: 100%; object-fit: contain; }
.finbu-auth-card h1 { margin: 0; color: var(--finbu-ink); font-size: clamp(2rem, 5vw, 2.7rem); font-weight: 680; letter-spacing: -.045em; }
.finbu-auth-card__subtitle { margin: .65rem 0 2rem; color: var(--finbu-ink-soft); font-size: 1rem; }
.finbu-form-field { margin-bottom: 1.35rem; }
.finbu-form-field label { margin-bottom: .6rem; color: var(--finbu-ink); font-size: .84rem; font-weight: 650; }
.finbu-input-wrap { position: relative; }
.finbu-input-wrap > i { position: absolute; z-index: 2; left: 1rem; top: 50%; color: #719093; font-size: 1.2rem; transform: translateY(-50%); pointer-events: none; }

.finbu-input.form-control {
    min-height: 54px;
    padding: .82rem 3rem .82rem 3rem;
    border: 1px solid rgba(8, 70, 73, .15);
    border-radius: 15px;
    color: var(--finbu-ink);
    background: rgba(255, 255, 255, .78);
    box-shadow: inset 0 1px 1px rgba(7, 52, 55, .03);
    transition: border-color var(--finbu-transition), box-shadow var(--finbu-transition), background var(--finbu-transition);
}

.finbu-input.form-control:hover { border-color: rgba(19, 117, 115, .34); background: rgba(255, 255, 255, .92); }
.finbu-input.form-control:focus { border-color: var(--finbu-brand-500); background: #fff; box-shadow: 0 0 0 4px rgba(23, 145, 139, .12); }
.finbu-input.form-control.is-invalid { border-color: #b73c4a; background-image: none; box-shadow: 0 0 0 4px rgba(183, 60, 74, .09); }
.finbu-password-toggle { position: absolute; z-index: 3; right: .55rem; top: 50%; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 11px; color: #557478; background: transparent; transform: translateY(-50%); }
.finbu-password-toggle:hover { color: var(--finbu-brand-700); background: rgba(19, 117, 115, .08); }
.finbu-field-error { display: block; min-height: 1.1rem; margin-top: .35rem; color: #a62e3c; font-size: .75rem; }
.finbu-auth-link { color: var(--finbu-brand-700); font-size: .78rem; font-weight: 650; }
.finbu-auth-link:hover { color: var(--finbu-brand-500); }

.finbu-primary-button.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 54px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 15px;
    color: #fff;
    background: linear-gradient(135deg, var(--finbu-brand-700), var(--finbu-brand-500));
    box-shadow: 0 14px 30px rgba(10, 91, 91, .23), inset 0 1px 0 rgba(255, 255, 255, .22);
    font-weight: 680;
    transition: transform var(--finbu-transition), box-shadow var(--finbu-transition), filter var(--finbu-transition);
}

.finbu-primary-button.btn:hover { color: #fff; filter: saturate(1.06); transform: translateY(-1px); box-shadow: 0 18px 34px rgba(10, 91, 91, .29); }
.finbu-primary-button.btn:active { transform: translateY(0); }
.finbu-primary-button.btn:disabled { opacity: .68; cursor: wait; transform: none; }
.finbu-auth-card__privacy { display: flex; gap: .55rem; margin: 1.5rem 0 0; color: #688184; font-size: .75rem; line-height: 1.5; }

.finbu-inline-alert { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: 1.25rem; padding: .9rem 1rem; border: 1px solid transparent; border-radius: 14px; font-size: .82rem; line-height: 1.5; }
.finbu-inline-alert--danger { color: #7f2230; border-color: rgba(183, 60, 74, .18); background: rgba(255, 235, 238, .88); }
.finbu-inline-alert--info { color: #174f55; border-color: rgba(19, 117, 115, .18); background: rgba(226, 248, 246, .9); }
.finbu-inline-alert .btn { margin: -.3rem -.35rem -.3rem auto; }

/* Admin shell */
.finbu-admin-body { min-width: 320px; min-height: 100vh; margin: 0; background: var(--finbu-canvas); }
.finbu-admin-shell { min-height: 100vh; background: radial-gradient(circle at 82% 2%, rgba(50, 190, 177, .13), transparent 25rem), linear-gradient(145deg, #f4f8f7 0%, #e8f1ef 100%); }

.finbu-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1040;
    display: flex;
    flex-direction: column;
    width: var(--finbu-sidebar-width);
    padding: 1.25rem;
    overflow-y: auto;
    color: #fff;
    background: linear-gradient(165deg, rgba(4, 45, 49, .98), rgba(6, 63, 65, .94));
    box-shadow: 18px 0 55px rgba(5, 41, 45, .14), inset -1px 0 0 rgba(255, 255, 255, .08);
}

.finbu-sidebar::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at 25% 4%, rgba(54, 190, 177, .22), transparent 17rem), radial-gradient(circle at 90% 92%, rgba(207, 178, 101, .13), transparent 14rem); }
.finbu-sidebar > * { position: relative; }
.finbu-sidebar__brand { display: flex; align-items: center; justify-content: space-between; min-height: 66px; padding: .25rem .35rem; }
.finbu-sidebar__logo { width: 76px; height: 62px; object-fit: contain; border-radius: 16px; background: rgba(255, 255, 255, .91); box-shadow: inset 0 1px 0 #fff, 0 9px 24px rgba(0, 0, 0, .12); }
.finbu-sidebar__product { display: flex; flex-direction: column; margin: 1.35rem 0 1.7rem; padding: 1rem 1.1rem; border: 1px solid rgba(255, 255, 255, .12); border-radius: 18px; background: rgba(255, 255, 255, .07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); }
.finbu-sidebar__product strong { color: #fff; font-size: 1.55rem; letter-spacing: -.035em; }
.finbu-sidebar__product > span:last-child { color: rgba(255, 255, 255, .57); font-size: .72rem; }
.finbu-sidebar__eyebrow, .finbu-sidebar__section { color: #8fe3da; font-size: .65rem; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.finbu-sidebar__section { display: block; padding: 0 .85rem .65rem; color: rgba(255, 255, 255, .42); }
.finbu-sidebar__nav { flex: 1; }

.finbu-nav-link {
    display: flex;
    align-items: center;
    gap: .85rem;
    min-height: 48px;
    margin-bottom: .35rem;
    padding: .72rem .85rem;
    border: 1px solid transparent;
    border-radius: 14px;
    color: rgba(255, 255, 255, .7);
    font-size: .88rem;
    font-weight: 580;
    transition: color var(--finbu-transition), background var(--finbu-transition), border-color var(--finbu-transition), transform var(--finbu-transition);
}

.finbu-nav-link:hover { color: #fff; background: rgba(255, 255, 255, .08); transform: translateX(2px); }
.finbu-nav-link.is-active { color: #fff; border-color: rgba(255, 255, 255, .18); background: linear-gradient(100deg, rgba(44, 183, 172, .3), rgba(255, 255, 255, .08)); box-shadow: inset 0 1px 0 rgba(255,255,255,.12); }
.finbu-nav-link.is-active i { color: #9df0e6; }
.finbu-nav-link--compact { min-height: 38px; padding: .5rem .75rem; font-size: .78rem; }
.finbu-legacy-nav { margin-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.09); padding-top: .7rem; }
.finbu-legacy-nav summary { display: flex; align-items: center; justify-content: space-between; padding: .7rem .8rem; color: rgba(255,255,255,.56); cursor: pointer; font-size: .77rem; list-style: none; }
.finbu-legacy-nav summary::-webkit-details-marker { display: none; }
.finbu-legacy-nav summary span { display: inline-flex; align-items: center; gap: .65rem; }
.finbu-legacy-nav[open] summary > i { transform: rotate(180deg); }
.finbu-legacy-nav__items { padding-left: .4rem; }
.finbu-sidebar__footer { margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1px solid rgba(255,255,255,.1); }
.finbu-sidebar__identity { display: flex; align-items: center; gap: .75rem; margin-bottom: .9rem; padding: 0 .25rem; }
.finbu-sidebar__identity strong, .finbu-sidebar__identity small { display: block; max-width: 165px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finbu-sidebar__identity strong { color: #fff; font-size: .78rem; }
.finbu-sidebar__identity small { color: rgba(255,255,255,.5); font-size: .67rem; text-transform: uppercase; }

.finbu-avatar { display: inline-grid; flex: 0 0 auto; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.25); border-radius: 14px; color: #fff; background: linear-gradient(145deg, var(--finbu-brand-500), var(--finbu-brand-700)); box-shadow: inset 0 1px 0 rgba(255,255,255,.25); font-size: .9rem; font-weight: 750; }
.finbu-avatar--small { width: 34px; height: 34px; border-radius: 11px; font-size: .75rem; }
.finbu-workspace { min-height: 100vh; margin-left: var(--finbu-sidebar-width); }

.finbu-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 86px;
    padding: 1rem clamp(1rem, 3vw, 2.5rem);
    border-bottom: 1px solid rgba(7, 65, 68, .08);
    background: rgba(244, 249, 248, .78);
    box-shadow: 0 8px 24px rgba(7, 54, 58, .04);
}

.finbu-topbar__context { color: #6c8588; font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.finbu-topbar__title { margin: .18rem 0 0; color: var(--finbu-ink); font-size: clamp(1.2rem, 2vw, 1.65rem); font-weight: 680; letter-spacing: -.025em; }
.finbu-topbar__actions { display: flex; align-items: center; gap: .75rem; }
.finbu-secure-chip { align-items: center; gap: .4rem; padding: .55rem .75rem; border: 1px solid rgba(19, 117, 115, .13); border-radius: 999px; color: var(--finbu-brand-700); background: rgba(255,255,255,.62); font-size: .7rem; font-weight: 650; }
.finbu-user-button.btn { display: flex; align-items: center; gap: .55rem; padding: .35rem .55rem; border: 1px solid rgba(7, 65, 68, .1); border-radius: 14px; color: var(--finbu-ink); background: rgba(255,255,255,.7); }
.finbu-icon-button.btn { color: var(--finbu-ink); border: 1px solid rgba(7,65,68,.1); background: rgba(255,255,255,.75); }
.finbu-dropdown { min-width: 240px; overflow: hidden; border: 1px solid var(--finbu-border-dark); border-radius: 16px; box-shadow: var(--finbu-shadow-md); }
.finbu-main { width: 100%; max-width: 1660px; min-height: calc(100vh - 142px); margin: 0 auto; padding: clamp(1rem, 3vw, 2.5rem); }
.finbu-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1rem, 3vw, 2.5rem) 1.5rem; color: #70878a; font-size: .7rem; }

/* FINBU surfaces and components */
.finbu-glass,
.finbu-panel,
.finbu-stat-card {
    border: 1px solid var(--finbu-border);
    background: var(--finbu-surface);
    box-shadow: var(--finbu-shadow-sm), inset 0 1px 0 rgba(255,255,255,.85);
}

.finbu-glass { border-radius: var(--finbu-radius-lg); }
.finbu-panel { overflow: hidden; border-radius: var(--finbu-radius-md); }
.finbu-panel__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.35rem; border-bottom: 1px solid rgba(7,65,68,.08); }
.finbu-panel__header h2, .finbu-panel__header h3 { margin: 0; color: var(--finbu-ink); font-size: 1rem; font-weight: 680; }
.finbu-panel__header p { margin: .3rem 0 0; color: var(--finbu-ink-soft); font-size: .76rem; }
.finbu-panel__body { padding: 1.35rem; }

.finbu-hero { position: relative; overflow: hidden; margin-bottom: 1.4rem; padding: clamp(1.3rem, 3vw, 2.2rem); color: #fff; background: linear-gradient(130deg, rgba(5, 56, 59, .96), rgba(15, 105, 102, .86)); box-shadow: var(--finbu-shadow-md), inset 0 1px 0 rgba(255,255,255,.18); }
.finbu-hero::after { content: ""; position: absolute; right: -5rem; top: -8rem; width: 22rem; height: 22rem; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(255,255,255,.025), 0 0 0 6rem rgba(255,255,255,.02); pointer-events: none; }
.finbu-hero > * { position: relative; z-index: 1; }
.finbu-hero__eyebrow { color: #a4eee5; font-size: .68rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.finbu-hero h2 { margin: .45rem 0 .35rem; color: #fff; font-size: clamp(1.55rem, 3vw, 2.45rem); font-weight: 630; letter-spacing: -.04em; }
.finbu-hero p { max-width: 67ch; margin: 0; color: rgba(255,255,255,.69); line-height: 1.65; }
.finbu-hero .btn-light { border-color: rgba(255,255,255,.7); color: var(--finbu-brand-900); background: rgba(255,255,255,.9); }

.finbu-stat-card { position: relative; height: 100%; min-height: 150px; overflow: hidden; padding: 1.25rem; border-radius: var(--finbu-radius-md); transition: transform var(--finbu-transition), box-shadow var(--finbu-transition); }
.finbu-stat-card:hover { transform: translateY(-2px); box-shadow: var(--finbu-shadow-md), inset 0 1px 0 rgba(255,255,255,.9); }
.finbu-stat-card__icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 1.15rem; border-radius: 14px; color: var(--finbu-brand-700); background: rgba(21, 155, 146, .1); }
.finbu-stat-card__label { display: block; margin-bottom: .25rem; color: #668083; font-size: .72rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.finbu-stat-card__value { color: var(--finbu-ink); font-size: clamp(1.65rem, 3vw, 2.15rem); font-weight: 720; letter-spacing: -.04em; }
.finbu-stat-card__meta { display: block; margin-top: .35rem; color: #70878a; font-size: .72rem; }
.finbu-stat-card--success .finbu-stat-card__icon { color: #19724d; background: rgba(39, 166, 107, .1); }
.finbu-stat-card--warning .finbu-stat-card__icon { color: #8d6813; background: rgba(209, 165, 53, .13); }
.finbu-stat-card--danger .finbu-stat-card__icon { color: #a63543; background: rgba(197, 67, 81, .1); }

.finbu-metric-list { display: grid; gap: .7rem; }
.finbu-metric-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .72rem .8rem; border-radius: 12px; background: rgba(240, 247, 245, .7); font-size: .8rem; }
.finbu-metric-row strong { color: var(--finbu-ink); }
.finbu-progress { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(7,65,68,.08); }
.finbu-progress > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--finbu-brand-700), var(--finbu-accent)); }

.finbu-filter-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.finbu-filter-grid > .finbu-filter--search { grid-column: span 4; }
.finbu-filter-grid > .finbu-filter { grid-column: span 2; }
.finbu-filter label, .finbu-modal-form label { margin-bottom: .45rem; color: var(--finbu-ink-soft); font-size: .72rem; font-weight: 680; }
.finbu-filter .form-control, .finbu-filter .form-select, .finbu-modal-form .form-control { min-height: 44px; border-color: rgba(7,65,68,.13); border-radius: 12px; color: var(--finbu-ink); background-color: rgba(255,255,255,.76); }
.finbu-filter .form-control:focus, .finbu-filter .form-select:focus, .finbu-modal-form .form-control:focus { border-color: var(--finbu-brand-500); box-shadow: 0 0 0 4px rgba(23,145,139,.1); }
.finbu-filter-actions { display: flex; justify-content: flex-end; gap: .65rem; margin-top: 1rem; }
.finbu-secondary-button.btn { border: 1px solid rgba(7,65,68,.14); border-radius: 12px; color: var(--finbu-brand-700); background: rgba(255,255,255,.72); }
.finbu-secondary-button.btn:hover { color: var(--finbu-brand-900); background: #fff; }

.finbu-table-shell { width: 100%; overflow-x: auto; }
.finbu-table { width: 100%; margin: 0; color: var(--finbu-ink); }
.finbu-table thead th { padding: .9rem 1rem; border-bottom: 1px solid rgba(7,65,68,.1); color: #71878a; background: rgba(237,245,243,.62); font-size: .65rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.finbu-table tbody td { padding: 1rem; border-bottom: 1px solid rgba(7,65,68,.07); vertical-align: middle; font-size: .78rem; }
.finbu-table tbody tr { transition: background var(--finbu-transition); }
.finbu-table tbody tr:hover { background: rgba(229,244,241,.55); }
.finbu-table tbody tr:last-child td { border-bottom: 0; }
.finbu-table code { color: var(--finbu-brand-700); font-size: .7rem; }
.finbu-table__primary { display: block; color: var(--finbu-ink); font-weight: 670; }
.finbu-table__secondary { display: block; margin-top: .18rem; color: #75898c; font-size: .7rem; }

.finbu-status-badge { display: inline-flex; align-items: center; gap: .38rem; padding: .36rem .58rem; border: 1px solid transparent; border-radius: 999px; font-size: .67rem; font-weight: 720; }
.finbu-status-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.finbu-status-badge--active { color: #176b49; border-color: rgba(29,133,89,.13); background: rgba(37,169,107,.1); }
.finbu-status-badge--blocked { color: #a42e3d; border-color: rgba(183,60,74,.14); background: rgba(197,67,81,.09); }
.finbu-status-badge--pending { color: #866214; border-color: rgba(174,130,27,.14); background: rgba(215,170,54,.11); }
.finbu-chip { display: inline-flex; align-items: center; padding: .28rem .5rem; border-radius: 8px; color: #426568; background: rgba(8,85,87,.07); font-size: .66rem; font-weight: 650; }
.finbu-empty { display: grid; place-items: center; min-height: 240px; padding: 2rem; text-align: center; }
.finbu-empty__icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 1rem; border-radius: 20px; color: var(--finbu-brand-700); background: rgba(23,145,139,.1); }
.finbu-empty h3 { margin-bottom: .4rem; color: var(--finbu-ink); font-size: 1rem; }
.finbu-empty p { max-width: 44ch; color: #71878a; font-size: .78rem; }

.finbu-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 1.25rem; border-top: 1px solid rgba(7,65,68,.08); }
.finbu-pagination__summary { color: #71878a; font-size: .72rem; }
.finbu-pagination .btn { min-width: 40px; border-radius: 10px; }
.finbu-flash { display: flex; align-items: flex-start; gap: .65rem; margin-bottom: 1.2rem; padding: .9rem 1rem; border: 1px solid rgba(19,117,115,.15); border-radius: 14px; color: #145a5e; background: rgba(229,248,245,.88); }
.finbu-flash--danger { color: #8c2936; border-color: rgba(183,60,74,.15); background: rgba(255,236,239,.9); }

.finbu-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.finbu-profile-item { padding: .85rem; border-radius: 13px; background: rgba(240,247,245,.62); }
.finbu-profile-item dt { margin-bottom: .3rem; color: #71878a; font-size: .65rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.finbu-profile-item dd { margin: 0; color: var(--finbu-ink); font-size: .8rem; word-break: break-word; }
.finbu-sensitive-actions { display: grid; gap: .7rem; }
.finbu-sensitive-actions .btn { min-height: 44px; border-radius: 12px; }
.finbu-detail-id { display: inline-block; margin-top: .5rem; color: rgba(255,255,255,.72); font-size: .72rem; }

.finbu-modal .modal-content { overflow: hidden; border: 1px solid var(--finbu-border); border-radius: 22px; background: var(--finbu-surface-strong); box-shadow: var(--finbu-shadow-lg); }
.finbu-modal .modal-header, .finbu-modal .modal-footer { border-color: rgba(7,65,68,.09); }
.finbu-modal .modal-title { color: var(--finbu-ink); font-weight: 680; }
.finbu-modal__warning { padding: .8rem; border-radius: 12px; color: #842c38; background: rgba(197,67,81,.08); font-size: .76rem; }

@supports ((-webkit-backdrop-filter: blur(16px)) or (backdrop-filter: blur(16px))) {
    .finbu-auth__frame,
    .finbu-auth-card,
    .finbu-topbar,
    .finbu-glass,
    .finbu-panel,
    .finbu-stat-card {
        -webkit-backdrop-filter: blur(20px) saturate(125%);
        backdrop-filter: blur(20px) saturate(125%);
    }
    .finbu-sidebar { -webkit-backdrop-filter: blur(24px) saturate(120%); backdrop-filter: blur(24px) saturate(120%); }
}

@media (max-width: 1199.98px) {
    .finbu-filter-grid > .finbu-filter--search { grid-column: span 6; }
    .finbu-filter-grid > .finbu-filter { grid-column: span 3; }
}

@media (max-width: 991.98px) {
    .finbu-auth__frame { width: min(560px, 100%); min-height: 0; }
    .finbu-auth__form-column { min-height: calc(100svh - 2rem); padding: clamp(1rem, 5vw, 2rem); }
    .finbu-sidebar { left: calc(-1 * var(--finbu-sidebar-width) - 24px); transition: left var(--finbu-transition); }
    .finbu-sidebar.drawer-on, .drawer-on > .finbu-sidebar { left: 0; }
    .finbu-workspace { margin-left: 0; }
    .finbu-topbar { min-height: 76px; }
}

@media (max-width: 767.98px) {
    .finbu-auth__container { padding: .75rem; }
    .finbu-auth__frame { border-radius: 24px; }
    .finbu-auth__form-column { min-height: calc(100svh - 1.5rem); padding: .85rem; }
    .finbu-auth-card { padding: 1.4rem 1.15rem; border-radius: 21px; }
    .finbu-auth-card__subtitle { margin-bottom: 1.45rem; }
    .finbu-main { padding: 1rem; }
    .finbu-topbar { padding: .8rem 1rem; }
    .finbu-topbar__actions { gap: .35rem; }
    .finbu-footer { padding-inline: 1rem; }
    .finbu-filter-grid > .finbu-filter--search, .finbu-filter-grid > .finbu-filter { grid-column: span 6; }
    .finbu-filter-actions { justify-content: stretch; }
    .finbu-filter-actions .btn { flex: 1; }
    .finbu-profile-grid { grid-template-columns: 1fr; }

    .finbu-table--stacked thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .finbu-table--stacked, .finbu-table--stacked tbody, .finbu-table--stacked tr, .finbu-table--stacked td { display: block; width: 100%; }
    .finbu-table--stacked tbody { padding: .75rem; }
    .finbu-table--stacked tbody tr { margin-bottom: .75rem; padding: .35rem .85rem; border: 1px solid rgba(7,65,68,.09); border-radius: 14px; background: rgba(255,255,255,.63); }
    .finbu-table--stacked tbody td { display: grid; grid-template-columns: minmax(105px, 38%) 1fr; gap: .75rem; padding: .62rem 0; border-bottom: 1px solid rgba(7,65,68,.07); text-align: right; }
    .finbu-table--stacked tbody td::before { content: attr(data-label); color: #71878a; font-size: .64rem; font-weight: 720; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
    .finbu-table--stacked tbody td:last-child { border-bottom: 0; }
    .finbu-table--stacked tbody td[colspan] { display: block; text-align: center; }
    .finbu-table--stacked tbody td[colspan]::before { display: none; }
}

@media (max-width: 479.98px) {
    .finbu-auth-card h1 { font-size: 1.85rem; }
    .finbu-form-field .d-flex { align-items: flex-start !important; flex-direction: column; gap: .15rem; }
    .finbu-auth-link { margin-bottom: .35rem; }
    .finbu-filter-grid > .finbu-filter--search, .finbu-filter-grid > .finbu-filter { grid-column: 1 / -1; }
    .finbu-filter-actions { flex-direction: column-reverse; }
    .finbu-hero .d-flex { align-items: flex-start !important; flex-direction: column; }
    .finbu-pagination { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .finbu-stat-card:hover, .finbu-primary-button.btn:hover, .finbu-nav-link:hover { transform: none; }
}
