
:root { --ink:#17243b; --muted:#68758a; --line:#dfe5ee; --soft:#f5f7fb; --green:#087c5b; --green2:#0ca678; --violet:#6658d3; --red:#c33f55; --amber:#b5700d; --blue:#2670d9; }
* { box-sizing:border-box; }
body { margin:0; background:#eef2f7; color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font:inherit; }
button { cursor:pointer; }
.app-shell { min-height:100vh; padding-bottom:48px; }
.topbar { height:72px; padding:0 28px; display:flex; align-items:center; gap:24px; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; gap:11px; min-width:280px; }
.brand-mark { width:40px; height:40px; border-radius:12px; color:#fff; background:linear-gradient(145deg,#087c5b,#10aa7b); display:grid; place-items:center; font-weight:850; box-shadow:0 8px 20px #087c5b30; }
.brand strong,.brand small { display:block; }.brand strong { font-size:15px; }.brand small { color:var(--muted); font-size:11px; margin-top:2px; }
.date-control { margin-left:auto; display:flex; align-items:center; gap:9px; }.date-control label { color:var(--muted); font-size:12px; font-weight:700; }.date-control input { border:1px solid var(--line); border-radius:9px; padding:8px 10px; color:var(--ink); background:#fff; }
.user-pill { padding:8px 12px; border:1px solid var(--line); border-radius:999px; font-size:12px; font-weight:700; }.user-pill span { color:var(--green2); margin-right:5px; }
.tabs { height:54px; padding:0 28px; display:flex; align-items:center; gap:4px; background:#fff; border-bottom:1px solid var(--line); position:sticky; top:72px; z-index:19; }
.tabs button { height:54px; padding:0 15px; border:0; background:transparent; color:var(--muted); font-weight:700; font-size:13px; border-bottom:3px solid transparent; }.tabs button.active { color:var(--green); border-bottom-color:var(--green); }.tabs .new-button { margin-left:auto; height:36px; border-radius:9px; padding:0 15px; background:var(--green); color:#fff; border:0; }
.page-heading,.summary-grid,.dashboard-grid,.panel.full,.jo-card,.reconcile-grid,.alert,.loading { width:min(1440px, calc(100% - 48px)); margin-left:auto; margin-right:auto; }
.page-heading { display:flex; justify-content:space-between; align-items:end; padding:25px 0 18px; }.page-heading h1 { margin:3px 0 0; font-size:25px; letter-spacing:-.03em; }.eyebrow { margin:0; color:var(--green); text-transform:uppercase; letter-spacing:.12em; font-weight:800; font-size:10px; }
.heading-actions { display:flex; gap:8px; }.primary,.secondary { border-radius:9px; padding:9px 14px; font-size:12px; font-weight:800; }.primary { background:var(--green); color:#fff; border:1px solid var(--green); }.primary:hover { background:#066d50; }.secondary { background:#fff; color:var(--ink); border:1px solid var(--line); }.wide { width:100%; margin-top:18px; }
.summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }.metric { background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px 17px; box-shadow:0 2px 5px #1e345008; }.metric span,.metric small { display:block; }.metric span { font-size:11px; color:var(--muted); font-weight:750; }.metric strong { display:block; font-size:24px; margin:6px 0 5px; letter-spacing:-.03em; }.metric small { font-size:10px; color:#8490a3; }.metric.cash { background:linear-gradient(135deg,#087c5b,#0a926a); color:#fff; border-color:transparent; }.metric.cash span,.metric.cash small { color:#d9fff2; }.metric.good { border-left:4px solid var(--green2); }.metric.warn { border-left:4px solid var(--amber); }
.summary-grid.dashboard-summary { grid-template-columns:repeat(5,minmax(0,1fr)); }
.report-heading { align-items:flex-end; }.report-note { max-width:720px; margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }.year-control label { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:10px; font-weight:800; }.year-control select { min-width:92px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); font-weight:800; }.financial-summary { margin-bottom:12px; }.financial-report table tfoot th { padding:13px 10px; border-top:2px solid #cbd8e5; background:#f3f7fa; }.report-footnote { margin:12px 0 0; color:var(--muted); font-size:10px; }.financial-report .table-wrap { overflow-x:auto; }
.dashboard-grid { margin-top:12px; display:grid; grid-template-columns:1.04fr .96fr; gap:12px; }.panel { background:#fff; border:1px solid var(--line); border-radius:14px; padding:17px; box-shadow:0 2px 6px #1e345008; }.panel.full { margin-top:24px; }.panel-title { display:flex; justify-content:space-between; align-items:center; gap:14px; padding-bottom:13px; border-bottom:1px solid var(--line); }.panel-title>div { display:flex; align-items:center; gap:10px; }.panel-title h2,.jo-title h2 { margin:0; font-size:15px; }.panel-title p { margin:2px 0 0; color:var(--muted); font-size:10px; }.panel-title>b { font-size:19px; color:var(--green); }.icon { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; font-weight:900; }.icon.green { background:#e5f7f0; color:var(--green); }.icon.violet { background:#eeebff; color:var(--violet); }.icon.blue { background:#e7f0ff; color:var(--blue); }
.flow-list { padding-top:8px; max-height:310px; overflow:auto; }.flow-list>div { display:flex; justify-content:space-between; gap:20px; padding:9px 4px; font-size:12px; border-bottom:1px dashed #e8ecf2; }.flow-list .out { color:var(--red); }.flow-list .empty,.empty { justify-content:center; color:var(--muted); text-align:center; padding:28px !important; }
.cash-dashboard { grid-template-columns:minmax(0,2.15fr) minmax(340px,.85fr); align-items:start; }
.cash-flow-table { max-height:390px; margin-top:8px; border:1px solid #edf0f5; border-radius:9px; }
.cash-flow-table table { min-width:1180px; }
.cash-flow-table thead { position:sticky; top:0; z-index:2; }
.cash-flow-table th { padding-top:9px; padding-bottom:9px; background:#f3f7f9; }
.cash-flow-table td { padding-top:8px; padding-bottom:8px; }
.cash-flow-table .type-chip { min-width:118px; justify-content:center; }
.cash-flow-table .tx-cash_out,.cash-flow-table .tx-withdrawal { color:#a23148; background:#ffe8ed; }
.cash-flow-table .tx-borrowings,.cash-flow-table .tx-additional,.cash-flow-table .tx-beginning_balance,.cash-flow-table .tx-receivable_payment { color:#08704d; background:#dff6ed; }
.cash-flow-table .tx-cash_in,.cash-flow-table .tx-load,.cash-flow-table .tx-bills_payment { color:#315d96; background:#e6f0ff; }
.cash-flow-table .transaction-row.has-pending-request td { background:#fff8df; border-top:1px solid #edcf76; border-bottom:1px solid #edcf76; }
.cash-flow-table .transaction-row.has-pending-request td:first-child { box-shadow:inset 4px 0 0 var(--amber); }
.cash-flow-table .transaction-row.has-pending-request:hover td,.cash-flow-table .transaction-row.has-pending-request:focus-visible td { background:#fff2c5; }
.cash-flow-table .remarks-column { width:180px; min-width:180px; max-width:210px; }
.pending-request-badge { display:inline-flex; padding:4px 7px; border-radius:999px; color:#805100; background:#ffe7a0; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.pending-request-code { display:block; margin-top:4px !important; color:#9a6b16 !important; font-weight:800; }
.remarks-column p { margin:4px 0 0; color:#5f4a1d; font-size:10px; line-height:1.35; overflow-wrap:anywhere; }
.transaction-note { display:block; margin-top:5px; color:#687385; font-size:9px; line-height:1.35; overflow-wrap:anywhere; }
.no-remarks { color:#a2acb9; }
.fund-position-panel { width:100%; min-width:0; justify-self:stretch; }
.table-wrap { overflow:auto; }.table-wrap table { border-collapse:collapse; width:100%; min-width:600px; }.table-wrap th { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.05em; text-align:left; padding:10px 8px; background:#f8fafc; border-bottom:1px solid var(--line); }.table-wrap td { padding:10px 8px; font-size:11px; border-bottom:1px solid #edf0f5; vertical-align:middle; }.table-wrap td small { display:block; color:var(--muted); font-size:9px; margin-top:2px; text-transform:capitalize; }.num { text-align:right !important; font-variant-numeric:tabular-nums; white-space:nowrap; }.positive { color:var(--green) !important; }.negative { color:var(--red) !important; }.total { font-weight:850; color:var(--ink); }.type-chip,.badge { display:inline-flex; padding:4px 7px; background:#edf4ff; color:#315d96; border-radius:6px; font-weight:750; white-space:nowrap; }.badge { text-transform:capitalize; }.badge.main { background:#e4f6ef; color:var(--green); }.badge.borrowed { background:#fff1e1; color:#98610f; }.badge.bank { background:#eeebff; color:var(--violet); }
.jo-card { margin-top:12px; border-radius:14px; padding:17px; color:#fff; background:linear-gradient(130deg,#17243b,#253756); box-shadow:0 6px 18px #17243b20; }.jo-card.panel { margin:0; color:var(--ink); background:#fff; box-shadow:0 2px 6px #1e345008; }.jo-title { display:flex; justify-content:space-between; align-items:center; }.jo-title>div { display:flex; align-items:center; gap:11px; }.jo-avatar { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; color:#173047; background:#c9f3e4; font-weight:900; font-size:12px; }.jo-card:not(.panel) .eyebrow { color:#9ee9ce; }.status { font-size:10px; font-weight:850; padding:5px 8px; border-radius:999px; }.status.open { color:#ffe0a3; background:#f8b84b22; border:1px solid #f8b84b55; }.status.closed { color:#aff1d9; background:#12a87625; border:1px solid #12a87655; }.jo-content { margin-top:13px; display:grid; grid-template-columns:260px 1fr; gap:24px; align-items:center; }.jo-content span,.jo-content small { display:block; font-size:10px; opacity:.72; }.jo-content strong { display:block; font-size:23px; margin:3px 0; }.jo-card:not(.panel) .jo-content strong.positive { color:#72e0bb !important; }.jo-content p { margin:0; padding:10px 13px; background:#ffffff0c; border:1px solid #ffffff18; border-radius:9px; font-size:11px; line-height:1.55; }.jo-card.panel .jo-content p { background:#f5f7fb; border-color:var(--line); }
.reconcile-grid { margin-top:24px; display:grid; grid-template-columns:1.2fr .8fr; gap:12px; }.recon-lines { padding-top:13px; }.recon-lines>div { display:flex; justify-content:space-between; padding:10px 0; font-size:12px; border-bottom:1px dashed var(--line); }.recon-total { font-size:14px !important; border-bottom:0 !important; padding-top:14px !important; }
.alert,.loading { margin-top:16px; padding:11px 14px; border-radius:9px; font-size:12px; }.alert { color:#8d2036; background:#ffe9ee; border:1px solid #ffc8d3; }.loading { color:var(--muted); background:#fff; border:1px solid var(--line); }
.modal-backdrop { position:fixed; inset:0; background:#13203988; backdrop-filter:blur(3px); z-index:60; display:grid; place-items:center; padding:18px; }.modal { width:min(660px,100%); max-height:92vh; overflow:auto; background:#fff; border-radius:16px; box-shadow:0 28px 80px #09132355; }.modal.small { width:min(560px,100%); }.modal-head { padding:18px 20px 14px; display:flex; justify-content:space-between; border-bottom:1px solid var(--line); }.modal-head h2 { margin:3px 0 0; font-size:20px; }.close { border:0; background:#f1f4f8; color:var(--muted); border-radius:8px; width:32px; height:32px; font-size:21px; line-height:1; }.form-grid { padding:17px 20px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }.form-grid label { color:#526076; font-size:10px; font-weight:800; }.form-grid input,.form-grid select,.form-grid textarea { display:block; width:100%; margin-top:5px; padding:9px 10px; min-height:37px; border:1px solid #cfd7e3; border-radius:8px; background:#fff; color:var(--ink); outline:none; }.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { border-color:var(--green2); box-shadow:0 0 0 3px #0ca67818; }.form-grid textarea { min-height:70px; resize:vertical; }.span-2 { grid-column:1/-1; }.effect-note { margin:0 20px; padding:10px 12px; color:#526076; font-size:10px; background:#edf8f4; border:1px solid #ccecdf; border-radius:8px; }.modal-actions { padding:14px 20px 18px; display:flex; justify-content:flex-end; gap:8px; }.closing-banner { margin:16px 20px 0; padding:12px 14px; display:flex; justify-content:space-between; align-items:center; background:#e8f7f2; border-radius:9px; color:var(--green); }.closing-banner span { font-size:11px; font-weight:800; }.closing-banner strong { font-size:20px; }
@media (max-width:1100px) { .financial-summary { grid-template-columns:repeat(2,1fr); } }
@media (max-width:900px) { .summary-grid,.summary-grid.dashboard-summary { grid-template-columns:1fr 1fr; }.dashboard-grid,.reconcile-grid { grid-template-columns:1fr; }.user-pill { display:none; }.brand { min-width:0; }.jo-content { grid-template-columns:1fr; }.tabs { overflow:auto; }.tabs button { white-space:nowrap; }.tabs .new-button { position:fixed; right:16px; bottom:18px; z-index:50; box-shadow:0 7px 25px #087c5b55; } }
@media (max-width:600px) { .topbar { height:auto; min-height:66px; padding:10px 14px; }.brand small,.date-control label { display:none; }.date-control { margin-left:auto; }.tabs { top:66px; padding:0 8px; }.tabs button { padding:0 10px; font-size:11px; }.page-heading,.summary-grid,.dashboard-grid,.panel.full,.jo-card,.reconcile-grid,.alert,.loading { width:calc(100% - 20px); }.page-heading { align-items:start; padding-top:18px; }.page-heading h1 { font-size:20px; }.heading-actions { flex-direction:column; }.summary-grid { grid-template-columns:1fr 1fr; gap:8px; }.metric { padding:13px; }.metric strong { font-size:18px; }.dashboard-grid { margin-top:8px; }.form-grid { grid-template-columns:1fr; }.span-2 { grid-column:auto; }.modal { border-radius:14px; }.jo-content { gap:10px; }.panel { padding:13px; } }

/* Public mini-store landing page */
.public-site { --sign-blue:#0755c8; --sign-yellow:#f7ef24; --sky:#eaf6ff; color:#11233f; background:#fff; min-height:100vh; }
.public-nav { height:76px; padding:0 max(24px,calc((100vw - 1180px)/2)); display:flex; align-items:center; gap:36px; border-bottom:1px solid #dbe7f3; background:#fff; position:sticky; top:0; z-index:45; }
.store-logo { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--sign-blue); font-weight:950; letter-spacing:.02em; line-height:1; }.store-logo>span:last-child { display:flex; flex-direction:column; font-size:18px; }.store-logo b { color:#1f3452; font-size:10px; letter-spacing:.18em; margin-top:3px; }.logo-c { width:42px; height:42px; display:grid; place-items:center; background:var(--sign-blue); color:var(--sign-yellow); border-radius:10px; font-size:27px; font-style:italic; box-shadow:inset 0 -4px 0 #003d9b; }
.public-nav nav { display:flex; gap:28px; margin-left:auto; }.public-nav nav a { color:#40536e; text-decoration:none; font-size:13px; font-weight:700; }.staff-link { text-decoration:none; color:#fff; background:#102c55; border-radius:9px; padding:11px 16px; font-size:12px; font-weight:850; }
.hero { min-height:580px; display:grid; grid-template-columns:1.02fr .98fr; align-items:center; gap:55px; padding:70px max(24px,calc((100vw - 1180px)/2)); background:radial-gradient(circle at 80% 20%,#c5e9ff 0,transparent 36%),linear-gradient(135deg,#f9fcff,#eef8ff); overflow:hidden; }.open-chip { display:inline-flex; border-radius:999px; padding:7px 11px; background:#dff6e9; color:#087545; font-size:11px; font-weight:800; }.open-chip::first-letter { color:#16ac68; }.hero-kicker { margin:24px 0 7px; color:var(--sign-blue); text-transform:uppercase; letter-spacing:.15em; font-size:11px; font-weight:900; }.hero h1 { margin:0; font-size:clamp(45px,5vw,72px); line-height:.98; letter-spacing:-.045em; color:#0d264c; }.hero h1 em { color:var(--sign-blue); font-style:normal; }.hero-lead { max-width:610px; color:#536780; font-size:17px; line-height:1.65; margin:24px 0; }.hero-actions { display:flex; gap:11px; }.hero-actions button { border:1px solid var(--sign-blue); border-radius:10px; padding:13px 18px; color:#fff; background:var(--sign-blue); font-weight:850; cursor:pointer; box-shadow:0 8px 20px #0755c82a; }.hero-actions .outline { color:var(--sign-blue); background:#fff; box-shadow:none; }.trust-row { display:flex; gap:20px; margin-top:26px; color:#57708d; font-size:11px; font-weight:700; }.trust-row span::first-letter { color:#0a9d62; }
.sign-board { display:grid; grid-template-columns:148px 1fr 150px; grid-template-rows:280px 48px; transform:rotate(-1deg); border:6px solid #fff; box-shadow:0 28px 55px #173f6c35; position:relative; }.sign-board::before,.sign-board::after { content:""; position:absolute; width:16px; height:80px; top:-80px; background:#b9c3d0; }.sign-board::before { left:80px; }.sign-board::after { right:80px; }.sign-main { background:linear-gradient(160deg,#1466dd,#0647b5); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }.sign-main small { font-weight:800; letter-spacing:.27em; color:#bee7ff; }.sign-main strong { font-size:48px; line-height:.9; color:var(--sign-yellow); letter-spacing:.03em; text-shadow:0 4px 0 #003891; }.sign-main b { font-size:27px; color:var(--sign-yellow); letter-spacing:.04em; }.sign-main span { font-size:9px; margin-top:18px; letter-spacing:.12em; }.sign-side { display:flex; flex-direction:column; align-items:center; justify-content:center; color:#fff; text-align:center; }.sign-side strong { font-size:19px; }.sign-side small { margin-top:9px; font-size:9px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.brand-side { padding:10px; overflow:hidden; background:#fff; }.brand-side img { display:block; width:100%; height:auto; object-fit:contain; }.gas-brand { padding:0; display:grid; grid-template-rows:62% 38%; background:#bd9458; color:#8f153a; }.lm-sign-service { min-height:0; padding:11px 9px 7px; display:flex; flex-direction:column; align-items:center; justify-content:center; }.lm-sign-service img { width:100%; height:auto; max-height:95px; border-radius:6px; object-fit:contain; }.lm-sign-service small { margin-top:6px; }.grocery-diy-service { min-height:0; padding:7px 5px 8px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; background:linear-gradient(145deg,#e36621,#ad3814); border-top:3px solid #ffe62e; }.grocery-diy-service img { width:100%; height:auto; max-height:45px; object-fit:contain; }.grocery-diy-service b { color:#fff; font-size:8px; line-height:1; letter-spacing:.12em; }.wallet-brand { padding:0; display:grid; grid-template-rows:58% 42%; background:#fff; }.wallet-service { min-height:0; overflow:hidden; background:linear-gradient(180deg,#0b84f3 0 42%,#19aa70 42% 58%,#fff 58%); }.wallet-service img { width:100%; height:100%; object-fit:contain; object-position:center; }.rcbc-service { min-height:0; padding:8px 7px 9px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; background:linear-gradient(145deg,#0c54a5,#073776); border-top:3px solid #f0b51a; }.rcbc-service img { width:100%; height:auto; max-height:48px; object-fit:contain; }.rcbc-service b { color:#fff; font-size:11px; line-height:1; letter-spacing:.13em; }.counter-strip { grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); align-items:center; background:#10233d; color:#fff; }.counter-strip span { text-align:center; font-size:10px; font-weight:800; border-right:1px solid #ffffff28; }.counter-strip span:last-child { border:0; }
.quick-services { padding:78px max(24px,calc((100vw - 1180px)/2)); }.section-heading { text-align:center; }.section-heading span,.eyebrow-public { color:var(--sign-blue); font-size:11px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }.section-heading h2,.rates-copy h2 { margin:6px 0 8px; font-size:36px; letter-spacing:-.03em; }.section-heading p,.rates-copy p { margin:0; color:#63748b; line-height:1.6; }.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:34px; }.service-card { border:1px solid #dce7f1; border-radius:16px; padding:21px; min-height:190px; background:#fff; text-align:left; display:flex; flex-direction:column; cursor:pointer; transition:.2s transform,.2s box-shadow; }.service-card:hover { transform:translateY(-4px); box-shadow:0 15px 28px #1a416b14; }.service-card>span { width:42px; height:42px; border-radius:11px; display:grid; place-items:center; font-size:22px; font-weight:900; }.service-card b { font-size:18px; margin-top:17px; }.service-card small { color:#687a90; margin-top:7px; line-height:1.5; }.service-card i { margin-top:auto; font-size:11px; font-weight:850; font-style:normal; }.service-card.blue>span { color:#0a55cf; background:#e2efff; }.service-card.cyan>span { color:#008ebd; background:#dff8ff; }.service-card.yellow>span { color:#886900; background:#fff5b8; }.service-card.navy>span { color:#fff; background:#15365f; }.service-card.blue i,.service-card.cyan i { color:#0879c7; }.service-card.yellow i { color:#a27000; }.service-card.navy i { color:#15365f; }.safety-note { margin-top:22px; padding:14px 17px; border-radius:11px; background:#fff8d4; border:1px solid #f2df79; color:#66551c; font-size:12px; line-height:1.6; }
.payment-section { padding:72px max(24px,calc((100vw - 1180px)/2)); background:#f4f8fd; border-top:1px solid #e3ebf4; }.payment-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:28px; }.payment-heading h2 { margin:6px 0 0; font-size:34px; letter-spacing:-.03em; }.payment-heading>p { width:min(430px,100%); margin:0; color:#61748d; font-size:12px; line-height:1.65; }.qr-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:13px; }.qr-card { min-width:0; padding:12px; border:1px solid #d9e4ef; border-radius:14px; background:#fff; color:#17304f; text-align:left; box-shadow:0 3px 12px #1b416610; transition:.18s transform,.18s border-color,.18s box-shadow; }.qr-card:hover,.qr-card:focus-visible { transform:translateY(-3px); border-color:#82b3eb; box-shadow:0 12px 24px #1b416618; outline:none; }.qr-card>img { display:block; width:100%; height:170px; object-fit:contain; border-radius:9px; background:#f7f9fc; }.qr-card>span { display:block; padding:11px 2px 7px; }.qr-card b,.qr-card small { display:block; }.qr-card b { font-size:14px; }.qr-card small { min-height:28px; margin-top:4px; color:#718198; font-size:9px; line-height:1.45; }.qr-card i { display:block; padding:8px 2px 1px; border-top:1px solid #edf1f5; color:#0755c8; font-size:9px; font-weight:850; font-style:normal; }.payment-reminder { margin-top:17px; padding:12px 15px; border:1px solid #d6e6f7; border-radius:10px; background:#fff; color:#526981; font-size:11px; line-height:1.55; }.payment-reminder b { color:#173b68; }.qr-backdrop { position:fixed; inset:0; z-index:110; display:grid; place-items:center; padding:18px; background:#061a38c7; backdrop-filter:blur(5px); }.qr-viewer { width:min(470px,100%); max-height:94vh; padding:14px; overflow:auto; border-radius:17px; background:#fff; box-shadow:0 30px 90px #00122675; }.qr-viewer-head { display:flex; justify-content:space-between; gap:18px; padding:5px 5px 13px; }.qr-viewer-head small { color:#0755c8; font-size:8px; font-weight:900; letter-spacing:.14em; }.qr-viewer-head h2 { margin:3px 0 0; font-size:20px; }.qr-viewer-head p { margin:3px 0 0; color:#6f8095; font-size:9px; }.qr-viewer-head button { flex:0 0 auto; width:32px; height:32px; border:0; border-radius:8px; background:#edf2f7; color:#52667e; font-size:21px; }.qr-viewer>img { display:block; width:100%; max-height:68vh; object-fit:contain; border-radius:11px; background:#f4f7fa; }.qr-viewer-note { display:block; padding:12px 5px 3px; color:#697c92; text-align:center; font-size:9px; }
.rates-section { display:grid; grid-template-columns:.78fr 1.22fr; gap:65px; align-items:start; padding:80px max(24px,calc((100vw - 1180px)/2)); background:#082b62; color:#fff; }.rates-copy { position:sticky; top:110px; }.rates-copy p { color:#c7d7eb; }.rate-highlights { display:grid; gap:10px; margin-top:30px; }.rate-highlights>div { display:flex; align-items:center; gap:15px; padding:15px; border:1px solid #ffffff20; border-radius:12px; background:#ffffff0b; }.rate-highlights b { min-width:70px; font-size:25px; color:var(--sign-yellow); }.rate-highlights span { color:#dce9f7; font-size:12px; }.rate-table-wrap { background:#fff; padding:8px; border-radius:15px; box-shadow:0 20px 55px #001a423f; }.rate-table { border-collapse:collapse; width:100%; color:#1d3553; }.rate-table th { background:#e8f1fb; color:#3c5675; text-align:right; font-size:10px; text-transform:uppercase; letter-spacing:.08em; padding:12px 15px; }.rate-table th:first-child,.rate-table td:first-child { text-align:left; }.rate-table td { text-align:right; padding:9px 15px; border-bottom:1px solid #e7edf4; font-size:12px; }.rate-table td:nth-child(2) { color:#07825a; font-weight:800; }.rate-table td:last-child { color:#0755c8; font-weight:800; }.rate-table tr:last-child td { border:0; }
.store-section { padding:75px max(24px,calc((100vw - 1180px)/2)); display:grid; grid-template-columns:repeat(3,1fr); gap:16px; background:#f6f9fc; }.store-card { min-height:200px; border-radius:16px; padding:24px; display:flex; gap:18px; align-items:flex-start; color:#fff; }.store-card>span { font-size:40px; }.store-card small { font-size:9px; font-weight:900; letter-spacing:.15em; opacity:.8; }.store-card h3 { margin:8px 0; font-size:21px; }.store-card p { margin:0; font-size:12px; line-height:1.6; opacity:.85; }.store-card.lm { align-items:center; background:linear-gradient(135deg,#7d1232,#b91e4d); }.lm-card-logo { flex:0 0 118px; width:118px; height:auto; border:3px solid #ffffffbb; border-radius:11px; background:#bd9458; box-shadow:0 8px 22px #4b071c55; }.store-card.goods { background:linear-gradient(135deg,#0755c8,#1598e9); }.store-card.diy { background:linear-gradient(135deg,#17314e,#38526d); }
.public-footer { display:flex; align-items:center; gap:28px; padding:34px max(24px,calc((100vw - 1180px)/2)); background:#061c3a; color:#b9c8d9; }.store-logo.inverse { color:#fff; }.store-logo.inverse b { color:#b9c8d9; }.public-footer p { margin:0 auto 0 0; font-size:11px; }.public-footer>a { color:#fff; font-weight:800; font-size:11px; }
.request-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:18px; background:#071b37b5; backdrop-filter:blur(4px); }.request-modal { width:min(650px,100%); max-height:94vh; overflow:auto; border-radius:17px; background:#fff; box-shadow:0 35px 90px #00112766; }.request-head { display:flex; justify-content:space-between; align-items:center; padding:20px 22px 15px; border-bottom:1px solid #e3eaf2; }.request-head small { color:#0755c8; font-size:9px; font-weight:900; letter-spacing:.14em; }.request-head h2 { margin:4px 0 0; font-size:23px; }.request-head>button { width:32px; height:32px; border:0; border-radius:8px; background:#edf2f7; color:#53657b; font-size:21px; }.request-fields { padding:20px 22px; display:grid; grid-template-columns:1fr 1fr; gap:13px; }.request-fields label { color:#465a72; font-size:10px; font-weight:850; }.request-fields input,.request-fields select,.request-fields textarea { display:block; width:100%; margin-top:5px; padding:10px 11px; border:1px solid #cdd9e6; border-radius:8px; background:#fff; color:#17304f; outline:none; }.request-fields textarea { min-height:75px; resize:vertical; }.request-fields .wide { grid-column:1/-1; }.upload-box { padding:14px; border:1px dashed #8cb4df; border-radius:10px; background:#f3f9ff; }.upload-box input { border:0; padding:7px 0; background:transparent; }.upload-box small { display:block; color:#73859b; font-weight:500; }.request-error { margin:0 22px; padding:10px 12px; color:#922846; background:#ffe9ef; border-radius:8px; font-size:11px; }.request-actions { display:flex; justify-content:flex-end; gap:9px; padding:15px 22px 21px; }.request-actions button,.request-success button { border:1px solid #0755c8; border-radius:8px; padding:10px 16px; background:#0755c8; color:#fff; font-weight:850; }.request-actions .cancel { background:#fff; color:#53657b; border-color:#cfd9e4; }.request-actions button:disabled { opacity:.55; }.request-success { text-align:center; padding:38px 25px; }.request-success>span { width:55px; height:55px; display:grid; place-items:center; margin:auto; border-radius:50%; color:#fff; background:#0a9d62; font-size:26px; }.request-success h3 { font-size:24px; margin:15px 0 5px; }.request-success p { color:#52677f; }
.login-page { min-height:100vh; display:grid; place-items:center; padding:45px 18px; background:radial-gradient(circle at 20% 10%,#2b8ef2 0,transparent 30%),linear-gradient(145deg,#062453,#0c4da4); position:relative; }.back-home { position:absolute; top:22px; left:24px; color:#fff; text-decoration:none; font-size:12px; font-weight:750; }.login-panel { width:min(760px,100%); min-height:470px; display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border-radius:20px; background:#fff; box-shadow:0 35px 90px #00133377; }.login-brand { padding:44px 38px; color:#fff; background:linear-gradient(150deg,#0755c8,#003f99); }.login-sign { display:flex; flex-direction:column; align-items:flex-start; line-height:.95; }.login-sign span { width:46px; height:46px; display:grid; place-items:center; border-radius:11px; background:var(--sign-yellow,#f7ef24); color:#0755c8; font-size:28px; font-weight:950; }.login-sign b { margin-top:25px; color:#f7ef24; font-size:36px; }.login-sign strong { color:#f7ef24; font-size:22px; }.login-brand h1 { margin:55px 0 9px; font-size:25px; }.login-brand p { color:#cde3ff; font-size:12px; line-height:1.6; }.login-panel>form { padding:44px 38px; display:flex; flex-direction:column; }.role-switch { display:grid; grid-template-columns:1fr 1fr; padding:4px; border-radius:10px; background:#edf2f7; margin-bottom:30px; }.role-switch button { border:0; border-radius:7px; padding:10px; background:transparent; color:#65768a; font-weight:800; }.role-switch button.active { background:#fff; color:#0755c8; box-shadow:0 2px 7px #20354c18; }.login-panel form>label { color:#40556f; font-size:11px; font-weight:850; }.pin-wrap { position:relative; margin-top:8px; }.pin-wrap input { width:100%; height:60px; border:1px solid #cbd8e5; border-radius:10px; color:transparent; caret-color:transparent; background:#fafdff; }.pin-wrap span { pointer-events:none; position:absolute; inset:0; display:flex; justify-content:center; align-items:center; gap:20px; }.pin-wrap i { width:13px; text-align:center; color:#0755c8; font-size:28px; font-style:normal; }.login-submit { margin-top:22px; border:0; border-radius:9px; padding:12px; color:#fff; background:#0755c8; font-weight:850; }.login-submit:disabled { opacity:.55; }.setup-link { margin-top:14px; text-align:center; color:#0755c8; font-size:11px; font-weight:750; }.login-help { margin-top:auto; padding-top:25px; color:#7a8a9e; font-size:9px; line-height:1.55; }.login-error { margin-top:12px; padding:9px; color:#8e2743; background:#ffe8ee; border-radius:7px; font-size:10px; }.login-panel.setup form label { margin-bottom:13px; }.setup-pin { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #cad7e5; border-radius:8px; font-size:18px; letter-spacing:.3em; }
@media (max-width:900px) { .public-nav nav { display:none; }.hero { grid-template-columns:1fr; padding-top:50px; }.sign-board { max-width:620px; width:100%; margin:auto; }.service-grid { grid-template-columns:1fr 1fr; }.payment-heading { align-items:start; flex-direction:column; gap:10px; }.qr-grid { grid-template-columns:repeat(3,1fr); }.rates-section { grid-template-columns:1fr; }.rates-copy { position:static; }.store-section { grid-template-columns:1fr; }.public-footer { flex-wrap:wrap; }.public-footer p { flex-basis:100%; } }
@media (max-width:600px) { .public-nav { height:65px; padding:0 13px; gap:8px; }.store-logo>span:last-child { font-size:14px; }.store-logo b { font-size:8px; }.logo-c { width:36px; height:36px; }.staff-link { margin-left:auto; padding:9px 10px; font-size:9px; }.hero { padding:42px 16px 50px; gap:42px; }.hero h1 { font-size:43px; }.hero-lead { font-size:14px; }.hero-actions { flex-direction:column; }.trust-row { flex-wrap:wrap; gap:8px 15px; }.sign-board { grid-template-columns:88px 1fr 92px; grid-template-rows:200px 42px; border-width:4px; }.sign-main strong { font-size:31px; }.sign-main b { font-size:18px; }.brand-side { padding:5px; }.gas-brand,.wallet-brand { padding:0; }.lm-sign-service { padding:6px 4px 4px; }.lm-sign-service img { max-height:61px; }.grocery-diy-service { padding:4px 3px; border-top-width:2px; }.grocery-diy-service img { max-height:29px; }.grocery-diy-service b { font-size:5px; }.rcbc-service { padding:5px 4px; border-top-width:2px; }.rcbc-service img { max-height:31px; }.rcbc-service b { font-size:7px; }.gas-brand small { font-size:6px; }.counter-strip span { font-size:7px; }.quick-services,.payment-section,.rates-section,.store-section { padding:50px 14px; }.service-grid { grid-template-columns:1fr; }.payment-heading h2 { font-size:28px; }.qr-grid { grid-template-columns:1fr 1fr; gap:9px; }.qr-card { padding:9px; }.qr-card>img { height:135px; }.qr-card small { min-height:40px; }.section-heading h2,.rates-copy h2 { font-size:29px; }.rate-table td { padding:9px 8px; font-size:10px; }.request-fields { grid-template-columns:1fr; }.request-fields .wide { grid-column:auto; }.store-card.lm { flex-direction:column; align-items:flex-start; }.lm-card-logo { width:145px; }.login-panel { grid-template-columns:1fr; }.login-brand { padding:25px; }.login-brand h1 { margin:22px 0 5px; }.login-panel>form { padding:28px 25px; min-height:350px; } }

.user-pill { border:0; cursor:pointer; }.request-queue { display:grid; gap:10px; margin-top:14px; }.customer-request { padding:14px; border:1px solid var(--line); border-radius:11px; background:#fbfcfe; }.customer-request.verified { border-color:#bfe6d8; background:#f4fbf8; }.customer-request.rejected { opacity:.72; }.request-summary { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.request-summary>div { display:grid; grid-template-columns:auto 1fr; gap:4px 8px; align-items:center; }.request-summary small { grid-column:1/-1; color:var(--muted); font-size:9px; }.request-summary>strong { font-size:17px; }.request-status { padding:3px 6px; border-radius:999px; background:#fff0cf; color:#8a5b00; text-transform:uppercase; font-size:8px; font-weight:900; }.request-status.verified,.request-status.handled { background:#dff6ed; color:#08704d; }.request-status.rejected { background:#ffe2e8; color:#9a2f47; }.request-details { display:grid; grid-template-columns:1fr 1fr 1.5fr auto; gap:12px; align-items:start; margin-top:13px; padding-top:12px; border-top:1px solid var(--line); }.request-details span { display:block; color:var(--muted); font-size:8px; text-transform:uppercase; font-weight:900; }.request-details b,.request-details p { display:block; margin:3px 0 0; font-size:10px; }.request-details small { color:var(--muted); font-size:9px; }.request-details a { color:#2867aa; font-size:10px; font-weight:800; white-space:nowrap; }.review-actions { display:flex; justify-content:flex-end; gap:7px; margin-top:12px; }.review-actions select { min-width:225px; border:1px solid #cfd8e4; border-radius:7px; padding:7px 9px; font-size:10px; }.reviewed-by { display:block; margin-top:10px; color:var(--muted); font-size:9px; text-align:right; }.staff-grid { width:min(1120px,calc(100% - 36px)); margin:24px auto; display:grid; grid-template-columns:.8fr 1.2fr; gap:12px; }.staff-form { display:grid; gap:10px; margin-top:16px; }.staff-form label { color:#526076; font-size:10px; font-weight:800; }.staff-form input { display:block; width:100%; margin-top:5px; padding:9px 10px; border:1px solid #cfd7e3; border-radius:8px; }.staff-list { display:grid; margin-top:10px; }.staff-list>div { display:flex; align-items:center; gap:9px; padding:10px 0; border-bottom:1px solid var(--line); }.staff-list>div>div { margin-right:auto; }.staff-list b,.staff-list small { display:block; }.staff-list small { color:var(--muted); font-size:9px; text-transform:capitalize; }
@media(max-width:760px){.request-details{grid-template-columns:1fr 1fr}.review-actions{flex-wrap:wrap}.review-actions select{width:100%}.staff-grid{grid-template-columns:1fr}.customer-request{padding:11px}.request-summary>strong{font-size:14px}}

/* Cashier confirmation and controlled transaction entry */
.form-grid input:disabled { background:#eef2f6; color:#35445a; border-color:#d8dee7; cursor:not-allowed; }
.authorize-modal { width:min(480px,100%); }
.authorize-body { padding:24px 28px 12px; text-align:center; }
.cashier-avatar { width:54px; height:54px; display:grid; place-items:center; margin:auto; border-radius:50%; background:#dff5ed; color:var(--green); font-size:22px; font-weight:900; }
.authorize-body h3 { margin:12px 0 5px; font-size:18px; }
.authorize-body>p { max-width:340px; margin:0 auto 18px; color:var(--muted); font-size:11px; line-height:1.55; }
.authorize-body>label { display:block; max-width:310px; margin:auto; color:#526076; text-align:left; font-size:10px; font-weight:850; }
.authorize-body input { display:block; width:100%; margin-top:6px; padding:12px; border:1px solid #cfd7e3; border-radius:9px; text-align:center; font-size:17px; letter-spacing:.12em; }
.locked-cashier { max-width:310px; margin:13px auto 0; padding:10px 12px; display:grid; grid-template-columns:1fr auto; gap:2px 10px; text-align:left; border:1px solid #d8e9e2; border-radius:9px; background:#f3faf7; }
.locked-cashier span,.locked-cashier small { color:var(--muted); font-size:9px; }
.locked-cashier strong { grid-row:1/3; grid-column:2; align-self:center; color:var(--green); font-size:12px; }
.cashier-confirmed { margin:14px 20px 0; padding:9px 11px; display:flex; justify-content:space-between; gap:15px; border-radius:8px; background:#e9f8f2; color:var(--green); font-size:10px; }
.cashier-confirmed span { font-weight:850; }
.cash-summary { align-self:end; min-height:59px; display:grid; grid-template-columns:1fr auto; gap:4px 10px; padding:9px 11px; border:1px solid #d6e7e0; border-radius:8px; background:#f3faf7; font-size:10px; }
.cash-summary span { color:var(--muted); }.cash-summary b,.cash-summary strong { text-align:right; }.cash-summary strong { color:var(--green); }
.setup-pin.owner-password { letter-spacing:.06em; }
.password-rule { display:block; margin:-7px 0 13px; color:#718299; font-size:9px; line-height:1.5; }
.pin-wrap.password-wrap input { color:#17304f; caret-color:auto; padding:0 14px; letter-spacing:.08em; }
.staff-column { display:grid; gap:12px; align-content:start; }
.settings-grid { width:min(1100px,calc(100% - 36px)); margin:0 auto; display:grid; grid-template-columns:minmax(300px,560px); }
.store-settings-card { padding:22px; }
.store-settings-card .staff-form { margin-top:18px; }
.setting-help { display:block; margin:-5px 0 15px; color:var(--muted); font-size:10px; line-height:1.55; }
.icon.orange { color:#a94f00; background:#fff0dc; }
.lm-gas-price { display:inline-block; margin:8px 0 2px; color:#b84400; font-size:24px; line-height:1; }
.owner-confirmed { background:#eaf3ff; color:#0755c8; }

/* Hostinger PHP package additions */
.public-body { --sign-blue:#0755c8; --sign-yellow:#f7ef24; color:#11233f; background:#fff; min-height:100vh; }
.workspace-body { min-height:100vh; padding-bottom:48px; }
.tabs a { height:54px; padding:0 15px; display:flex; align-items:center; color:var(--muted); text-decoration:none; font-weight:700; font-size:13px; border-bottom:3px solid transparent; white-space:nowrap; }
.tabs a.active { color:var(--green); border-bottom-color:var(--green); }
.tabs { overflow-x:auto; }.tabs .new-button { flex:0 0 auto; }
.user-pill { text-decoration:none; color:var(--ink); white-space:nowrap; }
.alert.success { color:#08704d; background:#e4f7ef; border-color:#bce8d8; }
.overlay { position:fixed; inset:0; z-index:100; display:none; place-items:center; padding:18px; background:#071b37b5; backdrop-filter:blur(4px); }
.overlay.open { display:grid; }
.overlay>.modal,.overlay>.request-modal,.overlay>.qr-viewer { animation:modalIn .18s ease-out; }
@keyframes modalIn { from { opacity:0; transform:translateY(8px) scale(.985); } to { opacity:1; transform:none; } }
.modal-head>button,.request-head>button { width:32px; height:32px; border:0; border-radius:8px; background:#edf2f7; color:#53657b; font-size:21px; }
.form-grid .wide { grid-column:1/-1; width:100%; margin-top:0; }
.form-error { margin:12px 22px 0; padding:10px 12px; color:#922846; background:#ffe9ef; border:1px solid #ffcdd8; border-radius:8px; font-size:11px; }
.login-input { display:block; width:100%; margin:7px 0 14px; padding:12px; border:1px solid #cad7e5; border-radius:8px; }
.authorize-step { padding:24px 28px; text-align:center; }
.authorize-step h3 { margin:12px 0 5px; }.authorize-step>p { max-width:390px; margin:0 auto 18px; color:var(--muted); font-size:11px; line-height:1.55; }
.authorize-step>label { display:block; max-width:330px; margin:auto; text-align:left; color:#526076; font-size:10px; font-weight:850; }
.authorize-step>label input { display:block; width:100%; margin-top:6px; padding:12px; border:1px solid #cfd7e3; border-radius:9px; text-align:center; font-size:17px; }
.cashier-auth-error { max-width:330px; margin:10px auto 0; padding:9px 11px; color:#922846; background:#ffe9ef; border:1px solid #ffcdd8; border-radius:8px; font-size:11px; text-align:left; }
.entry-step[hidden] { display:none; }.danger { border:1px solid #e8b5c0; color:#9a2f47; background:#fff0f3; border-radius:8px; padding:8px 11px; font-weight:750; }
.tiny { border:1px solid #d2dbe6; border-radius:7px; padding:6px 9px; background:#fff; color:#40546e; font-size:9px; font-weight:800; white-space:nowrap; }
.request-head p { margin:3px 0 0; color:#718198; font-size:10px; }.qr-viewer>small { display:block; padding:12px 5px 3px; text-align:center; color:#697c92; font-size:9px; }
.role-switch button { cursor:pointer; }.password-rule { display:block; margin:-8px 0 13px; color:#718299; font-size:9px; }
.hidden { display:none !important; }
@media(max-width:760px){.tabs a{padding:0 10px;font-size:11px}.user-pill{max-width:120px;overflow:hidden;text-overflow:ellipsis}.form-grid .wide{grid-column:auto}.review-actions{align-items:stretch}.review-actions button{flex:1}.authorize-step{padding:22px 18px}}
@media(max-width:760px){.report-heading{align-items:stretch;flex-direction:column;gap:12px}.report-heading .heading-actions{flex-direction:row;align-items:flex-end}.year-control{flex:1}.year-control label{align-items:stretch;flex-direction:column;gap:4px}.financial-report table{min-width:980px}}
@media print{.topbar,.tabs,.no-print,.overlay,.alert{display:none!important}.workspace-body{background:#fff;padding:0}.page-heading,.summary-grid,.panel.full{width:100%;margin-left:0;margin-right:0}.page-heading{padding-top:0}.financial-report{box-shadow:none;border:1px solid #bcc9d6}.financial-report .table-wrap{overflow:visible}.financial-report table{font-size:9px}.metric{box-shadow:none}.report-footnote{color:#333}}

/* Version 4.4: keep all five dashboard summary cards in one desktop row. */
@media (min-width:901px) {
  body.workspace-body .summary-grid.dashboard-summary {
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    align-items:stretch;
  }
  body.workspace-body .dashboard-summary > .metric {
    min-width:0;
    height:100%;
  }
}

.additional-source-hint {
  display:block;
  margin-top:5px;
  padding:7px 9px;
  border:1px solid #f2c36b;
  border-radius:7px;
  background:#fff8e8;
  color:#76510b;
  font-size:9px;
  font-weight:750;
  line-height:1.4;
}
.additional-source-hint.payable-effect {
  border-color:#9dd5bd;
  background:#eef9f4;
  color:#176044;
}

/* Version 4.5.10: required sources and borrowing subsidiary accounts. */
.quick-add-source { display:block; width:max-content; max-width:100%; margin-top:5px; padding:5px 8px; border:1px dashed #74ad98; border-radius:7px; color:#08704d; background:#f3fbf7; font-size:9px; font-weight:850; cursor:pointer; }
.quick-add-source:hover { border-style:solid; background:#e8f7f0; }
.source-account-body { padding:18px 22px 4px; }
.source-account-body label { display:block; color:#526076; font-size:10px; font-weight:850; }
.source-account-body label + label { margin-top:12px; }
.source-account-body input,.source-account-body select { display:block; width:100%; margin-top:6px; padding:11px; border:1px solid #cfd7e3; border-radius:8px; background:#fff; font-size:13px; }
.source-account-body p { margin:9px 0 0; color:var(--muted); font-size:9px; line-height:1.5; }
.button-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.account-actions { display:flex; justify-content:flex-end; gap:5px; white-space:nowrap; }
.save-status { margin-right:auto; align-self:center; padding:5px 8px; border-radius:999px; font-size:9px; font-weight:850; }
.save-status.unsaved { color:#7b5b17; background:#fff4d8; }
.save-status.saving { color:#315d96; background:#eaf3ff; }

/* Version 4.5: controlled transaction update and deletion requests. */
.transaction-row { cursor:pointer; touch-action:manipulation; transition:background .15s ease,box-shadow .15s ease; }
.transaction-row:hover,.transaction-row:focus-visible { background:#edf8f4; outline:none; box-shadow:inset 3px 0 0 var(--green); }
.transaction-detail-modal { width:min(820px,100%); }
.transaction-audit-strip { margin:14px 20px 0; padding:9px 11px; display:flex; flex-wrap:wrap; gap:8px 20px; border:1px solid #dce5ef; border-radius:8px; background:#f7f9fc; color:var(--muted); font-size:9px; }
.transaction-audit-strip b { color:var(--ink); }
.request-notice { margin:10px 20px 0; padding:10px 12px; border:1px solid #bfe6d8; border-radius:8px; background:#effaf6; color:#176b53; font-size:10px; font-weight:700; }
.change-form-grid { padding-top:12px; }
.owner-requester { align-self:end; min-height:37px; display:flex; align-items:center; padding:9px 11px; border:1px solid #cfe0f5; border-radius:8px; background:#eef6ff; color:#315d96; font-size:10px; }
.disabled-field { opacity:.42; }
.request-reason textarea { min-height:85px; border-color:#9dbdab; background:#fbfffd; }
.deletion-warning { margin:0 20px; padding:11px 13px; border:1px solid #efbdc7; border-radius:8px; background:#fff1f4; color:#8f2941; }
.deletion-warning b,.deletion-warning p { display:block; margin:0; }.deletion-warning p { margin-top:3px; font-size:10px; line-height:1.5; }
.change-request-queue { margin-top:0; }
.change-request.pending { border-left:4px solid var(--amber); }.change-request.approved { border-left:4px solid var(--green); background:#f5fbf8; }.change-request.rejected { border-left:4px solid var(--red); }
.request-status.approved { color:#08704d; background:#dff6ed; }.request-status.rejected { color:#9a2f47; background:#ffe2e8; }
.change-comparison { margin-top:13px; padding-top:12px; display:grid; grid-template-columns:1fr 1fr .8fr; gap:12px; border-top:1px solid var(--line); }
.change-comparison>div { min-width:0; padding:11px; border:1px solid #e1e7ef; border-radius:9px; background:#fff; }
.change-comparison h3 { margin:0 0 8px; color:#536176; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.change-comparison dl { margin:0; display:grid; grid-template-columns:80px 1fr; gap:5px 8px; font-size:10px; }.change-comparison dt { color:var(--muted); }.change-comparison dd { margin:0; font-weight:700; overflow-wrap:anywhere; }
.change-reason p,.deletion-callout { margin:0; color:#4d5b70; font-size:10px; line-height:1.55; }
.owner-review { align-items:flex-end; }.owner-review>label { flex:1; color:#526076; font-size:9px; font-weight:800; }.owner-review textarea { display:block; width:100%; min-height:55px; margin-top:4px; padding:8px; border:1px solid #cfd8e4; border-radius:7px; resize:vertical; }.owner-review>div { display:flex; gap:7px; }
.primary:disabled,.secondary:disabled,.danger:disabled { cursor:not-allowed; opacity:.58; }
@media(max-width:760px){.transaction-detail-modal{max-height:96vh}.transaction-audit-strip{display:grid;gap:4px}.change-comparison{grid-template-columns:1fr}.owner-review{align-items:stretch;flex-direction:column}.owner-review>div{width:100%}.owner-review>div button{flex:1}}
.fee-help { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:4px; }
.fee-help small { color:var(--muted); font-size:8px; font-weight:500; line-height:1.4; }
.fee-help button { flex:0 0 auto; padding:3px 6px; border:1px solid #b9d4c9; border-radius:6px; color:#08704d; background:#f2faf6; font-size:8px; font-weight:850; cursor:pointer; }
.three-role-switch { grid-template-columns:repeat(3,1fr); }
.three-role-switch button { padding-left:6px; padding-right:6px; font-size:10px; }
.super-admin-page { min-height:100vh; padding-bottom:45px; background:#eef3f8; }
.super-admin-shell { width:min(920px,calc(100% - 36px)); margin:28px auto; }
.super-admin-hero { padding:24px; border-radius:16px; color:#fff; background:linear-gradient(135deg,#17243b,#304a6b); }
.super-admin-hero h1 { margin:5px 0 8px; }.super-admin-hero p { margin:0; color:#d8e4f1; font-size:11px; line-height:1.6; }
.security-card { margin-top:14px; }.security-card h2 { margin:0 0 7px; }.security-card>p { margin:0; color:var(--muted); font-size:11px; line-height:1.6; }
.security-warning { margin:14px 0; padding:11px 13px; border:1px solid #edc675; border-radius:9px; color:#76500a; background:#fff8df; font-size:10px; line-height:1.55; }
.security-actions { display:flex; align-items:end; gap:10px; }.security-actions label { flex:1; color:#526076; font-size:10px; font-weight:800; }.security-actions input { display:block; width:100%; margin-top:5px; padding:10px; border:1px solid #cfd7e3; border-radius:8px; }
@media(max-width:760px){.fund-position-panel{width:100%}.three-role-switch{grid-template-columns:1fr}.security-actions{align-items:stretch;flex-direction:column}.security-actions button{width:100%}}

/* Version 4.5.5: restored split dashboard and complete Admin workspace access. */
.security-link { display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:7px 11px; border:1px solid #cbd8e5; border-radius:8px; color:#274a70; background:#fff; text-decoration:none; font-size:10px; font-weight:850; white-space:nowrap; }
.security-link:hover { color:#0755c8; border-color:#91b8e5; background:#f5f9ff; }
.admin-header-actions { margin-left:auto; display:flex; align-items:center; gap:9px; }
@media (max-width:900px) {
  .cash-dashboard { grid-template-columns:1fr; }
  .security-link { min-height:31px; padding:6px 8px; }
}
@media (max-width:600px) {
  .topbar > .security-link { display:none; }
  .admin-header-actions .security-link { display:inline-flex; }
}

/* Version 4.5.6: edge-to-edge split dashboard with compact fund columns. */
@media (min-width:901px) {
  body.workspace-body .page-heading,
  body.workspace-body .summary-grid,
  body.workspace-body .dashboard-grid,
  body.workspace-body .panel.full,
  body.workspace-body .jo-card,
  body.workspace-body .reconcile-grid,
  body.workspace-body .alert,
  body.workspace-body .loading {
    width:100%;
    max-width:none;
  }

  body.workspace-body .cash-dashboard {
    grid-template-columns:minmax(0,1fr) minmax(320px,24%);
    gap:0;
  }

  body.workspace-body .cash-flow-panel {
    border-top-right-radius:0;
    border-bottom-right-radius:0;
  }

  body.workspace-body .fund-position-panel {
    border-left:0;
    border-top-left-radius:0;
    border-bottom-left-radius:0;
  }

  body.workspace-body .cash-flow-table {
    max-height:870px;
  }

  body.workspace-body .fund-position-panel .table-wrap {
    overflow-x:hidden;
  }

  body.workspace-body .fund-position-panel table {
    min-width:0;
    table-layout:fixed;
  }

  body.workspace-body .fund-position-panel th,
  body.workspace-body .fund-position-panel td {
    padding-left:6px;
    padding-right:6px;
  }

  body.workspace-body .fund-position-panel th:first-child,
  body.workspace-body .fund-position-panel td:first-child {
    width:42%;
  }

  body.workspace-body .fund-position-panel th:nth-child(2),
  body.workspace-body .fund-position-panel td:nth-child(2) {
    width:25%;
  }

  body.workspace-body .fund-position-panel th:nth-child(3),
  body.workspace-body .fund-position-panel td:nth-child(3) {
    width:33%;
  }
}
