:root{color:#172033;--bg:#e8eef7;--surface:#f8fbff;--surface-strong:#fff;--surface-soft:#eef5fc;--line:#c8d6e8;--line-strong:#9fb4cf;--text:#172033;--muted:#607086;--nav:#07111f;--nav-2:#0d2138;--metal:#176ea8;--metal-dark:#0b3f66;--metal-light:#5db8e8;--glow:#38bdf847;--shadow:#0c1f371f;background:#e8eef7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{background:linear-gradient(135deg, #176ea81f, transparent 32%), linear-gradient(180deg, #f7fbff 0%, var(--bg) 42%, #dde8f4 100%);margin:0}button{background:linear-gradient(135deg, var(--metal-dark), var(--metal) 52%, #2d93c8);color:#fff;cursor:pointer;font:inherit;border:0;border-radius:6px;justify-content:center;align-items:center;gap:.45rem;min-height:36px;padding:.5rem .7rem;font-weight:700;display:inline-flex;box-shadow:inset 0 1px #ffffff47,0 8px 18px #0b3f6629}input,select{border:1px solid var(--line);color:var(--text);font:inherit;background:linear-gradient(#fff,#f5f9fe);border-radius:6px;width:100%;min-height:36px;padding:.45rem .6rem}input:disabled,button:disabled{cursor:not-allowed;opacity:.65}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.shell.sidebar-collapsed{grid-template-columns:64px 1fr}.sidebar{background:linear-gradient(180deg, #5db8e81f, transparent 28%), linear-gradient(145deg, var(--nav), var(--nav-2) 72%, #0a1527);color:#eef7ff;border-right:1px solid #5db8e838;padding:.9rem;box-shadow:inset -1px 0 #ffffff0a,8px 0 30px #07111f1f}.sidebar-collapsed .sidebar{padding:.65rem}.brand{text-shadow:0 0 18px #5db8e847;align-items:center;gap:.6rem;margin-bottom:1.25rem;font-weight:800;line-height:1.2;display:flex}.brand-mark{object-fit:cover;border:1px solid #e2f4ff6b;border-radius:999px;flex:none;width:28px;height:28px;box-shadow:0 0 18px #5db8e852}.sidebar-collapsed .brand{justify-content:center;margin-bottom:.75rem}.sidebar-toggle{box-shadow:none;color:#8fb4d6;opacity:.75;background:0 0;justify-content:center;width:26px;min-height:26px;margin-left:auto;padding:0}.sidebar-toggle:hover{color:#fff;opacity:1;background:#5db8e81f}.sidebar-collapsed .sidebar-toggle{margin-left:0}nav{gap:.65rem;margin-top:.75rem;display:grid}.nav-group{gap:.25rem;display:grid}.nav-group-toggle{box-shadow:none;color:#8fb4d6;text-transform:uppercase;background:0 0;justify-content:space-between;align-items:center;min-height:28px;padding:0 .55rem;font-size:.72rem;font-weight:800;display:flex}.sidebar-collapsed .nav-group-toggle{justify-content:center;padding:0}.sidebar-collapsed .nav-group-toggle span{display:none}.nav-group-toggle:hover{color:#fff;background:#5db8e81f}.nav-group-toggle svg{transition:transform .16s}.nav-group.open .nav-group-toggle svg{transform:rotate(180deg)}.nav-group-items{gap:.25rem;display:grid}nav button,.secondary{box-shadow:none;color:#c9dcf0;text-align:left;background:0 0;border-radius:6px;justify-content:flex-start;width:100%;min-height:32px;padding:.4rem .55rem}.sidebar-collapsed nav button,.sidebar-collapsed .secondary{justify-content:center;padding:.45rem}nav button.active,nav button:hover,.secondary:hover{color:#fff;background:linear-gradient(135deg,#5db8e82e,#176ea847);box-shadow:inset 0 0 0 1px #5db8e838}.secondary{margin-top:1rem}.workspace{color:var(--text);width:100%;max-width:1440px;padding:1rem}.topbar{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}h1,h2,p{margin:0}h1{font-size:1.35rem}h2{font-size:1rem}.topbar p{color:var(--muted);margin-top:.25rem;font-size:.86rem}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:.75rem;display:grid}.dashboard-hero{color:#eef7ff;background:linear-gradient(135deg,#5db8e83d,#0000 34%),linear-gradient(145deg,#07111f,#102b47 58%,#0b3f66);border:1px solid #5db8e852;border-radius:8px;grid-template-columns:1.2fr 1fr;gap:1rem;margin-bottom:.75rem;padding:1rem;display:grid;overflow:hidden;box-shadow:0 18px 46px #07111f38,inset 0 1px #ffffff1f}.dashboard-hero-main{gap:.35rem;min-width:0;display:grid}.dashboard-hero-main span,.dashboard-hero-side span{color:#a9c7e2;text-transform:uppercase;font-size:.82rem;font-weight:800}.dashboard-hero-main strong{font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.05}.dashboard-hero-main p{color:#c9dcf0}.dashboard-hero-side{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.dashboard-hero-side article{background:#ffffff14;border:1px solid #9fb4cf38;border-radius:8px;gap:.35rem;min-width:0;padding:.7rem;display:grid}.dashboard-hero-side strong{color:#fff;overflow-wrap:anywhere;font-size:1rem}.dashboard-mix{grid-template-columns:1fr 1.4fr auto;align-items:center;gap:.8rem;margin-bottom:.75rem;display:grid}.dashboard-mix p{color:var(--muted);margin-top:.2rem}.mix-bars{border:1px solid var(--line);background:#dbe7f4;border-radius:999px;min-width:180px;height:28px;display:flex;overflow:hidden}.mix-bars span{color:#fff;justify-content:center;align-items:center;min-width:0;font-size:.8rem;font-weight:800;display:inline-flex}.mix-income{background:linear-gradient(135deg,#047857,#10b981)}.mix-expense{background:linear-gradient(135deg,#991b1b,#ef4444)}.mix-legend{white-space:nowrap;gap:.3rem;display:grid}.mix-legend span{color:var(--muted);align-items:center;gap:.35rem;display:inline-flex}.mix-legend i{border-radius:999px;width:8px;height:8px;display:inline-flex}.legend-income{background:#10b981}.legend-expense{background:#ef4444}.metric,.panel,.status-panel{border:1px solid var(--line);box-shadow:0 10px 28px var(--shadow), inset 0 1px 0 #ffffffbf;background:linear-gradient(#fffffff5,#f1f7fef5);border-radius:8px}.metric{gap:.35rem;min-height:100px;padding:.7rem;display:grid}.metric-icon{color:var(--metal);background:linear-gradient(135deg,#5db8e833,#176ea824);border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.metric span,.row span,.split span{color:var(--muted);font-size:.9rem}.metric strong{align-self:end;font-size:1.12rem}.positive{color:#047857}.negative{color:#b91c1c}.grid{grid-template-columns:1.2fr 1.5fr;gap:.75rem;display:grid}.panel{padding:.75rem}.panel.compact{grid-column:span 2}.panel-title{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.dashboard-ranking h2{margin-bottom:.7rem}.rank-list{gap:.55rem;display:grid}.rank-list article{border-bottom:1px solid #d9e4f1;grid-template-columns:1fr minmax(150px,.65fr);align-items:center;gap:.75rem;padding-bottom:.55rem;display:grid}.rank-list article:last-child{border-bottom:0;padding-bottom:0}.rank-list article>div:first-child,.rank-value{gap:.25rem;min-width:0;display:grid}.rank-list span{color:var(--muted);font-size:.84rem}.rank-value>span{background:#dbe7f4;border-radius:999px;height:7px;display:block;overflow:hidden}.rank-value i{background:linear-gradient(135deg, var(--metal-light), var(--metal));border-radius:inherit;height:100%;display:block}.form{grid-template-columns:repeat(5,minmax(128px,1fr));gap:.55rem;margin-bottom:.75rem;display:grid}.form button{min-height:36px}.entry-form{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.55rem}table{background:var(--surface-strong);border:1px solid var(--line);border-collapse:collapse;box-shadow:0 10px 28px var(--shadow);border-radius:8px;width:100%;overflow:hidden}.table-title{margin:1rem 0 .55rem}section{min-width:0;overflow-x:auto}th,td{color:var(--text);text-align:left;border-bottom:1px solid #d9e4f1;padding:.45rem .55rem}th{color:#31435b;background:linear-gradient(#eef6ff,#e5eef8);font-size:.85rem}.filter-bar{border:1px solid var(--line);background:linear-gradient(#fffffff0,#eff6fdf0);border-radius:8px;padding:.55rem}.searchable-select{min-width:0;position:relative}.searchable-select input{width:100%;padding-right:2.25rem}.searchable-toggle{box-shadow:none;color:#33536f;background:0 0;justify-content:center;align-items:center;width:34px;height:34px;min-height:34px;padding:0;display:inline-flex;position:absolute;top:1px;right:1px}.searchable-toggle:hover{color:var(--metal);background:#eaf4fd}.searchable-options{border:1px solid var(--line-strong);z-index:35;background:#fff;border-radius:8px;gap:.15rem;max-height:240px;padding:.35rem;display:grid;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto;box-shadow:0 18px 40px #0f172a2e}.searchable-options button{box-shadow:none;color:var(--text);text-align:left;background:0 0;justify-content:flex-start;min-height:30px;padding:.35rem .5rem}.searchable-options button:hover,.searchable-options button.selected{color:var(--metal);background:#e7f3fd}.searchable-options span{color:var(--muted);padding:.45rem .55rem}.segmented-control{border:1px solid var(--line);background:#edf5fc;border-radius:6px;grid-template-columns:repeat(3,1fr);gap:.2rem;min-height:36px;padding:.2rem;display:grid}.segmented-control button{box-shadow:none;color:#33536f;background:0 0;min-height:28px;padding:.25rem .45rem}.segmented-control button.active{background:linear-gradient(135deg, var(--metal-dark), var(--metal));color:#fff}.actions{gap:.35rem;display:inline-flex}.icon-button{width:28px;height:28px;padding:0}.icon-button.success{background:linear-gradient(135deg,#047857,#059669)}.icon-button.danger{background:linear-gradient(135deg,#991b1b,#dc2626)}.icon-button.neutral{background:linear-gradient(135deg,#334155,#64748b)}.attachment-button{color:#33536f;background:#e5eef8;min-height:28px;padding:.25rem .5rem}.muted-button{box-shadow:none;color:#33536f;background:#e5eef8}.edit-hint{color:var(--metal);margin-bottom:.5rem;font-size:.86rem;font-weight:800;display:inline-flex}.query-summary{grid-template-columns:repeat(4,minmax(140px,1fr));gap:.55rem;margin-bottom:.75rem;display:grid}.query-summary article{border:1px solid var(--line);background:linear-gradient(#fff,#f2f7fd);border-radius:8px;gap:.25rem;padding:.65rem;display:grid}.query-summary span{color:var(--muted);font-size:.82rem}.query-summary strong{font-size:1rem}.transaction-summary{align-items:stretch}.transaction-summary button{min-height:100%}.period-shortcuts{flex-wrap:wrap;align-items:center;gap:.45rem;margin:-.35rem 0 .75rem;display:flex}.period-shortcuts span{color:var(--muted);text-transform:uppercase;margin-right:.2rem;font-size:.82rem;font-weight:800}.period-shortcuts button{min-height:30px;padding:.3rem .55rem}.transaction-status-strip{grid-template-columns:repeat(4,minmax(120px,1fr));gap:.55rem;margin:-.25rem 0 .75rem;display:grid}.transaction-status-strip article{border:1px solid var(--line);background:#ffffff9e;border-radius:8px;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;display:flex}.transaction-status-strip span{color:var(--muted);font-size:.84rem}.transfer-summary{grid-template-columns:repeat(4,minmax(140px,1fr))}.transfer-entry{gap:.75rem;margin-bottom:.75rem;display:grid}.transfer-entry .entry-form{margin-bottom:0}.transfer-preview{border:1px solid var(--line);box-shadow:0 10px 28px var(--shadow);background:linear-gradient(135deg,#5db8e824,#0000 42%),linear-gradient(#fff,#f2f7fd);border-radius:8px;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:.75rem;padding:.65rem;display:grid}.transfer-preview>svg{color:var(--metal);align-self:center}.transfer-preview article{background:#ffffffb8;border:1px solid #d9e4f1;border-radius:8px;gap:.25rem;min-width:0;padding:.65rem;display:grid}.transfer-preview span{color:var(--muted);text-transform:uppercase;font-size:.8rem;font-weight:800}.transfer-preview strong{overflow-wrap:anywhere}.transfer-preview small{color:var(--metal);font-weight:800}.empty-state{border:1px dashed var(--line-strong);color:var(--muted);text-align:center;background:#ffffffc7;border-radius:8px;place-content:center;gap:.25rem;min-height:90px;margin-bottom:.75rem;display:grid}.empty-state strong{color:#31435b}.compact-empty{min-height:58px}.report-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:.75rem;display:grid}.report-panel{padding:.65rem;overflow-x:auto}.report-panel h2{margin-bottom:.55rem}.report-panel table{box-shadow:none}.modal-backdrop.pdf-viewer-backdrop{background:#0f172ac7;justify-content:center;align-items:center;padding:.8rem}.pdf-viewer{background:var(--nav);border-radius:8px;grid-template-rows:auto 1fr;width:min(1180px,100%);height:calc(100vh - 1.6rem);display:grid;overflow:hidden;box-shadow:0 24px 70px #07111f61}.pdf-viewer-toolbar{border-bottom:1px solid var(--line);background:linear-gradient(#fff,#eef6ff);justify-content:flex-end;align-items:center;gap:.5rem;padding:.55rem;display:flex}.pdf-frame{background:#52525b;border:0;width:100%;height:100%}.report-preview-backdrop{background:#0f172ab8;align-items:flex-start;padding:1rem;overflow:auto}.report-preview-modal{box-shadow:none;background:0 0;border:0;gap:.8rem;width:100%;max-width:none;padding:0}.report-preview-modal .modal-actions{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;max-width:1120px;margin:0 auto;padding:.6rem;box-shadow:0 12px 30px #0f172a2e}.printable-report{color:#111827;background:#fff;border-radius:8px;gap:.9rem;width:min(1120px,100%);min-height:760px;margin:0 auto 1rem;padding:1.25rem;display:grid;box-shadow:0 24px 70px #0f172a47}.print-header{border-bottom:2px solid #111827;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.75rem;display:flex}.print-header h1{margin-top:.2rem;font-size:1.7rem}.print-header>div:last-child{text-align:right;justify-items:end;gap:.2rem;min-width:180px;display:grid}.print-header span,.print-summary span{color:#64748b;font-size:.82rem}.print-summary{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.print-summary article{border:1px solid #d8dee6;border-radius:6px;gap:.25rem;padding:.55rem;display:grid}.print-groups{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.printable-report table{box-shadow:none;table-layout:fixed;border:1px solid #e2e8f0;border-radius:0;font-size:.82rem}.printable-report th,.printable-report td{overflow-wrap:anywhere;padding:.42rem .5rem}.printable-report h2{margin-bottom:.2rem}.empty-report{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.65rem}.modal-backdrop{z-index:20;background:#07111f7a;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}@media print{@page{margin:12mm;size:A4 landscape}body{background:#fff}body *{visibility:hidden}.printable-report,.printable-report *{visibility:visible}.screen-only{display:none}.report-preview-backdrop{background:#fff;padding:0;position:absolute;inset:0}.report-preview-modal{box-shadow:none;background:0 0;border:0;max-width:none;padding:0}.printable-report{box-shadow:none;border-radius:0;gap:8mm;width:100%;min-height:auto;padding:0;position:absolute;top:0;left:0}.print-groups,.print-summary{break-inside:avoid}th,td{padding:.28rem .35rem}.empty-report{border:1px solid #d8dee6}}.modal{border:1px solid var(--line);background:linear-gradient(#fff,#f2f7fd);border-radius:8px;gap:.7rem;width:100%;max-width:420px;padding:1rem;display:grid;box-shadow:0 24px 60px #07111f47,inset 0 1px #fffc}.attachment-modal,.transaction-edit-modal{max-width:760px}.modal-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.modal p{color:var(--muted)}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.attachment-list{gap:.5rem;display:grid}.attachment-list article{border:1px solid #d9e4f1;border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem;display:flex}.attachment-upload{border:1px dashed var(--line-strong);background:#f2f7fd;border-radius:8px;gap:.35rem;padding:.65rem;display:grid}.attachment-upload span{color:var(--muted);font-size:.84rem}.attachment-list article>div:first-child{gap:.15rem;min-width:0;display:grid}.attachment-list strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attachment-list span{color:var(--muted);font-size:.82rem}.file-link{background:linear-gradient(135deg, var(--metal-dark), var(--metal));color:#fff;border:0;border-radius:6px;align-items:center;gap:.3rem;min-height:28px;padding:.35rem .55rem;font-size:.86rem;font-weight:800;text-decoration:none;display:inline-flex}.attachment-preview{border:1px solid var(--line);z-index:25;background:#fff;border-radius:8px;gap:.65rem;width:78vw;max-width:min(900px,100vw - 3rem);max-height:calc(100vh - 3rem);padding:.75rem;display:grid;position:fixed;box-shadow:0 24px 60px #0f172a42}.attachment-preview-toolbar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.attachment-preview img,.attachment-preview iframe{object-fit:contain;background:#f2f7fd;border:1px solid #d9e4f1;border-radius:6px;width:100%;height:min(68vh,720px)}.badge{border-radius:999px;padding:.18rem .45rem;font-size:.78rem;font-weight:800;display:inline-flex}.badge.pending{color:#92400e;background:#fef3c7}.badge.paid{color:#166534;background:#dcfce7}.badge.canceled{color:#991b1b;background:#fee2e2}.audit-action{border-radius:999px;padding:.18rem .45rem;font-size:.78rem;font-weight:800;display:inline-flex}.action-create,.action-upload,.action-pay,.action-transfer,.action-approval_request,.action-approve{color:#166534;background:#dcfce7}.action-update{color:#1e40af;background:#dbeafe}.action-deactivate,.action-delete,.action-cancel,.action-reject{color:#991b1b;background:#fee2e2}.tabs{gap:.4rem;margin-bottom:1rem;display:inline-flex}.tabs button{box-shadow:none;color:#33536f;background:#e5eef8}.tabs button.active{background:linear-gradient(135deg, var(--metal-dark), var(--metal));color:#fff}.login{background:radial-gradient(circle at 20% 12%, #0093ff57, transparent 34%), radial-gradient(circle at 82% 86%, #176ea847, transparent 34%), linear-gradient(160deg, var(--nav), #102b47 58%, #07111f);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:#f8fbfff5;border:1px solid #9fb4cfb8;border-radius:8px;gap:.95rem;width:100%;max-width:390px;padding:1.4rem;display:grid;box-shadow:0 30px 90px #07111f61,inset 0 1px #ffffffe0}.login-brand{text-align:center;justify-items:center;gap:.65rem;margin-bottom:.25rem;display:grid}.login-brand img{object-fit:cover;border-radius:999px;width:96px;height:96px;box-shadow:0 0 28px #176ea861}.login-brand span{color:var(--metal);text-transform:uppercase;font-size:.78rem;font-weight:900}.login-brand h1{color:var(--text);font-size:1.55rem}.login-brand p{color:var(--muted);font-size:.9rem}.login-card label{color:#31435b;gap:.35rem;font-size:.82rem;font-weight:900;display:grid}.error{color:#b91c1c;font-size:.9rem}.list{gap:.5rem;display:grid}.row{background:#f2f7fd;border:1px solid #d9e4f1;border-radius:6px;justify-content:space-between;align-items:center;min-height:38px;padding:.5rem;display:flex}.split{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-top:1rem;display:grid}.split div{background:#f2f7fd;border:1px solid #d9e4f1;border-radius:6px;gap:.5rem;padding:.75rem;display:grid}.split strong{font-size:1.25rem}.status-panel{max-width:420px;margin:auto;padding:1.5rem}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{position:static}.metrics,.grid,.form,.dashboard-hero,.dashboard-hero-side,.dashboard-mix,.query-summary,.transaction-status-strip,.transfer-summary,.transfer-preview,.report-grid{grid-template-columns:1fr}.panel.compact{grid-column:span 1}.topbar{flex-direction:column;align-items:flex-start}.mix-legend{white-space:normal}.rank-list article{grid-template-columns:1fr}}@media (width<=1200px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-mix{grid-template-columns:1fr}.form,.query-summary,.report-grid{grid-template-columns:repeat(3,minmax(128px,1fr))}}
