:root {
    --pf-blue: #B8DFFF;
    --pf-blue-dark: #3d8fc7;
    --pf-ink: #172033;
    --pf-muted: #6b7280;
    --pf-line: #e6edf5;
    --pf-bg: #f7fbff;
    --pf-white: #ffffff;
    --pf-green: #29b67a;
    --pf-red: #e05252;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: 'Prompt', sans-serif;
    font-size: 14px;
    color: var(--pf-ink);
    background: var(--pf-bg);
}

main {
    flex: 1 0 auto;
}

a {
    color: inherit;
    text-decoration: none;
}

.public-navbar {
    background: rgba(255, 255, 255, 0.92);
    border-bottom: 1px solid var(--pf-line);
    backdrop-filter: blur(14px);
}

.brand-mark {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
}

.brand-logo {
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--pf-blue);
    color: #11547f;
    font-weight: 700;
}

.brand-logo-image {
    overflow: hidden;
    padding: 3px;
    background: #fff;
}

.brand-logo-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.public-navbar .nav-link {
    border: 1px solid transparent;
    border-radius: 8px;
    font-weight: 500;
    color: #334155;
    transition: color .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.public-navbar .nav-link.active,
.public-navbar .nav-link:hover {
    border-color: rgba(61, 143, 199, .32);
    background: #f0f9ff;
    color: var(--pf-blue-dark);
    box-shadow: 0 8px 18px rgba(61, 143, 199, .09);
}

.hero-section {
    min-height: 560px;
    display: flex;
    align-items: center;
    padding: 46px 0 34px;
    background:
        radial-gradient(circle at 78% 22%, rgba(184, 223, 255, .72), transparent 34%),
        linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
}

.hero-title {
    max-width: 680px;
    font-size: clamp(30px, 4vw, 52px);
    font-weight: 700;
    line-height: 1.16;
    letter-spacing: 0;
}

.hero-title span {
    color: var(--pf-blue-dark);
}

.hero-copy {
    color: #4b5563;
    font-size: 16px;
    line-height: 1.9;
    max-width: 640px;
}

.hero-copy p {
    margin-bottom: 16px;
}

.hero-checklist {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    color: #334155;
    font-weight: 500;
}

.hero-checklist li::before {
    content: "✓";
    margin-right: 8px;
    color: var(--pf-green);
    font-weight: 700;
}

.btn-pf {
    border: 0;
    border-radius: 8px;
    background: var(--pf-blue-dark);
    color: #fff;
    font-weight: 600;
    padding: 11px 18px;
}

.btn-pf:hover {
    background: #2f7fb3;
    color: #fff;
}

.btn-soft {
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
    color: var(--pf-ink);
    font-weight: 600;
    padding: 10px 18px;
}

.hero-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    padding: 14px 22px;
}

.hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    max-width: 640px;
    padding: 16px;
    border: 1px solid rgba(61, 143, 199, .2);
    border-radius: 8px;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 14px 34px rgba(31, 64, 101, .08);
}

.hero-stat {
    min-width: 0;
    padding: 4px 8px;
}

.hero-stat strong {
    display: block;
    color: var(--pf-blue-dark);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
}

.hero-stat span {
    display: block;
    margin-top: 4px;
    color: #334155;
    font-weight: 600;
    line-height: 1.45;
}

.hero-visual {
    position: relative;
    min-height: 390px;
    border-radius: 18px;
    overflow: hidden;
    background: #112236;
    box-shadow: 0 24px 80px rgba(28, 79, 119, .18);
}

.code-window {
    position: absolute;
    inset: 26px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 14px;
    background: rgba(9, 20, 35, .92);
    color: #d6f3ff;
    overflow: hidden;
}

.window-bar {
    height: 42px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 16px;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ff6b6b;
}

