:root{color-scheme:dark;--bg:#0b0e10;--card:#15191c;--line:#2a3035;--text:#f3f5f6;--muted:#9aa4aa;--alex:#5791f5;--laura:#f28a2b;--good:#5bc66e;--bad:#ff6969}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer}header{height:68px;position:sticky;top:0;z-index:5;background:rgba(11,14,16,.95);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px max(16px,calc((100% - 1180px)/2))}h1,h2,h3,p{margin:0}.eyebrow{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em}main#app{max-width:1180px;margin:auto;padding:18px 16px 50px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}.monthbar{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:14px}.monthbar h2{min-width:190px;text-align:center}.icon,.ghost,.pill,.add{border:1px solid var(--line);background:transparent;border-radius:9px;min-height:40px;padding:8px 12px}.grid2,.main-grid,.trackers,.savings,.accounts{display:grid;gap:12px}.grid2{grid-template-columns:1fr 1fr}.main-grid{grid-template-columns:1.65fr 1fr;margin-top:12px}.trackers{grid-template-columns:1fr 1fr}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.alex h2,.alex strong,.alex-accent{color:var(--alex)}.laura h2,.laura strong,.laura-accent{color:var(--laura)}.rows{display:grid}.row{display:grid;grid-template-columns:minmax(100px,1fr) 130px auto auto;gap:7px;align-items:center;min-height:49px;border-top:1px solid var(--line)}.expense .row{grid-template-columns:minmax(120px,1fr) 120px auto auto auto}.row:first-child{border-top:0}.money,.name{width:100%;background:transparent;border:1px solid transparent;border-radius:7px;padding:8px}.money{text-align:right}.money:focus,.name:focus{outline:none;border-color:#5b6670;background:#0f1214}.tools{display:flex;gap:5px}.tools button{width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent}.pill{min-width:58px}.pill.selected.alex{background:#18365f;border-color:#376db6;color:#8db7ff}.pill.selected.laura{background:#512c12;border-color:#94531d;color:#ffac5d}.add{width:100%;margin-top:8px;color:#82aef9}.total{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:9px;padding-top:13px}.muted{color:var(--muted)}.status{margin-top:12px;color:var(--good)}.status.warn{color:#f2b84b}.tracker{padding:14px}.progress{height:8px;background:#2b3135;border-radius:9px;overflow:hidden;margin:10px 0}.progress span{display:block;height:100%;border-radius:inherit}.alex .progress span{background:var(--alex)}.laura .progress span{background:var(--laura)}.metric{display:flex;justify-content:space-between;margin:5px 0}.remain{border-top:1px solid var(--line);margin-top:10px;padding-top:10px;color:var(--good)}.reserve{margin-top:12px}.formgrid{display:grid;grid-template-columns:1fr 160px;gap:10px}.field{display:flex;flex-direction:column;gap:6px}.field input,.field select,.inline-form input,.inline-form select{background:#101416;border:1px solid #394148;border-radius:8px;padding:10px;min-height:43px}.contrib,.savings{margin-top:13px}.savings{grid-template-columns:repeat(3,1fr);text-align:center}.savebox{border-left:1px solid var(--line)}.savebox:first-child{border:0}.savebox b{display:block;color:var(--good);font-size:18px}.accounts{grid-template-columns:repeat(3,1fr)}.account{border:1px solid var(--line);padding:12px;border-radius:10px}.account input{font-size:18px;text-align:left;padding-left:0}.chart-wrap{overflow-x:auto}.chart{min-width:620px;height:250px;display:flex;align-items:flex-end;gap:18px;border-bottom:1px solid var(--line);padding:20px 10px 28px;margin-top:12px}.chart-month{height:100%;flex:1;display:flex;align-items:flex-end;justify-content:center;gap:5px;position:relative}.bar{min-width:14px;border-radius:4px 4px 0 0}.chart-label{position:absolute;bottom:-24px;color:var(--muted)}.inline-form{display:grid;grid-template-columns:1.5fr 1fr auto auto;gap:7px;margin-top:8px}.primary{border:0;background:#3278e6;padding:11px 16px;border-radius:9px}.danger{color:#ff8484}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.auth{width:min(390px,100%);display:grid;gap:16px}.auth label{display:grid;gap:6px}.auth input{background:#0e1214;border:1px solid var(--line);padding:12px;border-radius:9px}.error{color:var(--bad);min-height:22px}.loading{text-align:center;color:var(--muted);padding:60px}.stack{display:grid;gap:12px}
@media(max-width:760px){header{height:60px}.grid2,.main-grid,.trackers,.savings,.accounts{grid-template-columns:1fr}.main-grid{display:flex;flex-direction:column}.row,.expense .row{grid-template-columns:minmax(90px,1fr) 105px auto}.row>.tools{grid-column:3}.expense .row .payer{grid-column:1/3;display:flex;gap:6px}.expense .row>.tools{grid-column:3;grid-row:1/3}.savebox{border-left:0;border-top:1px solid var(--line);padding-top:10px}.savebox:first-child{border-top:0}.formgrid,.inline-form{grid-template-columns:1fr 1fr}.inline-form input:first-child{grid-column:1/3}.card{padding:13px}.monthbar h2{min-width:150px;font-size:19px}}
.bar{display:block}
@media(max-width:760px){body{font-size:14px}header{padding-inline:12px}header h1{font-size:22px}main#app{padding:14px 10px 36px}.card{padding:12px;border-radius:12px}.row,.expense .row{grid-template-columns:minmax(0,1fr) 92px 78px;gap:5px;padding:4px 0}.expense .row .payer{grid-column:1/3;grid-row:2;display:flex;gap:5px}.expense .row>.tools{grid-column:3;grid-row:1/3;align-self:center}.money{padding-inline:4px}.tools button{width:35px;height:35px}.pill{min-width:0;min-height:36px;padding:6px 13px}.monthbar{gap:8px}.monthbar h2{min-width:165px;font-size:18px}.formgrid{grid-template-columns:1fr}.formgrid .field{min-width:0}.field input,.field select{width:100%}.savings{gap:0}.savebox{padding:11px 0}.accounts{gap:8px}.account{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 10px;padding:11px}.account>span{grid-column:1/3}.account .money{font-size:17px;margin:0}.account .ghost{min-height:36px;padding:6px 10px}.chart{height:230px;min-width:520px;gap:10px}.chart-month{min-width:74px}.bar{min-width:18px}.section-title select{max-width:145px}.reserve{margin-top:10px}}
@media(max-width:760px){.account{grid-template-columns:minmax(0,1fr) 88px auto;min-height:62px}.account>span{grid-column:1}.account .money{grid-column:2}.account .ghost{grid-column:3}.bar{flex-shrink:0}}
.amount-cell{display:flex;align-items:center;min-width:0}.amount-cell .money{min-width:0}.amount-cell span{color:var(--muted);font-size:12px;white-space:nowrap}.label-short{display:none}.chart-shell{display:grid;grid-template-columns:52px minmax(620px,1fr);height:270px;margin-top:12px}.chart-axis{display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:12px;text-align:right;padding:0 8px 27px 0;position:sticky;left:0;z-index:4;background:var(--card);box-shadow:8px 0 10px -10px #000}.chart{position:relative;margin:0;padding-top:0;border-bottom:1px solid var(--line);z-index:0}.grid-lines{position:absolute;inset:0 0 27px;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none;z-index:-1}.grid-lines i{display:block;border-top:1px solid #343b40;width:100%}.chart-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 20px;margin-top:12px;color:var(--muted);font-size:13px}.chart-legend span{display:flex;align-items:center;gap:7px}.chart-legend i{width:11px;height:11px;border-radius:3px}.chart-card .chart-wrap{padding-bottom:2px;isolation:isolate}
.tools .recur{color:var(--muted);transition:color .15s,border-color .15s,background .15s}.tools .recur.selected{color:#8db7ff;background:#18365f;border-color:#376db6;box-shadow:inset 0 0 0 1px rgba(87,145,245,.15)}
@media(max-width:760px){.expense{overflow:hidden}.expense .row{width:100%;grid-template-columns:minmax(0,1fr) 112px;grid-template-rows:auto auto;column-gap:8px;row-gap:5px;min-height:82px;padding:7px 0}.expense .row .name{grid-column:1;grid-row:1;width:100%;min-width:0;font-size:15px;padding:6px 2px;overflow:hidden;text-overflow:ellipsis}.expense .row .amount-cell{grid-column:2;grid-row:1;width:112px;min-width:0;justify-content:flex-end}.expense .row .payer{grid-column:1;grid-row:2;display:flex;gap:5px;min-width:0}.expense .row>.tools{grid-column:2;grid-row:2;width:112px;display:flex;justify-content:flex-end;gap:5px}.expense .pill{width:56px;min-width:0;min-height:30px;height:30px;padding:3px 7px;font-size:12px}.expense .tools button{width:30px;height:30px;font-size:13px;flex:0 0 30px}.expense .amount-cell span{font-size:11px;flex:0 0 auto}.expense .amount-cell .money{width:76px;min-width:0;flex:0 0 76px;padding:6px 3px;font-size:15px}.expense .label-full{display:inline}.expense .label-short{display:none}.chart-shell{grid-template-columns:42px minmax(500px,1fr);height:245px}.chart-axis{font-size:10px;padding-right:6px}.chart{height:245px;min-width:500px}.chart-legend{justify-content:flex-start;padding-left:42px;gap:8px 14px}.chart-card .section-title{align-items:flex-start}.chart-card .section-title h2{font-size:20px}}
