*{box-sizing:border-box}
:root{color-scheme:light;--paper:#f5f7f4;--ink:#172b25;--muted:#496057;--green:#195744;--soft:#e1eee6;--line:#cbd8d0;--red:#9d2f33;--nav:calc(65px + env(safe-area-inset-bottom));font-family:system-ui,"Yu Gothic UI",sans-serif}
body{margin:0;background:var(--paper);color:var(--ink)}
button,input,select,textarea{font:inherit;font-size:16px;color:inherit}
button{min-height:44px;cursor:pointer;border:1px solid var(--line);border-radius:12px;background:white;padding:8px 12px}
button:disabled{opacity:.55;cursor:default}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3a7f60;outline-offset:2px}
main{max-width:530px;margin:auto;padding:calc(22px + env(safe-area-inset-top)) 18px calc(var(--nav) + 104px)}
.brand{font-size:13px;font-weight:700;color:var(--green);margin:0 0 4px}
h1{margin:0 0 16px;font-size:28px;line-height:1.25}
h2{font-size:18px;margin:18px 0 8px}
p{margin:8px 0;line-height:1.55}
.muted,small{color:var(--muted)}
.card{background:white;border:1px solid var(--line);border-radius:18px;padding:15px}
label,legend{font-weight:650;display:block;font-size:14px}
form label,form fieldset{margin:0 0 13px}
form label:last-child{margin-bottom:0}
fieldset{border:0;padding:0;min-width:0}
input,select,textarea{display:block;width:100%;min-width:0;margin-top:5px;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:white}
textarea{min-height:52px;resize:vertical}
.row,.segments,.month{display:flex;gap:9px;align-items:center}
.segments{margin-top:5px}
.segments button{flex:1}
[aria-pressed=true]{background:var(--soft);border-color:var(--green);color:var(--green);font-weight:700}
.month{justify-content:space-between;margin-bottom:12px}
.month strong{font-size:17px}
.big{font-size:30px;font-weight:750;letter-spacing:-.03em}
.metric{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-top:1px solid var(--line);padding-top:7px}
.items{display:grid;gap:8px}
.item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:11px 13px}
.item span{min-width:0;overflow-wrap:anywhere}
.item strong{white-space:nowrap}
.primary{background:var(--green);border-color:var(--green);color:white;font-weight:700}
.danger{color:var(--red)}
.block{width:100%;margin-top:9px}
nav,.actions{position:fixed;left:50%;transform:translateX(-50%);width:min(100%,530px);background:var(--paper);z-index:2}
nav{bottom:0;height:var(--nav);padding:5px 12px env(safe-area-inset-bottom);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;border-top:1px solid var(--line)}
nav button{border:0;background:none;font-size:14px;display:grid;gap:0;justify-items:center;align-content:center}
nav button[aria-current=page]{color:var(--green);background:var(--soft);font-weight:750}
.actions{bottom:var(--nav);padding:9px 18px;border-top:1px solid var(--line)}
.actions button{width:100%}
.back{margin-bottom:10px}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav) + 65px);max-width:calc(100% - 30px);width:max-content;padding:10px 14px;border-radius:12px;background:var(--ink);color:white;z-index:4}
#toast:empty{display:none}
.error{color:var(--red);overflow-wrap:anywhere}
.setting{display:grid;gap:10px;margin-bottom:12px}
.setting input{margin:0}
.setting label input{margin-top:5px}
.setting .row input{flex:1}
.setting .row button{flex-shrink:0}
.demo{font-size:12px;color:var(--muted);margin:0 0 12px}
dialog{max-width:min(360px,calc(100vw - 36px));border:1px solid var(--line);border-radius:16px;color:var(--ink);padding:18px}
dialog::backdrop{background:#172b2570}
dialog .row{justify-content:flex-end;margin-top:16px}
@media(max-height:550px){body:has(input:focus,textarea:focus,select:focus) nav,body:has(input:focus,textarea:focus,select:focus) .actions{position:absolute;visibility:hidden}}