.dot:nth-child(2) { background: #ffd166; }
.dot:nth-child(3) { background: #52d273; }

.code-lines {
    padding: 24px;
    font-family: Consolas, monospace;
    font-size: 15px;
    line-height: 1.85;
}

.code-lines .blue { color: #7dd3fc; }
.code-lines .green { color: #86efac; }
.code-lines .yellow { color: #fde68a; }

.hero-visual-mockups {
    background:
        radial-gradient(circle at 72% 24%, rgba(255,255,255,.72), transparent 24%),
        linear-gradient(135deg, #dff3ff 0%, #b8dfff 48%, #eff9ff 100%);
}

.system-mockup-stack { position: absolute; inset: 24px; }
.system-mockup { position: absolute; border: 1px solid rgba(78,130,165,.18); border-radius: 16px; background: rgba(255,255,255,.94); box-shadow: 0 22px 60px rgba(31,64,101,.18); }
.mockup-main { inset: 30px 36px 42px 16px; overflow: hidden; }
.mockup-topbar { height: 42px; display: flex; align-items: center; gap: 7px; padding: 0 16px; background: #f5fbff; border-bottom: 1px solid #dcebf5; }
.mockup-topbar span { width: 10px; height: 10px; border-radius: 999px; background: #ff7a7a; }
.mockup-topbar span:nth-child(2) { background: #ffd166; }
.mockup-topbar span:nth-child(3) { background: #51d88a; }
.mockup-body { display: grid; grid-template-columns: 96px 1fr; min-height: 270px; }
.mockup-sidebar { background: linear-gradient(180deg, #164c71, #2f86bd); }
.mockup-content { padding: 22px; }
.mockup-title { width: 52%; height: 18px; border-radius: 999px; background: #b8dfff; margin-bottom: 18px; }
.mockup-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.mockup-metrics span { height: 58px; border-radius: 12px; background: linear-gradient(135deg, #eef9ff, #d9effd); }
.mockup-table { display: grid; gap: 10px; }
.mockup-table span { height: 17px; border-radius: 999px; background: #e7f1f8; }
.mockup-table span:nth-child(2) { width: 88%; }
.mockup-table span:nth-child(3) { width: 72%; }
.mockup-table span:nth-child(4) { width: 94%; }
.mockup-card { width: 168px; padding: 16px; }
.mockup-card strong, .mockup-card span { display: block; }
.mockup-card strong { color: #1b3f58; font-size: 13px; }
.mockup-card span { margin-top: 8px; color: var(--pf-blue-dark); font-size: 24px; font-weight: 700; }
.mockup-card-one { top: 8px; right: 0; }
.mockup-card-two { left: 0; bottom: 0; }

.section-pad {
    padding: 72px 0;
}

.section-title {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 10px;
}

.section-subtitle {
    color: var(--pf-muted);
    margin-bottom: 26px;
}

.stat-card,
.program-card,
.portfolio-card,
.placeholder-panel,
.login-card,
.dashboard-card {
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 64, 101, .06);
}

.stat-card {
    padding: 26px;
    height: 100%;
}

.stat-number {
    font-size: 34px;
    font-weight: 700;
    color: var(--pf-blue-dark);
}

.program-card,
.portfolio-card {
    height: 100%;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}

.program-card:hover,
.portfolio-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 48px rgba(31, 64, 101, .11);
}

.card-thumb {
    position: relative;
    height: 180px;
    background: linear-gradient(135deg, var(--pf-blue), #ffffff);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pf-blue-dark);
    font-size: 46px;
}

.card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-body-pf {
    padding: 18px;
}

.program-filter {
    padding: 18px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
}

.program-price {
    position: absolute;
    right: 12px;
    bottom: 12px;
    padding: 7px 10px;
    border-radius: 6px;
    background: rgba(15, 23, 42, .9);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
}

.program-price-free {
    background: rgba(22, 101, 52, .92);
}

.text-bg-cancel {
    color: #fff !important;
    background-color: #dc3545 !important;
}

.category-sortable tr { cursor: grab; }
.category-sortable tr:active { cursor: grabbing; }
.category-sortable tr.dragging { opacity: .45; background: #e7f1ff; }
.category-drag-handle { width: 42px; text-align: center; }

.program-card-description {
    min-height: 44px;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.course-card-meta {
    display: grid;
    gap: 7px;
    color: var(--pf-muted);
    font-size: 13px;
}

.course-card-meta span { display: flex; align-items: center; gap: 8px; }
.course-card-meta i { width: 18px; color: #3d8fc7; text-align: center; }
.course-click-card { cursor: pointer; }
.course-click-card:focus-visible { outline: 3px solid rgba(61,143,199,.35); outline-offset: 3px; }
.course-detail-modal-btn { justify-self: start; margin-top: 2px; }
.course-modal-cover { width: 100%; max-height: 280px; object-fit: cover; border-radius: 10px; background: #edf7ff; }
.compact-course-card .card-thumb { min-height: 150px; }
.compact-course-card .card-thumb img { height: 150px; object-fit: cover; }
.compact-course-card .card-body-pf { padding: 16px; }
.compact-course-card .course-card-meta { gap: 4px; font-size: 13px; }

.course-register-summary,
.course-register-form,
.registration-result {
    border: 1px solid var(--pf-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(31, 64, 101, .07);
}

.course-register-summary { overflow: hidden; }
.course-register-cover { display: block; width: 100%; max-height: 310px; object-fit: cover; background: #edf7ff; }
.course-register-form { padding: 26px; }

.course-detail-list { display: grid; gap: 5px; }
.course-detail-list > div { display: grid; grid-template-columns: 24px minmax(80px,1fr) auto; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px solid #edf2f5; }
.course-detail-list i { color: #3d8fc7; text-align: center; }
.course-detail-list span { color: var(--pf-muted); font-size: 13px; }
.course-detail-list strong { color: #223d50; font-size: 14px; text-align: right; }

.registration-result { max-width: 680px; margin: 20px auto; padding: 50px 28px; }
.registration-result > i { margin-bottom: 18px; color: #3d8fc7; font-size: 58px; }
.registration-result h1 { font-size: 28px; font-weight: 700; }
.registration-result p { color: var(--pf-muted); }
.registration-honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 575.98px) {
    .course-register-form { padding: 20px; }
    .course-detail-list > div { grid-template-columns: 22px minmax(70px,1fr) auto; }
}

.order-summary {
    overflow: hidden;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 64, 101, .06);
}

.order-program-image {
    min-height: 230px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #edf7ff;
    color: var(--pf-blue-dark);
    font-size: 56px;
}

.order-program-image img {
    width: 100%;
    height: 260px;
    object-fit: contain;
}

.program-price-callout,
.free-program-callout {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px;
    border-radius: 8px;
}

.program-price-callout {
    border: 1px solid #8cc8f5;
    background: #eaf6ff;
    color: #11547f;
}

.program-price-callout strong {
    font-size: 28px;
}

.free-program-callout {
    border: 1px solid #8bd7b3;
    background: #ecfdf5;
    color: #166534;
}

.free-program-callout strong {
    font-size: 18px;
}

.payment-account {
    padding: 14px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fbfdff;
}

.payment-account span {
    display: block;
    color: var(--pf-muted);
}

.account-number {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 6px;
    background: #fff;
}

.account-number span {
    color: var(--pf-ink);
    font-size: 17px;
    font-weight: 700;
}

.payment-qr {
    display: block;
    width: 150px;
    max-width: 100%;
    margin: 14px auto 0;
    object-fit: contain;
}

.order-form-panel .btn {
    min-height: 40px;
}

.public-footer {
    margin-top: auto;
    flex-shrink: 0;
    background: #0f172a;
    color: #dbeafe;
    padding: 48px 0 22px;
}

.public-footer h5 {
    color: #fff;
    font-size: 16px;
    margin-bottom: 14px;
}

.public-footer a {
    display: block;
    color: #dbeafe;
    margin-bottom: 8px;
}

.footer-bottom {
    margin-top: 30px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.12);
    color: #93a4bd;
}

.contact-link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
}

.contact-link i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--pf-blue);
    color: #11547f;
}

.contact-link {
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.contact-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

.contact-phone i {
    background: #e7f1ff;
    color: #0d6efd;
}

.contact-line i {
    background: #e7fbe9;
    color: #06c755;
}

.contact-facebook i {
    background: #e8f1ff;
    color: #1877f2;
}

.contact-youtube i {
    background: #ffe9e9;
    color: #ff0000;
}

.dbd-registered-link {
    display: inline-block !important;
    margin-top: 12px;
}

.dbd-registered-link img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
}

.login-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
    background:
        radial-gradient(circle at 18% 18%, rgba(184,223,255,.78), transparent 32%),
        linear-gradient(135deg, #fff 0%, #eef8ff 100%);
}

.login-card {
    width: min(100%, 440px);
    padding: 30px;
}

.form-control,
.form-select {
    border-radius: 8px;
    border-color: var(--pf-line);
    font-size: 14px;
    min-height: 44px;
}

.form-control[type="file"] {
    min-height: 42px;
    padding: 0;
    overflow: hidden;
    line-height: 40px;
    background: #fff;
}

.form-control[type="file"]::file-selector-button {
    height: 42px;
    margin: 0 12px 0 0;
    padding: 0 14px;
    border: 0;
    border-right: 1px solid var(--pf-line);
    background: #edf6ff;
    color: #25445e;
    font-family: 'Prompt', sans-serif;
    font-size: 13px;
    cursor: pointer;
}

.form-control[type="file"]:hover::file-selector-button {
    background: #dcefff;
}

body.public-page:not(.public-page-index) main .btn {
    min-height: 31px;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.35;
}

body.public-page:not(.public-page-index) main .btn i {
    line-height: inherit;
}

.workspace-body {
    background: #f6f9fc;
    font-size: 10pt;
}

.workspace-body .btn,
.workspace-body .form-control,
.workspace-body .form-select,
.workspace-body .dropdown-menu,
.workspace-body .table {
    font-size: 10pt;
}

.workspace-body .workspace-content .btn {
    min-height: 31px;
    padding: 5px 10px;
    border-radius: 6px;
    line-height: 1.35;
}

.workspace-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1040;
    width: 286px;
    background: #fff;
    border-right: 1px solid var(--pf-line);
    display: flex;
    flex-direction: column;
    transition: transform .22s ease;
}

.sidebar-brand {
    min-height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
    border-bottom: 1px solid var(--pf-line);
}

.btn-icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    border: 1px solid var(--pf-line);
    background: #fff;
}

.sidebar-close {
    display: none;
}

.sidebar-menu {
    overflow-y: auto;
    padding: 12px;
}

.sidebar-dropdown-toggle {
    width: 100%;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 8px;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    background: #f3f8fc;
    color: #203248;
    font-weight: 700;
    text-align: left;
}

.sidebar-dropdown-toggle i {
    color: #5798c8;
    transition: transform .2s ease;
}

.sidebar-dropdown-toggle:not(.collapsed) i {
    transform: rotate(180deg);
}

.sidebar-dropdown-menu {
    padding: 6px 0 4px;
}

.sidebar-link {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 9px 10px;
    border-radius: 8px;
    color: #475569;
    font-weight: 500;
}

.sidebar-link i {
    width: 18px;
    color: #5798c8;
}

.sidebar-link.active,
.sidebar-link:hover {
    background: #eaf6ff;
    color: #11547f;
}

.workspace-main {
    min-height: 100vh;
    padding-left: 286px;
    transition: padding-left .22s ease;
}

body.sidebar-collapsed .workspace-sidebar {
    transform: translateX(-100%);
}

body.sidebar-collapsed .workspace-main {
    padding-left: 0;
}

.workspace-topbar {
    position: sticky;
    top: 0;
    z-index: 1020;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--pf-line);
    backdrop-filter: blur(14px);
}

.workspace-topbar h1 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.user-menu {
    display: flex;
    align-items: center;
    gap: 10px;
    border: 0;
    background: transparent;
}

.user-menu img {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--pf-blue);
}

.user-menu strong,
.user-menu small {
    display: block;
    line-height: 1.25;
}

.user-menu small {
    color: var(--pf-muted);
}

.workspace-content {
    padding: 24px;
}

.dashboard-card {
    padding: 22px;
    height: 100%;
}

.dashboard-card i {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: var(--pf-blue);
    color: #11547f;
    margin-bottom: 16px;
}

.dashboard-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 30px;
    margin-bottom: 18px;
    border: 1px solid #cfe5f4;
    border-radius: 12px;
    background: linear-gradient(135deg, #f7fcff 0%, #e8f5fd 58%, #dceffc 100%);
}

.dashboard-hero::after {
    content: '';
    position: absolute;
    width: 210px;
    height: 210px;
    right: -55px;
    top: -105px;
    border-radius: 50%;
    background: rgba(61, 143, 199, .12);
}

.dashboard-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 8px;
    color: #246f9e;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.dashboard-hero h2 {
    margin: 0 0 5px;
    color: #143c58;
    font-size: clamp(22px, 2.4vw, 30px);
    font-weight: 700;
}

.dashboard-hero p { margin: 0; color: #668096; }

.dashboard-date {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    padding: 11px 15px;
    border: 1px solid rgba(61, 143, 199, .22);
    border-radius: 8px;
    background: rgba(255, 255, 255, .8);
    color: #315c78;
    font-weight: 600;
}

.dashboard-stat-card {
    --tone: #3d8fc7;
    display: flex;
    align-items: center;
    gap: 15px;
    height: 100%;
    padding: 18px;
    border: 1px solid var(--pf-line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(31, 64, 101, .055);
}

.dashboard-stat-icon,
.shortcut-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--tone);
    background: color-mix(in srgb, var(--tone) 12%, white);
}

.dashboard-stat-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 10px;
    font-size: 18px;
}

.dashboard-stat-copy span { display: block; color: var(--pf-muted); font-size: 13px; }
.dashboard-stat-card strong { display: block; margin-top: 2px; color: #1e3343; font-size: 23px; line-height: 1.2; }
.dashboard-stat-icon i,
.shortcut-icon i { line-height: 1; }

.dashboard-shortcut-section {
    margin-top: 18px;
    padding: 24px;
    border: 1px solid var(--pf-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 64, 101, .05);
}

.dashboard-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}

.dashboard-section-heading h2 { margin: 0 0 3px; color: #203d52; font-size: 19px; font-weight: 700; }
.dashboard-section-heading p { margin: 0; color: var(--pf-muted); font-size: 13px; }
.dashboard-section-heading > i { color: #9cb4c5; font-size: 20px; }

.dashboard-shortcut {
    --tone: #3d8fc7;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 0;
    aspect-ratio: 1 / 1;
    padding: 17px;
    border: 1px solid color-mix(in srgb, var(--tone) 20%, #dfe9f0);
    border-radius: 11px;
    background: linear-gradient(145deg, #fff, color-mix(in srgb, var(--tone) 5%, white));
    color: #243b4b;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.dashboard-shortcut-compact {
    min-height: 86px;
    padding: 12px 8px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
}

.dashboard-shortcut-compact .shortcut-icon {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    font-size: 15px;
}

.dashboard-shortcut-compact .shortcut-copy strong {
    margin-bottom: 0;
    font-size: 11.5px;
    line-height: 1.25;
}

.dashboard-shortcut-compact .shortcut-arrow,
.dashboard-shortcut-compact small {
    display: none;
}

.dashboard-shortcut:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--tone) 46%, #dfe9f0);
    box-shadow: 0 14px 28px color-mix(in srgb, var(--tone) 14%, transparent);
    color: #172f40;
}

.shortcut-icon { width: 42px; height: 42px; border-radius: 10px; font-size: 18px; }
.shortcut-copy { display: block; min-width: 0; }
.shortcut-copy strong { display: block; margin-bottom: 3px; font-size: 14px; line-height: 1.35; }
.shortcut-copy small { display: block; color: var(--pf-muted); font-size: 11px; line-height: 1.35; }
.shortcut-arrow { position: absolute; top: 16px; right: 16px; color: #b0c0cb; font-size: 10px; }

.tone-blue { --tone: #337fc0; }
.tone-cyan { --tone: #1493ac; }
.tone-indigo { --tone: #5369d8; }
.tone-violet { --tone: #8060c5; }
.tone-orange { --tone: #d07a2d; }
.tone-green { --tone: #31926b; }
.tone-rose { --tone: #c75d76; }
.tone-emerald { --tone: #228873; }
.tone-amber { --tone: #ba8427; }
.tone-slate { --tone: #60758a; }
.tone-pink { --tone: #b95b96; }
.tone-sky { --tone: #348db6; }

@media (max-width: 575.98px) {
    .dashboard-hero { align-items: flex-start; padding: 22px; }
    .dashboard-date { display: none; }
    .dashboard-stat-card { align-items: flex-start; flex-direction: column; gap: 10px; }
    .dashboard-shortcut-section { padding: 18px; }
    .dashboard-shortcut { padding: 14px; }
    .shortcut-copy small { display: none; }
    .shortcut-arrow { top: 14px; right: 14px; }
}

.placeholder-panel {
    padding: 26px;
}

.badge-status {
    border-radius: 999px;
    padding: 6px 10px;
    font-weight: 600;
}

.checkbox-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 8px 14px;
    padding: 12px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fbfdff;
}

.image-preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 10px;
}

.single-image-preview:empty {
    display: none;
}

.single-image-preview {
    width: min(100%, 280px);
    padding: 8px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #f7fbff;
}

.single-image-preview img {
    display: block;
    width: 100%;
    max-height: 260px;
    border-radius: 6px;
    object-fit: contain;
}

.image-choice {
    display: grid;
    gap: 6px;
    padding: 8px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
    font-size: 12px;
}

.image-choice img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    border-radius: 6px;
    background: #edf6ff;
}

.business-brand-image-choice {
    width: min(100%, 260px);
}

.business-brand-preview {
    width: min(100%, 260px);
    grid-template-columns: 1fr;
}

.business-brand-preview img {
    max-height: 150px;
    object-fit: contain;
}

.business-brand-image-choice img {
    height: 150px;
    aspect-ratio: auto;
}

.slip-modal-image {
    max-height: 68vh;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.table-thumb {
    width: 58px;
    height: 44px;
    object-fit: contain;
    border-radius: 6px;
    background: #edf6ff;
}

.bank-box {
    height: 100%;
    padding: 16px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fbfdff;
}

.program-detail-media {
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: linear-gradient(135deg, var(--pf-blue), #fff);
    color: var(--pf-blue-dark);
    font-size: 64px;
    overflow: hidden;
}

.program-detail-media img {
    width: 100%;
    height: 100%;
    min-height: 360px;
    object-fit: contain;
}

.detail-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    gap: 10px;
}

.gallery-thumbnail {
    padding: 0;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.gallery-thumbnail img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: contain;
    background: #f7fbff;
    transition: transform .2s ease;
}

.gallery-thumbnail:hover img {
    transform: scale(1.03);
}

.portfolio-detail-cover {
    width: 100%;
    min-height: 420px;
}

.portfolio-detail-cover img {
    max-height: 680px;
}

.portfolio-detail-card {
    width: 100%;
}

.portfolio-detail-gallery {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.portfolio-detail-gallery .gallery-thumbnail img {
    aspect-ratio: 4 / 3;
}

@media (max-width: 767.98px) {
    .portfolio-detail-cover { min-height: 260px; }
    .portfolio-detail-cover img { min-height: 260px; }
    .portfolio-detail-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.program-purchase-sticky {
    position: sticky;
    top: 92px;
}

.purchase-panel {
    padding: 18px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 64, 101, .06);
}

.program-detail-price {
    color: #11547f;
    font-size: 24px;
}

.gallery-modal-content {
    border: 0;
    background: #111827;
}

.gallery-modal-content .modal-body {
    position: relative;
    min-height: 260px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 64px 28px;
}

.gallery-modal-content img {
    max-width: 100%;
    max-height: 78vh;
    object-fit: contain;
}

.gallery-nav {
    position: absolute;
    top: 50%;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255, 255, 255, .45);
    border-radius: 50%;
    background: rgba(17, 24, 39, .75);
    color: #fff;
    transform: translateY(-50%);
}

.gallery-prev { left: 12px; }
.gallery-next { right: 12px; }

.back-to-top {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 1025;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: var(--pf-blue-dark);
    color: #fff;
    box-shadow: 0 10px 24px rgba(31, 64, 101, .25);
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.detail-text {
    white-space: normal;
    line-height: 1.9;
}

.bank-public {
    padding: 12px;
    border: 1px solid var(--pf-line);
    border-radius: 8px;
    background: #fbfdff;
}

.bank-public img {
    display: block;
    width: 120px;
    max-width: 100%;
    margin-top: 10px;
    border-radius: 8px;
}

.crud-list-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.crud-list-toolbar h2 {
    margin-bottom: 0 !important;
}

.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.toolbar .compact{width:auto;min-width:150px}
.grid-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.finance-summary-card{padding:18px;border:1px solid var(--pf-line);border-left:4px solid #0d6efd;border-radius:8px;background:#fff}
.finance-summary-card strong{display:block;margin-top:6px;font-size:22px}.finance-summary-card.income{border-left-color:#198754}.finance-summary-card.expense{border-left-color:#dc3545}
.finance-rank-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--pf-line)}
.color-swatch{display:inline-block;width:16px;height:16px;border-radius:4px}.swatch{width:14px;height:14px;border-radius:50%;display:inline-block;vertical-align:middle}
.finance-entry-row{display:grid;grid-template-columns:145px 110px minmax(150px,1fr) minmax(170px,1fr) 130px minmax(150px,1fr) 36px;gap:8px;margin-bottom:8px}
.finance-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.finance-image-card{overflow:hidden;border:1px solid var(--pf-line);border-radius:8px;background:#fff}.finance-image-card>img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#f7fbff}.finance-image-card>div{display:flex;justify-content:space-between;gap:8px;padding:12px}
.chart-panel{min-height:340px}.chart-panel canvas{max-height:275px}.chart-trend{min-height:360px}.chart-trend canvas{max-height:300px}
.totals-section{display:grid;gap:9px;padding:16px;border:1px solid var(--pf-line);border-radius:8px;background:#f8fbff}.totals-section>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.inline-number{width:82px;padding:3px 6px;border:1px solid var(--pf-line);border-radius:6px;text-align:right}
.payment-row{display:grid;grid-template-columns:minmax(160px,1fr) 130px 130px 145px 38px;gap:8px;margin-bottom:8px}
.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.page-title{display:flex;align-items:center;gap:10px;margin:0;font-size:22px;font-weight:700;color:#0b5ed7}
.business-card{border:1px solid #cfe2ff;border-radius:8px;box-shadow:0 10px 30px rgba(13,110,253,.08)}
.items-table th{background:#f6f9ff;color:#0b5ed7;font-weight:700}
.total-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e7f1ff;padding:9px 0}
.total-row:last-child{border-bottom:0}
.total-final{font-size:18px;font-weight:700;color:#0b5ed7}
.modal .items-table th{background:#f6f9ff;color:#0b5ed7;font-weight:700}
.modal .totals-section{background:#fff;border-color:#cfe2ff;box-shadow:0 8px 22px rgba(13,110,253,.06)}
.modal .card{border-color:#cfe2ff;border-radius:8px}
.modal .card-header{background:#f6f9ff;color:#0b5ed7;font-weight:700}
.business-doc-page .table{white-space:nowrap}
.kanban-board{display:grid;grid-template-columns:repeat(5,minmax(230px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}.kanban-column{min-height:480px;padding:12px;border:1px solid var(--pf-line);border-radius:8px;background:#eef5fa}.kanban-column h2{font-size:14px;font-weight:700}.kanban-task{padding:12px;margin-bottom:10px;border:1px solid var(--pf-line);border-radius:8px;background:#fff;cursor:grab}.kanban-column.drag-over{outline:2px dashed var(--pf-blue-dark)}
.task-calendar{min-height:650px;padding:14px;border:1px solid var(--pf-line);border-radius:8px;background:#fff}.idea-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}

.sidebar-backdrop {
    display: none;
}

@media (max-width: 991.98px) {
    .hero-section {
        min-height: auto;
        padding: 34px 0 28px;
    }

    .public-navbar .navbar-nav {
        padding-top: 10px;
    }

    .public-navbar .nav-link {
        padding-left: 12px;
        padding-right: 12px;
    }

    .hero-visual {
        min-height: 310px;
    }

    .workspace-sidebar {
        transform: translateX(-100%);
    }

    body.sidebar-open .workspace-sidebar {
        transform: translateX(0);
    }

    .sidebar-close {
        display: inline-flex;
    }

    .sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1030;
        background: rgba(15, 23, 42, .45);
    }

    body.sidebar-open .sidebar-backdrop {
        display: block;
    }

    .workspace-main {
        padding-left: 0;
    }

    .workspace-topbar {
        padding: 0 14px;
    }

    .workspace-content {
        padding: 16px;
    }

    .program-purchase-sticky {
        position: static;
    }
    .finance-entry-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;border:1px solid var(--pf-line);border-radius:8px}
}

@media (max-width: 575.98px) {
    .hero-title {
        font-size: 34px;
    }

    .hero-actions .btn {
        width: 100%;
        justify-content: center;
        font-size: 16px;
    }

    .hero-stats {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .hero-stat {
        display: flex;
        align-items: baseline;
        gap: 10px;
        padding: 8px;
    }

    .hero-stat strong {
        flex: 0 0 auto;
        font-size: 26px;
    }

    .hero-stat span {
        margin-top: 0;
    }

    .section-pad {
        padding: 44px 0;
    }

    .gallery-modal-content .modal-body {
        padding: 8px 48px 20px;
    }

    .gallery-nav {
        width: 36px;
        height: 36px;
    }

    .back-to-top {
        right: 14px;
        bottom: 14px;
    }
    .grid-cards,.finance-entry-row{grid-template-columns:1fr}
}

/* Finance workspace: legacy workspace UI scoped inside the new layout. */
.finance-app{--primary:#0d6efd;--primary-dark:#0b5ed7;--soft:#e7f1ff;--bg:#f6f9ff;--ink:#172033;--muted:#6b7280;--line:#dee2e6;--success:#198754;--danger:#dc3545;color:var(--ink);font-size:14px}
.finance-app button,.finance-app input,.finance-app select,.finance-app textarea{font-family:'Prompt',sans-serif!important;font-size:14px!important}
.finance-app .panel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:0 10px 32px rgba(15,23,42,.04)}
.finance-app .panel.flat{box-shadow:none}
.finance-app .panel-title{font-weight:700;font-size:16px;margin-bottom:14px;color:var(--primary-dark)}
.finance-app .toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.finance-app .compact{max-width:180px}
.finance-app .grid-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.finance-app #financeCards{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}
.finance-app .metric{background:#fff;border:1px solid #cfe2ff;border-radius:8px;padding:16px;min-height:108px;display:flex;flex-direction:column;gap:6px;box-shadow:0 10px 30px rgba(13,110,253,.08)}
.finance-app .metric i{color:var(--primary);font-size:20px}
.finance-app .metric span{color:var(--muted)}
.finance-app .metric strong{font-size:24px;font-weight:700}
.finance-app .metric.positive strong{color:var(--success)}
.finance-app .metric.negative strong{color:var(--danger)}
.finance-app .pie-panel{min-height:340px}
.finance-app .pie-panel canvas{max-height:340px}
.finance-app .chart-trend{min-height:360px}
.finance-app .chart-trend canvas{max-height:300px}
.finance-app .finance-rank-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.finance-app .swatch{width:14px;height:14px;border-radius:50%;display:inline-block}
.finance-app .finance-entry-list{margin-bottom:16px}
.finance-app .finance-month-form .btn{display:none}
.finance-app .finance-row{display:grid;grid-template-columns:130px 120px minmax(180px,1fr) 1.4fr 130px 42px;gap:8px;margin-bottom:8px;align-items:start}
.finance-app .finance-row .remove-row{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.finance-app .btn-delete{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545}
.finance-app .searchable-select{position:relative;min-width:0}
.finance-app .searchable-select .select-button{width:100%;min-height:38px;text-align:left;display:flex;align-items:center;justify-content:space-between;background:#fff}
.finance-app .searchable-select .select-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-app .searchable-select .select-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #cfe2ff;border-radius:8px;box-shadow:0 14px 34px rgba(13,110,253,.16);padding:8px;z-index:1055;display:none}
.finance-app .searchable-select.open .select-menu{display:block}
.finance-app .searchable-select .select-options{max-height:220px;overflow:auto;margin-top:8px}
.finance-app .searchable-select .select-option{display:flex;align-items:center;gap:8px;width:100%;border:0;background:#fff;border-radius:6px;padding:8px;text-align:left;color:var(--ink)}
.finance-app .searchable-select .select-option:hover{background:#e7f1ff}
.business-doc-page .searchable-select{position:relative;min-width:0;width:100%}
.business-doc-page .searchable-select .select-button{width:100%;min-height:38px;text-align:left;display:flex;align-items:center;justify-content:space-between;background:#fff}
.business-doc-page .searchable-select .select-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.business-doc-page .searchable-select .select-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #cfe2ff;border-radius:8px;box-shadow:0 14px 34px rgba(13,110,253,.16);padding:8px;z-index:1060;display:none}
.business-doc-page .searchable-select.open .select-menu{display:block}
.business-doc-page .searchable-select .select-options{max-height:240px;overflow:auto;margin-top:8px}
.business-doc-page .searchable-select .select-option{display:block;width:100%;border:0;background:#fff;border-radius:6px;padding:8px;text-align:left;color:var(--ink)}
.business-doc-page .searchable-select .select-option:hover{background:#e7f1ff}
.modal .searchable-select{position:relative;min-width:0;width:100%}.modal .searchable-select .select-button{width:100%;min-height:38px;text-align:left;display:flex;align-items:center;justify-content:space-between;background:#fff}.modal .searchable-select .select-label{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal .searchable-select .select-menu{position:absolute;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #cfe2ff;border-radius:8px;box-shadow:0 14px 34px rgba(13,110,253,.16);padding:8px;z-index:1060;display:none}.modal .searchable-select.open .select-menu{display:block}.modal .searchable-select .select-options{max-height:240px;overflow:auto;margin-top:8px}.modal .searchable-select .select-option{display:block;width:100%;border:0;background:#fff;border-radius:6px;padding:8px;text-align:left;color:var(--ink)}.modal .searchable-select .select-option:hover{background:#e7f1ff}
.business-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.business-list-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.business-status-filter{width:auto;min-width:170px}
.business-status-dropdown .dropdown-menu{min-width:210px}
.business-status-dropdown .status-filter-option{display:flex;align-items:center;border-radius:6px;cursor:pointer;padding:7px 10px}
.business-status-dropdown .status-filter-option:active{color:inherit;background:#e7f1ff}
.task-management{min-width:0}.task-filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.task-filter-bar .task-search{flex:1 1 100%;max-width:none}.task-filter-bar .form-select{width:auto;min-width:180px}.task-tag-dropdown .dropdown-menu{min-width:290px;max-height:390px;overflow:auto}.task-list{display:grid;gap:12px}.task-list-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid #b6d4fe;border-radius:8px;background:#fff;box-shadow:0 8px 22px rgba(13,110,253,.06);cursor:pointer}.task-list-card:hover{border-color:#0d6efd}.task-list-card.dragging{opacity:.45}.task-list-main{min-width:0;flex:1}.task-list-actions{display:flex;align-items:center;gap:7px}.task-list-actions form{margin:0}.task-status-select{width:136px}.task-card-description{margin:8px 0 0;color:#6b7280;white-space:pre-line}.task-empty{text-align:center;color:#6b7280;padding:40px 20px}.task-title-line .badge-status{padding:3px 8px;font-size:11px;line-height:1.2}.status-confirming{background:#fff3cd;color:#997404}.status-todo{background:#cfe2ff;color:#084298}.status-doing{background:#e7f1ff;color:#0a58ca}.status-done{background:#d1e7dd;color:#0f5132}.status-cancelled{background:#f8d7da;color:#842029}.kanban-card-list{min-height:420px}.kanban-card-list .task-list-card{display:block;padding:12px;margin-bottom:10px}.kanban-card-list .task-list-actions{margin-top:10px}.kanban-card-list .task-status-select{flex:1}.tag-color-preview{display:inline-block;width:28px;height:28px;border-radius:8px;border:1px solid rgba(0,0,0,.12)}
.tag-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--tag-color,#0d6efd);border-radius:999px;padding:4px 9px;background:#fff;color:var(--tag-color,#0d6efd);font-size:12px;font-weight:600;line-height:1.2}
.tag-badge::before{content:"";width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--tag-color,#0d6efd);box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.task-tag-picker{display:flex;flex-wrap:wrap;gap:9px;padding:12px;border:1px solid var(--pf-line);border-radius:8px;background:#fbfdff}
.task-tag-option{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #d8e0e8;border-radius:999px;background:#fff;cursor:pointer;transition:.15s ease}
.task-tag-option:hover{border-color:var(--tag-color);background:color-mix(in srgb,var(--tag-color) 7%,#fff)}
.task-tag-option:has(input:checked){border-color:var(--tag-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--tag-color) 15%,transparent)}
.task-tag-dot{width:14px;height:14px;border-radius:50%;background:var(--tag-color);flex:0 0 14px}
.task-title-line .badge-status{padding:1px 6px;font-size:9px;line-height:1.15;font-weight:600}
.tag-badge::before{display:none}
.task-kanban-page .task-copy-form{display:none}
.metric-button{text-align:left;font:inherit;color:inherit}.metric-button small{color:#6b7280;font-size:11px}.metric-button:hover{border-color:#0d6efd;box-shadow:0 12px 34px rgba(13,110,253,.14)}
@media (max-width:767.98px){.task-filter-bar>*{width:100%!important}.task-list-card{display:block}.task-list-actions{margin-top:12px}.task-status-select{flex:1}}
.finance-app .finance-entry-card{display:block!important;border:1px solid #b6d4fe;border-radius:8px;background:#fff;padding:14px;box-shadow:0 8px 22px rgba(13,110,253,.07)}
.finance-app .finance-entry-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.finance-app .finance-entry-card-title{font-weight:700;color:var(--primary-dark)}
.finance-app .finance-entry-card-body{display:grid;grid-template-columns:130px 120px minmax(210px,1fr) minmax(220px,1.2fr) 140px 120px;gap:10px;align-items:end}
.finance-app .finance-entry-card-body .form-label{display:block;margin-bottom:5px}
.finance-app .finance-note{grid-column:1/-1}
.finance-app .filter-dropdown{position:relative}
.finance-app .filter-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:210px;background:#fff;border:1px solid #cfe2ff;border-radius:8px;box-shadow:0 14px 34px rgba(13,110,253,.16);padding:10px;display:none;z-index:1050}
.finance-app .filter-menu.wide{min-width:280px}
.finance-app .filter-dropdown.open .filter-menu{display:block}
.finance-app .filter-option{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:6px}
.finance-app .filter-option:hover{background:#e7f1ff}
.finance-app .report-section{margin-bottom:16px}
.finance-app .report-section h5{font-size:15px;color:var(--primary-dark);margin-bottom:10px}
.finance-app .report-card-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.finance-app .report-card-grid.total{grid-template-columns:repeat(3,minmax(0,1fr));max-width:760px}
.finance-app .report-card{border:1px solid #cfe2ff;border-radius:8px;background:#fff;padding:10px;min-height:78px;box-shadow:0 6px 18px rgba(13,110,253,.06)}
.finance-app .report-card span{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finance-app .report-card strong{font-size:16px}
.finance-app .finance-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.finance-app .finance-image-card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.finance-app .finance-image-card>img{width:100%;height:150px;object-fit:cover;background:#f7fbff}
.finance-app .finance-image-card>div{padding:10px;display:flex;justify-content:space-between;gap:8px}
.finance-app .table{white-space:nowrap}
.finance-app .btn,.finance-app .form-control,.finance-app .form-select{border-radius:8px}

@media (max-width:1200px){.finance-app #financeCards{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-app .report-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:991.98px){.finance-app .finance-entry-card-body{grid-template-columns:1fr 1fr}.finance-app .finance-row{grid-template-columns:1fr 1fr}.finance-app .report-card-grid,.finance-app .report-card-grid.total{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}}
@media (max-width:575.98px){.finance-app .grid-cards,.finance-app #financeCards{grid-template-columns:1fr}.finance-app .finance-entry-card-body,.finance-app .finance-row{grid-template-columns:1fr}.finance-app .finance-entry-card-header{align-items:flex-start;flex-direction:column}.finance-app .report-card-grid,.finance-app .report-card-grid.total{grid-template-columns:1fr}.finance-app .filter-menu{position:fixed;left:12px;right:12px;top:auto;min-width:0}}
