:root{font-family:-apple-system,BlinkMacSystemFont,"Yu Gothic UI","Meiryo",sans-serif;color-scheme:light;--bg:#f6f3ed;--surface:#fffdf9;--text:#302b26;--muted:#655d54;--accent:#705239;--tint:#eee3d3;--line:#d9cec0;--on-accent:#fffdf9;--danger:#a02730;font-size:16px;background:var(--bg);color:var(--text)}
:root[data-theme=green]{--bg:#f0f4ef;--accent:#365c46;--tint:#dfeade;--line:#c9d6c8}
:root[data-theme=blue]{--bg:#f0f4f7;--accent:#355a78;--tint:#dfe9f1;--line:#c9d4dd}
:root[data-mode=dark]{color-scheme:dark;--bg:#202321;--surface:#2a2e2b;--text:#f7f2e9;--muted:#d1cbc1;--accent:#ead3ae;--tint:#3c4039;--line:#687066;--on-accent:#242820;--danger:#ffb5b9}
:root[data-mode=dark][data-theme=green]{--accent:#bee0c4;--tint:#32463b}
:root[data-mode=dark][data-theme=blue]{--accent:#b8d7f0;--tint:#33434f}
:root[data-size=large]{font-size:19px}:root[data-size=larger]{font-size:22px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:var(--text)}button{cursor:pointer;min-height:44px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:.6rem .85rem;line-height:1.4}button:hover{border-color:var(--accent);background:var(--tint)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}button.danger{color:var(--danger)}a{color:var(--accent)}h1,h2,h3,p{margin:0 0 1rem}h1{font-size:1.9rem;font-weight:700;letter-spacing:.06em}h2{font-size:1.15rem;line-height:1.6}h3{font-size:1rem}p{line-height:1.8}small,.hint{font-size:.85rem;color:var(--muted);line-height:1.7}.sidebar{position:fixed;width:236px;inset:0 auto 0 0;border-right:1px solid var(--line);padding:40px 24px;background:var(--surface);display:flex;flex-direction:column}.brand{font-size:1.4rem;display:grid;grid-template-columns:42px 1fr;text-decoration:none;color:var(--text);gap:0 10px;align-items:center;font-weight:bold}.brand img{width:42px;grid-row:span 2}.brand span{font-size:.7rem;font-weight:400;letter-spacing:.2em}.side-note{font-size:.85rem;color:var(--muted);margin:35px 0}.sidebar nav{display:grid;gap:12px}.sidebar nav button{background:transparent;border-color:transparent;text-align:left;display:flex;gap:16px;align-items:center;white-space:nowrap}.sidebar nav button[aria-current]{background:var(--tint);color:var(--accent);font-weight:bold}.sidebar nav span{font-size:1.3rem}.side-footer{margin-top:auto;font-size:.65rem;line-height:2;color:var(--muted);letter-spacing:.1em}main{margin-left:236px;max-width:1600px;padding:36px 42px 24px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.eyebrow{font-size:.65rem;letter-spacing:.2em;color:var(--muted);font-weight:700;margin-bottom:.5rem}.status{font-size:.8rem;color:var(--accent);padding:8px 12px;background:var(--tint);border-radius:20px}.prototype{font-size:.85rem;background:var(--tint);color:var(--text);border-radius:10px;padding:12px 16px;line-height:1.7;margin-bottom:24px}.month-control{display:flex;align-items:center;gap:10px;margin:24px 0}.month-control input{font-weight:700;background:transparent;border:none;width:11rem}.month-control label{margin:0}.month-control .subtle{margin-left:auto}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.stat{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:12px;min-width:0}.stat.featured{background:var(--tint);color:var(--text);border-color:transparent}.stat>span{font-size:1rem;font-weight:600}.stat strong{font-size:clamp(1.5rem,2.5vw,2.25rem);font-variant-numeric:tabular-nums;line-height:1.4;overflow-wrap:anywhere;letter-spacing:-.03em}.stat small{font-size:.8rem}.panel{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:24px;margin-bottom:24px;min-width:0}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-heading h2{margin:0}.section-heading>span{font-size:.8rem;color:var(--muted)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekday{text-align:center;padding:10px 0;font-size:.8rem;color:var(--muted)}.date{border:1px solid transparent;border-radius:10px;background:transparent;min-height:78px;padding:8px 1px;display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0}.date small{font-size:.65rem;overflow-wrap:anywhere;width:100%;text-align:center;line-height:1.3;color:var(--text)}.date.today>span{font-weight:800;text-decoration:underline;text-underline-offset:5px}.date.selected{background:var(--accent);color:var(--on-accent)}.date.selected small{color:var(--on-accent)}.empty{text-align:center;padding:50px 10px;color:var(--muted)}.empty>span{font-size:3rem;color:var(--accent);display:block;margin-bottom:16px}.empty p{font-size:.85rem}.record{border:0;border-bottom:1px solid var(--line);border-radius:0;width:100%;padding:16px 0;display:flex;align-items:center;gap:10px;background:transparent;text-align:left;min-width:0}.record strong{margin-left:auto;font-size:1rem;white-space:nowrap}.record-detail{display:grid;gap:5px;min-width:0}.record-detail b,.record-detail small{overflow-wrap:anywhere}.category-icon{border-radius:12px;background:var(--tint);padding:8px;font-size:1.2rem}.record-detail small{font-size:.7rem}.entry-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.9fr);gap:24px}.receipt-panel{align-self:start}.receipt-panel p{font-size:.9rem}form{display:grid;gap:16px}label{display:grid;gap:8px;font-size:.9rem;font-weight:600;min-width:0}input,select,textarea{width:100%;max-width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);min-height:46px}textarea{resize:vertical;line-height:1.7}.field-row{display:flex;align-items:end;gap:14px}.field-row>label{flex:1;min-width:0}.checks{display:grid;gap:12px}.checks label,.check{display:flex;align-items:center;gap:10px}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--accent);flex-shrink:0}.actions,.favorites{display:flex;gap:10px;flex-wrap:wrap}.favorites:empty{display:none}.photo-picker{border:1px dashed var(--accent);padding:15px;border-radius:10px;color:var(--accent);margin:14px 0;cursor:pointer}.photo-picker input{border:0;padding:5px;font-size:.8rem}.photo-list{display:flex;flex-wrap:wrap;gap:12px}.photo-list>div{display:grid;gap:6px;width:120px}.photo-list img{width:120px;height:140px;object-fit:contain;background:var(--tint);border-radius:8px}.photo-list button{font-size:.75rem}.date-note{font-size:.85rem;color:var(--danger)}.date-note:empty{display:none}.two-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.line{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:14px 0;overflow-wrap:anywhere}.line>span{min-width:0}.line>div{display:flex;flex-shrink:0;gap:8px}.line b{white-space:nowrap}.search{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.8rem}th,td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th:first-child{text-align:left}caption{text-align:left;font-weight:700;margin:20px 0}.bars{display:flex;align-items:end;gap:5px;min-height:170px;overflow-x:auto}.bars>div{display:flex;flex-direction:column;align-items:center;min-width:25px;flex:1}.bars i{background:var(--accent);width:65%;border-radius:4px 4px 0 0}.bars span{font-size:.55rem;writing-mode:vertical-rl;margin-bottom:5px}.donut{width:190px;height:190px;border-radius:50%;margin:24px auto;display:grid;place-items:center}.donut span{width:130px;height:130px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-weight:bold;font-size:.85rem}.fund-amount{font-size:2rem;display:block;margin-bottom:16px;overflow-wrap:anywhere}details{margin-top:20px}summary{cursor:pointer;color:var(--accent);padding:10px 0}footer{font-size:.75rem;color:var(--muted);line-height:1.8;padding:16px 0 30px}#notice:empty{display:none}#notice{position:fixed;bottom:24px;right:24px;left:260px;max-width:800px;background:var(--accent);color:var(--on-accent);padding:14px 20px;border-radius:12px;z-index:10;box-shadow:0 4px 20px #0002;font-size:.9rem;line-height:1.7;pointer-events:none}#notice.error{background:var(--surface);color:var(--danger);border:2px solid var(--danger)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
.stats.long-amount{grid-template-columns:1fr}.image-dialog{max-width:95vw;max-height:95vh;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:20px;overflow:auto}.image-dialog::backdrop{background:#0009}.image-dialog img{display:block;max-width:100%;cursor:zoom-in}.image-dialog img.original-size{max-width:none;cursor:zoom-out}.image-dialog button{position:sticky;top:0}.image-dialog p{font-size:.85rem;margin-top:12px}#bulk-choices{display:grid;gap:12px;margin-bottom:16px}button:disabled{cursor:not-allowed;opacity:.65}
@media(min-width:1100px){:root[data-size=larger] .stats{grid-template-columns:1fr}:root[data-size=larger] .stat{gap:8px}}
@media(max-width:1180px){main{padding:28px 24px}.calendar-layout,.entry-layout{grid-template-columns:1fr}.sidebar{width:210px}main{margin-left:210px}.date{min-height:85px}.stats{gap:10px}.stat{padding:16px}#notice{left:234px}}
@media(max-width:760px){.sidebar{position:fixed;inset:auto 0 0;width:auto;padding:0 4px max(4px,env(safe-area-inset-bottom));height:auto;z-index:20;border-top:1px solid var(--line);border-right:0}.brand,.side-note,.side-footer{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}.sidebar nav button{display:flex;flex-direction:column;gap:1px;padding:8px 1px;font-size:.65rem;border-radius:0;min-height:60px;white-space:normal}.sidebar nav span{font-size:1.25rem}main{margin:0;padding:24px 14px 100px}h1{font-size:1.55rem}.status{font-size:.65rem;padding:6px 9px}.prototype{font-size:.75rem;padding:10px 12px;margin-bottom:18px}.eyebrow{font-size:.6rem}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat.featured{grid-column:1/-1}.stat{padding:16px;gap:8px}.stat strong{font-size:1.5rem}.stat.featured strong{font-size:2.2rem}.stat>span{font-size:.9rem}.stat small{font-size:.7rem}.panel{padding:16px}.calendar-layout,.entry-layout,.two-columns{display:block}.date{min-height:68px}.date small{font-size:.6rem}.month-control{gap:5px}.month-control input{width:10rem;font-size:1rem}.section-heading{flex-wrap:wrap}.record strong{font-size:.95rem}.category-icon{font-size:1rem;padding:5px}.field-row{flex-wrap:wrap}.field-row>label{flex-basis:130px}#notice{bottom:82px;left:12px;right:12px;font-size:.8rem;padding:10px 14px}.line{flex-wrap:wrap}.record{flex-wrap:wrap}.record-detail{flex:1;min-width:100px}.record>strong{overflow-wrap:anywhere;white-space:normal}.search{grid-template-columns:1fr 1fr}.intro{font-size:.9rem}}
@media(max-width:430px){:root[data-size=large] .stats,:root[data-size=larger] .stats{grid-template-columns:1fr}:root[data-size=larger] .search{grid-template-columns:1fr}:root[data-size=larger] .month-control{flex-wrap:wrap}.record strong{font-size:.9rem}.calendar{gap:1px}.date{padding:8px 0}.month-control .subtle{margin-left:0}}
