:root{--primary:#0b7b50;--primary-dark:#06583a;--text:#10213b;--muted:#72829b;--line:#e3eaf1;--paper:#f5f8fb;--white:#fff;--red:#e05258;--shadow:0 5px 20px rgba(15,45,80,.035)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);font-family:Inter,Arial,Helvetica,sans-serif;color:var(--text);font-size:14px}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}.app-layout{min-height:100vh;display:flex}.sidebar{background:#fff;border-right:1px solid var(--line);width:235px;position:sticky;top:0;height:100vh;flex:none;display:flex;flex-direction:column;padding:24px 12px 16px}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 22px;color:var(--text)}.brand img{width:44px;height:44px;object-fit:cover;border-radius:13px}.brand span{display:flex;flex-direction:column;gap:4px}.brand strong{font-size:15px;letter-spacing:-.4px}.brand small{font-size:11px;color:var(--muted)}.side-nav{display:flex;flex-direction:column;gap:5px}.side-nav a{height:43px;display:flex;align-items:center;gap:12px;border-radius:9px;padding:0 13px;color:#52647c;font-weight:600;font-size:13px}.side-nav a span{font-size:20px;display:inline-block;width:22px;text-align:center}.side-nav a.active,.side-nav a:hover{background:#eaf8f1;color:var(--primary);text-decoration:none}.side-user{margin-top:auto;display:flex;gap:10px;align-items:center;border-top:1px solid var(--line);padding:18px 6px 0;font-size:12px;font-weight:700}.side-user small{display:block;color:var(--muted);margin-top:3px;font-weight:400}.side-user>a{margin-left:auto}.avatar{display:flex;justify-content:center;align-items:center;background:#e8f6ec;color:var(--primary);height:35px;width:35px;border-radius:50%;font-size:16px}.app-main{min-width:0;flex:1}.top{display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);height:87px;padding:0 30px}.top h1{font-size:22px;letter-spacing:-.7px;margin:0}.subtitle{font-size:12px;margin-top:5px;color:var(--muted)}.top-right{display:flex;align-items:center;gap:12px}.top-right img{height:36px;width:36px;border-radius:50%;object-fit:cover}.top-user{font-size:12px;font-weight:700}.page-content{padding:24px 30px 90px;max-width:1480px;margin:auto}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:22px}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:13px;min-height:122px;box-shadow:var(--shadow)}.stat>span{color:#60738b;font-size:12px;font-weight:600}.stat strong{font-size:clamp(16px,1.8vw,24px);letter-spacing:-.8px;overflow-wrap:anywhere}.stat small{color:var(--muted);font-size:11px}.stat.primary-stat{background:linear-gradient(115deg,#0a7953,#064d4c);border-color:#0a7953;color:#fff}.stat.primary-stat span,.stat.primary-stat small{color:#d8f4eb}.green{color:#008756}.red{color:#d4504d}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;box-shadow:var(--shadow);margin-bottom:20px;min-width:0}.panel.no-padding{padding:0;overflow:hidden}.section-title{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 14px}.section-title h2{font-size:15px;margin:0;letter-spacing:-.2px}.section-title a{font-size:12px;font-weight:650}.tile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini-card{border:1px solid #e5eaf1;background:#fbfcff;border-radius:11px;padding:14px;display:flex;flex-direction:column;gap:6px}.mini-card small{color:#6f7f97;font-size:11px}.mini-card strong{font-size:17px;overflow-wrap:anywhere}.panel-total{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:16px;padding-top:15px;font-size:12px}.category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.category-card{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0;align-items:start}.category-card>div{display:flex;flex-direction:column;gap:5px;min-width:0}.category-card small{font-size:11px;color:#7788a1;line-height:1.4}.category-card strong{font-size:17px;letter-spacing:-.6px;overflow-wrap:anywhere}.category-icon{font-size:22px;display:grid;place-items:center;min-width:42px;height:42px;background:#ecf8f1;border-radius:12px}.margin-top{margin-top:25px}.period-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.period-bar>span{font-size:13px;font-weight:750}.period-bar form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.period-bar input{width:148px}.button{border:1px solid transparent;border-radius:9px;min-height:39px;display:inline-flex;align-items:center;justify-content:center;padding:9px 15px;font-size:12px;font-weight:750;white-space:nowrap;transition:background .1s;color:var(--text);background:#eaf0f5}.button:hover{text-decoration:none;filter:brightness(.97)}.button.primary{background:var(--primary);color:#fff}.button.danger-btn{color:#d24a4e;background:#fff0ef}.button.outline{color:#165c45;background:#fff;border-color:#d4e6dc}.button.full{width:100%}.actions-row{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.toggle-panel{display:none}.toggle-panel.shown{display:block}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid label,.installer label,.login-card label{font-size:12px;color:#50647c;font-weight:650;display:flex;flex-direction:column;gap:7px}.form-grid label.wide{grid-column:1/-1}.form-grid label.checkline{flex-direction:row;align-items:center;padding-top:15px;gap:8px}.form-grid .button{justify-self:start}.form-grid input,.form-grid select,.period-bar input,.installer input,.login-card input{outline:0;width:100%;border:1px solid #dce4ed;border-radius:9px;background:#fff;padding:11px;color:#213b53;min-height:41px}.form-grid input:focus,.form-grid select:focus,.period-bar input:focus,.installer input:focus,.login-card input:focus{border-color:#32a36b;box-shadow:0 0 0 3px #e2f5e9}.form-grid input[type=checkbox]{width:17px;height:17px;min-height:0}.icon-close{border:0;background:#f2f5f7;border-radius:8px;font-size:21px;line-height:25px;min-width:31px;cursor:pointer}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;min-width:600px}th{background:#f8fafc;color:#7789a0;font-weight:750;text-align:left;padding:13px 15px;white-space:nowrap}td{border-top:1px solid #edf1f5;padding:13px 15px;vertical-align:middle}td strong{font-weight:700}.subtle{font-size:11px;color:#8997ac;margin-top:5px;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amount{font-weight:750;white-space:nowrap}.amount.positive{color:#0e9161}.amount.negative{color:#d54a53}.inline{display:inline;margin:0}.inline button{padding:0;background:none;border:0;font-size:12px;font-weight:650}.action-cell{white-space:nowrap}.action-cell a{margin-right:12px}.text-danger{color:#de515b;cursor:pointer;border:0;background:none;font-size:12px;font-weight:650}.notice{border-radius:10px;padding:12px 15px;margin-bottom:16px;font-size:12px}.notice.error{background:#fff0ef;color:#b43232;border:1px solid #f4d3d0}.notice.ok{background:#e9faee;color:#0b6c40;border:1px solid #bee8ce}.empty-state{padding:16px;color:#8492a7;font-size:13px}.account-row{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #edf1f6;flex-wrap:wrap}.account-row:last-child{border:0}.account-row>div:first-child{flex:1;min-width:130px}.account-row>div:first-child>small{display:block;color:#8897a9;font-size:11px;margin-top:6px}.account-row strong{font-size:13px}.row-actions{display:flex;gap:13px;align-items:center;font-size:12px}.loan-card{display:grid;grid-template-columns:1fr auto;gap:6px 9px;border-bottom:1px solid var(--line);padding:14px 0}.loan-card:last-child{border-bottom:0}.loan-card small{grid-column:1/-1;color:#8796aa}.cat-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #edf1f5;font-size:12px}.cat-row:last-child{border:0}.cat-row .row-actions{flex:none}.cat-row small{color:var(--muted)}.settings-panel{max-width:580px}.settings-panel>p{margin-top:23px}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 10% 15%,#e0f7e9,#f5f9fc 60%)}.login-card,.installer{width:min(430px,100%);background:#fff;border:1px solid #dde9e3;padding:34px;border-radius:20px;box-shadow:0 15px 55px rgba(2,71,47,.08)}.login-brand{display:flex;align-items:center;gap:15px}.login-brand img,.installer img{height:67px;width:67px;object-fit:cover;border-radius:15px}.login-brand div{display:flex;flex-direction:column;gap:5px}.login-brand strong{font-size:22px}.login-brand small{font-size:12px;color:var(--primary)}.login-card h1,.installer h1{font-size:25px;letter-spacing:-.8px;margin-top:28px;margin-bottom:5px}.login-card p,.installer p{font-size:12px;color:#8390a3;margin-bottom:26px}.login-card form,.installer form{display:grid;gap:18px}.installer img{height:80px;width:80px}.mobile-nav,.mobile-menu{display:none}@media(max-width:1200px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.sidebar{width:195px}.page-content{padding:22px 18px 92px}.top{padding:0 20px}}@media(max-width:720px){body{font-size:13px}.sidebar{display:none}.top{height:65px;padding:0 15px}.top h1{font-size:18px}.top-right .top-user{display:none}.top-right img{width:31px;height:31px}.page-content{padding:16px 12px 96px}.stat-grid{gap:9px;margin-bottom:16px}.stat{min-height:108px;padding:15px;gap:10px}.stat>span{font-size:11px}.stat strong{font-size:19px}.two-columns{grid-template-columns:1fr;gap:0;margin-bottom:5px}.panel{padding:14px;margin-bottom:15px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.category-card{padding:11px 10px;gap:8px}.category-card strong{font-size:15px}.category-icon{min-width:33px;height:33px;font-size:18px}.period-bar{align-items:flex-start;flex-direction:column}.period-bar input{width:132px;padding:8px;min-height:38px}.form-grid{grid-template-columns:1fr;gap:12px}.form-grid label.wide{grid-column:auto}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:35;height:calc(66px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -4px 15px rgba(10,37,68,.04)}.mobile-nav a,.mobile-nav button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;font-size:9.5px;color:#8593a8;background:none;border:0;font-weight:650;padding:5px 0}.mobile-nav span{font-size:23px;line-height:23px}.mobile-nav .active{color:var(--primary)}.mobile-menu{position:fixed;z-index:40;bottom:calc(70px + env(safe-area-inset-bottom));right:12px;width:220px;border-radius:14px;background:#fff;padding:8px;border:1px solid var(--line);box-shadow:0 12px 30px #1233;flex-direction:column}.mobile-menu.shown{display:flex}.mobile-menu a{padding:14px 12px;color:var(--text);font-size:13px;border-bottom:1px solid #eee}.mobile-menu a:last-child{border-bottom:0}.account-row{gap:10px}.row-actions{width:100%;justify-content:flex-end}.top-user{display:none}}@media(max-width:385px){.stat strong{font-size:16px}.category-grid{grid-template-columns:1fr 1fr}.category-card{flex-direction:column}.category-card strong{font-size:15px}.period-bar form{width:100%}.period-bar input{width:calc(50% - 4px)}.period-bar button{flex:1}}

.android-shell .mobile-nav{display:none!important}.android-shell .page-content{padding-bottom:22px}

/* Patch Dadi Finansial V1.1: transaksi dapat diedit/hapus dengan tombol terlihat. */
.tx-action-buttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-start}
.tx-edit-button,.tx-delete-button{display:inline-flex;justify-content:center;align-items:center;gap:5px;border-radius:8px;font-size:12px;font-weight:750;line-height:1.2;white-space:nowrap;padding:9px 11px!important;text-decoration:none!important;cursor:pointer}
.tx-edit-button{border:1px solid #b9e3cf;background:#e6f8ed;color:#08764d!important}
.tx-delete-button{border:1px solid #f5d1d3!important;background:#fff0f1!important;color:#b93644!important;font-size:12px!important;font-weight:750!important}
.tx-loan-link{font-size:11px;color:#66768e;font-weight:700}
.tx-action-col{min-width:165px}
.tx-close-link{font-size:12px;font-weight:750}
.transaction-mobile-cards{display:none}
@media(min-width:721px){.transaction-table .tx-action-col,.transaction-table .tx-action-heading{position:sticky;right:0;background:#fff;box-shadow:-5px 0 11px rgba(4,41,33,.06)}.transaction-table .tx-action-heading{background:#f8fafc;z-index:2}}
@media(max-width:720px){
.transaction-table{display:none}
.transaction-mobile-cards{display:grid;gap:9px;padding:10px}
.tx-mobile-card{border:1px solid #e0e9ed;border-radius:13px;padding:13px;background:#fff;display:flex;flex-direction:column;gap:6px}
.tx-mobile-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:#8797a8}
.tx-mobile-head strong{font-size:14px;white-space:nowrap}
.tx-mobile-head .positive{color:#098e60}.tx-mobile-head .negative{color:#cb4652}
.tx-mobile-title{font-size:13px;color:#102c3e}.tx-mobile-note,.tx-mobile-account{font-size:11px;color:#8693a2;overflow-wrap:anywhere}
.tx-mobile-card .tx-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:8px}
.tx-mobile-card .tx-edit-button,.tx-mobile-card .tx-delete-button{min-height:40px;width:100%}
.tx-mobile-card .inline{display:block}
}

/* V1.2: baris ringkasan singkat, tanpa uraian panjang. */
.summary-strip{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:17px}
.summary-strip span{background:#fff;border:1px solid #e3eaf1;border-radius:10px;padding:12px 15px;font-size:12px;color:#63728b;display:flex;gap:10px;align-items:center;justify-content:space-between;flex:1;min-width:210px}
.summary-strip strong{color:#14283e;font-size:16px}
