:root {
    --zp-black: #0b0b0b;
    --zp-black-soft: #171717;
    --zp-gold: #d7ad57;
    --zp-gold-dark: #b98b32;
    --zp-gold-pale: #fff7e7;
    --zp-white: #ffffff;
    --zp-canvas: #f5f4f0;
    --zp-line: #e9e7e0;
    --zp-muted: #7c7b77;
    --zp-text: #171717;
    --zp-sidebar: 262px;
    --zp-radius: 18px;
    --zp-shadow: 0 10px 35px rgba(24, 20, 11, .06);
}

* { box-sizing: border-box; }
body,
button,
input,
select,
textarea,
table,
kbd,
label,
option {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body p,
body a,
body span,
body strong,
body small,
body label,
body li,
body td,
body th,
body dt,
body dd,
body .btn,
body .badge,
body .card-title,
body .header-title {
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
html { background: var(--zp-canvas); }
body.zp-shell {
    min-height: 100vh;
    margin: 0;
    color: var(--zp-text);
    background: var(--zp-canvas);
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

.zp-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1040;
    display: flex;
    width: var(--zp-sidebar);
    flex-direction: column;
    overflow: hidden;
    color: #fff;
    background: var(--zp-black);
    border-right: 1px solid #242424;
}
.zp-brand { display: flex; min-height: 92px; align-items: center; justify-content: space-between; padding: 17px 24px 13px; }
.zp-brand a { display: block; width: 145px; }
.zp-brand img { display: block; width: 100%; height: 58px; object-fit: contain; }
.zp-sidebar-close { color: #fff; background: transparent; border: 0; font-size: 22px; }

.zp-profile-card { display: flex; align-items: center; gap: 11px; margin: 0 16px 20px; padding: 13px; background: #161616; border: 1px solid #252525; border-radius: 15px; }
.zp-avatar-wrap { position: relative; flex: 0 0 38px; width: 38px; height: 38px; }
.zp-avatar-wrap img, .zp-top-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.zp-avatar-fallback { display: grid; width: 100%; height: 100%; place-items: center; color: #111; background: var(--zp-gold); border-radius: 50%; font-size: 10px; font-weight: 800; }
.zp-avatar-wrap > span:last-child { position: absolute; right: -1px; bottom: 1px; width: 9px; height: 9px; background: var(--zp-gold); border: 2px solid #161616; border-radius: 50%; }
.zp-profile-copy { min-width: 0; flex: 1; line-height: 1.2; }
.zp-profile-copy strong { display: block; overflow: hidden; color: #fff; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.zp-profile-copy small { display: block; margin-top: 5px; color: #858585; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.zp-profile-edit { color: #777; font-size: 17px; }
.zp-profile-edit:hover { color: var(--zp-gold); }

.zp-nav { flex: 1; overflow-y: auto; padding: 0 12px 18px; scrollbar-width: thin; scrollbar-color: #333 transparent; }
.zp-nav-label { display: block; padding: 0 14px 9px; color: #555; font-size: 9px; font-weight: 800; letter-spacing: .15em; }
.zp-nav-label-spaced { margin-top: 24px; }
.zp-nav-link { position: relative; display: flex; width: 100%; min-height: 46px; align-items: center; gap: 13px; margin: 3px 0; padding: 0 14px; color: #a9a9a9; background: transparent; border: 0; border-radius: 12px; font-size: 13px; font-weight: 600; text-align: left; transition: .2s ease; }
.zp-nav-link > i:first-child { width: 20px; color: #777; font-size: 18px; text-align: center; transition: .2s ease; }
.zp-nav-link:hover { color: #fff; background: #171717; }
.zp-nav-link:hover > i:first-child { color: var(--zp-gold); }
.zp-nav-link.active { color: #121212; background: linear-gradient(135deg, #f0ce80, var(--zp-gold)); box-shadow: 0 7px 20px rgba(215, 173, 87, .18); }
.zp-nav-link.active > i:first-child { color: #111; }
.zp-nav-toggle .zp-chevron { margin-left: auto; font-size: 14px; transition: transform .2s ease; }
.zp-nav-toggle[aria-expanded="true"] .zp-chevron { transform: rotate(180deg); }
.zp-subnav { margin: 5px 0 9px 23px; padding-left: 22px; border-left: 1px solid #303030; }
.zp-subnav a { position: relative; display: block; padding: 8px 10px; color: #858585; font-size: 12px; transition: .2s ease; }
.zp-subnav a::before { position: absolute; top: 50%; left: -25px; width: 5px; height: 5px; content: ""; background: #444; border-radius: 50%; transform: translateY(-50%); }
.zp-subnav a:hover { color: var(--zp-gold); }
.zp-subnav a:hover::before { background: var(--zp-gold); }
.zp-sidebar-footer { padding: 10px 12px 20px; border-top: 1px solid #1d1d1d; }
.zp-sidebar-footer .zp-nav-link { min-height: 42px; }

.zp-main { min-height: 100vh; margin-left: var(--zp-sidebar); }
.zp-topbar { position: sticky; top: 0; z-index: 1020; display: flex; height: 76px; align-items: center; justify-content: space-between; padding: 0 34px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--zp-line); backdrop-filter: blur(14px); }
.zp-topbar-left, .zp-topbar-actions { display: flex; align-items: center; gap: 12px; }
.zp-search { display: flex; width: min(360px, 36vw); height: 43px; align-items: center; gap: 10px; padding: 0 12px; background: #f7f7f5; border: 1px solid #ecebe7; border-radius: 12px; }
.zp-search > i { color: #92918d; font-size: 17px; }
.zp-search input { min-width: 0; flex: 1; color: #222; background: transparent; border: 0; box-shadow: none; font-size: 13px; outline: none; }
.zp-search kbd { padding: 3px 7px; color: #8b8983; background: #fff; border: 1px solid #e1dfd7; border-radius: 6px; box-shadow: none; font-family: inherit; font-size: 9px; }
.zp-icon-button { position: relative; display: grid; width: 42px; height: 42px; place-items: center; color: #2b2b2b; background: #fff; border: 1px solid var(--zp-line); border-radius: 12px; font-size: 17px; transition: .2s ease; }
.zp-icon-button:hover { color: #111; border-color: var(--zp-gold); }
.zp-date-chip { height: 42px; align-items: center; gap: 9px; padding: 0 14px; color: #62615d; background: #fff; border: 1px solid var(--zp-line); border-radius: 12px; font-size: 12px; }
.zp-date-chip i { color: var(--zp-gold-dark); }
.zp-top-avatar { display: block; width: 40px; height: 40px; padding: 2px; border: 1px solid var(--zp-gold); border-radius: 50%; }

.zp-content { min-height: calc(100vh - 126px); padding: 30px 34px 40px; }
.zp-footer { padding: 17px 34px; color: #969590; background: #fff; border-top: 1px solid var(--zp-line); font-size: 11px; }
.zp-alert { display: flex; align-items: center; gap: 10px; color: #6f5319; background: var(--zp-gold-pale); border: 1px solid #ead29c; border-radius: 12px; }

/* Dashboard */
.zp-page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.zp-eyebrow { display: block; margin-bottom: 8px; color: var(--zp-gold-dark); font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.zp-page-heading h1 { margin: 0; color: #111; font-size: clamp(25px, 3vw, 36px); font-weight: 700; letter-spacing: -.04em; }
.zp-page-heading p { margin: 7px 0 0; color: var(--zp-muted); font-size: 13px; }
.zp-primary-btn, .zp-secondary-btn { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 9px; padding: 0 16px; border-radius: 11px; font-size: 12px; font-weight: 700; transition: .2s ease; }
.zp-primary-btn { color: #111; background: var(--zp-gold); border: 1px solid var(--zp-gold); box-shadow: 0 7px 18px rgba(185, 139, 50, .18); }
.zp-primary-btn:hover { color: #111; background: #e4bd6b; transform: translateY(-1px); }
.zp-secondary-btn { color: #444; background: #fff; border: 1px solid var(--zp-line); }
.zp-secondary-btn:hover { color: #111; border-color: var(--zp-gold); }

.zp-stat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; }
.zp-stat-card { position: relative; min-height: 142px; overflow: hidden; padding: 20px; background: #fff; border: 1px solid var(--zp-line); border-radius: var(--zp-radius); box-shadow: var(--zp-shadow); transition: transform .2s ease, box-shadow .2s ease; }
.zp-stat-card:hover { box-shadow: 0 14px 38px rgba(24,20,11,.1); transform: translateY(-2px); }
.zp-stat-card.featured { color: #fff; background: var(--zp-black); border-color: var(--zp-black); }
.zp-stat-card.featured::after { position: absolute; right: -25px; bottom: -45px; width: 120px; height: 120px; content: ""; border: 18px solid rgba(215,173,87,.13); border-radius: 50%; }
.zp-stat-top { display: flex; align-items: center; justify-content: space-between; }
.zp-stat-icon { display: grid; width: 38px; height: 38px; place-items: center; color: #8c6724; background: var(--zp-gold-pale); border-radius: 11px; font-size: 17px; }
.featured .zp-stat-icon { color: #111; background: var(--zp-gold); }
.zp-stat-trend { color: #96938c; font-size: 10px; font-weight: 700; }
.featured .zp-stat-trend { color: #8b8b8b; }
.zp-stat-value { display: block; margin-top: 17px; color: #151515; font-size: clamp(21px, 2vw, 28px); font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.featured .zp-stat-value { color: #fff; }
.zp-stat-label { display: block; margin-top: 8px; color: #85837e; font-size: 11px; }

.zp-dashboard-grid { display: grid; width: 100%; min-width: 0; max-width: 100%; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .75fr); gap: 18px; margin-bottom: 20px; }
.zp-panel { width: 100%; min-width: 0; max-width: 100%; background: #fff; border: 1px solid var(--zp-line); border-radius: var(--zp-radius); box-shadow: var(--zp-shadow); }
.zp-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 22px; border-bottom: 1px solid #efeee9; }
.zp-panel-title { min-width: 0; }
.zp-panel-title h2 { margin: 0; color: #171717; font-size: 15px; font-weight: 700; }
.zp-panel-title p { margin: 5px 0 0; color: #96938d; font-size: 10px; }
.zp-text-link { display: inline-flex; align-items: center; gap: 6px; color: #76571c; font-size: 11px; font-weight: 700; white-space: nowrap; }
.zp-text-link:hover { color: #111; }

.zp-schedule { width: 100%; min-width: 0; max-width: 100%; padding: 0 22px 20px; }
.zp-schedule-days { display: grid; grid-template-columns: 58px repeat(5, minmax(86px, 1fr)); border-bottom: 1px solid #f0efe9; }
.zp-schedule-day { padding: 14px 7px; color: #99968f; font-size: 9px; text-align: center; text-transform: uppercase; }
.zp-schedule-day strong { display: block; margin-top: 5px; color: #222; font-size: 16px; font-weight: 600; }
.zp-schedule-day.today { margin: 8px 2px; padding: 7px; color: #111; background: var(--zp-gold); border-radius: 10px; }
.zp-schedule-day.today strong { margin-top: 2px; }
.zp-schedule-body { position: relative; min-height: 260px; padding-top: 6px; background: repeating-linear-gradient(to bottom, transparent 0, transparent 64px, #efeee9 65px); }
.zp-time-row { display: grid; min-height: 65px; grid-template-columns: 58px 1fr; }
.zp-time-row > span { padding-top: 9px; color: #aaa7a1; font-size: 9px; }
.zp-appointment-track { display: grid; grid-template-columns: repeat(5, minmax(86px, 1fr)); gap: 7px; }
.zp-appointment-card { min-height: 52px; margin: 6px 2px 0; padding: 9px 10px; color: #2a2926; background: var(--zp-gold-pale); border-left: 3px solid var(--zp-gold); border-radius: 8px; box-shadow: 0 6px 15px rgba(30,25,12,.05); }
.zp-appointment-card.dark { color: #fff; background: #1a1a1a; border-left-color: var(--zp-gold); }
.zp-appointment-card strong { display: block; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.zp-appointment-card small { display: block; overflow: hidden; margin-top: 5px; color: #89857c; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.zp-appointment-card.dark small { color: #aaa; }
.zp-empty-schedule { position: absolute; inset: 70px 0 auto 58px; color: #aaa7a1; font-size: 11px; text-align: center; }

.zp-quick-list { padding: 7px 18px 13px; }
.zp-quick-item { display: flex; align-items: center; gap: 12px; padding: 14px 3px; border-bottom: 1px solid #f0efe9; }
.zp-quick-item:last-child { border-bottom: 0; }
.zp-quick-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: #111; background: var(--zp-gold); border-radius: 11px; }
.zp-quick-copy { min-width: 0; flex: 1; }
.zp-quick-copy strong { display: block; overflow: hidden; color: #242424; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.zp-quick-copy small { display: block; overflow: hidden; margin-top: 5px; color: #97948e; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.zp-quick-arrow { color: #b5b2aa; }
.zp-empty-state { padding: 40px 20px; color: #96938d; font-size: 11px; text-align: center; }
.zp-empty-state i { display: block; margin-bottom: 10px; color: var(--zp-gold); font-size: 25px; }

.zp-data-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-bottom: 20px; }
.zp-mini-list { padding: 5px 18px 13px; }
.zp-lead-row { display: flex; align-items: center; gap: 10px; padding: 12px 2px; border-bottom: 1px solid #f1f0eb; }
.zp-lead-row:last-child { border-bottom: 0; }
.zp-lead-avatar { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: #72531a; background: var(--zp-gold-pale); border-radius: 50%; font-size: 10px; font-weight: 800; }
.zp-lead-copy { min-width: 0; flex: 1; }
.zp-lead-copy strong { display: block; overflow: hidden; color: #292929; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.zp-lead-copy small { display: block; overflow: hidden; margin-top: 4px; color: #99968e; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.zp-status { padding: 5px 8px; color: #624716; background: var(--zp-gold-pale); border-radius: 20px; font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.zp-status.dark { color: #fff; background: #1c1c1c; }

.zp-finance-panel { margin-bottom: 20px; }
.zp-finance-wrap { overflow-x: auto; padding: 4px 20px 20px; }
.zp-finance-bars { display: grid; min-width: 720px; height: 220px; grid-template-columns: repeat(12, 1fr); align-items: end; gap: 12px; padding-top: 26px; border-bottom: 1px solid #e9e8e3; background: repeating-linear-gradient(to bottom, transparent 0, transparent 48px, #f3f2ee 49px); }
.zp-month-bar { display: flex; height: 100%; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; }
.zp-bar-stack { display: flex; height: 160px; align-items: flex-end; gap: 3px; }
.zp-bar { width: 9px; min-height: 3px; border-radius: 5px 5px 0 0; }
.zp-bar.income { background: var(--zp-gold); }
.zp-bar.expense { background: #222; }
.zp-month-bar span { padding-bottom: 7px; color: #98958d; font-size: 8px; }
.zp-chart-legend { display: flex; align-items: center; gap: 15px; color: #77746e; font-size: 9px; }
.zp-chart-legend span { display: flex; align-items: center; gap: 6px; }
.zp-chart-legend i { width: 7px; height: 7px; background: var(--zp-gold); border-radius: 2px; }
.zp-chart-legend span:last-child i { background: #222; }

/* Existing module screens */
.zp-content .page-title-box { min-height: auto; padding: 10px 0 24px; }
.zp-content .page-title {
    display: flex;
    min-height: 46px;
    align-items: center;
    gap: 13px;
    margin: 0;
    overflow: visible;
    color: #151515;
    font-size: clamp(23px, 2.5vw, 30px);
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: 1.2;
    text-overflow: initial;
    white-space: normal;
}
.zp-page-icon {
    display: inline-grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    color: #765719;
    background: linear-gradient(145deg, #fff9ec, #f8edd5);
    border: 1px solid #f0dfba;
    border-radius: 13px;
    box-shadow: 0 7px 18px rgba(160, 118, 36, .09);
    font-size: 19px;
}
.zp-page-icon i { display: block; line-height: 1; }
.zp-content .header-title:not(:empty) { display: inline-flex; align-items: center; gap: 9px; }
.zp-content .header-title:not(:empty)::before { width: 4px; height: 18px; content: ""; background: var(--zp-gold); border-radius: 5px; }
.zp-content .page-title img, .zp-content .header-title img { display: none; }
.zp-content .card { background: #fff; border: 1px solid var(--zp-line); border-radius: var(--zp-radius); box-shadow: var(--zp-shadow); }
.zp-content .card-body { padding: 22px; }
.zp-content .header-title { color: #202020; font-weight: 700; }
.zp-content .btn-primary, .zp-content .btn-info, .zp-content .btn-warning, .zp-content .bg-info, .zp-content .bg-primary, .zp-content .bg-warning { color: #111 !important; background-color: var(--zp-gold) !important; border-color: var(--zp-gold) !important; }
.zp-content .bg-pink, .zp-content .bg-success { background-color: #171717 !important; }
.zp-content .form-control, .zp-content .form-select { min-height: 43px; border-color: #e2e0d9; border-radius: 10px; }
.zp-content .form-control:focus, .zp-content .form-select:focus { border-color: var(--zp-gold); box-shadow: 0 0 0 3px rgba(215,173,87,.15); }
.zp-content table.dataTable { border-collapse: separate !important; border-spacing: 0; }
.zp-content .table > thead { color: #fff; background: #171717; }
.zp-content .table > thead th { padding: 13px 12px; color: inherit !important; border: 0; font-size: 10px; letter-spacing: .03em; text-transform: uppercase; }
.zp-content .table > tbody td { padding: 13px 12px; border-color: #f0eee8; font-size: 11px; vertical-align: middle; }
.zp-content .pagination .page-link { color: #4d4b47; }
.zp-content .pagination .active > .page-link { color: #111; background: var(--zp-gold); border-color: var(--zp-gold); }
table.dataTable.nowrap th, table.dataTable.nowrap td { white-space: normal !important; }

/* Data tables */
.zp-table-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.zp-table-toolbar .header-title { margin: 0; }
.zp-table-toolbar p { margin: 7px 0 0; color: #94918a; font-size: 10px; }
.zp-toolbar-actions { display: flex; align-items: center; gap: 9px; }
.zp-toolbar-actions button { cursor: pointer; }
.zp-table-shell { overflow: hidden; border: 1px solid #ebe9e2; border-radius: 15px; }
.zp-table-shell .dataTables_wrapper { padding: 0; }
.zp-table-shell .dataTables_wrapper > .row { margin-right: 0; margin-left: 0; }
.zp-table-shell .dataTables_wrapper > .row:first-child { align-items: center; padding: 14px 15px; background: #faf9f6; border-bottom: 1px solid #ebe9e2; }
.zp-table-shell .dataTables_wrapper > .row:first-child > div { padding: 0; }
.zp-table-shell .dataTables_wrapper > .row:last-child { align-items: center; padding: 13px 15px; background: #faf9f6; border-top: 1px solid #ebe9e2; }
.zp-table-shell .dt-buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.zp-table-shell .dt-buttons .btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; color: #5e5b55; background: #fff; border: 1px solid #dfddd6; border-radius: 8px; box-shadow: none; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.zp-table-shell .dt-buttons .btn:hover { color: #111; border-color: var(--zp-gold); }
.zp-table-shell .dt-buttons .btn::before { color: #a87e2e; font-family: "feather" !important; font-size: 11px; font-weight: 400; text-transform: none; }
.zp-table-shell .dt-buttons .buttons-copy::before { content: "\e855"; }
.zp-table-shell .dt-buttons .buttons-print::before { content: "\e8b3"; }
.zp-table-shell .dt-buttons .buttons-pdf::before { content: "\e870"; }
.zp-table-shell .dataTables_filter { text-align: right; }
.zp-table-shell .dataTables_filter label { position: relative; margin: 0; color: #8f8c85; font-size: 0; }
.zp-table-shell .dataTables_filter label::before { position: absolute; top: 50%; left: 12px; z-index: 1; content: "\e8bd"; color: #a29e96; font-family: "feather" !important; font-size: 13px; transform: translateY(-50%); }
.zp-table-shell .dataTables_filter input { width: min(230px, 78%); min-height: 38px; margin-left: 0; padding: 7px 12px 7px 34px; background: #fff; border: 1px solid #dfddd6; border-radius: 9px; font-size: 10px; outline: 0; }
.zp-table-shell .dataTables_filter input:focus { border-color: var(--zp-gold); box-shadow: 0 0 0 3px rgba(215,173,87,.12); }
.zp-table-shell .table-responsive { margin: 0 !important; }
.zp-content table.zp-data-table { width: 100% !important; margin: 0 !important; border: 0; }
.zp-content table.zp-data-table > thead { color: #fff; background: #151515; }
.zp-content table.zp-data-table > thead th { height: 54px; padding: 12px 18px; color: #d8d6d0 !important; background: #151515; border: 0; font-size: 9px; font-weight: 700; letter-spacing: .09em; vertical-align: middle; }
.zp-content table.zp-data-table > tbody tr { background: #fff !important; transition: background .18s ease; }
.zp-content table.zp-data-table > tbody tr:nth-child(even) { background: #fcfbf8 !important; }
.zp-content table.zp-data-table > tbody tr:hover { background: #fffaf0 !important; }
.zp-content table.zp-data-table > tbody td { height: 70px; padding: 13px 18px; color: #5e5b55; background: transparent !important; border-top: 0; border-bottom: 1px solid #efede7; font-size: 10px; vertical-align: middle; }
.zp-content table.zp-data-table > tbody tr:last-child td { border-bottom: 0; }
.zp-content table.zp-data-table > tbody td.dataTables_empty { height: 190px; padding: 30px !important; }
.zp-table-empty { display: flex; align-items: center; flex-direction: column; justify-content: center; color: #aaa69e; text-align: center; }
.zp-table-empty > span { display: grid; width: 42px; height: 42px; place-items: center; margin-bottom: 10px; color: #987023; background: var(--zp-gold-pale); border: 1px solid #efdfbd; border-radius: 12px; font-size: 18px; }
.zp-table-empty strong { color: #4a4843; font-size: 11px; }
.zp-table-empty small { margin-top: 5px; color: #aaa69e; font-size: 8px; }
.zp-person-cell { display: flex; min-width: 155px; align-items: center; gap: 11px; }
.zp-person-avatar { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; color: #151515; background: linear-gradient(145deg, #efd07f, #d7ad57); border-radius: 10px; font-size: 9px; font-weight: 800; }
.zp-person-cell div { min-width: 0; }
.zp-person-cell strong { display: block; overflow: hidden; color: #242321; font-size: 11px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.zp-person-cell small { display: block; margin-top: 4px; color: #aaa69e; font-size: 8px; }
.zp-contact-link { display: inline-flex; align-items: center; gap: 7px; color: #66625c; white-space: nowrap; }
.zp-contact-link i { color: #b58a38; font-size: 12px; }
.zp-contact-link:hover { color: #8a6420; }
.zp-table-status { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid transparent; border-radius: 20px; font-size: 8px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.zp-table-status i { width: 6px; height: 6px; border-radius: 50%; box-shadow: 0 0 0 3px currentColor; opacity: .72; }
.zp-table-status.active { color: #397250; background: #edf8f0; border-color: #d8ecdd; }
.zp-table-status.expired { color: #a34343; background: #fff1f1; border-color: #f0dada; }
.zp-table-status.inactive { color: #88651e; background: #fff8e8; border-color: #efdfb7; }
.zp-days-left { display: inline-flex; align-items: baseline; gap: 4px; color: #77736b; white-space: nowrap; }
.zp-days-left strong { color: #292825; font-size: 12px; }
.zp-table-muted { color: #aaa69f; font-size: 9px; }
.zp-row-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.zp-action-btn { display: inline-flex; min-height: 32px; align-items: center; justify-content: center; gap: 6px; padding: 0 10px; background: #fff; border: 1px solid #dfddd6; border-radius: 8px; font-size: 9px; font-weight: 700; transition: .18s ease; }
.zp-action-btn.edit { color: #6f5117; background: #fff9ec; border-color: #ead5a6; }
.zp-action-btn.edit:hover { color: #111; background: var(--zp-gold); border-color: var(--zp-gold); }
.zp-action-btn.delete { color: #a34a4a; background: #fff; border-color: #eedada; }
.zp-action-btn.delete:hover { color: #fff; background: #bd5151; border-color: #bd5151; }
.zp-content table.dataTable .btn.btn-xs { display: inline-flex; min-height: 32px; align-items: center; justify-content: center; padding: 0 11px; color: #6f5117 !important; background: #fff9ec !important; border: 1px solid #ead5a6 !important; border-radius: 8px; box-shadow: none; font-size: 9px; font-weight: 700; }
.zp-content table.dataTable .btn.btn-xs:hover { color: #111 !important; background: var(--zp-gold) !important; border-color: var(--zp-gold) !important; }
.zp-content table.dataTable .btn.btn-xs.btn-danger { color: #a34a4a !important; background: #fff !important; border-color: #eedada !important; }
.zp-content table.dataTable .btn.btn-xs.btn-danger:hover { color: #fff !important; background: #bd5151 !important; border-color: #bd5151 !important; }
.zp-appointment-number { color: #9a7227; font-weight: 800; }
.zp-appointment-date,
.zp-appointment-location { display: inline-flex; align-items: center; gap: 7px; }
.zp-appointment-date i,
.zp-appointment-location i { color: #a77b29; }
.zp-appointment-meta-pill { display: inline-flex; align-items: center; width: max-content; max-width: 100%; padding: 5px 8px; color: #6c541f; background: #fff7e6; border: 1px solid #edd8aa; border-radius: 999px; font-size: 9px; font-weight: 700; }
.zp-appointment-meta-pill.status { color: #55514a; background: #f5f3ed; border-color: #e4e0d6; }
.zp-appointment-actions { display: flex; align-items: center; gap: 6px; }
.zp-appointment-actions .btn { gap: 6px; }
.zp-table-shell .dataTables_info { padding: 0 !important; color: #96928a; font-size: 9px; }
.zp-table-shell .dataTables_paginate { padding: 0 !important; }
.zp-table-shell .pagination { gap: 4px; margin: 0; }
.zp-table-shell .pagination .page-link { display: grid; min-width: 30px; height: 30px; place-items: center; padding: 0 7px; background: #fff; border: 1px solid #e2e0d9; border-radius: 8px !important; font-size: 9px; }
.zp-table-shell .pagination .active > .page-link { color: #111; background: var(--zp-gold); border-color: var(--zp-gold); }
.zp-content .modal-content { overflow: hidden; border: 0; border-radius: 16px; box-shadow: 0 24px 70px rgba(0,0,0,.2); }
.zp-content .modal-header, .zp-content .modal-footer { padding: 17px 20px; border-color: #eeece6; }
.zp-content .modal-body { padding: 22px 20px; color: #706d67; font-size: 11px; line-height: 1.65; }

/* Finance filters */
.zp-filter-heading { display: flex; align-items: center; gap: 13px; margin: 4px 0 18px; }
.zp-filter-heading-icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; color: #151515; background: var(--zp-gold); border-radius: 12px; box-shadow: 0 8px 18px rgba(185,139,50,.17); font-size: 17px; }
.zp-filter-heading > div > span { color: #a27a30; font-size: 8px; font-weight: 800; letter-spacing: .15em; }
.zp-filter-heading h2 { margin: 3px 0 0; color: #1b1b1a; font-size: 17px; font-weight: 700; letter-spacing: -.025em; }
.zp-filter-heading p { margin: 4px 0 0; color: #99968f; font-size: 9px; }
.zp-finance-filter { margin-bottom: 24px; padding: 18px 18px 0; background: #faf9f6; border: 1px solid #e8e5dd; border-radius: 18px; }
.zp-finance-filter > .row:first-child { --bs-gutter-x: 14px; }
.zp-finance-filter .card { height: calc(100% - 14px); margin-bottom: 14px; background: #fff; border: 1px solid #e9e6de; border-radius: 15px; box-shadow: 0 8px 22px rgba(31,27,18,.045); transition: border-color .2s ease, transform .2s ease; }
.zp-finance-filter .card:hover { border-color: #dec58e; transform: translateY(-2px); }
.zp-finance-filter .card-body { display: flex; min-height: 178px; flex-direction: column; padding: 18px; }
.zp-finance-filter .card-body > .row:first-child { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 12px; margin: 0; }
.zp-finance-filter .card-body > .row:first-child > .col-6 { width: auto; padding: 0; }
.zp-finance-filter .avatar-sm { display: grid; width: 42px; height: 42px; place-items: center; color: #79591c !important; background: var(--zp-gold-pale) !important; border: 1px solid #efdfbb; border-radius: 11px !important; }
.zp-finance-filter.expense .avatar-sm { color: #fff !important; background: #171717 !important; border-color: #171717; }
.zp-finance-filter .avatar-title { display: grid; width: auto; height: auto; place-items: center; color: inherit !important; background: transparent !important; font-size: 16px !important; }
.zp-finance-filter h3 { overflow: hidden; margin: 1px 0 0 !important; color: #1c1c1b !important; font-size: clamp(17px, 1.8vw, 24px); font-weight: 700; letter-spacing: -.035em; text-overflow: ellipsis; white-space: nowrap; }
.zp-finance-filter .text-end > p { display: flex; align-items: center; justify-content: flex-end; gap: 5px; margin-top: 7px; color: #77746e !important; font-size: 9px; }
.zp-finance-filter .text-end > p small { color: #aaa69f; font-size: 7px; }
.zp-finance-filter .card-body > .row:nth-child(2) { margin: auto 0 0; }
.zp-finance-filter .card-body > .row:nth-child(2) > .col-12 { padding: 0; }
.zp-filter-select { position: relative; margin-top: 15px; }
.zp-filter-select::before { display: block; margin-bottom: 6px; color: #8b877f; content: attr(data-label); font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.zp-finance-filter .zp-filter-select .form-select { min-height: 40px; padding: 7px 32px 7px 11px; color: #5f5c56; background-color: #fbfaf7; border-color: #e4e1d9; border-radius: 9px; font-size: 9px; }
.zp-finance-filter .zp-filter-select .form-select:hover { border-color: #d7bd84; }
.zp-finance-filter .col-xl-3:first-child .card-body::after { display: flex; min-height: 40px; align-items: center; margin-top: auto; padding: 0 11px; color: #918d85; content: "Live total · Today"; background: #fbfaf7; border: 1px solid #ece9e2; border-radius: 9px; font-size: 8px; }
.zp-finance-filter > .row:last-child { margin: 0; }
.zp-finance-filter > .row:last-child > div { width: 100%; padding: 0; }
.zp-filter-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 3px 0 18px; }
.zp-filter-reset, .zp-filter-apply { display: inline-flex; min-height: 39px; align-items: center; justify-content: center; gap: 7px; padding: 0 13px; border-radius: 9px; font-size: 9px; font-weight: 700; }
.zp-filter-reset { color: #68655f; background: #fff; border: 1px solid #dedbd4; }
.zp-filter-reset:hover { color: #111; border-color: var(--zp-gold); }
.zp-filter-apply { color: #111; background: var(--zp-gold); border: 1px solid var(--zp-gold); box-shadow: 0 7px 17px rgba(185,139,50,.17); }
.zp-filter-apply:hover { background: #e2b960; }
.head-desktop, .head-mobile, .navbar-custom, .app-menu, .content-page { display: none !important; }

.zp-mobile-backdrop,
.zp-mobile-nav { display: none; }
@media (max-width: 1199.98px) {
    .zp-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zp-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .zp-sidebar { transform: translateX(-100%); transition: transform .25s ease; }
    .zp-main { margin-left: 0; }
    .sidebar-open .zp-sidebar { transform: translateX(0); }
    .sidebar-open .zp-mobile-backdrop { position: fixed; inset: 0; z-index: 1030; display: block; background: rgba(0,0,0,.48); backdrop-filter: blur(2px); }
    .zp-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zp-dashboard-grid > .zp-panel { overflow: hidden; }
    .zp-dashboard-grid .zp-schedule { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
}
@media (max-width: 767.98px) {
    .zp-topbar { height: 66px; padding: 0 16px; }
    .zp-search { width: min(58vw, 320px); }
    .zp-search kbd { display: none; }
    .zp-content { padding: 22px 16px 32px; }
    .zp-footer { padding: 16px; }
    .zp-page-heading { align-items: flex-start; }
    .zp-page-heading p { max-width: 75vw; }
    .zp-page-heading .zp-primary-btn span { display: none; }
    .zp-page-heading .zp-primary-btn { width: 42px; padding: 0; }
    .zp-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zp-dashboard-grid { grid-template-columns: minmax(0, 1fr); }
    .zp-stat-card { min-height: 132px; padding: 16px; }
    .zp-data-grid { grid-template-columns: 1fr; }
    .zp-schedule { overflow-x: auto; padding: 0 14px 18px; }
    .zp-schedule-days, .zp-schedule-body { min-width: 650px; }
    .zp-panel-header { padding: 17px; }
    .zp-table-toolbar { align-items: stretch; flex-direction: column; }
    .zp-toolbar-actions { width: 100%; }
    .zp-toolbar-actions > * { flex: 1; }
    .zp-table-shell { overflow-x: auto; }
    .zp-table-shell .dataTables_wrapper { min-width: 720px; }
    .zp-content table.zp-data-table > thead th, .zp-content table.zp-data-table > tbody td { padding-right: 13px; padding-left: 13px; }
    .zp-finance-filter { padding: 13px 13px 0; }
    .zp-filter-heading { align-items: flex-start; }
    .zp-filter-actions { width: 100%; }
    .zp-filter-reset, .zp-filter-apply { flex: 1; }
}

/* Agent Expense Manager */
.zp-expense-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:4px 0 24px}.zp-expense-heading.compact{margin-bottom:18px}.zp-eyebrow,.zp-expense-panel-head>div>span{color:#9b742c;font-size:8px;font-weight:800;letter-spacing:.16em}.zp-expense-heading h1{margin:6px 0 5px;color:#171716;font-size:28px;font-weight:750;letter-spacing:-.045em}.zp-expense-heading p{margin:0;color:#929088;font-size:10px}.zp-expense-heading-actions{display:flex;gap:9px}.zp-expense-heading-actions button{font-family:inherit}.zp-back-link{display:inline-flex;align-items:center;gap:6px;margin-bottom:5px;color:#8d6925;font-size:9px;font-weight:700}.zp-expense-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.zp-expense-stats article{position:relative;display:flex;min-height:145px;flex-direction:column;padding:18px;overflow:hidden;background:#fff;border:1px solid #e7e4dc;border-radius:16px;box-shadow:0 9px 26px rgba(32,27,17,.045)}.zp-expense-stats article.needs-action{border-color:#e8c8b8;background:#fffdfb}.zp-expense-stats .icon{display:grid;width:36px;height:36px;place-items:center;margin-bottom:auto;color:#6c675e;background:#f5f3ed;border-radius:10px;font-size:14px}.zp-expense-stats .icon.gold{color:#6c4f17;background:#faedce}.zp-expense-stats .icon.dark{color:#e3bd67;background:#171717}.zp-expense-stats small{margin-top:14px;color:#8c8982;font-size:8px;font-weight:650;text-transform:uppercase;letter-spacing:.06em}.zp-expense-stats strong{margin-top:4px;color:#1c1c1a;font-size:21px;letter-spacing:-.04em}.zp-expense-stats strong.category{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.zp-expense-stats em{margin-top:4px;color:#aaa69f;font-size:8px;font-style:normal}.zp-expense-notice{display:flex;align-items:center;gap:12px;margin-bottom:17px;padding:12px 15px;color:#72521a;background:#fff7e5;border:1px solid #ead6aa;border-radius:12px}.zp-expense-notice>i{font-size:16px}.zp-expense-notice div{display:flex;flex-direction:column;gap:2px}.zp-expense-notice strong{font-size:10px}.zp-expense-notice span{color:#987b48;font-size:8px}.zp-expense-panel{margin-bottom:17px;padding:20px;background:#fff;border:1px solid #e7e4dc;border-radius:17px;box-shadow:0 9px 28px rgba(32,27,17,.04)}.zp-expense-panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.zp-expense-panel-head h2{margin:3px 0 0;color:#22211f;font-size:14px}.zp-expense-panel-head>span{padding:5px 9px;color:#7a746b;background:#f6f4ee;border-radius:20px;font-size:8px}.zp-text-action{display:inline-flex;align-items:center;gap:6px;color:#7c5d20;font-size:9px;font-weight:700}.zp-category-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px}.zp-category-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.zp-category-row strong{overflow:hidden;color:#4b4944;font-size:9px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.zp-category-row span{color:#7c7870;font-size:8px}.zp-category-track{height:5px;overflow:hidden;background:#f0eee8;border-radius:10px}.zp-category-track i{display:block;height:100%;background:linear-gradient(90deg,#c39438,#e2bb67);border-radius:10px}.zp-expense-filters{display:grid;grid-template-columns:1.4fr repeat(5,minmax(100px,1fr));gap:10px;margin:0 -20px;padding:15px 20px;background:#faf9f6;border-block:1px solid #eeece6}.zp-expense-filters label>span,.zp-report-filters label>span,.zp-form-grid label>span{display:block;margin-bottom:6px;color:#77736b;font-size:8px;font-weight:700;letter-spacing:.04em}.zp-expense-filters input,.zp-expense-filters select,.zp-report-filters input,.zp-report-filters select{width:100%;height:38px;padding:0 10px;color:#4f4c46;background:#fff;border:1px solid #dfdcd4;border-radius:8px;outline:0;font-size:9px}.zp-expense-filters .search div{position:relative}.zp-expense-filters .search i{position:absolute;top:12px;left:11px;color:#aaa59c}.zp-expense-filters .search input{padding-left:30px}.zp-expense-filters .actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.zp-expense-filters .actions a,.zp-expense-filters .actions button,.zp-report-filters>button{display:inline-flex;height:35px;align-items:center;justify-content:center;gap:6px;padding:0 12px;border-radius:8px;font-size:8px;font-weight:700}.zp-expense-filters .actions a{color:#6f6b64;background:#fff;border:1px solid #dedbd3}.zp-expense-filters .actions button,.zp-report-filters>button{color:#111;background:var(--zp-gold);border:0}.zp-expense-table-wrap{overflow-x:auto;margin:0 -20px}.zp-expense-table{width:100%;min-width:880px;border-collapse:collapse}.zp-expense-table th{padding:11px 14px;color:#99958d;background:#fff;border-bottom:1px solid #eceae4;font-size:7px;letter-spacing:.07em;text-transform:uppercase}.zp-expense-table td{padding:13px 14px;border-bottom:1px solid #efede8;vertical-align:middle;font-size:9px}.zp-expense-table td>strong,.zp-expense-table td>span,.zp-expense-table td>small{display:block}.zp-expense-table td>strong{color:#34322f;font-size:9px}.zp-expense-table td>strong.muted{font-weight:600}.zp-expense-table td>span,.zp-expense-table td>small{max-width:220px;margin-top:4px;color:#9c9890;font-size:8px}.zp-expense-table .amount{text-align:right;white-space:nowrap}.zp-expense-table .amount strong{font-size:10px}.zp-category-pill{display:inline-block!important;width:max-content;max-width:180px!important;margin:0!important;padding:5px 8px;color:#71531c!important;background:#fbf2df;border-radius:20px;font-size:7px!important;font-weight:700}.zp-status-stack{display:flex;align-items:flex-start;flex-direction:column;gap:5px}.zp-status{display:inline-flex;align-items:center;gap:5px;color:#327050;font-size:7px;font-weight:700}.zp-status i{width:6px;height:6px;background:#4aa475;border-radius:50%}.zp-status.missing{color:#aa5e38}.zp-status.missing i{background:#d57a4e}.zp-tax-badge{display:inline-flex!important;align-items:center;gap:4px;margin:0!important;color:#73551c!important;font-size:7px!important}.zp-icon-action{display:grid;width:29px;height:29px;place-items:center;color:#716b61;background:#fff;border:1px solid #e0ddd5;border-radius:8px;font-size:10px}.zp-icon-action:hover{color:#111;background:#f9edcf;border-color:#dabc78}.zp-icon-action.danger:hover{color:#fff;background:#bd5151;border-color:#bd5151}.zp-row-actions form{margin:0}.zp-row-actions button{padding:0}.zp-expense-empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:20px;color:#a09c94;font-size:9px}.zp-expense-empty.large{min-height:170px;flex-direction:column}.zp-expense-empty.large i{font-size:24px}.zp-expense-empty.large strong{color:#4d4a44;font-size:11px}.zp-expense-empty.large a{color:#805e20;font-weight:700}.zp-expense-pagination{display:flex;align-items:center;justify-content:space-between;padding-top:15px;color:#96928a;font-size:8px}.zp-expense-pagination>div{display:flex;align-items:center;gap:8px}.zp-expense-pagination a,.zp-expense-pagination>div>span{display:grid;width:29px;height:29px;place-items:center;color:#675f53;border:1px solid #dedbd4;border-radius:8px}.zp-expense-pagination>div>span{opacity:.4}.zp-expense-pagination b{color:#646059;font-size:8px}
.zp-expense-form{max-width:940px}.zp-form-errors{display:flex;gap:10px;margin-bottom:14px;padding:14px;color:#973e3e;background:#fff3f3;border:1px solid #efcccc;border-radius:12px;font-size:9px}.zp-form-errors ul{margin:5px 0 0;padding-left:16px}.zp-form-card{margin-bottom:14px;padding:22px;background:#fff;border:1px solid #e5e2da;border-radius:17px;box-shadow:0 8px 25px rgba(32,27,17,.04)}.zp-form-card-head{display:flex;align-items:center;gap:11px;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #eeece6}.zp-form-card-head>span{display:grid;width:30px;height:30px;place-items:center;color:#111;background:var(--zp-gold);border-radius:9px;font-size:10px;font-weight:800}.zp-form-card-head h2{margin:0;color:#262522;font-size:13px}.zp-form-card-head p{margin:3px 0 0;color:#a09c94;font-size:8px}.zp-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.zp-form-grid .span-2{grid-column:span 2}.zp-form-grid label>span b{color:#bd5c4b}.zp-form-grid input:not([type=checkbox]):not([type=file]),.zp-form-grid select,.zp-form-grid textarea{width:100%;min-height:43px;padding:10px 12px;color:#373531;background:#fbfaf8;border:1px solid #dfdcd4;border-radius:9px;outline:0;font-size:10px}.zp-form-grid textarea{resize:vertical}.zp-form-grid input:focus,.zp-form-grid select:focus,.zp-form-grid textarea:focus{background:#fff;border-color:#d2ab58;box-shadow:0 0 0 3px rgba(210,171,88,.12)}.zp-money-input{display:flex}.zp-money-input i{display:grid;width:45px;place-items:center;color:#6c531e;background:#f5e8c9;border:1px solid #dfd0aa;border-right:0;border-radius:9px 0 0 9px;font-size:9px;font-style:normal;font-weight:800}.zp-money-input input{border-radius:0 9px 9px 0!important}.zp-switch-field{display:flex!important;align-items:center;gap:11px;padding:13px;background:#faf8f2;border:1px solid #e8e0ce;border-radius:11px;cursor:pointer}.zp-switch-field input{position:absolute;opacity:0}.zp-switch-field>i{position:relative;width:35px;height:20px;flex:0 0 35px;background:#d5d1c8;border-radius:20px}.zp-switch-field>i:after{position:absolute;top:3px;left:3px;width:14px;height:14px;content:"";background:#fff;border-radius:50%;transition:.18s}.zp-switch-field input:checked+i{background:#c8993d}.zp-switch-field input:checked+i:after{transform:translateX(15px)}.zp-switch-field strong,.zp-switch-field span{display:block!important;margin:0!important}.zp-switch-field strong{color:#393631;font-size:9px}.zp-switch-field span{margin-top:2px!important;color:#969189;font-size:8px}.zp-upload-field{display:flex!important;min-height:125px;align-items:center;justify-content:center;flex-direction:column;padding:18px;text-align:center;background:#fcfbf8;border:1px dashed #d7c28f;border-radius:12px;cursor:pointer}.zp-upload-field input{position:absolute;width:1px;height:1px;opacity:0}.zp-upload-field>i{margin-bottom:8px;color:#b0812d;font-size:23px}.zp-upload-field strong{color:#4d4942;font-size:9px}.zp-upload-field>span{margin:4px 0 0!important;color:#aaa59c;font-size:8px}.zp-receipt-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}button.zp-upload-field{width:100%;margin:0;padding:18px;font-family:inherit;appearance:none}.zp-camera-dialog[hidden]{display:none!important}.zp-camera-dialog{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:#111}.zp-camera-dialog video{flex:1;width:100%;min-height:0;object-fit:contain;background:#000}.zp-camera-dialog p{margin:0;padding:12px 16px 0;color:#f3ead4;font-size:14px;text-align:center}.zp-camera-dialog-actions{display:flex;gap:10px;padding:14px 16px max(14px,env(safe-area-inset-bottom))}.zp-camera-dialog-actions button{display:inline-flex;min-height:48px;flex:1;align-items:center;justify-content:center;gap:8px;border-radius:10px;font-size:16px;font-weight:700}#closeReceiptCamera{color:#fff;background:transparent;border:1px solid #666}#snapReceiptPhoto{color:#111;background:var(--zp-gold);border:0}.zp-existing-receipts{margin-top:17px}.zp-existing-receipts h3{font-size:9px}.zp-existing-receipts>div{display:flex;align-items:center;justify-content:space-between;margin-top:7px;padding:8px 10px;background:#faf9f6;border:1px solid #ebe8e1;border-radius:9px}.zp-existing-receipts a{display:flex;align-items:center;gap:9px;color:#514e48}.zp-existing-receipts a>span strong,.zp-existing-receipts a>span small{display:block;font-size:8px}.zp-existing-receipts a>span small{margin-top:2px;color:#a19d95}.zp-existing-receipts button{color:#ac5555;background:transparent;border:0}.zp-form-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:5px 0 25px}.zp-form-footer>a,.zp-form-footer>button{display:inline-flex;height:41px;align-items:center;justify-content:center;gap:7px;padding:0 16px;border-radius:9px;font-size:9px;font-weight:700}.zp-form-footer>a{color:#706c65;background:#fff;border:1px solid #dfdcd4}.zp-form-footer>button{color:#111;background:var(--zp-gold);border:0;box-shadow:0 7px 17px rgba(185,139,50,.17)}
.zp-report-filters{display:flex;align-items:flex-end;gap:10px;margin-bottom:17px;padding:15px;background:#fff;border:1px solid #e5e2da;border-radius:14px}.zp-report-filters label{min-width:145px}.zp-report-filters .check{display:flex;min-width:220px;min-height:38px;align-items:center;gap:9px;margin:0;padding:7px 10px;background:#faf8f2;border:1px solid #e7dfcf;border-radius:9px;cursor:pointer}.zp-report-filters .check input[type=checkbox]{display:grid;width:20px!important;height:20px!important;min-width:20px;min-height:20px;flex:0 0 20px;place-content:center;margin:0;padding:0;appearance:none;background:#fff;border:1px solid #d5ccba;border-radius:6px;box-shadow:none;cursor:pointer}.zp-report-filters .check input[type=checkbox]::after{width:6px;height:10px;content:"";border-right:2px solid #181713;border-bottom:2px solid #181713;transform:translateY(-1px) rotate(45deg) scale(0);transition:transform .14s ease}.zp-report-filters .check input[type=checkbox]:checked{background:var(--zp-gold);border-color:var(--zp-gold)}.zp-report-filters .check input[type=checkbox]:checked::after{transform:translateY(-1px) rotate(45deg) scale(1)}.zp-report-filters .check input[type=checkbox]:focus-visible{outline:3px solid rgba(210,171,88,.25);outline-offset:2px}.zp-report-filters .check>span{display:block;margin:0}.zp-report-filters .check strong,.zp-report-filters .check small{display:block}.zp-report-filters .check strong{color:#4a463f;font-size:8px;font-weight:750;line-height:1.25}.zp-report-filters .check small{margin-top:2px;color:#99938a;font-size:7px;line-height:1.25}.zp-tax-report{padding:30px;background:#fff;border:1px solid #dfdcd4;border-radius:17px;box-shadow:0 12px 35px rgba(32,27,17,.055)}.zp-tax-report>header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:20px;border-bottom:2px solid #282621}.zp-tax-report>header>div:first-child>span{color:#a37729;font-size:8px;font-weight:800;letter-spacing:.16em}.zp-tax-report h2{margin:5px 0;color:#191918;font-size:20px}.zp-tax-report header p{margin:0;color:#89857d;font-size:9px}.report-agent{display:flex;align-items:flex-end;flex-direction:column;gap:3px;font-size:8px}.report-agent strong{font-size:10px}.report-agent span{color:#8d8981}.zp-report-totals{display:grid;grid-template-columns:2fr 1fr 1fr;margin:20px 0;background:#f8f6f0;border-radius:12px}.zp-report-totals div{padding:15px;border-right:1px solid #e8e4da}.zp-report-totals div:last-child{border:0}.zp-report-totals span,.zp-report-totals strong{display:block}.zp-report-totals span{color:#8c877e;font-size:8px}.zp-report-totals strong{margin-top:4px;color:#292724;font-size:16px}.zp-report-categories h3,.zp-report-details h3{margin:0 0 10px;font-size:10px}.zp-report-categories>div{display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px;margin-bottom:22px}.zp-report-categories p{display:flex;justify-content:space-between;margin:0;padding:7px 0;border-bottom:1px solid #eeece6;color:#6f6b64;font-size:8px}.zp-report-details{overflow-x:auto}.zp-report-details table{width:100%;border-collapse:collapse;font-size:8px}.zp-report-details th,.zp-report-details td{padding:9px;border-bottom:1px solid #e9e6df;text-align:left}.zp-report-details th{color:#817c73;background:#f7f5f0;font-size:7px;text-transform:uppercase}.zp-report-details td strong,.zp-report-details td span{display:block}.zp-report-details td span{max-width:240px;margin-top:3px;color:#98948c}.zp-report-details th:last-child,.zp-report-details td:last-child{text-align:right;white-space:nowrap}.zp-report-details tfoot td{color:#222;font-weight:800;border-top:2px solid #2e2b27}.zp-tax-report>footer{display:flex;gap:9px;margin-top:20px;padding:12px;color:#776c57;background:#fff8e9;border:1px solid #ead7ae;border-radius:10px;font-size:8px}.zp-tax-report>footer p{margin:0;line-height:1.55}
.zp-report-filters > button { height: 38px; }
@media(max-width:1199.98px){.zp-expense-stats{grid-template-columns:repeat(2,1fr)}.zp-expense-filters{grid-template-columns:repeat(3,1fr)}.zp-report-filters{flex-wrap:wrap}}
@media(max-width:767.98px){.zp-expense-heading{align-items:flex-start;flex-direction:column}.zp-expense-heading-actions{width:100%}.zp-expense-heading-actions>*{flex:1}.zp-expense-stats{grid-template-columns:1fr 1fr}.zp-category-summary{grid-template-columns:1fr}.zp-expense-filters{grid-template-columns:1fr 1fr}.zp-expense-filters .search{grid-column:span 2}.zp-form-grid{grid-template-columns:1fr}.zp-form-grid .span-2{grid-column:span 1}.zp-report-filters{display:grid;grid-template-columns:1fr 1fr}.zp-report-filters label{min-width:0}.zp-report-filters .check{min-width:0}.zp-tax-report{padding:19px}.zp-tax-report>header{gap:15px}.zp-report-categories>div{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.zp-expense-stats{grid-template-columns:1fr}.zp-expense-filters,.zp-report-filters{grid-template-columns:1fr}.zp-expense-filters .search{grid-column:span 1}.zp-tax-report>header{flex-direction:column}.report-agent{align-items:flex-start}.zp-report-categories>div{grid-template-columns:1fr}}
.zp-admin-category-form{display:grid;grid-template-columns:2fr 1fr 100px auto;align-items:end;gap:12px}.zp-admin-category-form label>span{display:block;margin-bottom:6px;color:#77736b;font-size:8px;font-weight:700}.zp-admin-category-form input,.zp-admin-category-list input{width:100%;height:39px;padding:0 10px;color:#423f39;background:#fbfaf8;border:1px solid #dfdcd4;border-radius:8px;font-size:9px}.zp-admin-category-form button,.zp-admin-category-list button{display:inline-flex;height:39px;align-items:center;justify-content:center;gap:6px;padding:0 13px;color:#111;background:var(--zp-gold);border:0;border-radius:8px;font-size:8px;font-weight:700}.zp-admin-category-list{overflow-x:auto}.zp-admin-category-list .head,.zp-admin-category-list>form{display:grid;min-width:760px;grid-template-columns:2fr 1fr 90px 120px 70px 90px;align-items:center;gap:10px;padding:8px 10px}.zp-admin-category-list .head{color:#969189;background:#f8f6f1;border-radius:8px;font-size:7px;font-weight:700;text-transform:uppercase}.zp-admin-category-list>form{border-bottom:1px solid #eeece6}.zp-admin-category-list .toggle{display:flex;align-items:center;gap:6px;margin:0;color:#68645d;font-size:8px}.zp-admin-category-list .toggle input[type=checkbox]{width:15px;height:15px;accent-color:#c59335}.zp-admin-category-list .count{color:#7d7870;font-size:9px}.zp-admin-category-list button{height:34px}.zp-admin-category-list>form:not(:hover) button{color:#72551d;background:#fff8e7;border:1px solid #e7d3a6}@media(max-width:767.98px){.zp-admin-category-form{grid-template-columns:1fr 1fr}.zp-admin-category-form label:first-child{grid-column:span 2}}
@media (max-width: 420px) {
    .zp-search { width: 48vw; }
    .zp-search input::placeholder { color: transparent; }
    .zp-stat-grid { grid-template-columns: 1fr; }
    .zp-stat-card { min-height: 120px; }
    .zp-toolbar-actions .zp-secondary-btn span, .zp-row-actions .zp-action-btn span { display: none; }
    .zp-toolbar-actions .zp-secondary-btn { flex: 0 0 42px; padding: 0; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Authentication */
.zp-auth-body {
    min-height: 100vh;
    margin: 0;
    overflow-x: hidden;
    color: #181818;
    background:
        radial-gradient(circle at 14% 12%, rgba(215, 173, 87, .16), transparent 24%),
        radial-gradient(circle at 88% 88%, rgba(215, 173, 87, .11), transparent 22%),
        #efeee9;
    font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.zp-auth-main { min-height: 100vh; padding: 24px; }
.zp-login-shell {
    display: grid;
    width: min(1220px, 100%);
    min-height: calc(100vh - 48px);
    grid-template-columns: minmax(0, 1.08fr) minmax(430px, .92fr);
    margin: 0 auto;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(25, 25, 25, .08);
    border-radius: 28px;
    box-shadow: 0 28px 80px rgba(25, 20, 10, .13);
}
.zp-login-showcase {
    position: relative;
    display: flex;
    min-height: 680px;
    flex-direction: column;
    overflow: hidden;
    padding: 42px 48px 32px;
    color: #fff;
    background: #0b0b0b;
}
.zp-login-showcase::before {
    position: absolute;
    top: -210px;
    right: -210px;
    width: 510px;
    height: 510px;
    content: "";
    border: 1px solid rgba(215, 173, 87, .2);
    border-radius: 50%;
    box-shadow: 0 0 0 60px rgba(215, 173, 87, .025), 0 0 0 120px rgba(215, 173, 87, .02);
}
.zp-login-showcase::after {
    position: absolute;
    bottom: -120px;
    left: -70px;
    width: 290px;
    height: 290px;
    content: "";
    background: radial-gradient(circle, rgba(215, 173, 87, .16), transparent 67%);
}
.zp-login-brand { position: relative; z-index: 1; width: 160px; }
.zp-login-brand img { display: block; width: 100%; height: 68px; object-fit: contain; }
.zp-showcase-copy { position: relative; z-index: 1; max-width: 520px; margin-top: clamp(55px, 9vh, 100px); }
.zp-login-eyebrow { display: flex; align-items: center; gap: 10px; color: #aaa7a1; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.zp-login-eyebrow i { width: 23px; height: 1px; background: var(--zp-gold); }
.zp-showcase-copy h1 { margin: 20px 0 18px; color: #fff; font-size: clamp(37px, 4vw, 57px); font-weight: 650; letter-spacing: -.055em; line-height: 1.02; }
.zp-showcase-copy h1 em { color: var(--zp-gold); font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-weight: 500; }
.zp-showcase-copy p { max-width: 470px; margin: 0; color: #8e8e8e; font-size: 13px; line-height: 1.75; }
.zp-login-preview { position: relative; z-index: 1; width: min(450px, 92%); margin-top: auto; padding: 20px; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.09); border-radius: 17px; box-shadow: 0 20px 45px rgba(0,0,0,.25); backdrop-filter: blur(10px); }
.zp-preview-head { display: flex; align-items: flex-start; justify-content: space-between; }
.zp-preview-head div span { display: block; color: #777; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.zp-preview-head div strong { display: block; margin-top: 4px; color: #f2f2f2; font-size: 11px; }
.zp-preview-chip { padding: 5px 8px; color: #111; background: var(--zp-gold); border-radius: 20px; font-size: 7px; font-weight: 800; letter-spacing: .12em; }
.zp-preview-chart { display: flex; height: 76px; align-items: flex-end; gap: 9px; margin: 22px 0 18px; padding-bottom: 1px; border-bottom: 1px solid #292929; }
.zp-preview-chart i { flex: 1; min-height: 5px; background: linear-gradient(to top, #9a7028, #f0c96f); border-radius: 4px 4px 0 0; opacity: .9; }
.zp-preview-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.zp-preview-stats div { padding-right: 8px; border-right: 1px solid #292929; }
.zp-preview-stats div:last-child { border-right: 0; }
.zp-preview-stats span { display: block; color: #6f6f6f; font-size: 8px; }
.zp-preview-stats strong { display: block; margin-top: 5px; color: #e7e7e7; font-size: 13px; }
.zp-showcase-footer { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; margin-top: 24px; color: #565656; font-size: 8px; letter-spacing: .04em; }
.zp-showcase-footer span:last-child { display: flex; align-items: center; gap: 6px; }
.zp-showcase-footer i { color: var(--zp-gold-dark); }

.zp-login-form-panel { position: relative; display: flex; min-height: 680px; flex-direction: column; justify-content: center; padding: 55px clamp(45px, 6vw, 82px); background: #fff; }
.zp-mobile-logo { display: none; }
.zp-login-form-wrap { width: 100%; max-width: 390px; margin: auto; }
.zp-login-kicker { color: #a47a2d; font-size: 9px; font-weight: 800; letter-spacing: .18em; }
.zp-login-form-wrap h2 { margin: 11px 0 8px; color: #151515; font-size: clamp(27px, 3vw, 36px); font-weight: 700; letter-spacing: -.04em; }
.zp-login-intro { margin: 0 0 35px; color: #96938c; font-size: 12px; }
.zp-login-alert { display: flex; align-items: center; gap: 9px; color: #71531b; background: var(--zp-gold-pale); border: 1px solid #ead29c; border-radius: 11px; font-size: 11px; }
.zp-login-form { display: flex; flex-direction: column; gap: 20px; }
.zp-field label, .zp-label-row label { margin: 0; color: #33312e; font-size: 11px; font-weight: 700; }
.zp-label-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.zp-label-row a { color: #9a7028; font-size: 10px; font-weight: 700; }
.zp-field > label { display: block; margin-bottom: 8px; }
.zp-input-wrap { display: flex; height: 50px; align-items: center; gap: 11px; padding: 0 14px; background: #fafaf8; border: 1px solid #e5e3dd; border-radius: 12px; transition: .2s ease; }
.zp-input-wrap:focus-within { background: #fff; border-color: var(--zp-gold); box-shadow: 0 0 0 4px rgba(215, 173, 87, .12); }
.zp-input-wrap.is-invalid { border-color: #d46a6a; }
.zp-input-wrap > i { flex: 0 0 auto; color: #a6a29a; font-size: 16px; }
.zp-input-wrap:focus-within > i { color: var(--zp-gold-dark); }
.zp-input-wrap input { min-width: 0; flex: 1; color: #202020; background: transparent; border: 0; outline: 0; font-size: 12px; }
.zp-input-wrap input::placeholder { color: #b2afa8; }
.zp-password-toggle { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; color: #aaa7a0; background: transparent; border: 0; border-radius: 7px; }
.zp-password-toggle:hover { color: #111; background: var(--zp-gold-pale); }
.zp-field-error { display: flex; align-items: center; gap: 6px; margin-top: 7px; color: #b34242; font-size: 9px; }
.zp-remember { display: flex; width: fit-content; align-items: center; gap: 9px; color: #6c6963; cursor: pointer; font-size: 10px; user-select: none; }
.zp-remember input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.zp-remember > span { display: grid; width: 17px; height: 17px; place-items: center; color: transparent; background: #fff; border: 1px solid #dcd9d1; border-radius: 5px; transition: .2s ease; }
.zp-remember input:checked + span { color: #111; background: var(--zp-gold); border-color: var(--zp-gold); }
.zp-remember input:focus-visible + span { box-shadow: 0 0 0 3px rgba(215,173,87,.22); }
.zp-remember i { font-size: 11px; }
.zp-login-button { display: flex; width: 100%; height: 51px; align-items: center; justify-content: center; gap: 10px; margin-top: 3px; color: #111; background: linear-gradient(135deg, #e8c36e, #d5a84d); border: 0; border-radius: 12px; box-shadow: 0 10px 24px rgba(185,139,50,.23); font-size: 12px; font-weight: 800; transition: .2s ease; }
.zp-login-button i { transition: transform .2s ease; }
.zp-login-button:hover { background: linear-gradient(135deg, #f0cd79, #dcb257); box-shadow: 0 13px 27px rgba(185,139,50,.28); transform: translateY(-1px); }
.zp-login-button:hover i { transform: translateX(3px); }
.zp-login-help { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 28px; color: #aaa7a0; font-size: 9px; }
.zp-login-help a { color: #76571c; font-weight: 700; }
.zp-login-trust { position: absolute; right: 0; bottom: 24px; left: 0; display: flex; align-items: center; justify-content: center; gap: 7px; color: #bbb8b0; font-size: 8px; letter-spacing: .03em; }

/* Keep the other guest forms readable inside the new shell. */
.zp-auth-main > .container { padding-top: 7vh; padding-bottom: 7vh; }
.zp-auth-main > .container .card { border: 1px solid var(--zp-line); border-radius: 20px; box-shadow: 0 24px 60px rgba(25,20,10,.13); }
.zp-auth-main > .container .btn-primary { color: #111; background: var(--zp-gold); border-color: var(--zp-gold); }
.zp-auth-main > .container .text-white-50 { color: #72551c !important; }

@media (max-width: 991.98px) {
    .zp-auth-main { padding: 16px; }
    .zp-login-shell { min-height: calc(100vh - 32px); grid-template-columns: minmax(0, .8fr) minmax(410px, 1fr); border-radius: 23px; }
    .zp-login-showcase { min-height: 620px; padding: 34px; }
    .zp-showcase-copy h1 { font-size: 39px; }
    .zp-login-preview { width: 100%; }
    .zp-login-form-panel { min-height: 620px; padding: 45px; }
}
@media (max-width: 767.98px) {
    .zp-auth-body { background: #0b0b0b; }
    .zp-auth-main { padding: 0; }
    .zp-login-shell { display: block; min-height: 100vh; border: 0; border-radius: 0; }
    .zp-login-showcase { display: none; }
    .zp-login-form-panel { min-height: 100vh; justify-content: flex-start; padding: calc(32px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) calc(65px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); }
    .zp-mobile-logo { display: block; width: 137px; margin-bottom: clamp(45px, 10vh, 90px); }
    .zp-mobile-logo img { display: block; width: 100%; height: 58px; object-fit: contain; }
    .zp-login-form-wrap { margin: 0 auto; }
    .zp-login-form-wrap h2 { font-size: 30px; }
    .zp-login-trust { bottom: calc(21px + env(safe-area-inset-bottom)); }
}

/* Expense receipt OCR */
.zp-ocr-panel { display: grid; grid-template-columns: 135px minmax(0, 1fr); overflow: hidden; background: #f8f5ed; border: 1px solid #e6d9ba; border-radius: 13px; }
.zp-ocr-preview { position: relative; display: grid; min-height: 154px; place-items: center; overflow: hidden; color: #aa873e; background: #eee7d8; }
.zp-ocr-preview > span { display: grid; width: 44px; height: 44px; place-items: center; background: rgba(255,255,255,.7); border-radius: 50%; font-size: 18px; }
.zp-ocr-preview img:not([hidden]) { position: absolute; z-index: 1; display: block; width: 100%; height: 100%; object-fit: cover; }
.zp-ocr-content { min-width: 0; padding: 16px 18px; }
.zp-ocr-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.zp-ocr-heading strong,.zp-ocr-heading small { display: block; }
.zp-ocr-heading strong { color: #302c24; font-size: 10px; }
.zp-ocr-heading small { max-width: 480px; margin-top: 3px; overflow: hidden; color: #8e887d; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.zp-ocr-heading em { padding: 4px 7px; color: #72541b; background: #ead29b; border-radius: 6px; font-size: 7px; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.zp-ocr-content > p { margin: 13px 0 6px; color: #746f66; font-size: 8px; }
.zp-ocr-content > p[data-state=working] { color: #8b671f; }
.zp-ocr-content > p[data-state=success] { color: #3f744e; }
.zp-ocr-content > p[data-state=error] { color: #a34848; }
.zp-ocr-progress { height: 5px; overflow: hidden; background: #e6e0d4; border-radius: 10px; }
.zp-ocr-progress i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #c28c2e, #e0bb63); border-radius: inherit; transition: width .2s ease; }
.zp-ocr-content > button { display: inline-flex; height: 31px; align-items: center; gap: 6px; margin-top: 10px; padding: 0 11px; color: #5d481f; background: #fff; border: 1px solid #ddc995; border-radius: 8px; font-size: 8px; font-weight: 700; }
.zp-ocr-content > button:disabled { cursor: not-allowed; opacity: .48; }
.is-ocr-scanning .zp-ocr-content > button i { animation: zp-ocr-spin 1s linear infinite; }
.zp-ocr-result { display: flex; align-items: flex-start; gap: 7px; margin-top: 10px; padding: 9px 10px; color: #496552; background: #f4fbf5; border: 1px solid #d8eadb; border-radius: 8px; font-size: 8px; line-height: 1.45; }
.zp-ocr-result .fe-alert-triangle,.zp-ocr-result .fe-alert-circle { color: #ae7330; }
.zp-form-grid input.ocr-filled,.zp-form-grid select.ocr-filled { background: #f3fbf2!important; border-color: #79aa79!important; box-shadow: 0 0 0 3px rgba(86,148,86,.12)!important; transition: background .25s ease, border-color .25s ease; }
@keyframes zp-ocr-spin { to { transform: rotate(360deg); } }

@media (max-width: 575.98px) {
    .zp-ocr-panel { grid-template-columns: 1fr; }
    .zp-ocr-preview { min-height: 180px; }
    .zp-ocr-content { padding: 15px; }
}

/* Responsive application system */
body.zp-shell { overflow-x: hidden; }
.zp-main { min-width: 0; }
.zp-content { width: 100%; max-width: 1680px; margin-right: auto; margin-left: auto; }
.zp-topbar-left { min-width: 0; flex: 1; }
.zp-topbar-actions { flex: 0 0 auto; }
.zp-expense-heading > div:first-child,
.zp-expense-panel-head > div,
.zp-form-card-head > div { min-width: 0; }

@media screen and (max-width: 1199.98px) {
    .zp-content { padding-right: 24px; padding-left: 24px; }
    .zp-expense-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zp-report-filters > button { min-width: 145px; }
}

@media screen and (max-width: 991.98px) {
    body.sidebar-open { overflow: hidden; }
    .zp-sidebar { width: min(320px, 88vw); max-width: calc(100vw - 36px); padding-bottom: env(safe-area-inset-bottom); box-shadow: 18px 0 45px rgba(0,0,0,.24); }
    .zp-sidebar-close { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 10px; }
    .zp-topbar { padding-right: 24px; padding-left: 24px; }
    .zp-search { width: min(430px, 58vw); }
    .zp-expense-form { max-width: none; }
    .zp-report-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
    .zp-report-filters label,
    .zp-report-filters .check,
    .zp-report-filters > button { min-width: 0; }
}

@media screen and (max-width: 767.98px) {
    html { overscroll-behavior-y: none; }
    .zp-main { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
    .zp-topbar { height: 64px; gap: 10px; padding-right: max(14px, env(safe-area-inset-right)); padding-left: max(14px, env(safe-area-inset-left)); }
    .zp-search { min-width: 0; width: auto; height: 42px; flex: 1; }
    .zp-search input { width: 100%; font-size: 16px; }
    .zp-topbar-left { gap: 8px; }
    .zp-topbar-actions { gap: 8px; }
    .zp-icon-button { width: 42px; height: 42px; flex: 0 0 42px; }
    .zp-content { max-width: none; min-height: calc(100vh - 112px); padding: 20px max(14px, env(safe-area-inset-right)) 32px max(14px, env(safe-area-inset-left)); }
    .zp-footer { padding-right: max(16px, env(safe-area-inset-right)); padding-bottom: max(16px, env(safe-area-inset-bottom)); padding-left: max(16px, env(safe-area-inset-left)); text-align: center; }

    .zp-mobile-nav {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1025;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        min-height: calc(64px + env(safe-area-inset-bottom));
        padding: 6px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
        background: rgba(255,255,255,.96);
        border-top: 1px solid #dfdcd3;
        box-shadow: 0 -10px 30px rgba(24,20,11,.1);
        backdrop-filter: blur(16px);
    }
    .zp-mobile-nav > a,
    .zp-mobile-nav > button {
        position: relative;
        display: flex;
        min-width: 0;
        min-height: 50px;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 4px;
        padding: 4px 2px;
        color: #89857d;
        background: transparent;
        border: 0;
        border-radius: 11px;
        font-size: 9px;
        font-weight: 700;
        line-height: 1;
        text-align: center;
        touch-action: manipulation;
    }
    .zp-mobile-nav > a > i,
    .zp-mobile-nav > button > i { font-size: 19px; }
    .zp-mobile-nav > a > span,
    .zp-mobile-nav > button > span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .zp-mobile-nav > a.active { color: #5f4515; background: #fff5dd; }
    .zp-mobile-nav > a.active::before {
        position: absolute;
        top: -7px;
        left: 50%;
        width: 28px;
        height: 3px;
        content: "";
        background: var(--zp-gold-dark);
        border-radius: 0 0 4px 4px;
        transform: translateX(-50%);
    }
    .zp-mobile-nav > a:focus-visible,
    .zp-mobile-nav > button:focus-visible { outline: 3px solid rgba(215,173,87,.35); outline-offset: -2px; }

    .zp-expense-heading { gap: 17px; margin-bottom: 20px; }
    .zp-expense-heading h1 { font-size: clamp(25px, 8vw, 32px); }
    .zp-expense-heading p { max-width: 620px; font-size: 13px; line-height: 1.55; }
    .zp-eyebrow,
    .zp-expense-panel-head > div > span { font-size: 10px; }
    .zp-back-link { min-height: 32px; margin-bottom: 4px; font-size: 12px; }
    .zp-expense-heading-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .zp-expense-heading-actions > * { width: 100%; min-width: 0; min-height: 46px; padding: 0 12px; font-size: 12px; }

    .zp-expense-stats { gap: 10px; }
    .zp-expense-stats article { min-height: 132px; padding: 16px; }
    .zp-expense-stats small { font-size: 10px; }
    .zp-expense-stats strong { font-size: 21px; }
    .zp-expense-stats strong.category { font-size: 15px; }
    .zp-expense-stats em { font-size: 10px; }
    .zp-expense-notice { align-items: flex-start; padding: 14px; }
    .zp-expense-notice strong { font-size: 12px; }
    .zp-expense-notice span { font-size: 11px; line-height: 1.45; }
    .zp-expense-panel { padding: 16px; border-radius: 14px; }
    .zp-expense-panel-head { align-items: flex-start; margin-bottom: 15px; }
    .zp-expense-panel-head h2 { font-size: 16px; }
    .zp-expense-panel-head > span,
    .zp-text-action { flex: 0 0 auto; font-size: 11px; }
    .zp-category-summary { gap: 16px; }
    .zp-category-row strong,
    .zp-category-row span { font-size: 11px; }

    .zp-expense-filters { gap: 12px; margin: 0 -16px; padding: 16px; }
    .zp-expense-filters label > span,
    .zp-report-filters label > span,
    .zp-form-grid label > span { margin-bottom: 7px; font-size: 11px; }
    .zp-expense-filters input,
    .zp-expense-filters select,
    .zp-report-filters input,
    .zp-report-filters select { height: 46px; font-size: 16px; }
    .zp-expense-filters .search i { top: 16px; }
    .zp-expense-filters .actions a,
    .zp-expense-filters .actions button,
    .zp-report-filters > button { min-height: 44px; height: 44px; font-size: 11px; }
    .zp-expense-table-wrap { margin-right: -16px; margin-left: -16px; }
    .zp-expense-pagination { gap: 12px; font-size: 11px; }
    .zp-expense-pagination a,
    .zp-expense-pagination > div > span { width: 40px; height: 40px; }
    .zp-expense-pagination b { font-size: 10px; white-space: nowrap; }

    .zp-form-card { padding: 17px; border-radius: 14px; }
    .zp-form-card-head { align-items: flex-start; margin-bottom: 17px; }
    .zp-form-card-head > span { width: 34px; height: 34px; flex: 0 0 34px; font-size: 12px; }
    .zp-form-card-head h2 { font-size: 16px; }
    .zp-form-card-head p { font-size: 11px; line-height: 1.45; }
    .zp-form-grid { gap: 15px; }
    .zp-form-grid input:not([type=checkbox]):not([type=file]),
    .zp-form-grid select,
    .zp-form-grid textarea { min-height: 48px; font-size: 16px; }
    .zp-switch-field { min-height: 58px; }
    .zp-switch-field strong { font-size: 12px; }
    .zp-switch-field span { font-size: 11px; }
    .zp-receipt-actions { grid-template-columns: 1fr; }
    .zp-upload-field { min-height: 145px; }
    .zp-upload-field strong { font-size: 13px; }
    .zp-upload-field > span { max-width: 310px; font-size: 11px; line-height: 1.45; }
    .zp-existing-receipts h3 { font-size: 12px; }
    .zp-existing-receipts a { min-width: 0; }
    .zp-existing-receipts a > span { min-width: 0; }
    .zp-existing-receipts a > span strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
    .zp-existing-receipts a > span small { font-size: 10px; }
    .zp-existing-receipts button { width: 44px; height: 44px; flex: 0 0 44px; }
    .zp-form-footer { position: sticky; z-index: 20; bottom: 0; margin: 0 -14px; padding: 12px 14px max(12px, env(safe-area-inset-bottom)); background: rgba(245,244,240,.94); border-top: 1px solid #e3e0d8; backdrop-filter: blur(12px); }
    .zp-form-footer > a,
    .zp-form-footer > button { min-height: 46px; height: 46px; flex: 1; font-size: 12px; }

    .zp-ocr-heading strong { font-size: 13px; }
    .zp-ocr-heading small,
    .zp-ocr-content > p,
    .zp-ocr-result { font-size: 11px; }
    .zp-ocr-content > button { min-height: 42px; height: 42px; font-size: 11px; }

    .zp-report-filters { gap: 12px; padding: 16px; }
    .zp-report-filters .check { min-height: 50px; padding: 8px 10px; }
    .zp-report-filters .check span { font-size: 11px; line-height: 1.35; }
    .zp-report-filters .check strong { font-size: 11px; }
    .zp-report-filters .check small { margin-top: 3px; font-size: 9px; }
    .zp-report-filters .check input[type=checkbox] { width: 20px; height: 20px; flex: 0 0 20px; }
    .zp-tax-report { padding: 20px; }
    .zp-tax-report h2 { font-size: 22px; }
    .zp-tax-report header p,
    .report-agent { font-size: 11px; }
    .report-agent strong { font-size: 13px; }
    .zp-report-totals span { font-size: 10px; }
    .zp-report-totals strong { font-size: 17px; }
    .zp-report-categories h3,
    .zp-report-details h3 { font-size: 13px; }
    .zp-report-categories p { font-size: 11px; }
    .zp-tax-report > footer { font-size: 10px; }
}

@media screen and (max-width: 640px) {
    .zp-expense-table-wrap { overflow: visible; padding: 14px 0 2px; background: #f7f5ef; }
    .zp-expense-table { display: block; min-width: 0; padding: 0 12px; }
    .zp-expense-table thead { display: none; }
    .zp-expense-table tbody { display: grid; gap: 10px; }
    .zp-expense-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; padding: 5px; background: #fff; border: 1px solid #e5e1d7; border-radius: 13px; box-shadow: 0 5px 16px rgba(32,27,17,.04); }
    .zp-expense-table td { display: flex; min-height: 0; align-items: flex-start; justify-content: center; flex-direction: column; gap: 4px; padding: 9px 10px; border-bottom: 1px solid #efede7; font-size: 12px; text-align: left !important; white-space: normal; }
    .zp-expense-table td:nth-child(odd) { border-right: 1px solid #efede7; }
    .zp-expense-table td::before { color: #969188; content: attr(data-label); font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
    .zp-expense-table td:last-child { border-bottom: 0; }
    .zp-expense-table td > * { min-width: 0; }
    .zp-expense-table td > strong { font-size: 13px; }
    .zp-expense-table td > span,
    .zp-expense-table td > small { max-width: none; font-size: 11px; }
    .zp-expense-table .amount strong { font-size: 14px; }
    .zp-category-pill { max-width: 100% !important; font-size: 10px !important; white-space: normal; }
    .zp-status,
    .zp-tax-badge { font-size: 10px !important; }
    .zp-icon-action { width: 42px; height: 42px; font-size: 14px; }
    .zp-expense-table td[data-label="Actions"] { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid #e8e4da; border-right: 0; }
    .zp-expense-table td[data-label="Actions"] .zp-row-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(42px, 1fr)); width: 100%; }
    .zp-row-actions { flex-wrap: wrap; }
    .zp-expense-table .zp-empty-row td { display: block; padding: 0; }
    .zp-expense-table .zp-empty-row td::before { display: none; }
}

@media screen and (max-width: 575.98px) {
    .zp-search input::placeholder { color: transparent; }
    .zp-expense-heading-actions { grid-template-columns: 1fr; }
    .zp-expense-stats { grid-template-columns: 1fr; }
    .zp-expense-stats article { min-height: 118px; }
    .zp-expense-filters,
    .zp-report-filters { grid-template-columns: 1fr; }
    .zp-expense-filters .search { grid-column: auto; }
    .zp-expense-filters .actions { display: grid; grid-template-columns: 1fr 1fr; }
    .zp-expense-filters .actions > * { width: 100%; }
    .zp-expense-panel-head { flex-wrap: wrap; }
    .zp-expense-pagination { align-items: flex-start; flex-direction: column; }
    .zp-expense-pagination > div { width: 100%; justify-content: space-between; }
    .zp-ocr-preview { min-height: min(62vw, 250px); }
    .zp-report-filters > button { width: 100%; }
    .zp-tax-report > header { flex-direction: column; }
    .report-agent { align-items: flex-start; }
    .zp-report-totals { grid-template-columns: 1fr; gap: 1px; background: #e8e4da; }
    .zp-report-totals div { background: #f8f6f0; border: 0; }
    .zp-report-categories > div { grid-template-columns: 1fr; }

    .zp-report-details { overflow: visible; }
    .zp-report-details table,
    .zp-report-details tbody { display: block; }
    .zp-report-details thead { display: none; }
    .zp-report-details tbody { display: grid; gap: 10px; }
    .zp-report-details tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; padding: 4px; border: 1px solid #e6e1d6; border-radius: 11px; }
    .zp-report-details tbody td { display: flex; align-items: flex-start; flex-direction: column; gap: 4px; padding: 9px 10px; font-size: 11px; text-align: left !important; white-space: normal !important; }
    .zp-report-details tbody td:nth-child(odd) { border-right: 1px solid #ebe7de; }
    .zp-report-details tbody td::before { color: #918b80; content: attr(data-label); font-size: 8px; font-weight: 800; text-transform: uppercase; }
    .zp-report-details tbody td span { max-width: none; }
    .zp-report-details .zp-empty-row td { display: block; }
    .zp-report-details .zp-empty-row td::before { display: none; }
    .zp-report-details tfoot { display: table; width: 100%; margin-top: 10px; }
}

@media screen and (max-width: 380px) {
    .zp-content { padding-right: 10px; padding-left: 10px; }
    .zp-expense-panel,
    .zp-form-card,
    .zp-tax-report { padding: 14px; }
    .zp-expense-table { padding-right: 8px; padding-left: 8px; }
    .zp-expense-table td { grid-template-columns: 72px minmax(0, 1fr); padding-right: 10px; padding-left: 10px; }
    .zp-form-footer { margin-right: -10px; margin-left: -10px; }
    .zp-mobile-nav > a,
    .zp-mobile-nav > button { font-size: 8px; }
    .zp-mobile-nav > a > i,
    .zp-mobile-nav > button > i { font-size: 18px; }
}

@media screen and (max-width: 991.98px) and (max-height: 560px) {
    .zp-brand { min-height: 70px; }
    .zp-brand img { height: 44px; }
    .zp-profile-card { margin-bottom: 10px; padding: 9px; }
    .zp-nav-link { min-height: 42px; }
}

/* System-wide responsive layer */
.zp-content,
.zp-content .container,
.zp-content .container-fluid,
.zp-content .row > *,
.zp-content .card,
.zp-content .card-body { min-width: 0; }
.zp-content img,
.zp-content video,
.zp-content canvas,
.zp-content svg { max-width: 100%; }
.zp-content .table-responsive { width: 100%; max-width: 100%; }
.zp-content .btn { white-space: normal; }
.zp-content [class*="col-"] { min-width: 0; }

@media screen and (max-width: 991.98px) {
    .zp-content .page-title-box { gap: 16px; }
    .zp-content .page-title-right { min-width: 0; }
    .zp-content .breadcrumb { flex-wrap: wrap; }
    .zp-content .modal-dialog { max-width: calc(100vw - 32px); margin-right: auto; margin-left: auto; }
    .zp-finance-filter > .row:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media screen and (max-width: 767.98px) {
    .zp-content .page-title-box { display: flex; min-width: 0; align-items: flex-start; flex-direction: column-reverse; padding: 2px 0 18px; }
    .zp-content .page-title { min-height: 42px; font-size: clamp(22px, 7vw, 29px); overflow-wrap: anywhere; }
    .zp-page-icon { width: 42px; height: 42px; flex-basis: 42px; }
    .zp-content .page-title-right { width: 100%; }
    .zp-content .breadcrumb { margin: 0; font-size: 11px; }
    .zp-content .card { border-radius: 14px; }
    .zp-content .card-body { padding: 17px; }
    .zp-content .card-header,
    .zp-content .card-footer { padding-right: 17px; padding-left: 17px; }
    .zp-content .row { --ct-gutter-x: 1rem; }
    .zp-content .form-control,
    .zp-content .form-select,
    .zp-content input[type="date"],
    .zp-content input[type="time"] { min-height: 48px; font-size: 16px; }
    .zp-content textarea.form-control { min-height: 110px; }
    .zp-content .form-label,
    .zp-content label { line-height: 1.4; }
    .zp-content .input-group > .btn { min-height: 48px; }
    .zp-content .btn:not(.btn-sm) { min-height: 44px; }
    .zp-content .alert { align-items: flex-start; }
    .zp-content .modal-dialog { max-width: calc(100vw - 20px); margin: 10px auto; }
    .zp-content .modal-content { border-radius: 14px; }
    .zp-content .modal-header,
    .zp-content .modal-body,
    .zp-content .modal-footer { padding: 16px; }
    .zp-content .modal-footer { flex-wrap: wrap; }
    .zp-content .modal-footer > * { min-height: 44px; flex: 1; }

    .zp-page-heading { flex-wrap: wrap; }
    .zp-page-heading > div:first-child { min-width: 0; flex: 1 1 240px; }
    .zp-page-heading p { max-width: none; line-height: 1.55; }
    .zp-page-heading .zp-primary-btn { width: auto; min-width: 44px; }
    .zp-page-heading .zp-primary-btn span { display: inline; }
    .zp-panel-header { align-items: flex-start; flex-wrap: wrap; }
    .zp-panel-title { flex: 1 1 190px; }
    .zp-chart-legend { flex-wrap: wrap; }
    .zp-quick-item,
    .zp-lead-row { min-width: 0; }
    .zp-dashboard-grid { align-items: start; gap: 12px; margin-bottom: 14px; }
    .zp-dashboard-grid .zp-panel { border-radius: 14px; }
    .zp-dashboard-grid .zp-panel-header { gap: 9px; padding: 13px 14px; }
    .zp-dashboard-grid .zp-panel-title h2 { font-size: 14px; }
    .zp-dashboard-grid .zp-panel-title p { margin-top: 3px; font-size: 9px; }
    .zp-dashboard-grid .zp-text-link { font-size: 10px; }
    .zp-dashboard-grid .zp-schedule { padding: 0 10px 10px; }
    .zp-dashboard-grid .zp-schedule-days,
    .zp-dashboard-grid .zp-schedule-body { min-width: 500px; }
    .zp-dashboard-grid .zp-schedule-days { grid-template-columns: 44px repeat(5, minmax(78px, 1fr)); }
    .zp-dashboard-grid .zp-schedule-day { padding: 9px 4px; font-size: 8px; }
    .zp-dashboard-grid .zp-schedule-day strong { margin-top: 3px; font-size: 14px; }
    .zp-dashboard-grid .zp-schedule-day.today { margin: 5px 2px; padding: 5px 4px; border-radius: 8px; }
    .zp-dashboard-grid .zp-schedule-body { min-height: 176px; padding-top: 3px; background: repeating-linear-gradient(to bottom, transparent 0, transparent 43px, #efeee9 44px); }
    .zp-dashboard-grid .zp-time-row { min-height: 44px; grid-template-columns: 44px 1fr; }
    .zp-dashboard-grid .zp-time-row > span { padding-top: 7px; font-size: 8px; }
    .zp-dashboard-grid .zp-appointment-track { grid-template-columns: repeat(5, minmax(78px, 1fr)); gap: 5px; }
    .zp-dashboard-grid .zp-appointment-card { min-height: 36px; margin-top: 4px; padding: 6px 7px; }
    .zp-dashboard-grid .zp-appointment-card strong { font-size: 8px; }
    .zp-dashboard-grid .zp-appointment-card small { margin-top: 2px; font-size: 7px; }
    .zp-dashboard-grid .zp-empty-schedule { inset: 50px 0 auto 44px; font-size: 9px; }
    .zp-dashboard-grid .zp-quick-list { padding: 3px 13px 8px; }
    .zp-dashboard-grid .zp-quick-item { padding: 10px 2px; }
    .zp-dashboard-grid .zp-empty-state { display: flex; min-height: 74px; align-items: center; justify-content: center; gap: 9px; padding: 16px 10px; font-size: 10px; }
    .zp-dashboard-grid .zp-empty-state i { margin: 0; font-size: 20px; }

    .zp-table-toolbar { margin-bottom: 16px; }
    .zp-table-toolbar p { font-size: 12px; line-height: 1.5; }
    .zp-toolbar-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
    .zp-toolbar-actions > * { width: 100%; min-height: 44px; }
    .zp-table-shell { max-width: 100%; overflow: hidden; }
    .zp-table-shell .dataTables_wrapper { min-width: 0; }
    .zp-table-shell .dataTables_wrapper > .row:first-child,
    .zp-table-shell .dataTables_wrapper > .row:last-child { gap: 12px; }
    .zp-table-shell .dataTables_wrapper > .row:first-child > div,
    .zp-table-shell .dataTables_wrapper > .row:last-child > div { width: 100%; }
    .zp-table-shell .dt-buttons { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
    .zp-table-shell .dt-buttons .btn { min-height: 40px; justify-content: center; }
    .zp-table-shell .dataTables_filter,
    .zp-table-shell .dataTables_filter label { display: block; width: 100%; text-align: left; }
    .zp-table-shell .dataTables_filter input { width: 100%; min-height: 44px; font-size: 16px; }
    .zp-table-shell .dataTables_info { font-size: 11px; text-align: center; }
    .zp-table-shell .dataTables_paginate .pagination { flex-wrap: wrap; justify-content: center; }
    .zp-table-shell .pagination .page-link { min-width: 38px; height: 38px; font-size: 11px; }

    .zp-finance-filter > .row:first-child { grid-template-columns: 1fr; }
    .zp-filter-heading { flex-wrap: wrap; }
    .zp-filter-heading > * { min-width: 0; }
    .zp-admin-category-form { grid-template-columns: 1fr; }
    .zp-admin-category-form label:first-child { grid-column: auto; }
    .zp-admin-category-form input,
    .zp-admin-category-list input { height: 48px; font-size: 16px; }
    .zp-admin-category-form button { width: 100%; height: 46px; }
}

@media screen and (max-width: 640px) {
    .zp-table-shell { overflow: visible; border: 0; background: transparent; }
    .zp-table-shell .dataTables_wrapper > .row:first-child,
    .zp-table-shell .dataTables_wrapper > .row:last-child { gap: 8px; margin-bottom: 10px; padding: 10px 11px; border: 1px solid #e7e3da; border-radius: 12px; }
    .zp-table-shell .dataTables_wrapper > .row:last-child { min-height: 54px; align-items: center; flex-wrap: nowrap; margin-top: 0; padding: 7px 10px; }
    .zp-table-shell .dataTables_wrapper > .row:last-child > div { width: auto; }
    .zp-table-shell .dataTables_wrapper > .row:last-child > div:first-child { min-width: 0; flex: 1; }
    .zp-table-shell .dataTables_wrapper > .row:last-child > div:last-child { flex: 0 0 auto; }
    .zp-table-shell .dataTables_wrapper > .row:last-child .dataTables_info { overflow: hidden; font-size: 10px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
    .zp-table-shell .dataTables_wrapper > .row:last-child .pagination { flex-wrap: nowrap; }
    .zp-table-shell .dataTables_wrapper > .row:last-child .page-link { min-width: 34px; height: 34px; }
    .zp-table-shell .table-responsive { overflow: visible; }
    .zp-content table.zp-responsive-table,
    .zp-content table.zp-responsive-table tbody { display: block; width: 100% !important; }
    .zp-content table.zp-responsive-table thead { display: none; }
    .zp-content table.zp-responsive-table tbody { display: grid; gap: 10px; padding: 2px 0 10px; }
    .zp-content table.zp-responsive-table tbody tr { display: grid; width: 100% !important; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; padding: 5px; background: #fff !important; border: 1px solid #e5e1d7; border-radius: 13px; box-shadow: 0 5px 16px rgba(32,27,17,.045); }
    .zp-content table.zp-responsive-table tbody tr.odd,
    .zp-content table.zp-responsive-table tbody tr.even,
    .zp-content table.zp-responsive-table tbody tr:hover { background: #fff !important; }
    .zp-content table.zp-responsive-table tbody td,
    .zp-content table.zp-responsive-table tbody th { display: flex; width: 100% !important; min-height: 0; height: auto !important; align-items: flex-start; justify-content: center; flex-direction: column; gap: 4px; padding: 8px 10px !important; border: 0; border-bottom: 1px solid #f0eee8; font-size: 12px; line-height: 1.3; text-align: left !important; white-space: normal !important; overflow-wrap: anywhere; }
    .zp-content table.zp-responsive-table tbody td:nth-child(odd) { border-right: 1px solid #f0eee8; }
    .zp-content table.zp-responsive-table tbody td:last-child,
    .zp-content table.zp-responsive-table tbody th:last-child { border-bottom: 0; }
    .zp-content table.zp-responsive-table tbody td::before,
    .zp-content table.zp-responsive-table tbody th::before { display: block; color: #99948a; content: attr(data-label); font-size: 8px; font-weight: 800; letter-spacing: .07em; line-height: 1.2; text-transform: uppercase; }
    .zp-content table.zp-responsive-table tbody td > *,
    .zp-content table.zp-responsive-table tbody th > * { min-width: 0; max-width: 100%; }
    .zp-content table.zp-responsive-table tbody td[colspan],
    .zp-content table.zp-responsive-table tbody tr.child td { display: block; grid-column: 1 / -1; padding: 18px 12px !important; text-align: center !important; }
    .zp-content table.zp-responsive-table tbody td[colspan]::before,
    .zp-content table.zp-responsive-table tbody tr.child td::before { display: none; }
    .zp-content table.zp-responsive-table tbody .dtr-details { width: 100%; text-align: left; }
    .zp-content table.zp-responsive-table tbody td[data-label="Action"],
    .zp-content table.zp-responsive-table tbody td[data-label="Actions"] { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; padding-top: 10px !important; border-top: 1px solid #ebe8df; border-right: 0; border-bottom: 0; }
    .zp-content table.zp-responsive-table tbody td[data-label="Action"]::before,
    .zp-content table.zp-responsive-table tbody td[data-label="Actions"]::before { grid-column: 1 / -1; }
    .zp-content table.zp-responsive-table tbody td[data-label="Action"] > :only-child,
    .zp-content table.zp-responsive-table tbody td[data-label="Actions"] > :only-child { grid-column: 1 / -1; }
    .zp-content table.zp-responsive-table tbody .btn,
    .zp-content table.zp-responsive-table tbody button,
    .zp-content table.zp-responsive-table tbody a.btn { width: 100%; min-width: 0; min-height: 38px; margin: 0; }
    .zp-content table.zp-responsive-table tbody form { margin-bottom: 0; }
    .zp-content table.zp-responsive-table.no-footer { border-bottom: 0; }

    .zp-content table.zp-appointments-table tbody tr { position: relative; grid-template-columns: minmax(110px, 1.5fr) repeat(2, minmax(72px, 1fr)); padding: 0; border-color: #ded9ce; border-radius: 14px; box-shadow: 0 6px 20px rgba(32,27,17,.055); }
    .zp-content table.zp-appointments-table tbody td:nth-child(1) { position: static; z-index: 2; display: flex; width: 100% !important; grid-column: 3; grid-row: 1; align-items: center; justify-content: flex-end; padding: 10px 12px 10px 4px !important; background: linear-gradient(90deg, #fbfaf7, #fffaf0) !important; border: 0; border-bottom: 1px solid #e9e5dc; }
    .zp-content table.zp-appointments-table tbody td:nth-child(1)::before { display: none; }
    .zp-content table.zp-appointments-table .zp-appointment-number { display: grid; width: 28px; height: 28px; place-items: center; color: #6c4d14; background: #f7e8c7; border: 1px solid #e7cc92; border-radius: 9px; font-size: 10px; }
    .zp-content table.zp-appointments-table tbody td:nth-child(2) { grid-column: 1 / 3; grid-row: 1; min-height: 62px; padding: 10px 8px 10px 14px !important; background: linear-gradient(90deg, #fbfaf7, #fffaf0) !important; border-right: 0; border-bottom: 1px solid #e9e5dc; }
    .zp-content table.zp-appointments-table .zp-appointment-date { color: #282622; font-size: 14px; font-weight: 750; }
    .zp-content table.zp-appointments-table tbody td:nth-child(3) { grid-column: 1; grid-row: 2; min-height: 62px; padding: 10px 12px !important; border-right: 0; }
    .zp-content table.zp-appointments-table .zp-appointment-location { max-width: 100%; color: #4c4943; font-size: 11px; font-weight: 650; }
    .zp-content table.zp-appointments-table .zp-appointment-location i { flex: 0 0 auto; }
    .zp-content table.zp-appointments-table .zp-appointment-location { overflow-wrap: anywhere; }
    .zp-content table.zp-appointments-table tbody td:nth-child(4),
    .zp-content table.zp-appointments-table tbody td:nth-child(5) { min-height: 62px; grid-row: 2; padding: 10px 9px !important; background: #fff; }
    .zp-content table.zp-appointments-table tbody td:nth-child(4) { grid-column: 2; }
    .zp-content table.zp-appointments-table tbody td:nth-child(5) { grid-column: 3; }
    .zp-content table.zp-appointments-table tbody td:nth-child(4) { border-right: 0; }
    .zp-content table.zp-appointments-table tbody td:nth-child(5) { border-right: 0; }
    .zp-content table.zp-appointments-table .zp-appointment-meta-pill { padding: 4px 7px; font-size: 8px; }
    .zp-content table.zp-appointments-table tbody td[data-label="Action"] { grid-column: 1 / -1; grid-row: 3; padding: 8px 10px 10px !important; background: #fcfbf8; }
    .zp-content table.zp-appointments-table tbody td[data-label="Action"]::before { display: none; }
    .zp-content table.zp-appointments-table .zp-appointment-actions { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 112px)); justify-content: center; width: 100%; gap: 7px; }
    .zp-content table.zp-appointments-table .zp-appointment-actions .btn { min-height: 34px; padding: 0 12px; border-radius: 8px; font-size: 9px; }
    .zp-content table.zp-appointments-table .zp-appointment-actions .btn i { font-size: 11px; }
    .zp-table-shell:has(.zp-appointments-table) .dataTables_wrapper > .row:last-child { background: transparent; border-color: #e5e1d8; box-shadow: none; }

    .zp-admin-category-list { overflow: visible; }
    .zp-admin-category-list .head { display: none; }
    .zp-admin-category-list > form { display: grid; min-width: 0; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; padding: 15px; background: #fff; border: 1px solid #e5e1d7; border-radius: 12px; }
    .zp-admin-category-list > form > *:first-child { grid-column: 1 / -1; }
    .zp-admin-category-list > form button { width: 100%; height: 44px; }
}

@media screen and (max-width: 575.98px) {
    .zp-content .card-body { padding: 15px; }
    .zp-content .page-title-right { display: none; }
    .zp-page-heading { flex-direction: column; }
    .zp-page-heading > div,
    .zp-page-heading > a,
    .zp-page-heading > button { width: 100%; }
    .zp-page-heading .zp-primary-btn { width: 100%; }
    .zp-stat-grid { grid-template-columns: 1fr; }
    .zp-stat-card { min-height: 118px; }
    .zp-toolbar-actions { grid-template-columns: 1fr; }
    .zp-toolbar-actions .zp-secondary-btn { flex-basis: auto; }
    .zp-toolbar-actions .zp-secondary-btn span,
    .zp-row-actions .zp-action-btn span { display: inline; }
    .zp-filter-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .zp-admin-category-list > form { grid-template-columns: 1fr; }
    .zp-admin-category-list > form > *:first-child { grid-column: auto; }
}

@media screen and (max-width: 380px) {
    .zp-content table.zp-responsive-table tbody td,
    .zp-content table.zp-responsive-table tbody th { grid-template-columns: 74px minmax(0, 1fr); gap: 8px; padding-right: 10px !important; padding-left: 10px !important; }
    .zp-content table.zp-appointments-table tbody tr { grid-template-columns: minmax(0, 1fr) 46px; }
    .zp-content table.zp-appointments-table tbody td:nth-child(1) { grid-column: 2; grid-row: 1; }
    .zp-content table.zp-appointments-table tbody td:nth-child(2) { grid-column: 1; grid-row: 1; }
    .zp-content table.zp-appointments-table tbody td:nth-child(3) { grid-column: 1 / -1; grid-row: 2; border-right: 0; }
    .zp-content table.zp-appointments-table tbody td:nth-child(4) { grid-column: 1; grid-row: 3; }
    .zp-content table.zp-appointments-table tbody td:nth-child(5) { grid-column: 2; grid-row: 3; }
    .zp-content table.zp-appointments-table tbody td[data-label="Action"] { grid-row: 4; }
    .zp-table-shell .dt-buttons { grid-template-columns: 1fr; }
}

/* Income create and edit experience */
.zp-income-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; max-width: 1180px; margin: 2px auto 22px; }
.zp-income-heading > div { min-width: 0; }
.zp-income-heading .zp-back-link { margin-bottom: 10px; }
.zp-income-heading .zp-eyebrow { margin-bottom: 7px; }
.zp-income-heading h1 { margin: 0; color: #171716; font-size: clamp(27px, 3vw, 36px); font-weight: 750; letter-spacing: -.045em; }
.zp-income-heading p { margin: 7px 0 0; color: #85827b; font-size: 12px; line-height: 1.55; }
.zp-income-heading-badge { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 0 12px; color: #73541c; background: #fff7e6; border: 1px solid #ead4a4; border-radius: 999px; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.zp-income-form { max-width: 1180px; margin: 0 auto; }
.zp-income-errors { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 14px; padding: 14px 16px; color: #8e3f3f; background: #fff5f5; border: 1px solid #efd0d0; border-radius: 13px; }
.zp-income-errors > span { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; color: #a54c4c; background: #ffe5e5; border-radius: 9px; }
.zp-income-errors strong { display: block; font-size: 11px; }
.zp-income-errors p { margin: 4px 0 0; color: #ad6767; font-size: 9px; }
.zp-income-section { margin-bottom: 14px; padding: 22px; background: #fff; border: 1px solid #e5e2da; border-radius: 17px; box-shadow: 0 8px 25px rgba(32,27,17,.04); }
.zp-income-section-head { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #efede7; }
.zp-income-section-head > span { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: #191815; background: var(--zp-gold); border-radius: 9px; font-size: 9px; font-weight: 850; }
.zp-income-section-head h2 { margin: 0; color: #292824; font-size: 14px; font-weight: 750; }
.zp-income-section-head p { margin: 4px 0 0; color: #99958d; font-size: 9px; }
.zp-income-grid { display: grid; gap: 16px; }
.zp-income-grid.transaction { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zp-income-grid.finance { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zp-income-grid.references { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 17px; padding-top: 17px; border-top: 1px dashed #e5e1d8; }
.zp-income-grid.property { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zp-income-grid .span-2 { grid-column: span 2; }
.zp-income-field { display: block; min-width: 0; margin: 0; }
.zp-income-field > span,
.zp-receipt-choice > legend { display: block; width: auto; margin: 0 0 7px; color: #68645d; font-size: 9px; font-weight: 750; letter-spacing: .035em; }
.zp-income-field > span b,
.zp-receipt-choice > legend b { color: #bd5a4c; }
.zp-income-field > span em { margin-left: 6px; color: #aaa69d; font-size: 8px; font-style: normal; font-weight: 600; }
.zp-income-field .form-control,
.zp-income-field .form-select { min-height: 46px; padding: 10px 12px; color: #3e3b36; background-color: #fbfaf8; border-color: #dfdcd4; border-radius: 10px; font-size: 11px; }
.zp-income-field .form-control::placeholder { color: #b0aca4; }
.zp-income-field textarea.form-control { min-height: 116px; resize: vertical; line-height: 1.6; }
.zp-income-field .invalid-feedback { margin-top: 5px; font-size: 9px; }
.zp-income-field.featured { padding: 14px; background: #fffbf2; border: 1px solid #ead9b4; border-radius: 12px; }
.zp-income-field.featured > span { color: #77591e; }
.zp-income-money { display: flex; min-width: 0; }
.zp-income-money > i { display: grid; width: 47px; flex: 0 0 47px; place-items: center; color: #70531c; background: #f4e7c9; border: 1px solid #dfcfab; border-right: 0; border-radius: 10px 0 0 10px; font-size: 10px; font-style: normal; font-weight: 850; }
.zp-income-money .form-control { border-radius: 0 10px 10px 0; }
.zp-income-icon-input { position: relative; }
.zp-income-icon-input > i { position: absolute; top: 50%; left: 14px; z-index: 1; color: #a0782e; font-size: 14px; transform: translateY(-50%); }
.zp-income-icon-input .form-control { padding-left: 39px; }
.zp-receipt-choice { min-width: 0; padding: 0; border: 0; }
.zp-receipt-choice > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.zp-receipt-choice label { margin: 0; cursor: pointer; }
.zp-receipt-choice input { position: absolute; opacity: 0; pointer-events: none; }
.zp-receipt-choice label > span { display: grid; min-height: 76px; grid-template-columns: 30px 1fr; align-content: center; align-items: center; gap: 2px 9px; padding: 11px; color: #6d6961; background: #fbfaf8; border: 1px solid #e1ded6; border-radius: 11px; transition: .18s ease; }
.zp-receipt-choice label > span > i { display: grid; width: 30px; height: 30px; grid-row: span 2; place-items: center; color: #8c877e; background: #eeece6; border-radius: 9px; }
.zp-receipt-choice label > span > b { color: #4b4842; font-size: 10px; }
.zp-receipt-choice label > span > small { color: #9c9890; font-size: 8px; }
.zp-receipt-choice input:checked + span { color: #6a4d18; background: #fff9ec; border-color: #d9b76d; box-shadow: 0 0 0 3px rgba(215,173,87,.11); }
.zp-receipt-choice input:checked + span > i { color: #171611; background: var(--zp-gold); }
.zp-receipt-choice input:focus-visible + span { outline: 3px solid rgba(215,173,87,.3); outline-offset: 2px; }
.zp-receipt-choice.has-error label > span { border-color: #d66d63; }
.zp-receipt-choice .invalid-feedback { display: block; }
.zp-income-receipt { transition: opacity .18s ease; }
.zp-income-receipt.is-disabled { opacity: .48; }
.zp-income-upload { display: flex; min-height: 76px; align-items: center; justify-content: center; flex-direction: column; padding: 10px 14px; text-align: center; background: #fbfaf7; border: 1px dashed #cfb475; border-radius: 11px; cursor: pointer; transition: .18s ease; }
.zp-income-upload:hover { background: #fff9ec; border-color: #b98b32; }
.zp-income-upload.invalid { border-color: #cb675d; }
.zp-income-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.zp-income-upload > i { margin-bottom: 4px; color: #a27627; font-size: 17px; }
.zp-income-upload > strong { display: block; max-width: 100%; overflow: hidden; color: #4c4943; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.zp-income-upload > small { margin-top: 3px; color: #aaa69e; font-size: 8px; }
.zp-current-receipt { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; color: #76571c; font-size: 9px; font-weight: 700; }
.zp-income-form-footer { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 5px 0 28px; }
.zp-income-form-footer > * { min-width: 132px; }

@media screen and (max-width: 991.98px) {
    .zp-income-grid.transaction,
    .zp-income-grid.finance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zp-income-grid.finance .featured { grid-column: span 2; }
}

@media screen and (max-width: 767.98px) {
    .zp-income-heading { align-items: flex-start; flex-direction: column; gap: 13px; margin-bottom: 18px; }
    .zp-income-heading h1 { font-size: clamp(26px, 8vw, 32px); }
    .zp-income-heading p { font-size: 12px; }
    .zp-income-heading-badge { min-height: 34px; }
    .zp-income-section { padding: 16px; border-radius: 14px; }
    .zp-income-section-head { align-items: flex-start; margin-bottom: 16px; padding-bottom: 13px; }
    .zp-income-section-head h2 { font-size: 15px; }
    .zp-income-section-head p { font-size: 10px; line-height: 1.4; }
    .zp-income-field > span,
    .zp-receipt-choice > legend { font-size: 11px; }
    .zp-income-field .form-control,
    .zp-income-field .form-select { min-height: 48px; font-size: 16px; }
    .zp-income-money > i { width: 50px; flex-basis: 50px; font-size: 11px; }
    .zp-receipt-choice label > span { min-height: 78px; }
    .zp-receipt-choice label > span > b { font-size: 11px; }
    .zp-receipt-choice label > span > small { font-size: 9px; }
    .zp-income-upload > strong { font-size: 11px; }
    .zp-income-upload > small,
    .zp-current-receipt { font-size: 10px; }
    .zp-income-form-footer { position: sticky; z-index: 20; bottom: 0; margin: 0 -14px; padding: 11px 14px max(11px, env(safe-area-inset-bottom)); background: rgba(245,244,240,.94); border-top: 1px solid #e3e0d8; backdrop-filter: blur(12px); }
    .zp-income-form-footer > * { min-width: 0; min-height: 46px; flex: 1; }
}

@media screen and (max-width: 640px) {
    .zp-income-grid.transaction,
    .zp-income-grid.finance,
    .zp-income-grid.references,
    .zp-income-grid.property { grid-template-columns: 1fr; }
    .zp-income-grid .span-2,
    .zp-income-grid.finance .featured { grid-column: auto; }
    .zp-income-grid { gap: 14px; }
    .zp-income-grid.references { margin-top: 14px; padding-top: 14px; }
}

@media screen and (max-width: 380px) {
    .zp-income-section { padding: 13px; }
    .zp-receipt-choice > div { grid-template-columns: 1fr; }
    .zp-income-form-footer { display: grid; grid-template-columns: 1fr; }
    .zp-income-form-footer > * { width: 100%; }
}

/* Appointment create and edit experience */
.zp-appointment-editor-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; max-width: 1100px; margin: 2px auto 22px; }
.zp-appointment-editor-heading > div { min-width: 0; }
.zp-appointment-editor-heading .zp-back-link { margin-bottom: 10px; }
.zp-appointment-editor-heading .zp-eyebrow { margin-bottom: 7px; }
.zp-appointment-editor-heading h1 { margin: 0; color: #171716; font-size: clamp(27px, 3vw, 36px); font-weight: 750; letter-spacing: -.045em; }
.zp-appointment-editor-heading p { margin: 7px 0 0; color: #85827b; font-size: 12px; line-height: 1.55; }
.zp-appointment-editor-badge { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 0 12px; color: #73541c; background: #fff7e6; border: 1px solid #ead4a4; border-radius: 999px; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.zp-appointment-editor-form { max-width: 1100px; margin: 0 auto; }
.zp-appointment-editor-errors { display: flex; align-items: flex-start; gap: 11px; margin-bottom: 14px; padding: 14px 16px; color: #8e3f3f; background: #fff5f5; border: 1px solid #efd0d0; border-radius: 13px; }
.zp-appointment-editor-errors > span { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; color: #a54c4c; background: #ffe5e5; border-radius: 9px; }
.zp-appointment-editor-errors strong { display: block; font-size: 11px; }
.zp-appointment-editor-errors p { margin: 4px 0 0; color: #ad6767; font-size: 9px; }
.zp-appointment-editor-section { margin-bottom: 14px; padding: 22px; background: #fff; border: 1px solid #e5e2da; border-radius: 17px; box-shadow: 0 8px 25px rgba(32,27,17,.04); }
.zp-appointment-editor-section-head { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #efede7; }
.zp-appointment-editor-section-head > span { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; color: #191815; background: var(--zp-gold); border-radius: 9px; font-size: 9px; font-weight: 850; }
.zp-appointment-editor-section-head h2 { margin: 0; color: #292824; font-size: 14px; font-weight: 750; }
.zp-appointment-editor-section-head p { margin: 4px 0 0; color: #99958d; font-size: 9px; }
.zp-appointment-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.zp-appointment-editor-grid .span-2 { grid-column: span 2; }
.zp-appointment-editor-field { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.zp-appointment-editor-field > span,
.zp-appointment-editor-field > legend { display: block; width: auto; margin: 0 0 7px; color: #68645d; font-size: 9px; font-weight: 750; letter-spacing: .035em; }
.zp-appointment-editor-field > span b,
.zp-appointment-editor-field > legend b { color: #bd5a4c; }
.zp-appointment-editor-field .form-control { min-height: 46px; padding: 10px 12px; color: #3e3b36; background-color: #fbfaf8; border-color: #dfdcd4; border-radius: 10px; font-size: 11px; }
.zp-appointment-editor-field .form-control::placeholder { color: #b0aca4; }
.zp-appointment-editor-field .invalid-feedback { margin-top: 5px; font-size: 9px; }
.zp-appointment-editor-icon-input { position: relative; }
.zp-appointment-editor-icon-input > i { position: absolute; top: 50%; left: 14px; z-index: 1; color: #a0782e; font-size: 14px; transform: translateY(-50%); }
.zp-appointment-editor-icon-input .form-control { padding-left: 40px; }
.zp-appointment-editor-options { margin-top: 2px; }
.zp-appointment-editor-options > div { display: grid; gap: 9px; }
.zp-appointment-editor-options .state-options { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.zp-appointment-editor-options .purpose-options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zp-appointment-editor-options label { min-width: 0; margin: 0; cursor: pointer; }
.zp-appointment-editor-options input { position: absolute; opacity: 0; pointer-events: none; }
.zp-appointment-editor-options label > span { display: flex; min-height: 48px; align-items: center; justify-content: center; gap: 7px; padding: 9px; color: #68645d; background: #fbfaf8; border: 1px solid #e1ded6; border-radius: 10px; font-size: 9px; font-weight: 700; text-align: center; transition: .18s ease; }
.zp-appointment-editor-options label > span i { color: #9c968b; font-size: 13px; }
.zp-appointment-editor-options input:checked + span { color: #5f4412; background: #fff8e9; border-color: #d7b468; box-shadow: 0 0 0 3px rgba(215,173,87,.11); }
.zp-appointment-editor-options input:checked + span i { color: #9a6e1d; }
.zp-appointment-editor-options input:focus-visible + span { outline: 3px solid rgba(215,173,87,.3); outline-offset: 2px; }
.zp-appointment-editor-options.has-error label > span { border-color: #d66d63; }
.zp-appointment-editor-options .invalid-feedback { display: block; }
.zp-appointment-editor-field.location { margin-top: 18px; }
.zp-appointment-editor-location { position: relative; }
.zp-appointment-editor-location > i { position: absolute; top: 15px; left: 15px; z-index: 1; color: #a0782e; font-size: 15px; }
.zp-appointment-editor-location textarea.form-control { min-height: 104px; padding: 13px 14px 13px 42px; resize: vertical; line-height: 1.55; }
.zp-appointment-editor-footer { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding: 5px 0 28px; }
.zp-appointment-editor-footer > * { min-width: 142px; }
.zp-appointment-whatsapp { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 8px; padding: 0 15px; color: #256845; background: #f1faf5; border: 1px solid #bcdcc9; border-radius: 11px; font-size: 11px; font-weight: 750; }
.zp-appointment-whatsapp:hover { color: #fff; background: #2f865c; border-color: #2f865c; }

@media screen and (max-width: 767.98px) {
    .zp-appointment-editor-heading { align-items: flex-start; flex-direction: column; gap: 13px; margin-bottom: 18px; }
    .zp-appointment-editor-heading h1 { font-size: clamp(26px, 8vw, 32px); }
    .zp-appointment-editor-heading p { font-size: 12px; }
    .zp-appointment-editor-badge { min-height: 34px; }
    .zp-appointment-editor-section { padding: 16px; border-radius: 14px; }
    .zp-appointment-editor-section-head { align-items: flex-start; margin-bottom: 16px; padding-bottom: 13px; }
    .zp-appointment-editor-section-head h2 { font-size: 15px; }
    .zp-appointment-editor-section-head p { font-size: 10px; line-height: 1.4; }
    .zp-appointment-editor-field > span,
    .zp-appointment-editor-field > legend { font-size: 11px; }
    .zp-appointment-editor-field .form-control { min-height: 48px; font-size: 16px; }
    .zp-appointment-editor-options .state-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .zp-appointment-editor-options .purpose-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zp-appointment-editor-options label > span { min-height: 50px; font-size: 10px; }
    .zp-appointment-editor-footer { position: sticky; z-index: 20; bottom: 0; margin: 0 -14px; padding: 11px 14px max(11px, env(safe-area-inset-bottom)); background: rgba(245,244,240,.94); border-top: 1px solid #e3e0d8; backdrop-filter: blur(12px); }
    .zp-appointment-editor-footer > * { min-width: 0; min-height: 46px; flex: 1; }
}

@media screen and (max-width: 575.98px) {
    .zp-appointment-editor-grid { grid-template-columns: 1fr; gap: 14px; }
    .zp-appointment-editor-grid .span-2 { grid-column: auto; }
    .zp-appointment-editor-options .state-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zp-appointment-editor-options .state-options label:last-child { grid-column: 1 / -1; }
    .zp-appointment-editor-footer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .zp-appointment-editor-footer .zp-appointment-whatsapp { grid-column: 1 / -1; grid-row: 1; }
}

@media screen and (max-width: 360px) {
    .zp-appointment-editor-section { padding: 13px; }
    .zp-appointment-editor-options .purpose-options { grid-template-columns: 1fr; }
    .zp-appointment-editor-footer { grid-template-columns: 1fr; }
    .zp-appointment-editor-footer .zp-appointment-whatsapp { grid-column: auto; }
    .zp-appointment-editor-footer > * { width: 100%; }
}

/* Database type selector */
.zp-database-type-panel { max-width: 1040px; margin: 0 auto 22px; padding: 22px; background: #fff; border: 1px solid #e5e2da; border-radius: 17px; box-shadow: 0 9px 28px rgba(32,27,17,.045); }
.zp-database-type-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.zp-database-type-heading > div { min-width: 0; flex: 1; }
.zp-database-type-icon { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; color: #765619; background: #fff5df; border: 1px solid #eddaaF; border-radius: 11px; font-size: 15px; }
.zp-database-type-heading h2 { margin: 4px 0 0; color: #25231f; font-size: 16px; font-weight: 750; letter-spacing: -.02em; }
.zp-database-type-heading p { margin: 5px 0 0; color: #969189; font-size: 10px; }
.zp-database-type-step { flex: 0 0 auto; padding: 6px 9px; color: #795a20; background: #fff7e8; border: 1px solid #ead6aa; border-radius: 999px; font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.zp-database-type-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.zp-database-type-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.zp-database-type-option { min-width: 0; margin: 0; cursor: pointer; }
.zp-database-type-option > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.zp-database-type-card { position: relative; display: grid; min-height: 92px; grid-template-columns: 42px minmax(0, 1fr) 24px; align-items: center; gap: 13px; padding: 15px 16px; background: #fbfaf7; border: 1px solid #e4e0d7; border-radius: 13px; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.zp-database-type-option:hover .zp-database-type-card { background: #fffdf8; border-color: #d9bd80; transform: translateY(-1px); }
.zp-database-type-card-icon { display: grid; width: 42px; height: 42px; place-items: center; color: #956d22; background: #fff; border: 1px solid #eadfc7; border-radius: 11px; font-size: 16px; }
.zp-database-type-copy { min-width: 0; }
.zp-database-type-copy strong { display: block; color: #302e29; font-size: 12px; font-weight: 750; }
.zp-database-type-copy small { display: block; max-width: 340px; margin-top: 5px; color: #918d85; font-size: 9px; line-height: 1.45; }
.zp-database-type-check { display: grid; width: 22px; height: 22px; place-items: center; color: transparent; background: #fff; border: 1px solid #dcd8cf; border-radius: 50%; font-size: 11px; transition: .18s ease; }
.zp-database-type-option > input:checked + .zp-database-type-card { background: #fff9ec; border-color: #d7ae5b; box-shadow: 0 0 0 3px rgba(215,174,91,.12); }
.zp-database-type-option > input:checked + .zp-database-type-card .zp-database-type-card-icon { color: #191713; background: var(--zp-gold); border-color: var(--zp-gold); }
.zp-database-type-option > input:checked + .zp-database-type-card .zp-database-type-check { color: #171512; background: var(--zp-gold); border-color: var(--zp-gold); }
.zp-database-type-option > input:focus-visible + .zp-database-type-card { outline: 3px solid rgba(215,174,91,.32); outline-offset: 3px; }
.zp-database-type-panel.has-error { border-color: #df8f87; }
.zp-database-type-panel.has-error .zp-database-type-card { border-color: #e5aaa4; }
.zp-database-type-error { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; color: #a44b43; font-size: 9px; font-weight: 650; }

@media screen and (max-width: 640px) {
    .zp-database-type-panel { margin-bottom: 16px; padding: 15px; border-radius: 14px; }
    .zp-database-type-heading { align-items: flex-start; margin-bottom: 15px; }
    .zp-database-type-heading h2 { font-size: 15px; }
    .zp-database-type-heading p { font-size: 10px; line-height: 1.45; }
    .zp-database-type-step { display: none; }
    .zp-database-type-options { grid-template-columns: 1fr; gap: 9px; }
    .zp-database-type-card { min-height: 78px; grid-template-columns: 38px minmax(0, 1fr) 22px; gap: 11px; padding: 12px; }
    .zp-database-type-card-icon { width: 38px; height: 38px; font-size: 14px; }
    .zp-database-type-copy strong { font-size: 12px; }
    .zp-database-type-copy small { font-size: 9px; }
}

/* Selling and buying database forms */
.zp-database-record-form { max-width: 1040px; margin: 0 auto 26px; }
.zp-database-form-card { overflow: hidden; margin: 0; background: #fff; border: 1px solid #e4e1d9; border-radius: 18px; box-shadow: 0 10px 30px rgba(32,27,17,.05); }
.zp-database-form-header { display: flex; align-items: center; gap: 14px; padding: 20px 24px; background: linear-gradient(100deg, #fbfaf7, #fffaf0); border-bottom: 1px solid #e9e5dc; }
.zp-database-form-header > div { min-width: 0; flex: 1; }
.zp-database-form-header-icon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; color: #181713; background: var(--zp-gold); border-radius: 12px; box-shadow: 0 5px 13px rgba(186,137,42,.18); font-size: 16px; }
.zp-database-form-header h2 { margin: 4px 0 0; color: #25231f; font-size: 18px; font-weight: 760; letter-spacing: -.025em; }
.zp-database-form-header p { margin: 5px 0 0; color: #8f8a82; font-size: 10px; line-height: 1.45; }
.zp-database-form-step { flex: 0 0 auto; padding: 6px 9px; color: #795a20; background: rgba(255,255,255,.72); border: 1px solid #e3c98e; border-radius: 999px; font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.zp-database-form-body { padding: 0 24px 24px; }
.zp-database-section-heading { margin-top: 12px; }
.zp-database-section-heading:first-child { margin-top: 0; }
.zp-database-section-heading > .col-12 { display: flex; align-items: center; gap: 11px; margin: 0 -12px 15px !important; padding: 15px 12px 12px; border-bottom: 1px solid #efede7; }
.zp-database-section-icon { display: grid; width: 31px; height: 31px; flex: 0 0 31px; place-items: center; color: #765719; background: #fff4dd; border: 1px solid #ebd8af; border-radius: 9px; font-size: 12px; }
.zp-database-section-heading h5 { margin: 0; color: #34312c; font-size: 13px; font-weight: 750; }
.zp-database-section-heading p { margin: 3px 0 0; color: #9b968d; font-size: 8px; line-height: 1.4; }
.zp-database-form-body > .row:not(.zp-database-section-heading) { margin-right: -7px; margin-left: -7px; }
.zp-database-form-body > .row:not(.zp-database-section-heading) > [class*="col-"] { padding-right: 7px; padding-left: 7px; }
.zp-database-form-body .mb-3 { margin-bottom: 15px !important; }
.zp-database-form-body .form-label { margin-bottom: 7px; color: #68645d; font-size: 9px; font-weight: 750; letter-spacing: .025em; }
.zp-database-form-body .form-control,
.zp-database-form-body .form-select { min-height: 44px; padding: 9px 12px; color: #3f3c37; background-color: #fbfaf8; border-color: #dfdcd4; border-radius: 10px; box-shadow: none; font-size: 10px; }
.zp-database-form-body .form-control:focus,
.zp-database-form-body .form-select:focus { background-color: #fff; border-color: #d4ad5d; box-shadow: 0 0 0 3px rgba(212,173,93,.12); }
.zp-database-form-body textarea.form-control { min-height: 104px; resize: vertical; line-height: 1.55; }
.zp-database-form-body .input-group-text { min-width: 48px; justify-content: center; color: #72551d; background: #fff4dc; border-color: #dfd4bd; border-radius: 10px 0 0 10px; font-size: 9px; font-weight: 800; }
.zp-database-form-body .input-group > .form-control { border-radius: 0 10px 10px 0; }
.zp-database-form-body .invalid-feedback { margin-top: 5px; font-size: 8px; }
.zp-database-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 9px -24px -24px; padding: 15px 24px; background: #faf9f6; border-top: 1px solid #e9e6de; }
.zp-database-form-footer > span { display: inline-flex; align-items: center; gap: 6px; color: #98938a; font-size: 8px; }
.zp-database-form-footer > span i { color: #9a7226; }
.zp-database-form-footer .zp-database-submit { display: inline-flex; min-width: 175px; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 0 15px; border: 0; border-radius: 10px; font-size: 9px; font-weight: 800; }

@media screen and (max-width: 767.98px) {
    .zp-database-record-form { margin-bottom: 18px; }
    .zp-database-form-card { border-radius: 14px; }
    .zp-database-form-header { align-items: flex-start; padding: 16px; }
    .zp-database-form-header-icon { width: 38px; height: 38px; flex-basis: 38px; font-size: 14px; }
    .zp-database-form-header h2 { font-size: 16px; }
    .zp-database-form-header p { font-size: 10px; }
    .zp-database-form-step { display: none; }
    .zp-database-form-body { padding: 0 15px 15px; }
    .zp-database-section-heading { margin-top: 7px; }
    .zp-database-section-heading > .col-12 { margin: 0 -5px 14px !important; padding: 14px 5px 11px; }
    .zp-database-section-heading h5 { font-size: 14px; }
    .zp-database-section-heading p { font-size: 9px; }
    .zp-database-form-body .form-label { font-size: 11px; }
    .zp-database-form-body .form-control,
    .zp-database-form-body .form-select { min-height: 48px; font-size: 16px; }
    .zp-database-form-body textarea.form-control { min-height: 112px; }
    .zp-database-form-body .input-group-text { min-width: 50px; font-size: 11px; }
    .zp-database-form-footer { align-items: stretch; flex-direction: column; margin: 8px -15px -15px; padding: 13px 15px max(13px, env(safe-area-inset-bottom)); }
    .zp-database-form-footer > span { justify-content: center; font-size: 9px; }
    .zp-database-form-footer .zp-database-submit { width: 100%; min-height: 46px; font-size: 11px; }
}

@media screen and (max-width: 380px) {
    .zp-database-form-header { gap: 10px; padding: 13px; }
    .zp-database-form-header-icon { width: 34px; height: 34px; flex-basis: 34px; }
    .zp-database-form-header h2 { font-size: 15px; }
    .zp-database-form-body { padding-right: 12px; padding-left: 12px; }
    .zp-database-form-footer { margin-right: -12px; margin-left: -12px; padding-right: 12px; padding-left: 12px; }
}

/* Combined monthly tax report */
.zp-tax-period-filter { justify-content: flex-start; }
.zp-tax-period-filter label { flex: 0 1 220px; }
.zp-tax-period-filter > button { min-width: 145px; }
.zp-tax-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-bottom: 17px; }
.zp-tax-summary article { position: relative; min-height: 125px; padding: 19px; overflow: hidden; background: #fff; border: 1px solid #e5e1d8; border-radius: 16px; box-shadow: 0 9px 26px rgba(32,27,17,.045); }
.zp-tax-summary article::after { position: absolute; right: -18px; bottom: -30px; width: 90px; height: 90px; content: ""; background: rgba(215,173,87,.11); border-radius: 50%; }
.zp-tax-summary article.expense::after { background: rgba(44,42,37,.07); }
.zp-tax-summary span, .zp-tax-summary strong, .zp-tax-summary small { position: relative; z-index: 1; display: block; }
.zp-tax-summary span { color: #8b867d; font-size: 9px; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.zp-tax-summary strong { margin-top: 14px; color: #24221f; font-size: 24px; letter-spacing: -.04em; }
.zp-tax-summary strong.negative { color: #a94f45; }
.zp-tax-summary small { margin-top: 5px; color: #a09b92; font-size: 9px; }
.zp-tax-preview .zp-expense-table { min-width: 720px; }
.zp-tax-preview .zp-expense-table td { font-size: 10px; }

@media screen and (max-width: 767.98px) {
    .zp-tax-summary { grid-template-columns: 1fr; }
    .zp-tax-summary article { min-height: 110px; }
    .zp-tax-period-filter label { flex-basis: auto; }
    .zp-tax-period-filter > button { min-width: 0; }
}
