@import url("https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;700&display=swap");:root{--emerald-950:#0a2e22;--emerald-800:#0f4a37;--emerald-700:#116349;--emerald-600:#0f8f63;--emerald-500:#16b57f;--emerald-400:#35cf99;--emerald-100:#d8f5e6;--emerald-50:#eefbf4;--bg:#f5faf7;--surface:#fff;--border:#e1ece5;--text:#12241c;--text-soft:#5f7268;--text-faint:#93a49b;--gold:#d8a441;--gold-bg:#fbf1dd;--danger:#d1483f;--danger-bg:#fbe8e6;--shadow-sm:0 1px 2px rgba(10,46,34,.06),0 1px 3px rgba(10,46,34,.04);--shadow-md:0 4px 14px rgba(10,46,34,.08),0 2px 4px rgba(10,46,34,.05);--shadow-lg:0 12px 32px rgba(10,46,34,.14),0 4px 10px rgba(10,46,34,.06);--radius-sm:10px;--radius-md:16px;--radius-lg:22px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Inter,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}#app-shell,body{background:var(--bg);min-height:100vh}#app-shell{max-width:460px;margin:0 auto;position:relative;padding-bottom:110px}.header{padding:26px 20px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:20}.brand{gap:10px}.brand,.logo-mark{display:flex;align-items:center}.logo-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--emerald-500),var(--emerald-700));justify-content:center;color:#fff;font-size:16px;box-shadow:0 4px 10px rgba(15,143,99,.35);flex-shrink:0}.brand h1,.logo-mark{font-family:Sora,sans-serif;font-weight:800}.brand h1{font-size:21px;margin:0;color:var(--emerald-950);letter-spacing:-.3px}.stamp-mark{font-family:Inter,sans-serif;font-size:10.5px;font-weight:700;color:var(--emerald-600);background:var(--emerald-100);border-radius:20px;padding:3px 9px;letter-spacing:.3px}.tagline{font-size:12.5px;color:var(--text-soft);margin-top:8px;display:flex;align-items:center;gap:4px}.tabs{position:relative;display:flex;background:var(--emerald-50);margin:14px 20px 0;border-radius:12px;padding:4px}.tabs-indicator{position:absolute;top:4px;bottom:4px;left:4px;width:calc(25% - 4px);background:var(--surface);border-radius:9px;box-shadow:var(--shadow-sm);transition:transform .32s cubic-bezier(.4,0,.2,1);z-index:0}.tab{position:relative;z-index:1;flex:1 1;text-align:center;padding:9px 4px;font-family:Inter,sans-serif;font-weight:600;font-size:12px;color:var(--text-soft);cursor:pointer;border-radius:9px;transition:color .25s ease}.tab.active{color:var(--emerald-700)}.content{padding:22px 20px 10px;min-height:400px;animation:fadeInUp .35s cubic-bezier(.2,.8,.3,1)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.section-title{font-family:Sora,sans-serif;font-size:16px;font-weight:700;color:var(--emerald-950);margin:0 0 14px;display:flex;align-items:center;justify-content:space-between;letter-spacing:-.2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px;margin-bottom:14px;box-shadow:var(--shadow-sm);transition:box-shadow .25s ease,transform .25s ease}.stats-row{display:flex;gap:10px;margin-bottom:18px}.stat{flex:1 1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 10px;text-align:center;box-shadow:var(--shadow-sm)}.stat .label{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-faint);margin-bottom:6px;font-weight:600}.stat .value{font-family:JetBrains Mono,monospace;font-weight:700;font-size:16.5px;color:var(--emerald-950)}.stat.balance{background:linear-gradient(160deg,var(--emerald-600),var(--emerald-800));border-color:transparent}.stat.balance .label{color:hsla(0,0%,100%,.75)}.stat.balance .value{color:#fff}.stat.expense .value{color:var(--danger)}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.list-item:last-child{border-bottom:none}.li-left{display:flex;flex-direction:column;gap:2px}.li-title{font-size:13.5px;font-weight:600;color:var(--text)}.li-sub{font-size:11.5px;color:var(--text-faint)}.li-amount{font-family:JetBrains Mono,monospace;font-weight:700;font-size:14px}.li-amount.income{color:var(--emerald-600)}.li-amount.expense{color:var(--danger)}.empty-state{text-align:center;padding:40px 10px;color:var(--text-soft)}.empty-state .glyph{font-size:30px;margin-bottom:12px}.empty-state .msg{font-size:12.5px;line-height:1.6;max-width:260px;margin:0 auto}label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-soft);font-weight:600;margin:14px 0 6px}label:first-child{margin-top:0}input,select{width:100%;font-family:Inter,sans-serif;font-size:14px;padding:11px 13px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}input:focus,select:focus{outline:none;border-color:var(--emerald-500);background:var(--surface);box-shadow:0 0 0 4px var(--emerald-100)}.amount-input{font-family:JetBrains Mono,monospace;font-weight:700}.row2{display:flex;gap:10px}.row2>div{flex:1 1}.btn{font-family:Inter,sans-serif;font-weight:700;font-size:13.5px;padding:12px 16px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(135deg,var(--emerald-500),var(--emerald-700));color:#fff;width:100%;margin-top:18px;box-shadow:0 6px 16px rgba(15,143,99,.3)}.btn-primary:hover{box-shadow:0 8px 20px rgba(15,143,99,.4);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:default;transform:none}.btn-ghost{background:var(--surface);color:var(--emerald-700);border:1.5px solid var(--border)}.btn-ghost:hover{border-color:var(--emerald-400)}.btn-danger-text{background:none;border:none;color:var(--danger);font-size:11.5px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px;transition:background .15s ease}.btn-danger-text:hover{background:var(--danger-bg)}.btn-small{padding:8px 12px;font-size:12px}.toggle-row{display:flex;gap:8px;margin-bottom:4px}.toggle-opt{flex:1 1;text-align:center;padding:10px;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:12.5px;font-weight:700;color:var(--text-soft);transition:all .2s ease}.toggle-opt.selected.income{background:var(--emerald-600);color:#fff;border-color:var(--emerald-600);box-shadow:0 4px 10px rgba(15,143,99,.3)}.toggle-opt.selected.expense{background:var(--danger);color:#fff;border-color:var(--danger);box-shadow:0 4px 10px rgba(209,72,63,.25)}.fab{position:fixed;max-width:460px;margin:0 auto;left:0;right:0;bottom:96px;display:flex;justify-content:flex-end;padding:0 20px;pointer-events:none}.fab button{pointer-events:all;width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--emerald-500),var(--emerald-700));color:#fff;font-size:26px;border:none;box-shadow:var(--shadow-lg);cursor:pointer;transition:transform .2s cubic-bezier(.4,0,.2,1)}.fab button:hover{transform:scale(1.07) rotate(90deg)}.fab button:active{transform:scale(.94)}.bottom-nav{position:fixed;bottom:16px;left:0;right:0;max-width:420px;margin:0 auto;background:var(--emerald-950);display:flex;padding:6px;border-radius:20px;box-shadow:var(--shadow-lg)}.nav-indicator{position:absolute;top:6px;bottom:6px;left:6px;width:calc(25% - 6px);background:var(--emerald-600);border-radius:14px;transition:transform .32s cubic-bezier(.4,0,.2,1)}.nav-btn{position:relative;z-index:1;flex:1 1;text-align:center;color:#a9c4b8;font-size:10px;font-weight:600;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 0;transition:color .25s ease}.nav-btn.active{color:#fff}.nav-btn svg{width:19px;height:19px}.scan-drop{border:2px dashed var(--border);border-radius:var(--radius-md);padding:32px 16px;text-align:center;color:var(--text-soft);cursor:pointer;background:var(--emerald-50);display:block;transition:border-color .2s ease,background .2s ease}.scan-drop:hover{border-color:var(--emerald-400);background:var(--emerald-100)}.receipt-tape{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;font-family:JetBrains Mono,monospace;font-size:11.5px;color:var(--text-soft);white-space:pre-wrap;max-height:120px;overflow-y:auto;margin-top:10px}.spinner{width:24px;height:24px;border:3px solid var(--emerald-100);border-top-color:var(--emerald-600);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(1turn)}}.toast-overlay{position:fixed;top:20px;left:0;right:0;display:flex;justify-content:center;pointer-events:none;z-index:50}.toast{display:flex;align-items:center;gap:10px;background:var(--emerald-950);color:#fff;padding:12px 20px 12px 14px;border-radius:999px;box-shadow:var(--shadow-lg);font-family:Inter,sans-serif;font-weight:600;font-size:13.5px;opacity:0;transform:translateY(-16px) scale(.94)}.toast.show{animation:toastIn .4s cubic-bezier(.2,1.4,.4,1) forwards}.toast.hide{animation:toastOut .3s ease forwards}@keyframes toastIn{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px) scale(.96)}}.toast-check{width:20px;height:20px;border-radius:50%;background:var(--emerald-500);display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-check svg{width:12px;height:12px}.toast-check path{stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;animation:drawCheck .35s ease .15s forwards}@keyframes drawCheck{to{stroke-dashoffset:0}}.invoice-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px;box-shadow:var(--shadow-sm)}.invoice-preview .inv-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px dashed var(--border);padding-bottom:14px;margin-bottom:14px}.invoice-preview .inv-head h3{margin:0;font-family:Sora,sans-serif;color:var(--emerald-950);font-size:17px;font-weight:800;letter-spacing:-.2px}.invoice-preview .inv-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);margin-top:12px;padding-top:12px;font-weight:700;font-size:15px;font-family:JetBrains Mono,monospace;color:var(--emerald-950)}.status-pill{font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;border-radius:20px;font-weight:700}.status-pill.paid{background:var(--emerald-100);color:var(--emerald-700)}.status-pill.draft{background:var(--gold-bg);color:#966d1f}.field-hint{font-size:10.5px;color:var(--text-faint);margin-top:4px}.login-wrap{max-width:440px;margin:0 auto;min-height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;padding:32px;overflow:hidden}.login-glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;z-index:0}.login-glow.g1{width:280px;height:280px;background:var(--emerald-400);top:-100px;left:-80px;animation:float1 9s ease-in-out infinite}.login-glow.g2{width:220px;height:220px;background:var(--gold);top:60%;right:-90px;opacity:.25;animation:float2 11s ease-in-out infinite}@keyframes float1{0%,to{transform:translate(0)}50%{transform:translate(20px,30px)}}@keyframes float2{0%,to{transform:translate(0)}50%{transform:translate(-25px,-20px)}}.login-card{position:relative;z-index:1;border-radius:var(--radius-lg);padding:36px 30px;box-shadow:var(--shadow-lg);border:1px solid var(--border);animation:fadeInUp .5s cubic-bezier(.2,.8,.3,1)}.google-btn,.login-card{background:var(--surface)}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px 16px;border-radius:var(--radius-sm);border:1.5px solid var(--border);font-family:Inter,sans-serif;font-weight:700;font-size:14px;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .15s ease}.google-btn:hover{border-color:var(--emerald-400);box-shadow:var(--shadow-sm)}.google-btn:active{transform:scale(.98)}.centered-msg{text-align:center;padding:60px 20px;color:var(--text-soft);font-size:13px}