:root{--bg:#f3f6f5;--card:#fff;--ink:#1d2b28;--muted:#6b7a76;--line:#e0e8e5;--side:#14352e;--sideink:#c9e3dd;--teal:#2a9d8f;--mint:#e6f2ef;--good:#1e8449;--bad:#c0392b;--warn:#d98a1c;--input:#0b57d0;--shadow:0 1px 2px rgba(20,40,35,.06),0 6px 18px rgba(20,40,35,.05)}@media (prefers-color-scheme:dark){:root{--bg:#0e1514;--card:#16201e;--ink:#e6efec;--muted:#8fa19c;--line:#25332f;--side:#0a1e1a;--sideink:#a9c9c1;--teal:#3bb5a5;--mint:#1b2b28;--good:#4cc38a;--bad:#ff7b6b;--warn:#f0b04a;--input:#8ab4ff;--shadow:none}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button{font:inherit;cursor:pointer}.app{display:grid;grid-template-columns:210px 1fr;min-height:100vh}.side{background:var(--side);color:var(--sideink);padding:20px 12px;display:flex;flex-direction:column;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:16px;padding:0 8px 18px}.logo{width:30px;height:30px;border-radius:9px;background:var(--teal);display:grid;place-items:center;color:#fff;font-weight:800}#nav{display:flex;flex-direction:column;gap:2px}.nav{background:none;border:0;color:inherit;text-align:left;padding:9px 12px;border-radius:8px;font-size:14px;width:100%}.nav:hover{background:rgba(255,255,255,.07)}.nav.on{background:rgba(255,255,255,.14);color:#fff;font-weight:600}.grow{flex:1 1}.sidebtn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:inherit;border-radius:8px;padding:7px 10px;font-size:13px;text-align:left}.sidebtn:hover{background:rgba(255,255,255,.16)}.saved{font-size:12px;height:16px;padding:0 4px;color:var(--teal)}.main{padding:22px 26px 60px;min-width:0}.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}h1{margin:0;font-size:24px;letter-spacing:-.01em}.mn{display:flex;align-items:center;gap:6px;background:var(--card);border-radius:10px;box-shadow:var(--shadow);padding:4px}.mn button{background:none;border:0;border-radius:7px;width:30px;height:30px;color:var(--ink);font-size:16px}.mn button:hover:not(:disabled){background:var(--mint)}.mn button:disabled{opacity:.3;cursor:default}.mn span{min-width:130px;text-align:center;font-weight:600}.tiles{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:16px}.tile{background:var(--card);border-radius:12px;box-shadow:var(--shadow);border-top:3px solid var(--teal);padding:14px 16px 12px}.l{font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.l,.tile .v{font-weight:700}.tile .v{font-size:28px;margin:6px 0 2px;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.n{font-size:12px;color:var(--muted)}.pos{color:var(--good)}.neg{color:var(--bad)}.card{background:var(--card);border-radius:12px;box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.ch{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);font-weight:700}.ch small{font-weight:400;color:var(--muted)}.two{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.two .card{margin-bottom:16px}.row{display:grid;grid-template-columns:minmax(0,1fr) 104px 104px 96px 28px;align-items:center;grid-gap:6px;gap:6px;padding:8px 14px;border-bottom:1px solid var(--line)}.row .pb{grid-column:1/5;margin-top:-2px}.gh{background:var(--mint);font-weight:700;border-bottom:1px solid var(--line)}.gh .t{padding:0 8px}.colh{font-size:11px;color:var(--muted);font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--card)}.a{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding-right:8px}input,select{font:inherit;color:var(--input);background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 7px;width:100%;min-width:0}input:hover,select:hover{border-color:var(--line)}input:focus,select:focus{outline:none;border-color:var(--teal);background:var(--bg)}input.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}input[type=checkbox]{width:auto;accent-color:var(--teal)}.sub{display:flex;gap:8px;align-items:center;margin-top:1px}.sub input:not([type=checkbox]){font-size:12px;color:var(--muted);padding:1px 6px;width:96px}.sub label{font-size:12px;color:var(--muted);display:flex;gap:4px;align-items:center;cursor:pointer}.tag{font-size:11px;color:var(--muted);padding:1px 8px}.pb,.tag{background:var(--mint);border-radius:99px}.pb{height:7px;overflow:hidden}.pb i{display:block;height:100%;background:var(--teal);border-radius:99px;transition:width .2s}.pb i.warn{background:var(--warn)}.pb i.bad{background:var(--bad)}.del{background:none;border:0;color:var(--muted);width:26px;height:26px;border-radius:6px;opacity:.5}.del:hover{opacity:1;color:var(--bad);background:var(--mint)}.caret{background:none;border:0;color:var(--ink);font-size:12px;width:22px}.addrow{padding:10px 14px;display:flex;gap:8px;flex-wrap:wrap}.link{background:none;color:var(--teal);padding:2px 4px}.link,.primary{border:0;font-weight:600}.primary{background:var(--teal);color:#fff;border-radius:8px;padding:8px 14px}.seg{display:inline-flex;background:var(--card);border-radius:10px;box-shadow:var(--shadow);padding:3px;margin-bottom:16px}.seg button{background:none;border:0;border-radius:8px;padding:6px 16px;color:var(--muted);font-weight:600}.seg button.on{background:var(--teal);color:#fff}.hero{display:flex;gap:24px;align-items:center;padding:18px 20px}.big{font-size:38px;font-weight:800;letter-spacing:-.03em;line-height:1.1}.hero .fill{flex:1 1}.hero .pb{height:12px;margin:6px 0}.list .li{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;padding:9px 16px;border-bottom:1px solid var(--line);align-items:center}.li .d{color:var(--muted);font-size:12px}.gl{padding:12px 16px;border-bottom:1px solid var(--line)}.gl .top{display:flex;justify-content:space-between;margin-bottom:5px;font-weight:600}.gl .pb{height:9px}.goalcard{padding:14px 16px}.gfields{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin:10px 0}.gfields label{font-size:11px;color:var(--muted);font-weight:700;display:block;text-transform:uppercase;letter-spacing:.04em}.gfields input{border-color:var(--line)}.cal{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:var(--line)}.day{background:var(--card);min-height:74px;padding:4px 5px}.day,.day b{font-size:11px}.day b{color:var(--muted)}.chip{display:block;background:var(--mint);border-radius:4px;padding:1px 5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day.has b{color:var(--teal)}.cf{display:flex;gap:26px;align-items:flex-end;padding:20px 20px 14px;overflow:auto;min-height:230px}.cfm{text-align:center}.cfb{display:flex;gap:6px;align-items:flex-end;height:170px}.cfb i{display:block;width:26px;border-radius:5px 5px 0 0;min-height:2px}.legend{display:flex;gap:14px;padding:0 20px 14px;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px}.bars .li{grid-template-columns:130px 1fr 90px 40px}.bars .pb{height:9px}.scroll{max-height:560px;overflow:auto}.tx{display:grid;grid-template-columns:minmax(0,1fr) 170px 110px 28px;grid-gap:6px;gap:6px;padding:4px 14px}.tx,.txbar{align-items:center;border-bottom:1px solid var(--line)}.txbar{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px}.txbar input,.txbar select{width:auto;border-color:var(--line);background:var(--bg)}.empty{padding:20px;color:var(--muted);text-align:center}@media (max-width:1000px){.tiles{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}}@media (max-width:760px){.app{grid-template-columns:1fr}.side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center}.brand{padding:0 8px}.grow{display:none}#nav{flex-direction:row;flex-wrap:wrap}.nav{width:auto}.main{padding:16px 12px 50px}.row{grid-template-columns:minmax(0,1fr) 78px 78px 70px 24px;padding:8px}.gfields{grid-template-columns:repeat(2,1fr)}.hero{flex-direction:column;align-items:stretch}}@media print{.addrow,.del,.mn,.seg,.side{display:none!important}.app{display:block}}a{color:inherit;text-decoration:none}.nav{display:block}.center{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.banner{background:var(--bad);color:#fff;padding:9px 14px;border-radius:10px;margin-bottom:14px;cursor:pointer}.authwrap{min-height:100vh;display:grid;place-items:center;padding:20px}.authcard{background:var(--card);border-radius:14px;box-shadow:var(--shadow);padding:28px;width:100%;max-width:380px;display:grid;grid-gap:12px;gap:12px}.authcard h1{font-size:22px;margin-bottom:2px}.authcard input{border:1px solid var(--line);background:var(--bg);padding:10px 12px}.msg{font-size:13px;color:var(--muted)}.stack{display:grid;grid-gap:12px;gap:12px;max-width:520px}.stack input{border:1px solid var(--line);background:var(--bg);padding:9px 11px}.code{font-family:ui-monospace,Menlo,monospace;background:var(--mint);padding:4px 10px;border-radius:8px;letter-spacing:.08em}.btnrow{display:flex;gap:8px;flex-wrap:wrap}.ghost{background:var(--mint);color:var(--ink);border:0;border-radius:8px;padding:8px 14px;font-weight:600}.pad{padding:16px}