
:root{--red:#dc0000;--red2:#f87171;--dark:#0f172a;--muted:#64748b;--line:#e5e7eb;--bg:#f4f7fb;--green:#2f551e;--soft:#fff5f5;--shadow:0 18px 45px rgba(15,23,42,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Inter","Segoe UI",Arial,sans-serif;background:radial-gradient(circle at top right,#fee2e2 0,#f8fafc 360px,#f4f7fb 100%);color:var(--dark);font-size:15px;line-height:1.45}a{color:inherit}.top{min-height:92px;background:linear-gradient(120deg,#c90000 0%,#e31b23 45%,#fb8d93 100%);display:flex;align-items:center;justify-content:space-between;padding:18px 36px;color:#fff;box-shadow:0 12px 30px rgba(220,0,0,.22);position:sticky;top:0;z-index:50}.brand{display:flex;gap:16px;align-items:center;min-width:0}.brand img{width:60px;height:60px;object-fit:contain;background:#fff;border-radius:16px;padding:5px;box-shadow:0 10px 22px rgba(0,0,0,.18)}.brand b{display:block;font-size:27px;line-height:1.05;letter-spacing:.2px;text-transform:uppercase}.brand span{display:block;font-size:14px;font-weight:600;opacity:.95;margin-top:4px}.logout{background:#fff;color:#d00000;border-radius:14px;padding:12px 20px;font-weight:900;text-decoration:none;box-shadow:0 10px 25px rgba(0,0,0,.12)}.logout:hover{transform:translateY(-1px)}.nav{position:sticky;top:92px;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:0 30px;display:flex;gap:8px;flex-wrap:wrap;box-shadow:0 8px 22px rgba(15,23,42,.04)}.nav a{display:flex;align-items:center;min-height:58px;padding:0 14px;text-decoration:none;color:#0f172a;font-weight:850;border-bottom:3px solid transparent;border-radius:0 0 12px 12px;transition:.18s}.nav a:hover{color:var(--red);background:#fff5f5;border-bottom-color:var(--red)}.container{max-width:1220px;margin:30px auto 0;padding:0 20px}.container>h1{font-size:32px;margin:0 0 20px;font-weight:900;letter-spacing:-.4px}.container>h1:after{content:"";display:block;width:74px;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--red),#ffb4b4);margin-top:9px}.card{background:rgba(255,255,255,.94);border:1px solid rgba(226,232,240,.95);border-radius:24px;box-shadow:var(--shadow);padding:26px;margin-bottom:24px}.card h2{font-size:23px;margin:0 0 18px;font-weight:900}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.kpis div{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px 24px 22px;box-shadow:0 16px 35px rgba(15,23,42,.07)}.kpis div:before{content:"";position:absolute;right:-28px;top:-28px;width:90px;height:90px;border-radius:50%;background:linear-gradient(135deg,#fee2e2,#fff)}.kpis span{display:block;color:var(--muted);font-weight:700;margin-bottom:8px}.kpis b{font-size:30px;color:var(--red);letter-spacing:-.5px}.excel-menu{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.excel-menu a{display:flex!important;align-items:center;gap:10px;min-height:46px;background:linear-gradient(135deg,#31591f,#203d14);color:#fff!important;text-decoration:none!important;padding:12px 14px;border-radius:14px;font-weight:850;font-size:14px;box-shadow:0 8px 16px rgba(47,85,30,.18);transition:.18s;white-space:normal!important;line-height:1.2}.excel-menu a:before{content:"▸";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:rgba(255,255,255,.16);border-radius:8px;flex:0 0 auto}.excel-menu a:hover{background:linear-gradient(135deg,#e00000,#b00000);transform:translateY(-2px);box-shadow:0 12px 22px rgba(220,0,0,.20)}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:14px;padding:14px 15px;font-size:15px;background:#fff;outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.10)}textarea{min-height:55px;grid-column:span 2}label{font-weight:800;color:#334155}button,.btn{border:0;background:linear-gradient(135deg,#e00000,#b90000);color:#fff;border-radius:14px;padding:14px 20px;font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 12px 24px rgba(220,0,0,.18);min-height:48px}button:hover,.btn:hover{filter:brightness(.96);transform:translateY(-1px)}table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 10px 25px rgba(15,23,42,.04)}th{background:#fff1f2;color:#d00000;text-align:left;padding:15px;font-weight:900;border-bottom:1px solid #fee2e2}td{padding:14px 15px;border-bottom:1px solid #edf2f7}tr:last-child td{border-bottom:0}tr:hover td{background:#fafafa}.danger{color:#dc2626;font-weight:900;text-decoration:none}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#fff 0,#fff5f5 40%,#e8868c 100%)}.login-card{width:min(460px,100%);text-align:left;border-radius:30px;padding:34px}.login-card h1{text-align:center;color:#d00000;margin:4px 0 8px;font-size:30px}.login-card p{text-align:center;color:#64748b;margin:0 0 20px}.login-logo{display:block;width:124px;height:124px;object-fit:contain;margin:0 auto 12px;background:#fff;border-radius:24px;box-shadow:0 15px 35px rgba(220,0,0,.12)}.alert{background:#fee2e2;color:#991b1b;padding:12px;border-radius:14px;margin-bottom:12px;font-weight:700}footer{text-align:center;color:#64748b;padding:34px}.print{background:#fff}.badge{display:inline-block;background:#fff1f2;color:#b91c1c;border-radius:999px;padding:5px 10px;font-weight:800}@media(max-width:1100px){.excel-menu{grid-template-columns:repeat(3,1fr)}.kpis{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.top{position:relative;min-height:auto;padding:16px;align-items:flex-start}.brand b{font-size:19px}.brand img{width:52px;height:52px}.brand span{font-size:12px}.logout{padding:10px 13px}.nav{position:relative;top:0;padding:8px}.nav a{min-height:42px;padding:0 10px}.container{margin:18px auto;padding:0 12px}.container>h1{font-size:25px}.kpis,.excel-menu,.form-grid{grid-template-columns:1fr}.card{border-radius:20px;padding:18px}textarea{grid-column:span 1}table{display:block;overflow-x:auto;white-space:nowrap}}
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.btn.secondary{background:linear-gradient(135deg,#334155,#0f172a)}.inline-import{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0}.inline-import input[type=file]{width:auto;min-width:260px}.alert.success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;margin-bottom:16px}.hint{color:#64748b;font-size:13px;margin-top:6px}
@media(max-width:720px){.toolbar,.inline-import{display:grid;grid-template-columns:1fr;width:100%}.inline-import input[type=file]{width:100%;min-width:0}}
.register-link{display:block;text-align:center;margin-top:14px;font-weight:800;color:#d00000;text-decoration:none}.register-link:hover{text-decoration:underline}.register-page{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;padding:32px 12px}.register-card{max-width:980px;width:100%;padding:34px}.register-card h1{text-align:center;color:#d00000;margin:10px 0}.register-card>p{text-align:center;color:#64748b;margin-top:0}.register-card h2{grid-column:1/-1;margin:18px 0 6px;font-size:18px;color:#0f172a}.register-card .login-logo{display:block;margin:0 auto 10px}.register-card textarea{min-height:88px}.register-card .btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.alert.success{background:#dcfce7!important;color:#166534!important;border:1px solid #86efac!important}

/* Dashboard ringkasan simpanan terpisah */
.dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:stretch}
.dashboard-kpis>div{min-height:96px}
.dashboard-kpis span{display:block;line-height:1.3}
.dashboard-kpis b{display:block;margin-top:8px;white-space:nowrap}

/* Patch dashboard saldo sukarela + pengaturan tenant */
.dashboard-kpis small{display:block;margin-top:8px;color:#64748b;font-size:12px;font-weight:800;line-height:1.35}
.settings-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start}
.settings-form label{display:block;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:12px 13px;min-height:105px}
.settings-form label.full{grid-column:span 2}
.settings-form label span{display:block;color:#64748b;font-size:12px;font-weight:600;line-height:1.35;margin:5px 0 9px}
.settings-form input,.settings-form textarea{border-radius:12px;padding:11px 12px}
.settings-form button{align-self:stretch;min-height:74px;margin-top:24px}
.help-box{border-left:6px solid #dc0000;background:linear-gradient(135deg,#fff,#fff7f7)}
.help-box p{margin:0;color:#334155;line-height:1.6}
@media(max-width:1100px){.settings-form{grid-template-columns:repeat(2,1fr)}.settings-form label.full{grid-column:span 2}}
@media(max-width:720px){.settings-form{grid-template-columns:1fr}.settings-form label.full{grid-column:span 1}}
.note{font-size:14px;line-height:1.6;color:#1f2937}.danger{color:#dc0000;font-weight:800}.kpis small{display:block;margin-top:8px;color:#64748b;font-size:12px;line-height:1.35}.settings-form label span{display:block;color:#64748b;font-size:12px;margin:4px 0 7px}.print58{width:58mm}
