:root {
    --bg: #f5f7fa;--card: #ffffff;--text: #1a202c;--sub: #718096;
    --primary: #1a365d;--primary-light: #2b6cb0;--green: #38a169;
    --green-light: #c6f6d5;--red: #e53e3e;--red-light: #fed7d7;
    --border: #e2e8f0;--shadow: 0 2px 8px rgba(0,0,0,0.06);--radius: 10px;
    --input-bg: #ffffff;--saldo-bg: #fffbeb;--saldo-border: #f6e05e;
}
[data-theme="dark"] {
    --bg: #1a202c;--card: #2d3748;--text: #ffffff;--sub: #cbd5e0;
    --primary: #2b6cb0;--primary-light: #4299e1;--green: #68d391;
    --green-light: #276749;--red: #fc8181;--red-light: #9b2c2c;
    --border: #4a5568;--shadow: 0 2px 8px rgba(0,0,0,0.4);
    --input-bg: #1a202c;--saldo-bg: #2d3748;--saldo-border: #f6e05e;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;font-size:14px}
header{background:#1a365d;color:#fff;padding:10px 12px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;position:sticky;top:0;z-index:100}
.header-left h1{font-size:1rem;white-space:nowrap;color:#fff}
.header-date{font-size:.7rem;opacity:.9;display:block;color:#fff}
.header-dashboard{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hd-item{background:rgba(255,255,255,.15);padding:5px 8px;border-radius:6px;text-align:center;min-width:50px}
.hd-label{font-size:.55rem;opacity:.9;display:block;color:#fff}
.hd-value{font-size:.8rem;font-weight:700;color:#fff}
.btn-theme{background:rgba(255,255,255,.2);border:none;color:#fff;font-size:1.1rem;padding:6px 10px;border-radius:6px;cursor:pointer}
main{max-width:1100px;margin:0 auto;padding:10px}
.input-section{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;overflow:hidden}
.input-header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;background:#1a365d;color:#fff;cursor:pointer}
.input-header h2{font-size:1rem;color:#fff}
.input-header span{color:#fff}
.input-body{padding:15px}.input-body.hidden{display:none}
.saldo-awal-box{background:var(--saldo-bg);border:2px solid var(--saldo-border);padding:12px 15px;border-radius:8px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:15px}
.saldo-awal-box label{font-weight:700;font-size:.9rem;white-space:nowrap;color:var(--text)}
.saldo-awal-box input{font-size:1.1rem;font-weight:700;padding:8px 12px;border:2px solid var(--border);border-radius:6px;width:160px;background:var(--input-bg);color:var(--text)}
.saldo-awal-box small{color:var(--sub);font-size:.7rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px}
.form-group{display:flex;flex-direction:column;gap:3px}
.form-group.full-width{grid-column:1/-1}
.form-group label{font-size:.75rem;font-weight:600;color:var(--sub)}
.form-group input,.form-group select{padding:8px 10px;border:2px solid var(--border);border-radius:6px;font-size:.85rem;background:var(--input-bg);color:var(--text);width:100%}
.form-group input::placeholder{color:var(--sub);opacity:.7}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-light)}
.form-group select option{background:var(--card);color:var(--text)}
.btn-group{display:flex;flex-wrap:wrap;gap:8px}
button{padding:8px 14px;border:none;border-radius:6px;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .2s;white-space:nowrap}
.btn-primary{background:#1a365d;color:#fff;flex:1;min-width:120px}
.btn-primary:hover{background:#2b6cb0}
.btn-danger{background:var(--red);color:#fff}
.btn-outline{background:var(--border);color:var(--text)}
.preview-section{background:var(--green-light);border-left:4px solid var(--green);padding:10px 15px;border-radius:0 var(--radius) var(--radius) 0;margin-bottom:10px;font-size:.85rem;color:var(--text)}
.preview-content{display:flex;flex-wrap:wrap;gap:15px}
.preview-content span{color:var(--text)}
.preview-content strong{color:var(--text)}
.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}
.stat-box{background:var(--card);padding:10px 8px;border-radius:var(--radius);text-align:center;box-shadow:var(--shadow)}
.stat-box.jp{border-bottom:3px solid var(--green)}.stat-box.mc{border-bottom:3px solid var(--red)}
.stat-box span{font-size:.65rem;color:var(--sub);display:block}
.stat-box strong{font-size:.95rem;color:var(--text)}
.progress-section{background:var(--card);padding:12px 15px;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px}
.progress-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.prog-label{font-weight:700;font-size:.8rem;width:40px;color:var(--text)}
.prog-bar{flex:1;height:16px;background:#4a5568;border-radius:8px;overflow:hidden}
.prog-fill{height:100%;border-radius:8px;transition:width .5s}
.prog-fill.jp{background:var(--green)}.prog-fill.mc{background:var(--red)}
.prog-text{font-weight:700;font-size:.8rem;width:40px;text-align:right;color:var(--text)}
.charts-section{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.chart-box{background:var(--card);padding:12px;border-radius:var(--radius);box-shadow:var(--shadow)}
.chart-box h3{text-align:center;font-size:.85rem;margin-bottom:8px;color:var(--text)}
canvas{max-height:200px}
.table-section{background:var(--card);padding:12px;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px}
.table-section h2{font-size:.95rem;margin-bottom:8px;color:var(--text)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;max-height:400px;overflow-y:auto}
table{width:100%;border-collapse:collapse;font-size:.7rem;min-width:900px}
th{background:#1a365d;color:#fff;padding:8px 4px;font-size:.65rem;position:sticky;top:0}
td{padding:6px 4px;text-align:center;border-bottom:1px solid var(--border);color:var(--text)}
.usd-positive{color:var(--green)!important;font-weight:700}
.usd-negative{color:var(--red)!important;font-weight:700}
.btn-del{background:var(--red);color:#fff;padding:3px 7px;border-radius:4px;font-size:.65rem;cursor:pointer;border:none}
.empty-row td{text-align:center;padding:30px;color:var(--sub)}
footer{background:#1a365d;color:#fff;text-align:center;padding:10px;font-size:.7rem}
@media(max-width:768px){header{flex-direction:column;align-items:flex-start}.header-dashboard{width:100%;justify-content:space-between}.form-grid{grid-template-columns:1fr 1fr}.charts-section{grid-template-columns:1fr}.btn-group{flex-direction:column}.btn-primary{width:100%}.stats-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.header-left h1{font-size:.85rem}.form-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}.saldo-awal-box{flex-direction:column;align-items:flex-start}.saldo-awal-box input{width:100%}}