:root{--bg:#f3f0e8;--paper:#fffdf7;--ink:#26251f;--muted:#767267;--line:#ded9cd;--accent:#315c45;--danger:#a34135;--shadow:0 10px 35px #36302512;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100vh;padding-bottom:92px;background:radial-gradient(circle at 20% 0,#fffdf8 0,transparent 34%),var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:#fff;padding:10px 14px;color:var(--ink)}button:disabled{opacity:.55;cursor:wait}.primary{border-color:var(--accent);background:var(--accent);color:white;font-weight:650}.quiet{border:0;background:transparent;padding:6px;color:var(--muted)}header{height:64px;display:flex;align-items:center;gap:14px;max-width:760px;margin:auto;padding:0 20px}.brand{font-size:20px;font-weight:750;color:var(--ink);text-decoration:none;margin-right:auto}header span{font-size:14px;color:var(--muted)}main{max-width:720px;margin:auto;padding:12px 16px 30px}.hero{padding:30px 24px;background:var(--accent);color:#fff;border-radius:22px;box-shadow:var(--shadow);margin-bottom:16px}.hero p{margin:0 0 8px;opacity:.72}.hero strong{display:block;font-size:42px;letter-spacing:-1.5px;margin-bottom:12px}.hero div{opacity:.85}.card{background:var(--paper);border:1px solid #e4dfd3;border-radius:18px;padding:18px;margin:14px 0;box-shadow:0 3px 12px #3e392e08}.card h2{font-size:17px;margin:0 0 14px}.card-title{display:flex;align-items:center;justify-content:space-between}.card-title span{color:var(--muted)}.row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 0;border-top:1px solid var(--line)}.row:first-of-type{border-top:0}.hint,small{color:var(--muted);font-size:13px}.progress{height:8px;border-radius:99px;background:#e6e1d7;overflow:hidden}.progress i{display:block;height:100%;background:var(--accent)}nav{position:fixed;z-index:10;left:50%;bottom:16px;transform:translateX(-50%);width:min(calc(100% - 24px),680px);height:66px;border:1px solid #ddd7ca;background:#fffdf7ee;backdrop-filter:blur(18px);border-radius:22px;box-shadow:0 12px 40px #211d1530;display:grid;grid-template-columns:1fr 1fr 64px 1fr 1fr;align-items:center;padding:6px}nav a{text-align:center;text-decoration:none;color:var(--muted);font-size:13px;padding:14px 4px;border-radius:14px}nav a.on{color:var(--accent);font-weight:700;background:#e9eee9}.add{width:54px;height:54px;border:0;border-radius:18px;background:var(--accent);color:#fff;font-size:28px;margin:auto;padding:0}.draft-row{width:100%;border:0;border-top:1px solid var(--line);background:transparent;border-radius:0;display:flex;justify-content:space-between;padding:14px 0}.draft-row:first-child{border-top:0}.page-title{display:flex;align-items:center;justify-content:space-between;margin:8px 4px 18px}.page-title h1{font-size:30px;margin:0}.page-title input{max-width:220px}.tx-row{display:grid;grid-template-columns:1fr auto;gap:6px 18px;padding:15px 0;border-top:1px solid var(--line)}.tx-row:first-child{border-top:0}.tx-row div:first-child{display:flex;flex-direction:column;gap:4px}.tx-row>small{grid-column:1}.tx-row>strong{grid-column:2;grid-row:1}.tx-row .income{color:var(--accent)}.row-actions{grid-column:2;display:flex;gap:6px}.row-actions button{padding:5px 8px;font-size:12px}.danger-text{color:var(--danger)}.bar-row{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:10px;margin:12px 0;font-size:13px}.bar-row>div{height:7px;background:#e5e0d5;border-radius:10px;overflow:hidden}.bar-row i{display:block;height:100%;background:var(--accent)}.big-number{font-size:30px;font-weight:750}dialog{border:0;padding:0;background:transparent;width:min(620px,100%);max-height:92vh}dialog::backdrop{background:#211f1a99;backdrop-filter:blur(3px)}.sheet{position:relative;background:var(--paper);border-radius:24px;padding:24px;max-height:90vh;overflow:auto}.sheet h2{margin:0 0 18px}.close{position:absolute;right:18px;top:16px;border:0;background:transparent;font-size:24px;padding:4px}.segmented{display:flex;background:#ebe7de;border-radius:12px;padding:3px;margin-bottom:16px}.segmented button{flex:1;border:0;background:transparent;padding:9px}.segmented button.on{background:#fff;border-radius:9px;box-shadow:0 2px 8px #403a2e15;font-weight:650;color:var(--accent)}label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--muted);margin:13px 0}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:#fff;padding:12px;color:var(--ink)}textarea{resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions,.inline{display:flex;gap:10px;align-items:end}.actions button{flex:1}.inline input{flex:1}.danger{color:#fff;background:var(--danger);border-color:var(--danger)}fieldset{border:1px solid var(--line);border-radius:15px;margin:12px 0;padding:14px}legend{font-weight:700}.check{flex-direction:row;align-items:center}.check input{width:auto}.loading{text-align:center;color:var(--muted);padding:80px 0}.error{color:var(--danger)}#toast{position:fixed;z-index:30;left:50%;bottom:96px;transform:translate(-50%,20px);opacity:0;background:#24231f;color:white;padding:11px 17px;border-radius:12px;transition:.2s;pointer-events:none}#toast.show{transform:translate(-50%,0);opacity:1}.login-page{display:grid;place-items:center;padding:24px}.login-card{width:min(380px,100%);background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.login-card h1{text-align:center;margin:14px 0 4px}.login-card>p{text-align:center;color:var(--muted);margin:0 0 28px}.login-card button{width:100%;margin-top:8px}.brand-mark{width:58px;height:58px;margin:auto;display:grid;place-items:center;border-radius:18px;background:var(--accent);color:white;font-size:26px;font-weight:800}@media(max-width:520px){header{height:56px}.hero{padding:24px 20px}.hero strong{font-size:36px}.two{grid-template-columns:1fr}.page-title{align-items:flex-start;gap:12px}.page-title input{width:55%}.sheet{border-radius:24px 24px 0 0;padding:22px 18px}dialog{margin:auto 0 0;width:100%;max-width:none}.bar-row{grid-template-columns:68px 1fr auto}}
