@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--iswoc-primary: #c2187a;--iswoc-primary-deep: #9b1462;--iswoc-blush: #fde8f3;--iswoc-bg: #fff7fb;--iswoc-surface: #ffffff;--iswoc-text: #2a1424;--iswoc-muted: #7a5a6c;--iswoc-line: rgba(194, 24, 122, .14);--iswoc-in: #1f7a4d;--iswoc-out: #b42318;--font-display: "Fraunces", Georgia, serif;--font-body: "Plus Jakarta Sans", "Segoe UI", sans-serif;--nav-height: 68px;--header-height: 60px;--radius: 18px}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{font-family:var(--font-body);background:radial-gradient(ellipse 80% 50% at 100% -10%,rgba(194,24,122,.16),transparent 55%),radial-gradient(ellipse 60% 40% at 0% 100%,rgba(194,24,122,.06),transparent 50%),linear-gradient(180deg,#fff9fc 0%,var(--iswoc-bg) 40%,#ffffff 100%);color:var(--iswoc-text);-webkit-font-smoothing:antialiased}a{color:var(--iswoc-primary)}.app-shell{min-height:100vh;padding-bottom:calc(var(--nav-height) + 20px)}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;min-height:var(--header-height);padding:10px 16px;background:#fff9fce6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--iswoc-line)}.app-header img{width:42px;height:42px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:50%;padding:2px;box-shadow:0 0 0 1px var(--iswoc-line)}.app-header h1{margin:0;font-family:var(--font-display);font-size:1.2rem;font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--iswoc-primary-deep)}.app-header p{margin:2px 0 0;font-size:.75rem;font-weight:500;color:var(--iswoc-muted)}.app-header .account-btn{font-weight:600;color:var(--iswoc-text)}.app-content{padding:18px 16px 8px;max-width:720px;margin:0 auto}.page-heading{margin:0 0 14px}.page-heading h2{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:700;letter-spacing:-.03em;color:var(--iswoc-text)}.page-heading p{margin:4px 0 0;color:var(--iswoc-muted);font-size:.9rem}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;min-height:var(--nav-height);padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid var(--iswoc-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--iswoc-muted);font-size:.72rem;font-weight:600;letter-spacing:.01em;border-radius:14px;padding:8px 4px;transition:background .2s ease,color .2s ease,transform .2s ease}.bottom-nav a.active{color:var(--iswoc-primary-deep);background:var(--iswoc-blush)}.bottom-nav-single{grid-template-columns:1fr}.bottom-nav a:active{transform:scale(.97)}.saldo-strip{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:0;margin-bottom:18px;padding:14px 4px;border-radius:var(--radius);background:linear-gradient(135deg,#fff 0%,var(--iswoc-blush) 100%);border:1px solid var(--iswoc-line);overflow:hidden;animation:rise-in .45s ease both}.saldo-strip>div{padding:4px 12px;text-align:center}.saldo-strip>div+div{border-left:1px solid var(--iswoc-line)}.saldo-strip .label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--iswoc-muted)}.saldo-strip .value{margin-top:4px;font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--iswoc-text)}.saldo-strip .pemasukan .value{color:var(--iswoc-in)}.saldo-strip .pengeluaran .value{color:var(--iswoc-out)}.saldo-strip .saldo .value{color:var(--iswoc-primary-deep)}.filter-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.filter-stack>*{width:100%}.filter-full{width:100%!important}.filter-search-icon{color:var(--iswoc-muted);cursor:pointer;font-size:16px}.filter-search-icon:hover{color:var(--iswoc-primary)}.label-with-action{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.label-text-btn{margin:0;padding:0;border:0;background:none;color:var(--iswoc-primary);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;line-height:1}.label-text-btn:hover{color:var(--iswoc-primary-deep);text-decoration:underline}.filter-row{display:flex;flex-wrap:wrap;gap:8px}.filter-row .ant-picker,.filter-row .ant-input,.filter-row .ant-btn{flex:1 1 140px}.cta-add{margin-bottom:8px}.list-section-label{margin:18px 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--iswoc-muted)}.tx-list{display:flex;flex-direction:column}.tx-row{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:14px 0;border-bottom:1px solid var(--iswoc-line);animation:rise-in .4s ease both}.tx-row:nth-child(1){animation-delay:.04s}.tx-row:nth-child(2){animation-delay:.08s}.tx-row:nth-child(3){animation-delay:.12s}.tx-row .title{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--iswoc-text)}.tx-row .amount{font-family:var(--font-display);font-size:1.05rem;font-weight:700;white-space:nowrap}.tx-row .amount.in{color:var(--iswoc-in)}.tx-row .amount.out{color:var(--iswoc-out)}.tx-row .meta{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px 10px;color:var(--iswoc-muted);font-size:.82rem;line-height:1.4}.tx-row .meta .chip{display:inline-flex;align-items:center;font-weight:600;font-size:.7rem;letter-spacing:.02em;text-transform:uppercase;color:var(--iswoc-primary-deep);background:var(--iswoc-blush);padding:2px 8px;border-radius:999px}.tx-row .actions{grid-column:1 / -1;display:flex;gap:8px;margin-top:2px}.empty-state{text-align:center;color:var(--iswoc-muted);padding:36px 16px;font-size:.95rem}.offline-banner{background:#fff1f0;color:#a8071a;border:1px solid #ffa39e;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-weight:600;font-size:.9rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.login-card{width:100%;max-width:400px;background:#fffffff5;border-radius:28px;padding:32px 24px;border:1px solid var(--iswoc-line);box-shadow:0 20px 48px #9b14621a;text-align:center;animation:rise-in .5s ease both}.login-card img{width:112px;height:112px;object-fit:contain;margin-bottom:10px;background:#fff;border-radius:50%;padding:6px;box-shadow:0 0 0 1px var(--iswoc-line)}.login-card h1{margin:0 0 6px;font-family:var(--font-display);color:var(--iswoc-primary-deep);font-size:1.65rem;letter-spacing:-.03em}.login-card .subtitle{margin:0 0 24px;color:var(--iswoc-muted);font-size:.92rem}.collab-banner{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 4px 14px;border-bottom:1px solid var(--iswoc-line)}.collab-banner img{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:14px;padding:4px}.collab-banner strong{display:block;font-family:var(--font-display);font-size:1.05rem;color:var(--iswoc-text)}.collab-banner span{color:var(--iswoc-muted);font-size:.85rem}.summary-grid{display:none}.doc-event{padding:14px 0;border-bottom:1px solid var(--iswoc-line);margin-bottom:0;background:transparent;border-radius:0;border-left:none;border-right:none;border-top:none}.doc-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:10px}.doc-file{border:1px solid var(--iswoc-line);border-radius:12px;padding:8px;background:#fff}.doc-file img{width:100%;height:90px;object-fit:cover;border-radius:8px;background:#f5f5f5}.doc-file .name{font-size:.75rem;margin:6px 0;word-break:break-word}.ant-btn-primary{min-height:48px;height:48px;font-weight:650;letter-spacing:.01em}.ant-input,.ant-input-affix-wrapper,.ant-input-number,.ant-picker,.ant-select-selector,.ant-btn.ant-btn-lg{min-height:48px!important;height:48px!important;border-radius:12px!important}.ant-input-affix-wrapper>input.ant-input{min-height:0!important;height:auto!important}.ant-picker-large,.ant-input-affix-wrapper-lg{padding-top:0!important;padding-bottom:0!important;display:flex!important;align-items:center!important}.ant-input::placeholder,.ant-picker-input>input::placeholder{color:#9a7a8a!important}.ant-form-item .ant-form-item-label>label{width:100%}.ant-form-item .ant-form-item-label>label .label-with-action{width:100%}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:380px){.saldo-strip .value{font-size:.92rem}.saldo-strip>div{padding:4px 8px}}
