:root{--bg:#111113;--panel:#1c1c1f;--line:#3a3a3c;--text:#fff;--muted:#8a8a8e;--accent:#ffb340;--ok:#34c759;--danger:#ff5a52;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}header{padding:calc(14px + env(safe-area-inset-top)) 16px 10px;justify-content:space-between;align-items:baseline;display:flex}.brand{letter-spacing:1px;font-weight:700}.balance{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}main{flex:1;padding:0 16px 24px}nav{background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:sticky;bottom:0}nav button{color:var(--muted);background:0 0;border:0;border-radius:0;flex:1;padding:14px 0}nav button.active{color:var(--text);box-shadow:inset 0 2px 0 var(--accent);font-weight:700}h1{letter-spacing:1px;margin:0 0 8px}h2{letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:24px 0 8px;font-size:13px;font-weight:700}ul{margin:0;padding:0;list-style:none}li{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:48px;padding:6px 0;display:flex}li .title{overflow-wrap:anywhere;flex:1;min-width:0}.done .title{color:var(--muted);text-decoration:line-through}.time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.meta{color:var(--muted);text-align:right;font-size:13px}.meta.late,.time.late{color:var(--danger);white-space:nowrap}.amount{font-variant-numeric:tabular-nums;font-weight:700}.amount.plus{color:var(--ok)}.amount.minus{color:var(--danger)}button,input,select{font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0;padding:10px 12px}button{cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#111113;font-weight:700}button:disabled{opacity:.5}button.check{border:2px solid var(--muted);color:#111113;background:0 0;border-radius:50%;flex:none;width:32px;height:32px;padding:0;font-weight:700}.done button.check{background:var(--ok);border-color:var(--ok)}li.task{flex-direction:column;align-items:stretch;gap:0}.head{flex-wrap:wrap;align-items:center;gap:10px;min-height:36px;display:flex}.title-block button.name{padding:0}input.title-input{flex:1;min-width:0;padding:4px 8px}.edit-row{flex:100%;order:1;margin:0 0 8px}li.sub{flex-wrap:wrap}.grip{color:var(--muted);letter-spacing:-3px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;padding:8px 2px;font-size:14px}li.sub.dragging{background:var(--panel);border-radius:8px}li.sub.dragging .grip{cursor:grabbing;color:var(--accent)}.title-block{flex-direction:column;flex:1;gap:4px;min-width:0;padding:6px 0;display:flex}.title-block .title{overflow-wrap:break-word}.badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.badges .meta{text-align:left}.done .title-block .title{color:var(--muted);text-decoration:line-through}ul.subtasks{padding-left:42px}li.sub{border-bottom:0;min-height:40px;padding:2px 0}li.sub button.check{width:24px;height:24px;font-size:13px}li.sub .row{flex:1;margin-top:0}button.remove{color:var(--muted);background:0 0;border:0;flex:none;padding:4px 10px;font-size:20px}.row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.row .grow{flex:140px}.row input[type=number]{width:84px}.row label{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.stack{flex-direction:column;gap:8px;margin-top:12px;display:flex}.stack.edit{flex:100%;margin:0 0 8px}.stack.edit .row{margin-top:0}.stack.edit .hint{margin:0}li.habit{flex-wrap:wrap}.graph{flex:100%;min-width:0;margin:4px 0 8px}.graph .hint{margin:6px 0 0}.graph-body{gap:4px;display:flex}.graph-days,.graph-grid{grid-template-rows:14px repeat(7,11px);gap:3px;display:grid}.graph-days{color:var(--muted);flex:none;font-size:10px;line-height:11px}.graph-scroll{scrollbar-width:none;flex:1;min-width:0;overflow-x:auto}.graph-grid{grid-auto-columns:11px;grid-auto-flow:column;width:max-content}.graph-month{color:var(--muted);white-space:nowrap;font-size:10px;line-height:14px}.graph-cell{background:#26262a;border-radius:2px}.graph-cell.done{background:var(--ok)}.graph-cell.today{box-shadow:inset 0 0 0 1px var(--accent)}.graph-cell.future{background:0 0}button.kind.on{background:var(--accent);border-color:var(--accent);color:#111113;font-weight:700}.size.work.on{border-color:var(--accent);color:var(--accent)}.size{border:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;background:0 0;border-radius:6px;flex:none;padding:1px 7px;font-size:12px}.sizes{display:flex}.sizes button{border-radius:0;padding:10px;font-size:14px}.sizes button:first-child{border-radius:8px 0 0 8px}.sizes button:last-child{border-radius:0 8px 8px 0}.sizes button+button{border-left:0}.sizes button.on{background:var(--accent);border-color:var(--accent);color:#111113;font-weight:700}input.claim-amount{text-align:right;width:72px;padding:6px 8px}button.claim{background:var(--ok);border-color:var(--ok);color:#111113;flex:none;padding:6px 10px;font-weight:700}button.claim-all{width:100%;margin-top:12px}li.rejected .title,li.rejected .amount{color:var(--muted);text-decoration:line-through}button.name{text-align:left;background:0 0;border:0;padding:10px 0}.rule{justify-content:space-between;align-items:center;gap:12px;display:flex}.rule input{width:84px}.stack .stack{margin-top:4px}.group{color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.total{color:var(--accent);font-variant-numeric:tabular-nums;margin:16px 0 0;font-size:56px;font-weight:700}.total small{color:var(--muted);font-size:16px;font-weight:400}.goal{flex-direction:column;align-items:stretch;gap:6px;padding:10px 0}.goal-head{align-items:center;gap:10px;display:flex}.bar{background:var(--panel);border-radius:5px;height:10px;overflow:hidden}.fill{background:var(--accent);border-radius:5px;height:100%}.fill.reached{background:var(--ok)}.hint{color:var(--muted);font-size:14px}.error{color:var(--danger);background:#3a1614;border-radius:8px;margin:8px 16px;padding:10px 12px;font-size:14px}.login{flex-direction:column;gap:10px;max-width:360px;margin:18vh auto 0;padding:0 16px;display:flex}.login .error,.stack .error{margin:0}
