:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#14221d;background:#f3f6f4;font-synthesis:none;--green: #166a4b;--green-dark: #102f24;--green-soft: #dff1e8;--ink: #14221d;--muted: #6f7d77;--line: #dce5e0;--panel: #ffffff;--danger: #b42318;--warning: #d97706}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#e9f3ee 0,#f3f6f4 35% 100%)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{max-width:560px;margin:0 auto;min-height:100vh;padding-bottom:92px}.topbar{height:72px;display:flex;align-items:center;gap:12px;padding:12px 18px}.brand-mark{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:var(--green-dark);color:#fff;font-weight:900;font-size:20px;box-shadow:0 8px 20px #102f2424}.topbar div:last-child{display:flex;flex-direction:column}.topbar strong{font-size:15px}.topbar span{font-size:12px;color:var(--muted);margin-top:2px}.page-section{padding:8px 16px 24px}h1,h2,p{margin-top:0}h1{font-size:29px;letter-spacing:-.9px;margin-bottom:0}h2{font-size:20px;margin-bottom:0;letter-spacing:-.4px}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:800;color:var(--green);margin-bottom:5px}.hero-row,.section-heading,.list-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 2px 18px}.round-add{flex:0 0 auto;width:50px;height:50px;border:0;border-radius:17px;background:var(--green-dark);color:#fff;font-size:29px;line-height:1;box-shadow:0 10px 24px #102f2433}.budget-card{background:var(--panel);border:1px solid #e4ebe7;border-radius:24px;padding:18px;margin-bottom:12px;box-shadow:0 12px 28px #14221d0e}.card-title-row,.card-foot{display:flex;justify-content:space-between;gap:10px;align-items:center}.date-range{font-size:11px;color:var(--muted)}.available{font-size:34px;font-weight:850;letter-spacing:-1.3px;color:var(--green-dark);margin-top:7px}.available.negative{color:var(--danger)}.available-label{font-size:13px;color:var(--muted);margin-bottom:14px}.progress-track{height:8px;background:#e8eeeb;border-radius:999px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;transition:width .3s ease}.progress-fill.ok{background:#2b8a62}.progress-fill.warning{background:var(--warning)}.progress-fill.danger{background:var(--danger)}.card-foot{margin-top:9px;font-size:12px;color:var(--muted)}.big-expense-btn{width:100%;border:0;border-radius:22px;background:var(--green-dark);color:#fff;display:flex;align-items:center;gap:14px;padding:17px 18px;margin:16px 0 26px;text-align:left;box-shadow:0 12px 26px #102f2430}.big-expense-btn>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#ffffff18;font-size:26px}.big-expense-btn div{display:flex;flex-direction:column}.big-expense-btn strong{font-size:16px}.big-expense-btn small{opacity:.67;margin-top:2px}.list-heading button{border:0;background:transparent;color:var(--green);font-weight:750}.expense-list{display:flex;flex-direction:column;gap:8px}.expense-row{display:grid;grid-template-columns:44px 1fr auto 34px;align-items:center;gap:10px;background:#fff;border:1px solid #e5ece8;border-radius:17px;padding:10px 8px 10px 10px}.expense-row:has(.trash-btn){grid-template-columns:44px 1fr auto 32px 32px}.expense-date{width:42px;height:45px;background:#eff5f1;border-radius:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.expense-date strong{font-size:17px}.expense-date span{text-transform:uppercase;font-size:9px;color:var(--muted);margin-top:4px}.expense-info{min-width:0;display:flex;flex-direction:column}.expense-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}.expense-info span{color:var(--muted);font-size:11px;margin-top:3px;text-transform:capitalize}.expense-value{font-weight:800;font-size:14px;white-space:nowrap}.dots-btn,.trash-btn,.icon-btn{border:0;background:transparent;color:var(--muted);border-radius:10px;height:34px;min-width:34px}.trash-btn{color:var(--danger)}.empty-state{border:1px dashed #cbd9d2;border-radius:20px;padding:28px;text-align:center;display:flex;flex-direction:column;align-items:center;color:var(--muted)}.empty-state>div{width:42px;height:42px;border-radius:14px;background:var(--green-soft);display:grid;place-items:center;color:var(--green);margin-bottom:10px;font-weight:900}.empty-state strong{color:var(--ink)}.empty-state span{font-size:12px;margin-top:4px}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(560px,100%);z-index:20;display:grid;grid-template-columns:repeat(3,1fr);padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#ffffffed;border-top:1px solid #dfe8e3;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav button{border:0;background:transparent;color:#7b8882;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px;border-radius:14px}.bottom-nav button.active{color:var(--green);background:#edf5f1}.bottom-nav span{font-size:20px;line-height:1}.bottom-nav small{font-size:10px;font-weight:750}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#07140f80;display:flex;align-items:flex-end;justify-content:center;padding-top:30px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sheet{width:min(560px,100%);background:#fff;border-radius:28px 28px 0 0;padding:10px 18px calc(24px + env(safe-area-inset-bottom));max-height:95vh;overflow:auto;animation:up .22s ease-out}@keyframes up{0%{transform:translateY(30px);opacity:.7}}.sheet-handle{width:44px;height:5px;border-radius:999px;background:#d9e1dd;margin:0 auto 12px}.sheet-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.sheet h2{font-size:25px}.form-stack{display:flex;flex-direction:column;gap:15px}.form-stack label{display:flex;flex-direction:column;gap:7px}.form-stack label>span{font-size:12px;font-weight:800;color:#415149}.form-stack em{font-style:normal;font-weight:500;color:var(--muted)}input,select{width:100%;border:1px solid #d8e2dc;background:#fbfdfc;border-radius:14px;min-height:48px;padding:0 13px;outline:none;color:var(--ink)}input:focus,select:focus{border-color:#57a786;box-shadow:0 0 0 3px #57a78618}.money-input-wrap{display:flex;align-items:center;border:1px solid #d8e2dc;border-radius:14px;background:#fbfdfc;padding-left:13px}.money-input-wrap:focus-within{border-color:#57a786;box-shadow:0 0 0 3px #57a78618}.money-input-wrap b{color:var(--green);font-size:14px}.money-input-wrap input{border:0;box-shadow:none!important;font-size:20px;font-weight:800}.primary-btn,.secondary-btn{border:0;min-height:50px;border-radius:15px;font-weight:800;padding:0 18px}.primary-btn{background:var(--green-dark);color:#fff}.primary-btn:disabled{opacity:.55}.secondary-btn{background:#e5ece8;color:var(--green-dark);margin-top:12px}.error-box,.success-box{padding:11px 13px;border-radius:13px;font-size:12px}.error-box{background:#fef0ee;color:#8f1f16;border:1px solid #fac7c1}.success-box{background:#e8f6ef;color:#176341;border:1px solid #bde5d1}.panel,.setup-callout,.history-summary{background:#fff;border:1px solid #e2eae5;border-radius:22px;padding:18px;box-shadow:0 10px 28px #14221d0c}.muted{color:var(--muted);font-size:13px;line-height:1.55}.two-cols{display:grid;grid-template-columns:1.35fr .8fr;gap:10px}.setup-callout p{color:var(--muted);font-size:13px;line-height:1.45}.setup-callout .primary-btn{width:100%}.history-summary{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.history-summary span{color:var(--muted);font-size:12px}.history-summary strong{font-size:22px}.loading{min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:12px}.spinner{width:30px;height:30px;border:3px solid #dbe7e1;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:700px){.app-shell{margin-top:18px;min-height:calc(100vh - 18px)}.bottom-nav{bottom:12px;border:1px solid #dfe8e3;border-radius:20px;width:520px;box-shadow:0 12px 34px #102f2420}.sheet{border-radius:28px;margin-bottom:26px}.modal-backdrop{align-items:center}}
