:root{color:#302432;letter-spacing:0;--control-height:48px;background:#fff8f1;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{background:linear-gradient(135deg,#ffd8e261,#0000 32%),linear-gradient(315deg,#8bd3c752,#0000 36%),#fff8f1;min-width:320px;min-height:100vh;margin:0}body.drawer-lock,body.icon-picker-lock{overflow:hidden}button,input,select,textarea{font:inherit}button{border:0}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.app-shell--plain{display:grid}.app-shell--mobile{padding:74px 0 92px}.mobile-topbar,.mobile-tabbar{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffcf6f5;position:fixed;left:0;right:0}.mobile-topbar{min-height:64px;padding:max(8px, env(safe-area-inset-top)) 14px 8px;border-bottom:1px solid #f3d9d0;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;display:grid;top:0}.mobile-brand{justify-content:center;align-items:center;gap:8px;min-width:0;font-weight:900;display:inline-flex}.mobile-brand img{object-fit:contain;width:34px;height:34px}.mobile-brand strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-spacer{width:44px;height:44px}.icon-button{color:#60465a;background:#fff;border-radius:999px;place-items:center;width:42px;height:42px;display:inline-grid;box-shadow:0 8px 18px #76524d14}.mobile-content{min-width:0;padding:12px 14px 24px}.mobile-tabbar{height:64px;padding:8px 18px max(8px, env(safe-area-inset-bottom));border-top:1px solid #f3d9d0;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;display:grid;bottom:0}.tabbar-item{color:#73586d;place-items:center;gap:3px;font-size:.78rem;font-weight:900;display:grid}.tabbar-item.router-link-active{color:#d84d82}.tabbar-item--add{margin-top:-36px}.tabbar-add-circle{color:#fff;background:#f16f9c;border:6px solid #fff8f1;border-radius:999px;place-items:center;width:64px;height:64px;display:grid;box-shadow:0 12px 24px #f16f9c4d}.drawer-backdrop{z-index:40;background:#30243247;position:fixed;inset:0}.profile-drawer{z-index:50;background:#fffaf6;border-left:1px solid #f3d9d0;grid-template-rows:auto auto 1fr auto;gap:16px;width:min(86vw,300px);padding:18px;transition:transform .22s;display:grid;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(102%)}.profile-drawer--open{transform:translate(0)}.profile-drawer__close{justify-self:end}.drawer-profile{border-bottom:1px solid #f0d7cf;justify-items:start;gap:8px;padding-bottom:16px;display:grid}.avatar-button{color:#fff;background:#f16f9c;border:3px solid #ffe5ed;border-radius:999px;place-items:center;width:74px;height:74px;font-size:1.8rem;font-weight:900;display:grid;overflow:hidden}.avatar-button img{object-fit:cover;width:100%;height:100%}.drawer-profile small{color:#85647b}.drawer-edit-form,.drawer-section{gap:10px;width:100%;display:grid}.drawer-section{border-bottom:1px solid #f0d7cf;padding-bottom:16px}.drawer-section h2{margin:0;font-size:1rem}.drawer-action,.drawer-logout{color:#60465a;background:#fff;border-radius:8px;justify-content:flex-start;align-items:center;gap:8px;min-height:44px;padding:0 12px;font-weight:800;display:inline-flex}.drawer-action--danger{color:#a43a35}.drawer-logout{color:#a43a35;align-self:end}.main-panel{min-width:0}.page{gap:14px;width:100%;max-width:760px;margin:0 auto;display:grid}.page--mobile{max-width:520px}.page-header{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-header--compact{align-items:center}.page-title{margin:0;font-size:1.55rem;line-height:1.15}.page-kicker{color:#85647b;margin:0 0 4px;font-size:.82rem;font-weight:900}.grid{gap:12px;display:grid}.grid--four,.grid--three,.grid--two,.form-grid{grid-template-columns:1fr}.panel,.metric-card,.list-card,.manage-link,.mobile-record,.asset-row-card{background:#ffffffdb;border:1px solid #f1d9d0;border-radius:8px;box-shadow:0 14px 28px #76524d14}.panel{padding:14px}.metric-card,.list-card,.asset-row-card{padding:13px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.metric-label,.muted{color:#85647b}.metric-label{font-size:.78rem;font-weight:900}.metric-value{margin-top:6px;font-size:1.25rem;font-weight:900}.section-title{align-items:center;gap:6px;margin:0;font-size:1.02rem;display:inline-flex}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.stack{gap:10px;display:grid}.row{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.row-main{min-width:0}.row-main strong,.truncate{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.inline-icons{align-items:center;gap:5px;max-width:100%;display:inline-flex}.amount-income{color:#247861}.amount-expense{color:#b84f6f}.amount-transfer{color:#9a6b00}.badge{color:#624a07;background:#fff0bd;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:.78rem;font-weight:900;display:inline-flex}.badge--income{color:#247861;background:#e4f7ef}.badge--expense{color:#b84f6f;background:#fff0ee}.badge--transfer{color:#624a07;background:#fff0bd}.segmented{grid-auto-flow:column;gap:6px;display:grid;overflow-x:auto}.segmented button{color:#73586d;white-space:nowrap;background:#fff;border-radius:999px;min-height:38px;padding:0 14px;font-weight:900}.segmented button.is-active{color:#fff;background:#f16f9c}.primary-button,.secondary-button,.danger-button,.ghost-button{min-height:var(--control-height);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;scroll-margin-bottom:120px;font-weight:900;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.primary-button{color:#fff;background:#f16f9c;padding:0 16px;box-shadow:0 8px 20px #f16f9c3d}.secondary-button{color:#245b55;background:#e7f7f3;padding:0 16px}.danger-button{color:#a43a35;background:#fff0ee;padding:0 14px}.ghost-button{color:#73586d;background:#fff;padding:0 14px}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled,.drawer-action:disabled{cursor:not-allowed;opacity:.55}.form-grid{gap:12px;display:grid}.field{gap:6px;display:grid}.field--wide{grid-column:1/-1}.field label,.field>span,.field label span{color:#60465a;font-weight:900}.field-label-row{color:#60465a;justify-content:space-between;align-items:center;gap:10px;min-width:0;font-weight:900;display:flex}.field-label-row>span:last-child{color:#85647b;text-align:right;font-size:.82rem}.field input,.field select,.field textarea{width:100%;min-height:var(--control-height);color:#302432;background:#fff;border:1px solid #e8cfc8;border-radius:8px;padding:11px 12px}.field-hint{color:#85647b;font-size:.82rem;font-weight:800}.field textarea{resize:vertical;min-height:108px}.readonly-value{width:100%;min-height:var(--control-height);color:#60465a;background:#fffaf6;border:1px solid #e8cfc8;border-radius:8px;padding:11px 12px;font-weight:800;display:block}.icon-display{width:var(--icon-display-size,18px);height:var(--icon-display-size,18px);vertical-align:-.18em;flex:none;place-items:center;display:inline-grid}.icon-display img{object-fit:contain;width:100%;height:100%}.icon-select-field{gap:8px;display:grid}.icon-select-field__label{color:#60465a;font-weight:900}.icon-select{position:relative}.icon-select__trigger,.icon-select__option{width:100%;min-height:var(--control-height);color:#60465a;text-align:left;background:#fff;border:1px solid #efd6ce;border-radius:8px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:7px 9px;display:grid}.icon-select__trigger{cursor:pointer}.icon-select__trigger[aria-expanded=true],.icon-select__option.is-selected{background:#fff0f5;border-color:#f16f9c;box-shadow:0 8px 18px #f16f9c24}.icon-select__option{min-height:var(--control-height);box-shadow:none;border-color:#0000;grid-template-columns:38px minmax(0,1fr)}.icon-select__icon{color:#245b55;background:#e7f7f3;border-radius:999px;place-items:center;width:38px;height:38px;display:grid}.icon-select__trigger[aria-expanded=true] .icon-select__icon,.icon-select__option.is-selected .icon-select__icon{color:#fff;background:#f16f9c}.icon-select__empty{font-weight:900}.icon-select__text{min-width:0;display:grid}.icon-select__text strong,.icon-select__text small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-select__text small{color:#85647b;font-size:.78rem;font-weight:800}.icon-select__chevron{color:#85647b;font-size:.82rem;font-weight:900}.icon-picker-backdrop{z-index:80;background:#30243247;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.icon-picker-dialog{background:#fffaf6;border:1px solid #efd6ce;border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:10px;width:min(100%,520px);max-height:80vh;padding:12px;display:grid;box-shadow:0 22px 44px #4e334333}.icon-picker-dialog__header{color:#60465a;justify-content:space-between;align-items:center;gap:10px;display:flex}.icon-picker-dialog__close{color:#73586d;background:#fff;border-radius:999px;place-items:center;width:36px;height:36px;font-weight:900;display:grid}.icon-picker-dialog__list{gap:6px;min-height:0;padding-right:2px;display:grid;overflow-y:auto}.alert,.success{border-radius:8px;padding:12px}.alert{color:#8a312d;background:#fff1ef;border:1px solid #ffd0c9}.success{color:#245b55;background:#eefaf6;border:1px solid #bfe7dc}.empty-state{color:#72566b;text-align:center;border:1px dashed #dabdb5;border-radius:8px;padding:18px}.attachment-strip,.thumb-strip{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.attachment-strip img,.thumb-strip img{object-fit:cover;background:#fff8f1;border:1px solid #f0d7cf;border-radius:8px;width:54px;height:54px}.attachment-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;display:grid}.attachment-thumb{background:#fffaf6;border:1px solid #f0d7cf;border-radius:8px;gap:8px;margin:0;padding:8px;display:grid}.attachment-thumb img{aspect-ratio:1;object-fit:cover;background:#fff;border-radius:6px;width:100%}.attachment-thumb figcaption{color:#60465a;font-size:.82rem;font-weight:800}.progress{background:#f4e5de;border-radius:999px;height:10px;overflow:hidden}.progress>span{border-radius:inherit;background:linear-gradient(90deg,#8bd3c7,#f16f9c);height:100%;display:block}.mobile-record{grid-template-columns:minmax(0,1fr) 72px;gap:12px;padding:12px;display:grid}.mobile-record__meta{gap:5px;min-width:0;display:grid}.mobile-record__top,.mobile-record__line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.mobile-record__thumb{object-fit:cover;background:#fff0bd;border-radius:8px;width:72px;height:72px}.mobile-record__placeholder{color:#624a07;background:#fff0bd;border-radius:8px;place-items:center;width:72px;height:72px;font-weight:900;display:grid}.saving-goal-amounts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.saving-goal-amounts span{gap:3px;min-width:0;display:grid}.saving-goal-amounts small{color:#85647b;font-weight:900}.saving-goal-amounts strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.manage-list{gap:10px;display:grid}.manage-link{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;padding:14px;display:grid}.manage-link__icon{color:#245b55;background:#e7f7f3;border-radius:999px;place-items:center;width:48px;height:48px;display:grid}.manage-link small{color:#85647b;margin-top:3px;display:block}.asset-pie{grid-template-columns:132px minmax(0,1fr);align-items:center;gap:14px;display:grid}.asset-pie__chart{aspect-ratio:1;border:10px solid #fff;border-radius:999px;width:132px;box-shadow:inset 0 0 0 1px #f0d7cf,0 10px 20px #76524d14}.asset-row-card{grid-template-columns:38px minmax(0,1fr);align-items:start;gap:10px;display:grid}.asset-row-card__icon{color:#a72c63;background:#ffe5ed;border-radius:999px;place-items:center;width:38px;height:38px;display:grid}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.login-layout{place-items:center;min-height:calc(100vh - 56px);padding:18px;display:grid}.login-card{grid-template-columns:1fr;align-items:center;gap:18px;width:min(780px,100%);display:grid}.login-card img{justify-self:center;width:100%;max-width:190px}@media (width>=720px){.mobile-content{padding-inline:24px}.grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.login-card{grid-template-columns:220px minmax(0,1fr)}}@media (width>=500px){.add-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
