@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:wght@600&display=swap');:root{--ink:#20232d;--muted:#777b87;--cream:#f8f7f3;--card:#fff;--purple:#5b4bdb;--line:#ecebf0}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}.app{max-width:760px;margin:auto;padding:28px 20px 100px}header,.section-title,.hero-meta,.receipt-card,.toolbar{display:flex;justify-content:space-between;align-items:center}header{margin-bottom:18px}h1,h2,h3,p{margin:0}h1{font:600 32px 'Playfair Display',serif}h2{font-size:18px}h3{font-size:16px}.eyebrow{font-size:11px;letter-spacing:1.5px;color:var(--muted);font-weight:700;margin-bottom:6px}.muted,small{color:var(--muted);font-size:12px}.avatar{border:0;background:#e5defa;color:var(--purple);border-radius:50%;width:42px;height:42px;font-weight:bold}.toolbar{gap:8px;margin-bottom:14px;flex-wrap:wrap}.toolbar label{font-size:12px;font-weight:700;flex:1}.toolbar input,.toolbar select{margin-left:4px;width:auto}.hero{background:var(--purple);color:#fff;border-radius:22px;padding:24px;margin-bottom:28px;box-shadow:0 10px 25px #5b4bdb30}.hero .eyebrow{color:#d8d2ff}.total{font-size:38px;font-weight:700;margin:8px 0 20px}.hero-meta{gap:16px;font-size:13px;color:#eee9ff;justify-content:flex-start}.section-title{margin:22px 0 13px}.text-btn{border:0;background:none;color:var(--purple);font-weight:700;cursor:pointer;display:inline-block}.who-links{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:2px}.who-links .who-sep{width:1px;height:14px;background:var(--line);display:inline-block;flex:0 0 1px}.who-links .text-btn{flex:0 1 auto;min-width:0;overflow-wrap:anywhere}#who{margin-bottom:10px}/* T817: kolom minimum 150px -> turun ke 2/1 kolom di layar sempit, tanpa overflow. */
.accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.account{min-width:0}.account strong,.account small{overflow-wrap:anywhere}.account,.receipt-card,.report{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px}.account strong{display:block;margin-top:10px}.account button{border:0;background:none;color:#c44;font-size:11px;padding:5px 0}.archived{opacity:.6}.filters{display:flex;gap:8px;margin-bottom:8px}.filters input{flex:1}input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px;background:white;font:inherit;color:inherit}select{max-width:180px}.transactions{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.tx{display:flex;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.tx:last-child{border:0}.tx-icon{width:38px;height:38px;background:#f1efff;border-radius:12px;display:grid;place-items:center;font-size:18px}.tx-main{flex:1}.tx-main small{display:block;margin-top:4px}.tx>strong{text-align:right;white-space:nowrap}.actions{display:flex;gap:4px;margin-top:5px}.actions button{border:0;background:none;color:var(--purple);font-size:11px;padding:0;cursor:pointer}.income{color:#1a9b73}.expense{color:#e05252}.transfer{color:#7564cc}.receipt-card{margin-top:24px;gap:8px}.upload{background:#eeeafd;color:var(--purple);font-weight:700;padding:10px 12px;border-radius:10px;cursor:pointer;border:0}.report{display:flex;flex-wrap:wrap;gap:8px}.report span{background:#f1efff;color:#5143bd;padding:8px;border-radius:9px;font-size:12px}.modal{position:fixed;inset:0;background:#20232d88;display:grid;place-items:end center;padding:12px;z-index:1000;isolation:isolate;pointer-events:auto}.modal form{position:relative;z-index:1;background:var(--cream);width:min(100%,560px);border-radius:22px;padding:22px;display:grid;gap:12px;max-height:92vh;overflow:auto;pointer-events:auto}.modal button,.modal input,.modal select{position:relative;z-index:2;pointer-events:auto}.modal small{font-weight:400;margin-top:-7px}.modal::before{content:'';position:absolute;inset:0;pointer-events:none}.modal label{font-size:12px;color:var(--muted);font-weight:700}.primary{background:var(--purple);color:white;border:0;border-radius:11px;padding:13px;font-weight:700;font-size:15px}.close{border:0;background:none;font-size:25px}.hidden{display:none!important}.error{color:#d33;font-size:12px}.ocr-draft{white-space:pre-wrap;background:#f1efff;border-radius:10px;padding:10px;font:12px/1.45 monospace;max-height:180px;overflow:auto}.type-tabs{display:flex;gap:5px}.type-tabs label{flex:1;border:1px solid var(--line);padding:10px;border-radius:10px;text-align:center}.type-tabs input{display:none}.type-tabs label:has(input:checked){background:#e5defa;color:var(--purple);border-color:#c9befc}.fab{position:fixed;right:max(20px,calc((100vw - 760px)/2 + 20px));bottom:20px;background:var(--purple);color:#fff;border:0;border-radius:999px;padding:15px 20px;font-weight:700;font-size:15px;box-shadow:0 8px 20px #5b4bdb55;z-index:5}@media(max-width:520px){.app{padding:22px 14px 100px}.accounts{gap:6px}.account{padding:11px 8px}.total{font-size:32px}h1{font-size:27px}.filters{flex-wrap:wrap}.filters select{max-width:calc(50% - 4px)}.fab{right:16px;bottom:16px}}/* T817: di <=360px paksa satu kolom agar kartu akun tidak memaksa lebar layar. */@media(max-width:360px){.accounts{grid-template-columns:1fr}}.report-detail{display:grid;gap:8px;margin-top:8px}.report-detail>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;font-size:12px}.report-detail b{display:block;margin-bottom:8px}.report-detail span{display:inline-block;background:#f6f4ff;color:#5143bd;border-radius:7px;padding:6px;margin:3px}
.manage-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}.manage-row small{display:block;margin-top:4px}.manage-actions{display:flex;gap:8px}.manage-actions button{border:0;background:#eeeafd;color:var(--purple);border-radius:8px;padding:8px 10px;font-weight:700}.manage-actions button:last-child{color:#b44}
.presets{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.chip{border:1px solid var(--line);background:#fff;color:var(--purple);border-radius:999px;padding:7px 13px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.chip.active{background:var(--purple);color:#fff;border-color:var(--purple)}.filter-summary{font-size:12px;margin:0 0 10px}
