:root{--sage:#a3b5a6;--sage-light:#dbe3dc;--sage-pale:#edf2ee;--ink:#2c3a35;--ink-soft:#52625b;--gold:#d4af37;--gold-deep:#9b7918;--glass:#ffffff57;--glass-strong:#ffffff9e;--glass-border:#ffffff85;--line:#2c3a3524;color:var(--ink);background:var(--sage);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{overscroll-behavior:none;background:radial-gradient(circle at 20% 0%, #dbe3dc 0, transparent 34%), linear-gradient(145deg, #b8c7ba, var(--sage));min-width:320px;min-height:100dvh;margin:0}button,a,[role=button]{font:inherit;touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.primary,.secondary,.danger{border-radius:14px;min-height:46px;padding:12px 18px;font-weight:750;transition:transform .16s,box-shadow .16s,background .16s}.primary:hover,.secondary:hover,.danger:hover{transform:translateY(-1px)}.primary{background:linear-gradient(145deg, #e1c65f, var(--gold));color:var(--ink);border:1px solid #e3c965;box-shadow:0 10px 24px #7c5e0f2e}.secondary{color:var(--ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff47;border:1px solid #2c3a3533}.danger{color:#a1362b;background:#fff6f5;border:1px solid #dd9b93}.auth-shell{background:radial-gradient(circle at 50% -15%, #e7ece8 0, transparent 48%), linear-gradient(155deg, #b8c7ba 0%, var(--sage) 55%, #8fa395 100%);place-items:center;min-height:100dvh;padding:24px;display:grid}.auth-card{background:var(--glass);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(26px)saturate(115%);backdrop-filter:blur(26px)saturate(115%);border-radius:32px;width:min(100%,430px);padding:40px;box-shadow:0 30px 80px #2c3a3538,inset 0 1px #ffffff85}.auth-brand-icon{object-fit:cover;filter:drop-shadow(0 16px 22px #2c3a352e);border-radius:18px;width:76px;height:76px;margin-bottom:24px;display:block}.eyebrow{color:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;margin:12px 0 8px;font-size:.75rem;font-weight:800}h1{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,5vw,3.2rem)}.brand-slogan{color:var(--ink-soft);letter-spacing:.03em;margin:10px 0 0;font-size:1rem}.muted{color:var(--ink-soft)}.login-actions{gap:12px;margin:28px 0;display:grid}.login-actions button{background:linear-gradient(145deg, #e1c65f, var(--gold));color:var(--ink);border:1px solid #e3c965;border-radius:14px;padding:14px 18px;font-weight:750;box-shadow:0 10px 24px #7c5e0f2e}.login-actions label{color:var(--ink-soft);gap:8px;font-size:.9rem;font-weight:700;display:grid}.connectivity{align-items:center;gap:6px;font-size:.82rem;font-weight:700;display:inline-flex}.connectivity:before{content:"";background:#2ca66f;border-radius:50%;width:8px;height:8px}.connectivity.offline:before{background:#d87937}.app-shell{background:radial-gradient(circle at 75% -10%, #dce4dd 0, transparent 38%), linear-gradient(145deg, #b8c7ba, var(--sage));grid-template:"top top"72px"nav main"1fr/220px 1fr;min-height:100dvh;display:grid}.topbar{border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#ffffff61;grid-area:top;justify-content:space-between;align-items:center;padding:0 28px;display:flex}.brand{color:inherit;align-items:center;gap:12px;font-weight:850;text-decoration:none;display:flex}.brand img{border-radius:13px;width:42px;height:42px;box-shadow:0 8px 18px #2c3a352e}.session{align-items:center;gap:16px;display:flex}.quiet{color:var(--ink);background:0 0;border:0}.navigation{background:linear-gradient(180deg, #ffffff0f, transparent), var(--ink);flex-direction:column;grid-area:nav;gap:8px;padding:28px 18px;display:flex;box-shadow:14px 0 40px #2c3a3524}.navigation a{color:#e8ede9;border-radius:10px;padding:12px 16px;font-weight:700;text-decoration:none}.navigation a,.navigation button{align-items:center;gap:10px;display:flex}.navigation a>span:first-child,.navigation button>span:first-child{text-align:center;width:22px}.navigation .central-action{background:linear-gradient(145deg, #e1c65f, var(--gold));color:var(--ink);box-shadow:0 10px 24px #0e151247}.navigation button{color:#dcebe7;text-align:left;background:0 0;border:0;border-radius:10px;padding:12px 16px;font-weight:700}.navigation a:first-child,.navigation a:hover{color:#fff;background:#ffffff18}.content{grid-area:main;width:min(100%,1000px);padding:50px clamp(24px,6vw,72px)}.empty-state{max-width:560px;padding-top:8vh}.empty-state .primary{margin-top:20px}.ledger-heading{justify-content:space-between;align-items:end;gap:24px;display:flex}.balance-card{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:linear-gradient(145deg,#ffffff75,#fff3);border-radius:26px;margin-top:32px;padding:30px;box-shadow:0 22px 55px #2c3a3529,inset 0 1px #ffffff94}.balance-card p{margin:0 0 8px}.balance-card strong{color:var(--ink);letter-spacing:-.04em;font-size:clamp(2.4rem,6vw,4rem)}.balance-card.low,.balance-card.negative{border-width:2px}.balance-card.low{border-color:#c98324}.balance-card.negative{border-color:#b53d31}.balance-warning{color:#9d342a;font-weight:850}.balance-card .primary{margin-top:18px}.recent-card{border:1px solid var(--glass-border);background:var(--glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:22px;margin-top:20px;padding:22px;box-shadow:0 16px 38px #2c3a351f}.recent-card h2{margin-top:0}.recent-card ul{margin:0;padding:0;list-style:none}.recent-card li{border-top:1px solid var(--line);justify-content:space-between;padding:12px 0;display:flex}.record-list{gap:8px;max-height:52vh;padding:0;list-style:none;display:grid;overflow-y:auto}.record-list li{border:1px solid var(--glass-border);background:#ffffff4d;border-radius:16px;grid-template-columns:1fr auto;gap:8px 16px;padding:14px;display:grid}.record-list span{color:var(--ink-soft);margin-top:4px;font-size:.84rem;display:block}.record-actions{grid-column:1/-1}.delete-confirmation{background:#fff6f5;border:1px solid #d99b94;border-radius:12px;gap:12px;padding:16px;display:grid}.delete-confirmation label{gap:8px;display:grid}.notification-item,.month-close-card{border:1px solid var(--glass-border);background:#ffffff52;border-radius:16px;margin-top:14px;padding:16px}.notification-item{justify-content:space-between;display:flex}.notification-item span{color:#9a5a21;font-weight:750}.decision-actions{gap:10px;display:flex}.analytics-dialog{width:min(100%,900px)}.period-form{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;display:grid}.period-form label{gap:6px;display:grid}.analytics-summary{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px;display:grid}.analytics-summary span{background:#ffffff57;border-radius:14px;padding:12px}.analytics-summary strong{display:block}.chart{width:100%;height:260px}.analytics-dialog table{border-collapse:collapse;width:100%}.analytics-dialog caption{text-align:left;font-weight:750}.analytics-dialog th,.analytics-dialog td{border-bottom:1px solid var(--line);text-align:left;padding:8px}@media (width<=600px){.period-form,.analytics-summary{grid-template-columns:1fr 1fr}}.dialog-backdrop{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1b26229e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);background:#ebf1eceb;border-radius:26px;width:min(100%,500px);max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 30px 90px #1a27226b}.dialog>header{z-index:3;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(24px)saturate(120%);backdrop-filter:blur(24px)saturate(120%);background:#ebf1ecf0;justify-content:space-between;align-items:center;min-height:72px;padding:14px 26px;display:flex;position:sticky;top:0}.dialog>header .quiet{border-radius:50%;min-width:44px;min-height:44px;font-size:1.15rem}.dialog-content{padding:22px 26px 26px}.dialog h2{margin:0}.form,.form label,.dialog-content>label{gap:8px;display:grid}.form{gap:18px}input,select,textarea{font-size:16px}input{width:100%;color:var(--ink);font:inherit;background:#ffffff80;border:1px solid #2c3a353d;border-radius:12px;padding:12px 14px}input:focus,textarea:focus{border-color:var(--gold-deep);outline:3px solid #d4af372e}textarea{width:100%;min-height:110px;color:var(--ink);font:inherit;background:#ffffff80;border:1px solid #2c3a353d;border-radius:12px;padding:12px}.sync-state{color:#9a5a21;font-weight:750}.expense-page{z-index:8;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);background:radial-gradient(circle at 50% 0,#ffffff94,#0000 38%),#d2ded4f0;grid-template-rows:auto auto auto minmax(80px,1fr) auto auto auto;gap:10px;width:min(100%,560px);height:100dvh;margin:auto;padding:14px 18px;display:grid;position:fixed;inset:0;overflow:hidden;box-shadow:0 28px 90px #2c3a3557}.expense-page>header{justify-content:space-between;align-items:center;display:flex}.expense-page h2{margin:0;font-size:1.2rem}.expense-page button{min-height:44px}.amount-field{color:var(--ink-soft);text-align:center;display:grid}.amount-field input{color:var(--ink);text-align:center;background:0 0;border:0;font-size:clamp(2rem,8vw,3rem);font-weight:850}.major-tabs{scrollbar-width:none;gap:8px;padding:2px;display:flex;overflow-x:auto}.major-tabs::-webkit-scrollbar{display:none}.major-tabs button,.subcategory-grid button{min-height:44px;color:var(--ink);background:#ffffff5c;border:1px solid #2c3a352e;border-radius:12px}.major-tabs button{flex:none;min-width:78px;padding:8px 18px}.major-tabs button[aria-selected=true],.subcategory-grid button[aria-pressed=true]{background:linear-gradient(145deg, #e1c65f, var(--gold));color:var(--ink);border-color:#e3c965;font-weight:750}.subcategory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:0;display:grid;overflow-y:auto}.subcategory-grid button{justify-content:center;align-items:center;gap:7px;padding:7px 8px;font-size:.95rem;display:flex}.subcategory-emoji{font-family:Apple Color Emoji,Segoe UI Emoji,sans-serif;font-size:1.25rem;font-weight:400;line-height:1}@media (width<=720px) and (height>=760px){.subcategory-grid button{flex-direction:column;gap:5px;padding:10px 8px}.subcategory-emoji{font-size:1.45rem}}.date-field{align-items:center;gap:12px;display:flex}.date-field input{flex:1}.field-error{color:#a1362b;margin:0;font-size:.82rem}.keypad{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.keypad button{min-height:44px;color:var(--ink);background:#ffffff5c;border:0;border-radius:9px;font-size:1.05rem;font-weight:700}.save-expense{min-height:48px}@media (height<=700px) and (width<=720px){.expense-page{gap:6px;padding-block:8px}}@media (width<=340px),(height<=560px){.expense-page{display:block;overflow-y:auto}.expense-page>*{margin-bottom:10px}}@media (resolution>=2x) and (width>=720px){.expense-page{border-radius:24px;height:calc(100dvh - 80px);position:fixed;inset:40px;box-shadow:0 24px 70px #2c3a3547}}.qr{width:220px;max-width:100%;margin:0 auto 20px;display:block}.ledger-list{gap:10px;margin-bottom:20px;display:grid}.ledger-list button{border:1px solid var(--glass-border);color:inherit;text-align:left;background:#ffffff52;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.ledger-list small,.ledger-list strong{display:block}.ledger-list small{color:var(--ink-soft);margin-top:4px}.member-list{padding:0;list-style:none}.member-list li{border-bottom:1px solid #e4e9e7;justify-content:space-between;padding:14px 0;display:flex}.member-list span{color:var(--ink-soft)}.settings-form{border-bottom:1px solid var(--line);padding-bottom:24px}.check-row{grid-template-columns:20px 1fr;align-items:center}.check-row input{width:auto}.invitation-card .primary{margin-top:22px}.install-guidance{z-index:7;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#ebf1eceb;border-radius:18px;gap:8px;width:min(320px,100vw - 36px);padding:16px;display:grid;position:fixed;bottom:18px;right:18px;box-shadow:0 18px 48px #2c3a353d}.install-guidance p{color:var(--ink-soft);margin:0}@media (width<=720px){.app-shell{grid-template:"top"64px"main"1fr"nav"70px/1fr}.topbar{padding:0 16px}.brand>span:last-child,.session .connectivity{display:none}.navigation{z-index:2;flex-direction:row;justify-content:space-around;padding:10px 4px;position:sticky;bottom:0}.navigation a,.navigation button{flex-direction:column;gap:2px}.navigation .central-action{border:4px solid var(--sage);border-radius:50%;min-width:58px;min-height:58px;transform:translateY(-12px)}.navigation a{padding:10px 8px;font-size:.78rem}.navigation button{text-align:center;padding:10px 8px;font-size:.78rem}.content{padding:30px 20px}.auth-card{padding:30px 24px}.dialog-backdrop{align-items:end;padding:0}.dialog{border-radius:24px 24px 0 0;width:100%;max-height:82vh}.install-guidance{bottom:82px}}@media (display-mode:standalone){.auth-shell{padding:max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left))}.app-shell{padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.expense-page{padding-top:max(14px, env(safe-area-inset-top));padding-bottom:max(14px, env(safe-area-inset-bottom))}.dialog-backdrop{padding-bottom:env(safe-area-inset-bottom)}}
