:root{font-family:system-ui,sans-serif;color:#17382b;background:#f2f5f3;font-size:16px}*{box-sizing:border-box}body{margin:0}header{position:sticky;top:0;z-index:2;background:#103e2c;color:white;padding:1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}header a{color:white;font-weight:800;text-decoration:none}header span{flex:1}main{max-width:1100px;margin:auto;padding:1rem}h1{font-size:1.5rem}h2{font-size:1.2rem}p,footer{line-height:1.8}section,.record,details{background:white;border:1px solid #ced9d2;border-radius:12px;padding:1rem;margin:1rem 0}.title{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}nav{display:flex;gap:.5rem;flex-wrap:wrap}button,summary{cursor:pointer}button{font:inherit;color:white;background:#155739;border:0;border-radius:8px;padding:.7rem 1rem;min-height:44px}button:disabled{opacity:.5;cursor:wait}nav button{background:#dcebe2;color:#103e2c}nav button[aria-pressed=true]{background:#155739;color:white}label{display:grid;gap:.4rem;margin:.7rem 0}input,select,textarea{font:inherit;width:100%;padding:.7rem;border:1px solid #a3b6aa;border-radius:6px;min-width:0}input[type=checkbox]{width:auto;justify-self:start}textarea{min-height:100px}form{max-width:640px}#login{max-width:520px;margin:2rem auto}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.metric{padding:1rem;background:#103e2c;color:white;border-radius:12px}.metric strong{display:block;font-size:1.6rem;font-variant-numeric:tabular-nums}.record h3{font-size:1rem;margin-top:0}.record p{margin:.35rem 0;overflow-wrap:anywhere}.amount{font-weight:750;white-space:nowrap}.tag{font-weight:bold;color:#805d0c}#notice:not(:empty){background:#fff4cf;padding:.8rem;border-radius:8px}footer{font-size:.875rem;color:#506658}a{color:#155739}[hidden]{display:none!important}summary{padding:.5rem}button:focus-visible,a:focus-visible{outline:3px solid #ca9d28;outline-offset:3px}@media print{header,nav,form,button,footer{display:none}section{border:0}body{background:white}}

/* iOS Capacitor's content inset can be zero; keep registration below the status bar. */
html.native-ios header{padding-top:max(56px,env(safe-area-inset-top))}
html.native-ios main{padding-bottom:max(20px,env(safe-area-inset-bottom))}
