:root{--bg:#f4f1ea;--card:#fffdf8;--text:#1e2632;--muted:#7b7972;--line:#e7e1d6;--ink:#232830;--soft:#eee9df;--soft2:#f8f5ef;--green:#35624c;--greenSoft:#e8f2eb;--amber:#8a6429;--amberSoft:#f6eedc;--red:#934a42;--redSoft:#f7e8e5;--blue:#456175;--blueSoft:#e9f0f4;--safe-bottom:max(12px,env(safe-area-inset-bottom))}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit}button{cursor:pointer}.app{max-width:620px;margin:0 auto;min-height:100vh;padding-bottom:92px}
.topbar{position:sticky;top:0;z-index:15;background:rgba(244,241,234,.92);backdrop-filter:blur(16px);padding:calc(12px + env(safe-area-inset-top)) 16px 10px;border-bottom:1px solid var(--line)}
.brand{display:flex;justify-content:space-between;align-items:center}.brand-left{display:flex;align-items:baseline;gap:7px}.brand h1{font-size:22px;margin:0}.ver{font-size:14px;color:var(--muted);font-weight:750}.top-actions{display:flex;align-items:center;gap:8px}.month{font-size:12px;color:var(--muted)}.iconbtn{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--card);font-size:17px}
.page{display:none;padding:16px}.page.active{display:block}.hero{background:linear-gradient(145deg,#292d34,#171a20);color:white;border-radius:24px;padding:22px}.hero .eyebrow{font-size:12px;opacity:.7}.hero .money{font-size:39px;font-weight:800;margin-top:5px}.hero .hint{font-size:12px;opacity:.72;line-height:1.55;margin-top:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:11px}.no-top{margin-top:0!important}.top-gap{margin-top:12px}.stat,.card,.wish,.decision,.review,.report-block{background:var(--card);border:1px solid var(--line);border-radius:18px}.stat{padding:15px}.stat b{display:block;font-size:22px;margin:4px 0}.label{font-size:11px;color:var(--muted)}.card{padding:17px;margin-top:12px}.card h2,.report-block h2{font-size:16px;margin:0 0 12px}.quote{font-size:14px;line-height:1.75}
.primary,.secondary,.ghost,.success,.danger{border:none;border-radius:13px;padding:11px 14px;font-weight:650}.primary{background:var(--ink);color:white}.secondary{background:var(--soft);color:var(--text)}.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.success{background:var(--greenSoft);color:var(--green)}.danger{background:var(--redSoft);color:var(--red)}.wide{width:100%;padding:14px;margin-top:11px;border-radius:16px}.wide.compact{padding:10px}
.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.home-actions button{padding:14px 9px;border-radius:17px}.section-title{display:flex;justify-content:space-between;align-items:end;margin:7px 2px 10px}.section-title h2{font-size:19px;margin:0}.section-title span{font-size:11px;color:var(--muted)}
.filter{display:flex;gap:7px;overflow:auto;padding-bottom:9px}.filter button{white-space:nowrap;border:none;background:var(--soft);padding:8px 11px;border-radius:99px;color:var(--muted);font-size:12px}.filter button.active{background:var(--ink);color:white}
.wish,.decision,.review{padding:15px;margin-bottom:10px}.wish-layout{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;align-items:start}.wish-thumb{width:82px;height:82px;border-radius:14px;object-fit:cover;background:var(--soft);border:1px solid var(--line);cursor:zoom-in}.wish-thumb.placeholder{display:grid;place-items:center;text-align:center;color:var(--muted);font-size:10px;padding:8px;cursor:default}.photo-hint{text-align:center;color:var(--muted);font-size:9px;margin-top:4px}
.wish-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.wish-title{font-size:15px;font-weight:720}.wish-price{font-weight:780;white-space:nowrap}.meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.pill{font-size:10px;border-radius:99px;padding:5px 8px;background:var(--soft);color:#65625c}.pill.green{background:var(--greenSoft);color:var(--green)}.pill.amber{background:var(--amberSoft);color:var(--amber)}.pill.red{background:var(--redSoft);color:var(--red)}.pill.blue{background:var(--blueSoft);color:var(--blue)}
.note{font-size:11px;color:var(--muted);line-height:1.55;margin-top:8px}.costbox{margin-top:10px;background:var(--soft2);border-radius:13px;padding:10px 11px;font-size:11px;color:#64615b;line-height:1.65}.actions{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap}.actions button{flex:1;min-width:88px;padding:9px 7px;font-size:11px}.menu-btn{border:none;background:transparent;color:var(--muted);font-size:20px}.empty{text-align:center;color:var(--muted);padding:34px 16px;font-size:13px}
.kpirow{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.kpi{background:var(--soft2);border-radius:14px;padding:12px}.kpi b{display:block;font-size:19px;margin-top:4px}.report-block{padding:16px;margin-top:11px}.insightbar{margin:10px 0}.insightbar .top{display:flex;justify-content:space-between;font-size:11px}.bar{height:8px;background:var(--soft);border-radius:99px;margin-top:5px;overflow:hidden}.bar i{display:block;height:100%;background:var(--ink)}.funnel{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.funnel-step{background:var(--soft2);border-radius:14px;padding:12px 8px;text-align:center}.funnel-step b{display:block;font-size:21px}.signal-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.rule{background:var(--soft2);border-radius:13px;padding:11px 12px;font-size:12px;line-height:1.6;margin-top:8px}
label{display:block;font-size:11px;color:var(--muted);margin:11px 0 6px}input,select,textarea{width:100%;border:1px solid var(--line);background:white;color:var(--text);border-radius:12px;padding:12px;outline:none}textarea{min-height:76px}.two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.range-note{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:4px}.helper{font-size:10px;color:var(--muted);line-height:1.6;margin-top:7px}.alert{padding:10px 11px;border-radius:12px;background:var(--amberSoft);color:var(--amber);font-size:11px;line-height:1.55;margin-top:10px}.switchrow{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;font-size:12px}.switchrow input{width:20px;height:20px}
.bottom{position:fixed;left:50%;transform:translateX(-50%);bottom:0;z-index:20;width:min(620px,100%);display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,253,248,.96);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:8px 6px var(--safe-bottom)}.navbtn{border:none;background:transparent;color:var(--muted);font-size:10px}.navbtn b{display:block;font-size:18px}.navbtn.active{color:var(--ink);font-weight:720}
.modal{display:none;position:fixed;z-index:35;inset:0;background:rgba(22,22,22,.42);padding:13px;align-items:flex-end;justify-content:center}.modal.open{display:flex}.sheet{width:min(620px,100%);max-height:92vh;overflow:auto;background:var(--bg);border-radius:26px 26px 18px 18px;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head h2{font-size:19px;margin:0}.close{width:34px;height:34px;border-radius:50%;border:none;background:var(--soft);font-size:18px}.sheet-menu button{display:block;width:100%;border:none;background:var(--card);padding:14px;text-align:left;border-bottom:1px solid var(--line)}.redtxt{color:var(--red)!important}.stars{display:flex;gap:6px}.stars button{border:none;background:var(--soft);width:40px;height:40px;border-radius:11px}.stars button.on{background:var(--ink);color:white}.checkrow{display:flex;align-items:center;gap:8px;font-size:12px}.checkrow input{width:auto}
.photo-picker{display:grid;grid-template-columns:104px minmax(0,1fr);gap:11px}.photo-preview{width:104px;height:104px;border-radius:15px;object-fit:cover;border:1px solid var(--line);cursor:zoom-in}.photo-placeholder{width:104px;height:104px;border-radius:15px;border:1px dashed var(--line);display:grid;place-items:center;text-align:center;color:var(--muted);font-size:10px}.fold{margin-top:12px;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden}.fold summary{padding:13px 14px;font-size:12px;font-weight:720;cursor:pointer}.fold-body{padding:0 14px 14px}.hidden{display:none!important}
.lightbox{display:none;position:fixed;inset:0;z-index:80;background:rgba(8,8,8,.94);align-items:center;justify-content:center;padding:18px}.lightbox.open{display:flex}.lightbox img{max-width:100%;max-height:84vh;object-fit:contain}.lb-close{position:absolute;top:calc(16px + env(safe-area-inset-top));right:18px;width:40px;height:40px;border:none;border-radius:50%;background:rgba(255,255,255,.14);color:white;font-size:24px}.lb-tip{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom));color:rgba(255,255,255,.68);font-size:11px}.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(12px);background:var(--ink);color:white;padding:10px 14px;border-radius:99px;font-size:11px;opacity:0;transition:.2s;z-index:90}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:380px){.two{grid-template-columns:1fr}.funnel{grid-template-columns:repeat(2,1fr)}.wish-layout{grid-template-columns:70px minmax(0,1fr)}.wish-thumb{width:70px;height:70px}.photo-picker{grid-template-columns:90px minmax(0,1fr)}.photo-preview,.photo-placeholder{width:90px;height:90px}}