:root{--bg: #f2f5ef;--surface: #ffffff;--surface-soft: #f7faf8;--ink: #0f1d18;--muted: #55675f;--line: #d6e0da;--accent: #f27c1f;--accent-deep: #0f6b58;--positive: #127a54;--negative: #b92e3e;--focus: rgba(242, 124, 31, .3)}*{box-sizing:border-box}body{margin:0;font-family:Manrope,sans-serif;color:var(--ink);background:radial-gradient(circle at 12% 10%,#ffe8bf 0%,transparent 30%),radial-gradient(circle at 88% 2%,#d2efe6 0%,transparent 30%),var(--bg);min-height:100vh}img{max-width:100%;height:auto}h1,h2,h3{margin:0;font-family:Space Grotesk,sans-serif}button,input,select{font:inherit}.splash-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.splash-card{width:min(760px,100%);background:linear-gradient(160deg,#fffffff2,#f5faf7f5);border:1px solid rgba(212,226,219,.95);border-radius:24px;padding:1.3rem;box-shadow:0 24px 44px #0f221c26;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;gap:.8rem}.splash-card p{margin:0;color:var(--muted)}.splash-card h1{font-size:clamp(1.4rem,3.4vw,2rem);line-height:1.15}.splash-actions{display:flex;gap:.6rem}.login-form{margin-top:.2rem;display:grid;gap:.55rem;background:linear-gradient(180deg,#fff,#f5faf7);border:1px solid #d4e1da;border-radius:14px;padding:.9rem}.error-text{color:var(--negative)}.app-shell{width:min(1180px,calc(100% - 2rem));margin:1.2rem auto 2.8rem;display:grid;gap:1rem}.brand-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.site-logo{width:min(420px,100%);height:auto}.top-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.mobile-quick-bar{display:none}.pill{background:#edf8f5;border:1px solid #bee2d7;color:#0f6b58;border-radius:999px;padding:.32rem .7rem;font-size:.85rem;font-weight:700}.cloud-status{margin:0;padding:.5rem .7rem;background:#eef6f2;border:1px solid #cfe0d8;border-radius:10px;color:#1f584a;font-size:.92rem}.hero-card{background:linear-gradient(125deg,#123c33,#0f6b58 55%,#d66b1f 130%);color:#fff;border-radius:24px;padding:1.2rem;display:grid;grid-template-columns:1.05fr 1fr;gap:1rem;align-items:center;box-shadow:0 20px 36px #0f221c33;animation:reveal .5s ease}.hero-card p{margin:.7rem 0 0;max-width:58ch;color:#ffffffeb}.hero-art{width:100%;border-radius:20px;border:1px solid rgba(255,255,255,.26)}.summary-grid{display:grid;gap:1rem;grid-template-columns:repeat(5,minmax(0,1fr));animation:reveal .65s ease}.summary-card,.panel{background:var(--surface);border:1px solid #d3dfd8;border-radius:18px;padding:1rem;box-shadow:0 10px 24px #10221d12}.summary-card label,.summary-card span{color:var(--muted);font-weight:700;font-size:.86rem}.summary-card strong{display:block;margin-top:.45rem;font-size:1.2rem}.summary-card small{color:var(--muted)}.period-create-row{display:grid;grid-template-columns:1fr auto;gap:.45rem;margin-top:.4rem}input,select{width:100%;border:1px solid #bfd0c7;border-radius:10px;padding:.6rem .7rem;background:#fbfdfc;min-height:44px}input:focus,select:focus{outline:2px solid var(--focus);border-color:var(--accent)}button{border:0;border-radius:999px;padding:.58rem 1rem;min-height:44px;color:#fff;font-weight:700;cursor:pointer;background:linear-gradient(120deg,var(--accent),#f79a49);transition:transform .15s ease,box-shadow .15s ease}button:hover{transform:translateY(-1px);box-shadow:0 7px 16px #e5722447}button:disabled{opacity:.6;cursor:not-allowed}.ghost-btn{background:var(--surface-soft);border:1px solid #c7d5ce;color:var(--ink);font-weight:600;padding:.38rem .7rem;border-radius:10px}.stat.positive strong{color:var(--positive)}.stat.negative strong{color:var(--negative)}.workspace-grid{display:grid;gap:1rem;grid-template-columns:1.1fr 1fr;animation:reveal .85s ease}.panel h2{margin-bottom:.8rem}.period-list{display:grid;gap:.5rem}.period-row{border:1px solid #cedbd4;border-radius:12px;padding:.65rem .75rem;background:#fff;color:inherit;display:flex;justify-content:space-between;align-items:center;text-align:left}.period-row h3{font-size:.98rem}.period-row p{margin:.2rem 0 0;font-size:.83rem;color:var(--muted)}.period-row.active{border-color:#0f6b58;background:linear-gradient(140deg,#edf8f5,#f5fbf8)}.period-meta{display:grid;justify-items:end;gap:.3rem}.period-meta span{font-size:.8rem;color:#8b2433}.with-top-gap{margin-top:1rem}.expense-form{display:grid;gap:.6rem}.receipt-box{margin-top:.55rem;border:1px solid #d3dfd8;border-radius:12px;background:linear-gradient(180deg,#fbfdfc,#f6faf8);padding:.7rem;display:grid;gap:.55rem}.receipt-controls{display:flex;gap:.45rem;flex-wrap:wrap}.file-input-hidden{display:none}.receipt-preview{width:min(360px,100%);border-radius:10px;border:1px solid #ccd8d1}.receipt-results{display:grid;gap:.35rem}.receipt-results p{margin:0;color:var(--muted);font-size:.9rem}.receipt-item-row{display:grid;grid-template-columns:auto 1.4fr .8fr 1fr;gap:.4rem;align-items:center}.inline-fields{display:grid;grid-template-columns:1fr .75fr;gap:.55rem}.expense-list{margin-top:1rem;display:grid;gap:.52rem;max-height:360px;overflow:auto;padding-right:.2rem}.expense-row{border:1px solid #d8e2db;border-radius:12px;padding:.68rem .75rem;display:flex;justify-content:space-between;align-items:center;gap:.8rem}.expense-row h3{font-size:.98rem}.expense-row p{margin:.2rem 0 0;color:var(--muted);font-size:.9rem}.expense-edit-grid{flex:1;display:grid;gap:.4rem}.expense-actions{display:grid;justify-items:end;gap:.42rem}.row-actions{display:flex;gap:.4rem}.chart-grid{display:grid;gap:1rem}.donut-wrap{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center;padding:.7rem;border:1px solid #d5e0db;border-radius:14px;background:#fbfdfc}.donut{width:185px;height:185px;border-radius:50%;display:grid;place-items:center}.donut-hole{width:68%;height:68%;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;border:1px solid #e0e7e2;padding:.3rem}.donut-hole span{font-size:.78rem;color:var(--muted)}.donut-hole strong{font-size:.95rem}.legend{display:grid;gap:.45rem}.legend-row{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;font-size:.9rem}.legend-dot{width:10px;height:10px;border-radius:50%}.trend-wrap{border:1px solid #d5e0db;border-radius:14px;padding:.8rem;background:#fbfdfc}.trend-wrap h3{font-size:1rem;margin-bottom:.35rem}.trend-wrap svg{width:100%;height:auto}.axis{stroke:#bfd0c7;stroke-width:1}.trend-line{fill:none;stroke:#0f6b58;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.trend-dot{fill:#f27c1f}.trend-labels{margin-top:.5rem;display:grid;gap:.35rem}.trend-labels div{display:flex;justify-content:space-between;gap:.5rem}.trend-labels span{color:var(--muted)}.targets{margin-top:1rem;border-top:1px solid #d3ddd6;padding-top:.82rem}.targets p{margin:.35rem 0;color:var(--muted)}@keyframes reveal{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1080px){.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid,.hero-card{grid-template-columns:1fr}.brand-head{flex-direction:column;align-items:flex-start}.top-actions{justify-content:flex-start}}@media (max-width: 680px){.app-shell{width:calc(100% - 1rem);margin:.8rem auto 1.5rem;padding-bottom:6.5rem}.summary-grid,.period-create-row,.inline-fields,.donut-wrap{grid-template-columns:1fr}.receipt-controls button{width:100%}.mobile-quick-bar{position:fixed;left:.5rem;right:.5rem;bottom:calc(env(safe-area-inset-bottom,0px) + .5rem);z-index:40;display:grid;grid-template-columns:1fr 1fr;gap:.45rem;background:#fffffff5;border:1px solid #d3dfd8;border-radius:14px;padding:.45rem;box-shadow:0 12px 26px #162a2329}.mobile-quick-bar button{min-height:48px;width:100%}.receipt-item-row{grid-template-columns:1fr}.top-actions{width:100%}.top-actions .pill{width:100%;text-align:center}.top-actions button{width:100%}.hero-card{padding:.9rem}.panel,.summary-card{padding:.8rem}.donut{margin:0 auto;width:160px;height:160px}.expense-row{flex-direction:column;align-items:stretch;gap:.5rem}.expense-actions{justify-items:start;width:100%}.row-actions{width:100%}.row-actions button{flex:1}.expense-edit-grid{width:100%}.trend-labels div{flex-direction:column;align-items:flex-start;gap:.1rem}}@media (max-width: 420px){.splash-card{padding:.9rem}.hero-card h1{font-size:1.4rem;line-height:1.2}.summary-card strong{font-size:1.05rem}}
