:root{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;color:#1c2928;background:#f7f9f8;font-synthesis:none;-webkit-tap-highlight-color:transparent;--green:#196f61;--dark:#18332f;--ink:#1c2928;--muted:#85928f;--line:#e7eeeb;--bg:#f7f9f8;--pale:#eef5f1;--radius:19px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-size:14px}body{overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}#app{max-width:760px;margin:auto;min-height:100dvh;padding:0 18px 104px}button{border:0}a{color:var(--green)}.topbar{height:70px;display:flex;justify-content:space-between;align-items:center;padding-top:env(safe-area-inset-top)}.brand{display:flex;align-items:center;gap:9px}.brand-icon{background:var(--green);color:white;display:grid;place-items:center;border-radius:12px;width:36px;height:36px;font-size:26px;line-height:1}.brand-name{font-size:17px;font-weight:800;letter-spacing:.08em}.brand-caption{font-size:9px;color:#96a29e;font-weight:600;letter-spacing:.09em}.icon-button{border-radius:12px;height:38px;width:38px;font-size:20px;color:#52615d;background:white;border:1px solid var(--line)}
.page-heading{display:flex;align-items:center;justify-content:space-between;margin:14px 0 17px}.page-heading h1{font-size:23px;margin:0;letter-spacing:-.035em}.page-heading .sub{color:var(--muted);font-size:12px;margin-top:5px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:22px 0 12px}.section-head h2{font-size:15px;margin:0;font-weight:800}.section-head small{color:var(--muted)}.link-btn{background:none;color:var(--green);font-weight:700;font-size:12px;padding:5px}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:0 3px 16px rgba(38,74,59,.02)}.hero{padding:20px;background:linear-gradient(115deg,#1b7262,#1d5f55);border:0;color:white;position:relative;overflow:hidden}.hero:after{position:absolute;content:'';width:240px;height:240px;right:-100px;top:-120px;border-radius:50%;border:45px solid rgba(255,255,255,.05);pointer-events:none}.hero .muted{font-size:12px;color:#d3e8e1}.hero-number{font-size:38px;font-weight:800;margin:5px 0 20px;letter-spacing:-.055em;font-variant-numeric:tabular-nums}.hero-foot{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid rgba(255,255,255,.18);padding-top:15px}.hero-foot strong{font-size:18px;display:block;margin-top:5px}.hero-foot small{font-size:11px;color:#d3e8e1}.month-ctrl{display:flex;gap:12px;align-items:center}.month-ctrl button{background:white;color:var(--green);border:1px solid var(--line);height:33px;width:33px;border-radius:11px;font-size:18px}.month-ctrl strong{min-width:90px;text-align:center;font-size:13px}.mini-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.stat .label{font-size:11px;color:var(--muted)}.stat .num{font-size:20px;font-weight:800;margin-top:7px;letter-spacing:-.025em}.stat .hint{font-size:11px;color:var(--muted);margin-top:4px}.list{display:flex;flex-direction:column}.item{background:transparent;display:flex;align-items:center;gap:12px;width:100%;padding:13px 0;text-align:left;border-bottom:1px solid #edf2ef;color:inherit}.item:last-child{border-bottom:0}.item-icon{height:42px;width:42px;flex:0 0 42px;display:flex;justify-content:center;align-items:center;border-radius:14px;background:#edf5f0;color:var(--green);font-size:18px;font-weight:700}.item-main{min-width:0;flex:1}.item-title{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-meta{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;margin-top:5px}.item-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-money{text-align:right;flex:0 0 auto;font-weight:800;font-size:14px;white-space:nowrap}.item-money small{display:block;font-size:10px;font-weight:600;color:var(--muted);margin-top:5px}.empty{padding:33px 12px;text-align:center;color:#8f9b96;font-size:13px;line-height:2}.empty .art{font-size:36px;margin-bottom:10px}.category-bar{display:flex;align-items:center;gap:14px}.donut{width:136px;height:136px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:conic-gradient(#d9e6e0 0deg 360deg)}.donut-center{width:90px;height:90px;background:white;border-radius:50%;display:grid;place-items:center;text-align:center;line-height:1.5}.donut-center small{font-size:10px;color:var(--muted)}.donut-center b{font-size:14px}.cat-list{flex:1;min-width:0}.cat-row{display:flex;justify-content:space-between;align-items:center;gap:7px;margin:8px 0;font-size:12px}.cat-row strong{font-size:12px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:middle}.pill{display:inline-block;border-radius:10px;padding:4px 8px;font-weight:700;font-size:10px;white-space:nowrap;background:#edf4f0;color:#397467}.pill.warn{background:#fff3e6;color:#b57422}.pill.grey{background:#f1f3f2;color:#717e79}.pill.blue{background:#ecf2ff;color:#4c70a2}.hint-box{background:#f0f7f4;border:1px solid #deede5;padding:12px 14px;border-radius:14px;color:#4c7166;font-size:12px;line-height:1.7}.ghost{border:1px solid #dae5df;background:white;border-radius:11px;padding:9px 13px;color:var(--green);font-size:12px;font-weight:700}.primary{display:flex;align-items:center;justify-content:center;gap:7px;background:var(--green);color:white;border-radius:13px;padding:13px 16px;font-weight:750;width:100%}.secondary{display:flex;align-items:center;justify-content:center;background:#eef5f1;color:var(--green);border-radius:12px;padding:12px 15px;font-weight:700}.danger{background:#fff0f0;color:#af4e4e}.fab{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom));right:max(24px,calc((100vw - 760px)/2 + 28px));border-radius:18px;width:55px;height:55px;background:var(--green);box-shadow:0 9px 25px #0a50364d;color:white;font-size:30px;display:grid;place-items:center;z-index:4}.bottom-nav{position:fixed;z-index:5;bottom:0;left:0;right:0;height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);display:flex;justify-content:center}.nav-item{width:min(25%,190px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;color:#98a39e;font-size:10px;font-weight:700}.nav-icon{font-size:22px;height:25px;line-height:25px}.nav-item.active{color:var(--green)}.filter-row{display:flex;gap:7px;overflow:auto;padding:0 0 10px;scrollbar-width:none}.filter{white-space:nowrap;padding:9px 13px;border-radius:999px;background:white;border:1px solid var(--line);font-size:12px;color:#71817c;font-weight:600}.filter.active{background:var(--green);border-color:var(--green);color:#fff}.search{border:1px solid var(--line);border-radius:12px;background:white;padding:11px 12px;width:100%;outline:none;margin-bottom:12px}.search:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#79b4a0}.date-group{font-size:12px;font-weight:800;color:#6e7c77;margin:19px 0 5px}.fixed-row{display:flex;align-items:center;gap:12px;padding:15px 2px;border-bottom:1px solid var(--line)}.fixed-row:last-child{border-bottom:0}.fixed-text{flex:1;min-width:0}.fixed-text strong{font-size:14px}.fixed-text div{font-size:11px;color:var(--muted);margin-top:5px}.fixed-amount{text-align:right;font-weight:800;font-size:14px}.fixed-amount small{display:block;font-weight:600;color:var(--muted);font-size:11px;margin-top:5px}.setting-entry{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:10px;padding:14px 0}.setting-entry:last-child{border-bottom:0}.setting-entry strong{font-size:13px}.setting-entry small{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}.setting-entry button{flex-shrink:0}.muted{color:var(--muted)}.note{font-size:12px;line-height:1.7;color:#7c8a84}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.right{text-align:right}.more{font-size:22px;color:#9aaba3}.overlay{position:fixed;inset:0;z-index:10;background:#172f2982;display:flex;align-items:flex-end;justify-content:center}.modal{background:#fff;border-radius:23px 23px 0 0;max-width:620px;width:100%;max-height:92dvh;overflow:auto;padding:18px 20px calc(23px + env(safe-area-inset-bottom));box-shadow:0 10px 50px #071e243d}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-head h2{font-size:18px;margin:0}.close{font-size:22px;background:#f3f6f4;width:34px;height:34px;border-radius:12px;color:#5e6b66}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-weight:750;font-size:12px;color:#435750}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:11px;padding:12px;background:white;color:var(--ink);width:100%;min-height:43px;outline:none;font-size:15px}.field textarea{min-height:105px;resize:vertical;line-height:1.65}.field input[type=checkbox]{height:18px;width:18px;min-height:18px}.field small{font-size:11px;line-height:1.5;color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.seg{display:flex;padding:4px;background:#f2f5f3;border-radius:13px;gap:4px}.seg button{flex:1;padding:10px;border-radius:9px;color:#74837c;background:transparent;font-weight:700;font-size:12px}.seg button.active{background:white;box-shadow:0 1px 5px #1e45341e;color:var(--green)}.inline-actions{display:flex;gap:9px}.inline-actions>*{flex:1}.preview{background:#f4f9f6;border-radius:14px;padding:14px;margin:13px 0}.preview small{font-size:11px;color:#7d958a}.preview strong{font-size:24px;display:block;margin-top:4px;color:var(--green)}.toast-open{opacity:1!important;transform:translateY(0)!important}#toast{position:fixed;z-index:20;bottom:calc(82px + env(safe-area-inset-bottom));left:50%;width:max-content;max-width:88vw;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#1f3430;color:white;padding:12px 17px;border-radius:13px;box-shadow:0 5px 25px #2338304f;font-size:12px;transition:opacity .2s,transform .2s}.checkline{display:flex;gap:9px;align-items:center;color:#54665d;font-size:12px;margin:10px 0}.checkline input{accent-color:var(--green)}.badge-col{display:flex;flex-wrap:wrap;gap:7px}.badge-col button{background:#f0f5f2;color:#4d7568;padding:8px 10px;border-radius:10px;font-size:11px}.badge-col button.active{background:var(--green);color:white}.small-table{width:100%;border-collapse:collapse;font-size:12px}.small-table th,.small-table td{padding:9px 3px;border-bottom:1px solid var(--line);text-align:left}.small-table td:last-child{text-align:right}.divider{height:1px;background:var(--line);margin:14px 0}.help{background:#fff8ec;color:#986b28;border-radius:12px;padding:12px 14px;font-size:12px;line-height:1.7}.status{display:inline-block;padding:5px 8px;border-radius:10px;background:#eaf4ee;color:var(--green);font-size:11px;font-weight:700}.status.disconnected{color:#9e7a2d;background:#fff3dc}.loading{opacity:.65;pointer-events:none}@media(min-width:600px){#app{padding-left:30px;padding-right:30px}.modal{border-radius:23px;align-self:center;max-height:85dvh}.fab{bottom:92px}.hero{padding:25px}.hero-number{font-size:46px}.topbar{height:80px}.category-bar{gap:26px}}
