:root{--navy:#17324d;--teal:#0f766e;--mint:#dff5ef;--cream:#fbfaf7;--ink:#17212b;--muted:#667085;--line:#e4e7ec;--red:#b42318}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px Inter,Segoe UI,Arial,sans-serif;display:flex;min-height:100vh}aside{position:fixed;inset:0 auto 0 0;width:230px;background:var(--navy);color:#fff;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 32px}.brand>span{width:42px;height:42px;border-radius:12px;background:#f2b84b;color:var(--navy);display:grid;place-items:center;font-weight:800}.brand b{display:block;font-size:18px}.brand small{opacity:.65}nav{display:grid;gap:6px}nav button{border:0;background:transparent;color:#cbd5df;text-align:left;border-radius:10px;padding:12px 14px;font-weight:600;cursor:pointer}nav button:hover,nav button.active{background:#ffffff18;color:#fff}.side-note{margin-top:auto;padding:14px;border:1px solid #ffffff20;border-radius:12px;color:#bcd0df;line-height:1.8;font-size:12px}main{margin-left:230px;width:calc(100% - 230px)}header{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#fff}header small{display:block;color:var(--muted);font-size:10px;letter-spacing:.1em}header strong{font-size:15px}.status{color:var(--muted);font-size:12px}.status i{display:inline-block;width:8px;height:8px;background:#12b76a;border-radius:50%;margin-right:7px}.view{display:none;padding:42px 4vw 70px;max-width:1450px;margin:auto}.view.active{display:block}.eyebrow{color:var(--teal);font-size:11px;font-weight:800;letter-spacing:.14em}h1{font:700 34px Georgia,serif;margin:8px 0 28px}h2{font-size:16px;margin:0}.lead{color:var(--muted);margin-top:-18px;margin-bottom:24px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.cards article,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 20px #17324d08}.cards article{padding:22px}.cards label,.cards small{display:block;color:var(--muted)}.cards b{display:block;font-size:25px;margin:14px 0 6px}.split,.report-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-top:18px}.panel{padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel-head button,button#analyze,.review-actions button{border:0;border-radius:9px;background:var(--teal);color:#fff;padding:10px 15px;font-weight:700;cursor:pointer}.composer{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 8px 30px #17324d0c}.composer textarea{width:100%;height:180px;border:0;outline:0;resize:vertical;padding:22px;font:15px/1.8 Segoe UI;background:transparent}.composer-foot{border-top:1px solid var(--line);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.hidden{display:none!important}#reviewWrap{margin-top:20px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th{text-align:left;color:var(--muted);font-size:11px;letter-spacing:.05em;padding:11px;border-bottom:1px solid var(--line)}td{padding:12px 11px;border-bottom:1px solid #f0f2f5;vertical-align:top}td.money{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-block;border-radius:99px;padding:5px 9px;background:var(--mint);color:var(--teal);font-size:11px;font-weight:700}.pill.warn{background:#fff1d6;color:#9a6700}.review-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.review-actions .ghost{background:#eef1f4;color:var(--ink)}#search{border:1px solid var(--line);padding:10px 12px;border-radius:9px;min-width:260px}.bar-row{display:grid;grid-template-columns:110px 1fr 110px;gap:12px;align-items:center;margin:18px 0}.bar{height:9px;background:#edf0f2;border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;background:var(--teal);border-radius:9px}.bar-row b{text-align:right}.recent-row{display:grid;grid-template-columns:45px 1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.recent-row time{color:var(--muted)}.recent-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-line{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.report-line.total{font-weight:800;border-top:2px solid var(--ink);border-bottom:0;margin-top:8px}.rules{display:grid;grid-template-columns:repeat(2,1fr);gap:0;padding:0;overflow:hidden}.rule{padding:17px 20px;border-bottom:1px solid var(--line)}.rule:nth-child(odd){border-right:1px solid var(--line)}.rule b{display:block}.rule small{color:var(--muted)}.hint{color:var(--muted)}#toast{position:fixed;right:24px;bottom:24px;background:var(--navy);color:#fff;padding:13px 18px;border-radius:10px;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:none}.negative{color:var(--red)!important}@media(max-width:950px){aside{width:76px}.brand div,.side-note,nav button{font-size:0}.brand{padding-left:0}.brand>span{flex:none}nav button{height:43px}nav button:after{content:'•';font-size:22px}main{margin-left:76px;width:calc(100% - 76px)}.cards{grid-template-columns:repeat(2,1fr)}.split,.report-grid{grid-template-columns:1fr}}@media(max-width:600px){header{padding:0 18px}.view{padding:28px 18px}.cards{grid-template-columns:1fr}.composer-foot{align-items:flex-start;gap:12px;flex-direction:column}h1{font-size:29px}}
/* Input transaksi berparameter */
.parameter-panel{margin-bottom:22px}.parameter-head,.parameter-foot{display:flex;align-items:center;justify-content:space-between;gap:18px}.parameter-head{margin-bottom:20px}.parameter-head small{display:block;color:var(--muted);margin-top:5px}.parameter-result{max-width:48%;padding:8px 12px;border-radius:9px;background:#eef1f4;color:var(--muted);font-size:12px;font-weight:700;text-align:right}.parameter-result.ready{background:var(--mint);color:var(--teal)}.parameter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:16px}.parameter-grid .wide{grid-column:span 2}.parameter-grid label{display:block;margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:700}.parameter-grid input,.parameter-grid select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 12px;color:var(--ink);font:600 14px Segoe UI,Arial,sans-serif;outline:0}.parameter-grid input:focus,.parameter-grid select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e18}.parameter-grid select:disabled{background:#f2f4f7;color:#667085}.parameter-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.parameter-foot div{color:var(--muted);font-size:12px;line-height:1.5}.parameter-foot button{border:0;border-radius:9px;background:var(--teal);color:#fff;padding:11px 16px;font-weight:700;cursor:pointer}.free-input{margin-top:18px}.free-input summary{cursor:pointer;color:var(--navy);font-weight:800;padding:14px 0}.free-input[open] summary{margin-bottom:4px}@media(max-width:1100px){.parameter-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.parameter-grid{grid-template-columns:1fr}.parameter-grid .wide{grid-column:auto}.parameter-head,.parameter-foot{align-items:flex-start;flex-direction:column}.parameter-result{max-width:100%;text-align:left}}
.purchase-input-grid{display:grid;gap:20px;margin-bottom:22px}.purchase-panel{padding:0;overflow:hidden}.purchase-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line)}.purchase-head h2{display:inline-block;margin:0 8px 4px 0}.purchase-head small{display:block;color:var(--muted)}.source-badge{display:inline-block;padding:4px 8px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:.08em;margin-right:8px}.source-badge.cash{background:#fff3d6;color:#8b5e00}.source-badge.bank{background:#e3efff;color:#175cd3}.purchase-head button,.purchase-actions button{border:0;border-radius:9px;padding:9px 13px;font-weight:800;cursor:pointer}.purchase-head .ghost{background:#eef1f4;color:var(--ink)}.purchase-input-table{min-width:1120px}.purchase-input-table th{background:#fafafa}.purchase-input-table td{padding:8px}.purchase-input-table input,.purchase-input-table select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 9px;color:var(--ink);font:600 13px Segoe UI,Arial,sans-serif;outline:0}.purchase-input-table input:focus,.purchase-input-table select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f766e18}.purchase-input-table .purchase-date{min-width:138px}.purchase-input-table .purchase-desc{min-width:230px}.purchase-input-table .purchase-category{min-width:180px}.purchase-input-table .purchase-party{min-width:180px}.purchase-input-table .purchase-invoice{min-width:125px}.purchase-input-table .purchase-amount{min-width:135px;text-align:right}.remove-purchase-row{border:0;background:#fff1f0;color:var(--red);width:34px;height:34px;border-radius:8px;cursor:pointer;font-weight:900}.purchase-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 22px;border-top:1px solid var(--line);background:#fafcfb}.purchase-actions span{color:var(--muted);font-size:12px}.purchase-actions button{background:var(--teal);color:#fff}@media(max-width:650px){.purchase-head,.purchase-actions{align-items:flex-start;flex-direction:column}.purchase-actions button{width:100%}}
#cloudGate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:linear-gradient(140deg,#17324df2,#0f766ee8);backdrop-filter:blur(8px)}#cloudLogin{width:min(420px,100%)}.cloud-login-card{background:#fff;border-radius:20px;padding:34px;box-shadow:0 24px 80px #071a2b66}.brand-login{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:#f2b84b;color:var(--navy);font-weight:900;font-size:18px;margin-bottom:18px}.cloud-login-card h2{font:700 28px Georgia,serif;margin-bottom:8px}.cloud-login-card p{color:var(--muted);min-height:20px}.cloud-login-card label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin:20px 0 7px}.cloud-login-card input{width:100%;height:48px;border:1px solid var(--line);border-radius:10px;padding:0 13px;font-size:16px}.cloud-login-card button{width:100%;height:46px;border:0;border-radius:10px;background:var(--teal);color:#fff;font-weight:800;margin-top:14px;cursor:pointer}.cloud-login-card button:disabled{opacity:.6}.cloud-login-card small{display:block;color:var(--muted);text-align:center;margin-top:15px}

/* Beri ruang lebih besar untuk uraian pembelian pada tabel Tunai dan Bank. */
.purchase-input-table{min-width:1320px}
.purchase-input-table .purchase-desc{width:430px;min-width:430px}

/* Laporan Mingguan Operasional */
.weekly-controls{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:16px;align-items:end}.weekly-controls label{display:block;margin-bottom:7px;color:var(--muted);font-size:12px;font-weight:800}.weekly-controls input{width:100%;height:46px;border:1px solid var(--line);border-radius:9px;padding:0 12px;background:#fff;color:var(--ink);font:700 14px Segoe UI,Arial,sans-serif}.weekly-buttons{display:flex;gap:8px}.weekly-buttons button{height:46px;border:0;border-radius:9px;padding:0 15px;background:var(--teal);color:#fff;font-weight:800;cursor:pointer;white-space:nowrap}.weekly-buttons .ghost{background:#eef1f4;color:var(--ink)}.weekly-periods{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.weekly-summary{margin-top:0}.weekly-report-grid{margin-top:18px}.weekly-note{color:var(--muted);font-size:12px;line-height:1.6;margin-top:18px}.weekly-print-head>h1{margin-bottom:8px}.weekly-print-head>p{margin:0 0 22px}.weekly-cost-line{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid var(--line)}.weekly-cost-line.total{font-weight:900;border-top:2px solid var(--ink);border-bottom:0;margin-top:8px}.weekly-cost-line small{display:block;color:var(--muted);margin-top:3px}.weekly-cost-line b{text-align:right;white-space:nowrap}@media(max-width:1050px){.weekly-controls{grid-template-columns:1fr 1fr}.weekly-buttons{grid-column:span 2}}@media(max-width:650px){.weekly-controls{grid-template-columns:1fr}.weekly-buttons{grid-column:auto;flex-direction:column}.weekly-buttons button{width:100%}}
@media print{body{display:block;background:#fff}aside,header,#toast,.weekly-controls,.weekly-periods,.weekly-note{display:none!important}main{margin:0;width:100%}.view{display:none!important}.view#weeklyReport.active{display:block!important;max-width:none;padding:12mm}.weekly-print-head{border-bottom:2px solid #17324d;margin-bottom:8mm}.weekly-print-head h1{font-size:26px}.weekly-summary{grid-template-columns:repeat(4,1fr)}.weekly-summary article,.weekly-report-grid .panel{box-shadow:none;break-inside:avoid}.weekly-report-grid{grid-template-columns:1fr 1fr}.weekly-cost-line{font-size:12px}}
