:root{--green:#2ca01c;--green-dark:#108000;--green-light:#e6f5e3;--blue:#0077c5;--blue-dark:#055393;--red:#d52b1e;--orange:#ff8000;--yellow:#ffc700;--teal:#00c1bf;--purple:#8d5cb6;--nav-bg:#393a3d;--nav-bg-hover:#4a4b4f;--nav-active:#212124;--nav-text:#e3e5e8;--bg:#f4f5f8;--surface:#fff;--border:#d4d7dc;--border-light:#e3e5e8;--text:#393a3d;--text-2:#6b6c72;--text-3:#8d9096;--row-hover:#eceef1;--radius:4px;--shadow:0 1px 4px #0000001f;--shadow-lg:0 4px 24px #0003;--font:"Avenir Next", "Avenir", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.4}a{color:var(--blue);cursor:pointer;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;font-weight:600}button,input,select,textarea{font:inherit;color:inherit}.app{height:100%;display:flex}.sidebar{background:var(--nav-bg);width:216px;color:var(--nav-text);flex-direction:column;flex:none;display:flex;overflow-y:auto}.sidebar .brand{color:#fff;align-items:center;gap:10px;height:56px;padding:0 18px;font-size:17px;font-weight:700;display:flex}.brand-logo{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:grid}.new-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #8d9096;border-radius:18px;align-items:center;gap:8px;height:36px;margin:8px 16px 14px;padding:0 16px;font-weight:600;display:flex}.new-btn:hover{background:var(--nav-bg-hover)}.nav a{color:var(--nav-text);border-left:4px solid #0000;align-items:center;gap:12px;padding:9px 18px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{background:var(--nav-bg-hover)}.nav a.active{background:var(--nav-active);border-left-color:var(--green);color:#fff;font-weight:600}.nav .sub a{padding-left:52px;font-size:13px;font-weight:400}.nav .sub a.active{color:#fff;background:0 0;border-left-color:#0000;font-weight:600}.nav svg{opacity:.9;flex:none}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border-light);flex:none;align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.topbar .company{font-size:16px;font-weight:600}.topbar .spacer{flex:1}.icon-btn{cursor:pointer;width:36px;height:36px;color:var(--text-2);background:0 0;border:none;border-radius:50%;place-items:center;display:grid}.icon-btn:hover{background:var(--row-hover);color:var(--text)}.search{position:relative}.search input{border:1px solid var(--border);background:var(--bg);border-radius:17px;width:280px;height:34px;padding:0 14px 0 34px}.search svg{color:var(--text-3);position:absolute;top:9px;left:11px}.avatar{background:var(--blue);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-weight:600;display:grid}.content{flex:1;overflow:auto}.page{max-width:1600px;padding:20px 32px 48px}.page-head{align-items:center;gap:12px;min-height:40px;margin-bottom:18px;display:flex}.page-head h1{font-size:24px;font-weight:600}.page-head .spacer{flex:1}.crumb{color:var(--text-2);margin-bottom:4px;font-size:13px}.btn{border:2px solid var(--text-3);background:var(--surface);cursor:pointer;white-space:nowrap;height:36px;color:var(--text);border-radius:18px;align-items:center;gap:6px;padding:0 18px;font-weight:600;display:inline-flex}.btn:hover{background:var(--row-hover)}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark);border-color:var(--green-dark)}.btn-dark{color:#fff;background:0 0;border-color:#fff}.btn-dark:hover{background:#ffffff1a}.btn-sm{height:30px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-group{display:inline-flex}.btn-group .btn:first-child{border-radius:18px 0 0 18px}.btn-group .btn:last-child{border-left-width:1px;border-radius:0 18px 18px 0;padding:0 10px}.link-btn{color:var(--blue);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.tabs{border-bottom:1px solid var(--border);gap:28px;margin-bottom:20px;display:flex}.tabs a{color:var(--text-2);border-bottom:4px solid #0000;margin-bottom:-1px;padding:10px 0;font-weight:600;text-decoration:none}.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--text);border-bottom-color:var(--green)}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:20px 24px}.card h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin-bottom:12px;font-size:13px;font-weight:700}.table-wrap{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.table-tools{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:12px 16px;display:flex}.table-tools .spacer{flex:1}.table-tools input[type=search]{border:1px solid var(--border);border-radius:var(--radius);width:240px;height:32px;padding:0 10px}table.data{border-collapse:collapse;width:100%}table.data th{text-align:left;text-transform:uppercase;color:var(--text-2);letter-spacing:.02em;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none;background:#fafbfc;padding:10px 12px;font-size:12px;font-weight:700}table.data th.sortable{cursor:pointer}table.data th.sortable:hover{color:var(--text)}table.data td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:10px 12px}table.data tbody tr:hover{background:var(--row-hover)}table.data tbody tr.clickable{cursor:pointer}table.data .num,table.data th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}table.data .actions{text-align:right;white-space:nowrap}table.data tfoot td{border-top:2px solid var(--border);font-weight:700}.empty{text-align:center;color:var(--text-2);padding:48px}.pager{color:var(--text-2);justify-content:flex-end;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:flex}.status{align-items:center;gap:6px;font-size:13px;display:inline-flex}.status .dot{border-radius:50%;width:8px;height:8px}.status.overdue{color:var(--red);font-weight:600}.badge{background:var(--border-light);color:var(--text-2);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.green{background:var(--green-light);color:var(--green-dark)}.badge.red{color:var(--red);background:#fdecea}.badge.blue{color:var(--blue-dark);background:#e5f2fa}.muted{color:var(--text-2)}.small{font-size:12px}.neg{color:var(--red)}.moneybar{gap:8px;margin-bottom:20px;display:flex}.moneybar .grp{background:var(--surface);box-shadow:var(--shadow);border-radius:var(--radius);flex:1;padding:14px 16px 0;overflow:hidden}.moneybar .grp-head{color:var(--text-2);justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.moneybar .segs{gap:2px;display:flex}.moneybar .seg{cursor:pointer;flex:1;min-width:120px}.moneybar .seg .amt{color:var(--text);font-size:20px;font-weight:600}.moneybar .seg .lbl{color:var(--text-2);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;font-size:12px}.moneybar .seg .bar{height:10px;margin:0 -16px}.moneybar .seg.selected .lbl{color:var(--text);font-weight:700}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>label{color:var(--text-2);font-size:13px;font-weight:500}.input,.select,.textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;min-width:0;height:36px;padding:0 10px}.textarea{resize:vertical;height:auto;min-height:64px;padding:8px 10px}.input:focus,.select:focus,.textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 2px #2ca01c40}.input.num{text-align:right}.row{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:14px 16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:14px 16px;display:grid}.check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--green)}.err{color:var(--red);font-size:13px}.txn-overlay{background:var(--bg);z-index:50;flex-direction:column;display:flex;position:fixed;inset:0}.txn-head{background:var(--surface);border-bottom:1px solid var(--border-light);flex:none;align-items:center;gap:12px;height:56px;padding:0 24px;display:flex}.txn-head h2{font-size:20px;font-weight:600}.txn-head .spacer{flex:1}.txn-body{flex:1;padding:24px 32px 40px;overflow:auto}.txn-sheet{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);max-width:1280px;padding:24px 28px}.txn-top{align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.txn-top .bigamt{text-align:right;margin-left:auto}.txn-top .bigamt .lbl{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.txn-top .bigamt .val{font-size:36px;font-weight:600}.txn-foot{background:var(--nav-bg);color:#fff;flex:none;align-items:center;gap:12px;height:60px;padding:0 24px;display:flex}.txn-foot .spacer{flex:1}.txn-foot .link-btn{color:#fff;font-weight:500}table.lines{border-collapse:collapse;width:100%;margin:8px 0 12px}table.lines th{text-transform:uppercase;color:var(--text-2);text-align:left;border-bottom:1px solid var(--border);padding:8px 6px;font-size:12px;font-weight:700}table.lines td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:4px 6px}table.lines td.idx{color:var(--text-3);text-align:center;width:28px}table.lines .input,table.lines .select{height:32px}table.lines .num{text-align:right;width:130px}table.lines th.num{text-align:right}.totals{width:340px;margin-left:auto}.totals .tr{justify-content:space-between;padding:6px 0;display:flex}.totals .tr.big{border-top:1px solid var(--border);margin-top:4px;padding-top:10px;font-size:18px;font-weight:700}.drawer-back{z-index:60;background:#00000059;position:fixed;inset:0}.drawer{background:var(--surface);z-index:61;width:560px;max-width:100vw;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-head{border-bottom:1px solid var(--border-light);align-items:center;padding:18px 24px;display:flex}.drawer-head h2{flex:1;font-size:20px}.drawer-body{flex-direction:column;flex:1;gap:14px;padding:20px 24px;display:flex;overflow:auto}.drawer-foot{border-top:1px solid var(--border-light);justify-content:flex-end;gap:10px;padding:12px 24px;display:flex}.section-title{margin-top:6px;font-size:14px;font-weight:700}.menu{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:40;min-width:180px;padding:6px 0;position:absolute}.menu button{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:8px 16px;display:block}.menu button:hover{background:var(--row-hover)}.newmenu{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:45;gap:8px;padding:20px 8px;display:flex;position:fixed;top:100px;left:16px}.newmenu .col{min-width:170px;padding:0 12px}.newmenu .col h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin-bottom:8px;font-size:12px;font-weight:700}.newmenu button{text-align:left;border-radius:var(--radius);cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;padding:6px 8px;display:block}.newmenu button:hover{background:var(--row-hover)}.newmenu .col+.col{border-left:1px solid var(--border-light)}.dash-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.dash-grid .span-2{grid-column:span 2}.kpi{font-size:28px;font-weight:600}.kpi-sub{color:var(--text-2);font-size:13px}.legend-row{align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}.legend-row .sw{border-radius:2px;flex:none;width:10px;height:10px}.legend-row .v{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.hbar{background:var(--border-light);border-radius:2px;height:26px;display:flex;overflow:hidden}.bank-cards{gap:16px;margin-bottom:20px;padding-bottom:6px;display:flex;overflow-x:auto}.bank-card{background:var(--surface);border-radius:var(--radius);min-width:230px;box-shadow:var(--shadow);cursor:pointer;border-top:4px solid #0000;padding:14px 16px}.bank-card.selected{border-top-color:var(--green)}.bank-card .nm{margin-bottom:10px;font-weight:600}.bank-card .line{color:var(--text-2);justify-content:space-between;font-size:13px;display:flex}.bank-card .line b{color:var(--text);font-variant-numeric:tabular-nums}.bank-card .review{color:var(--blue);margin-top:8px;font-size:13px;font-weight:600}.report-paper{background:var(--surface);box-shadow:var(--shadow);border-radius:var(--radius);max-width:1100px;margin:0 auto;padding:32px 40px 40px}.report-paper .rh{text-align:center;margin-bottom:24px}.report-paper .rh .co{color:var(--text-2);font-size:14px}.report-paper .rh .tt{margin:2px 0;font-size:22px;font-weight:600}.report-paper .rh .sub{color:var(--text-2);font-size:13px}table.report{border-collapse:collapse;width:100%;font-size:13px}table.report th{text-align:right;border-bottom:2px solid var(--text);text-transform:uppercase;padding:6px 8px;font-size:12px;font-weight:700}table.report th.l{text-align:left}table.report td{padding:5px 8px}table.report td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.report tr.rk-section td,table.report tr.rk-total td{font-weight:600}table.report tr.rk-total td.n{border-top:1px solid var(--text)}table.report tr.rk-grand td{font-weight:700}table.report tr.rk-grand td.n{border-top:1px solid var(--text);border-bottom:3px double var(--text)}table.report tr.rk-row:hover{background:var(--row-hover)}table.report tr.link{cursor:pointer}table.report tr.link:hover td:first-child{color:var(--blue);text-decoration:underline}.report-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.report-item{border-bottom:1px solid var(--border-light);cursor:pointer;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.report-item:hover{background:var(--row-hover)}.report-item .t{color:var(--blue);font-weight:600}.toast{background:var(--nav-bg);color:#fff;border-radius:var(--radius);z-index:100;box-shadow:var(--shadow-lg);align-items:center;gap:10px;padding:12px 20px;display:flex;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.toast svg{color:#7ed36f}.detail-head{align-items:flex-start;gap:32px;margin-bottom:20px;display:flex}.detail-head .who{flex:1}.detail-head .who h1{font-size:24px}.detail-head .stats{gap:32px;display:flex}.detail-head .stats .lbl{color:var(--text-2);text-transform:uppercase;font-size:12px;font-weight:600}.detail-head .stats .v{font-size:24px;font-weight:600}@media (width<=900px){.sidebar{width:64px}.sidebar .brand span,.nav a span,.new-btn span,.nav .sub{display:none}.search input{width:160px}.dash-grid{grid-template-columns:1fr}.dash-grid .span-2{grid-column:auto}.page{padding:16px}.grid-3{grid-template-columns:1fr}}.login-wrap{background:var(--bg);place-items:center;min-height:100%;padding:24px;display:grid}.login-card{background:var(--surface);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border-radius:8px;flex-direction:column;gap:16px;padding:32px;display:flex}.login-card h1{font-size:24px}.login-brand{align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}
