:root{--bg:#0e1014;--panel:#161921;--panel-2:#1d212b;--line:#2a2f3b;--ink:#eceef3;--ink-2:#a8afbf;--muted:#747c8e;--accent:#f2b43c;--accent-ink:#1a1408;--accent-soft:#f2b43c24;--good:#4cc38a;--bad:#ef6b5f;--warn:#e8a33d;--foreign:#a28bf5;--bar:#5b8def;--bar-hover:#8fb1f5;--shadow:0 10px 30px #00000073;--radius:12px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f3f1ec;--panel:#fff;--panel-2:#f7f6f2;--line:#e2dfd7;--ink:#1b1d22;--ink-2:#4c5160;--muted:#7d8291;--accent:#c98a0c;--accent-ink:#fff;--accent-soft:#c98a0c1f;--good:#1f8a57;--bad:#c8463a;--warn:#b7741a;--foreign:#6a4fd1;--bar:#3a6fd8;--bar-hover:#1f4fb0;--shadow:0 10px 30px #281e0a26;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--bg:#f3f1ec;--panel:#fff;--panel-2:#f7f6f2;--line:#e2dfd7;--ink:#1b1d22;--ink-2:#4c5160;--muted:#7d8291;--accent:#c98a0c;--accent-ink:#fff;--accent-soft:#c98a0c1f;--good:#1f8a57;--bad:#c8463a;--warn:#b7741a;--foreign:#6a4fd1;--bar:#3a6fd8;--bar-hover:#1f4fb0;--shadow:0 10px 30px #281e0a26;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.4 Inter,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:600}.up{color:var(--good);font-weight:600}.down{color:var(--bad);font-weight:600}.splash,.login{text-align:center;place-content:center;gap:12px;min-height:100vh;padding:16px;display:grid}.login h1{color:var(--accent);margin:0;font:700 36px Unbounded,Inter,sans-serif}.error{color:var(--bad)}.app{max-width:1500px;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));margin:0 auto}.hud{grid-template-columns:1.4fr 1.2fr .9fr;gap:12px;display:grid}.hud>section{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:6px;min-width:0;padding:14px 16px;display:flex}.quest{background:linear-gradient(135deg, var(--accent-soft), transparent 70%), var(--panel)!important;border-color:color-mix(in srgb, var(--accent) 45%, var(--line))!important}.quest-title{overflow-wrap:anywhere;font:700 20px/1.25 Unbounded,Inter,sans-serif}.quest.is-done .quest-title{text-decoration:line-through;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.quest-empty{color:var(--ink-2)}.level-row{justify-content:space-between;align-items:baseline;display:flex}.lvl{color:var(--accent);font:700 18px Unbounded,Inter,sans-serif}.xpbar{background:var(--panel-2);border:1px solid var(--line);border-radius:99px;height:10px;overflow:hidden}.xpbar>div{background:var(--accent);border-radius:99px;height:100%;transition:width .6s}.stats-row{flex-wrap:wrap;gap:4px 16px;font-size:14px;display:flex}.yesterday{font-size:14px}.badge{border-radius:99px;align-self:flex-start;padding:2px 8px;font-size:12px;font-weight:600}.badge.good{color:var(--good);background:color-mix(in srgb, var(--good) 14%, transparent)}.tabs{gap:4px;margin:16px 0 12px;display:flex}.tabs button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:8px;padding:6px 12px;font-weight:600}.tabs button[aria-selected=true]{background:var(--panel);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.board{grid-template-columns:repeat(4,minmax(240px,1fr));align-items:start;gap:12px;display:grid}.column{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-height:200px;padding:10px;transition:border-color .15s}.column.is-over{border-color:var(--accent)}.column h2{justify-content:space-between;align-items:center;margin:2px 4px 10px;font:600 14px Inter,sans-serif;display:flex}.count,.limit{font-variant-numeric:tabular-nums;color:var(--muted);background:var(--panel-2);border-radius:99px;padding:2px 8px;font-size:12px}.limit{color:var(--ink-2);font-weight:700}.limit.full{color:var(--bad);background:color-mix(in srgb, var(--bad) 14%, transparent)}.column-body{flex-direction:column;gap:8px;min-height:60px;display:flex}.empty{color:var(--muted);text-align:center;border:1px dashed var(--line);border-radius:10px;padding:18px 0;font-size:13px}.add input{border:1px dashed var(--line);background:0 0;border-radius:10px;width:100%;padding:9px 11px}.add input:focus{border-style:solid;border-color:var(--accent);outline:none}.card-wrap{touch-action:manipulation;cursor:grab}.card{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;flex-direction:column;gap:7px;padding:10px 11px;display:flex}.card.impact-2{border-left-color:var(--ink-2)}.card.impact-3{border-left-color:var(--accent)}.card.is-main{box-shadow:0 0 0 1px var(--accent), 0 0 22px var(--accent-soft)}.card.is-dragging{box-shadow:var(--shadow);cursor:grabbing;transform:rotate(1.5deg)}.card.is-done .card-title{color:var(--muted);text-decoration:line-through}.card-title{overflow-wrap:anywhere;font-weight:500}.main-tag{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:700}.card-meta{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.pips{gap:3px;margin-right:2px;display:inline-flex}.pips i{background:var(--line);border-radius:2px;width:7px;height:7px}.pips i.on{background:var(--accent)}.tag{color:var(--ink-2);background:var(--panel);border:1px solid var(--line);border-radius:99px;padding:1px 7px;font-size:12px}.tag.bad{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, var(--line))}.tag.warn{color:var(--warn)}.tag.good{color:var(--good)}.tag.foreign{color:var(--foreign);border-color:color-mix(in srgb, var(--foreign) 40%, var(--line))}.modal-bg{z-index:20;background:#00000080;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:14px;padding:18px;display:flex;overflow:auto}.modal textarea,.modal input[type=date],.modal input[type=datetime-local],.modal input[type=number],.modal select{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;width:100%;padding:8px 10px}.modal .row input[type=date],.modal .row input[type=datetime-local]{width:auto}.title-input{resize:vertical;font:600 18px/1.3 Inter,sans-serif!important}.field{flex-direction:column;gap:6px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.check{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.seg{flex-wrap:wrap;gap:4px;display:flex}.seg button{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:14px}.seg button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.seg.small button{padding:4px 8px;font-size:13px}blockquote{border-left:3px solid var(--foreign);color:var(--ink-2);background:var(--panel-2);white-space:pre-wrap;border-radius:0 8px 8px 0;margin:0;padding:8px 12px}.url{color:var(--bar);overflow-wrap:anywhere}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:10px;padding:9px 14px;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:var(--bad);margin-left:auto}.link{color:var(--muted);cursor:pointer;background:0 0;border:0;text-decoration:underline}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);box-shadow:var(--shadow);z-index:30;border-radius:10px;max-width:calc(100% - 32px);padding:10px 16px;position:fixed;transform:translate(-50%)}.dash{flex-direction:column;gap:12px;display:flex}.tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.tile,.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.tile{flex-direction:column;gap:4px;display:flex}.tile b{font:700 28px Unbounded,Inter,sans-serif}.tile .muted{font-size:13px}.panel h3{margin:0 0 12px;font-size:14px;font-weight:600}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.bars-plot{border-bottom:1px solid var(--line);align-items:flex-end;gap:2px;height:140px;display:flex}.bar{cursor:pointer;background:0 0;border:0;flex:1;align-items:flex-end;height:100%;padding:0;display:flex}.bar span{background:var(--bar);border-radius:4px 4px 0 0;width:100%;min-height:1px;display:block}.bar.is-hover span,.bar:focus-visible span{background:var(--bar-hover)}.bars-axis{gap:2px;margin-top:4px;display:flex}.bars-axis span{color:var(--muted);text-align:center;white-space:nowrap;flex:1;font-size:11px;overflow:hidden}.bars-tip{color:var(--ink-2);min-height:1.4em;margin-top:6px;font-size:13px}.skills,.stale{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skills li{grid-template-columns:90px 50px 1fr 50px;align-items:center;gap:8px;font-size:14px;display:grid}.skills li>.num:last-child{text-align:right}.meter{background:var(--panel-2);border-radius:99px;height:8px;overflow:hidden}.meter div{background:var(--bar);border-radius:99px;height:100%}.stale li{grid-template-columns:52px 1fr auto;gap:8px;font-size:14px;display:grid}.stale .days{color:var(--warn);font-weight:600}@media (width<=900px){.app{padding:12px}.hud{grid-template-columns:1fr;gap:8px}.board{scroll-snap-type:x mandatory;gap:10px;margin:0 -12px;padding:0 12px 8px;display:flex;overflow-x:auto}.column{scroll-snap-align:center;flex:0 0 86%}.two{grid-template-columns:1fr}}.budget{flex-direction:column;gap:12px;padding-bottom:72px;display:flex}.budget-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.subtabs{background:var(--panel);border:1px solid var(--line);border-radius:10px;gap:2px;padding:3px;display:flex}.subtabs button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:7px;padding:6px 12px;font-size:14px;font-weight:600}.subtabs button[aria-selected=true]{background:var(--panel-2);color:var(--ink)}.period{align-items:center;gap:4px;display:flex}.period-label{cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 8px;font-weight:600}.period-label:hover{background:var(--panel)}.icon-btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:8px;width:32px;height:32px;font-size:18px;line-height:1}.custom-period{align-items:center;gap:8px;display:flex}.custom-period input,.filters select,.filters input,.settings input,.settings select,.op-editor input,.op-editor select{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;min-width:0;padding:7px 10px}.panel-blocks{flex-direction:column;gap:12px;display:flex}.block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.block header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.block h3{margin:0;font-size:14px;font-weight:600}.block header b{font:700 18px Unbounded,Inter,sans-serif}.good-ink{color:var(--good)}.money-tiles{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px;display:grid}.money-tile{text-align:left;border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:10px 12px;display:flex}.money-tile span{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;overflow:hidden}.money-tile b{white-space:nowrap;font-size:15px}.money-tile small{font-size:11px}.money-tile:hover{border-color:var(--ink-2)}.money-tile.expense{border-left:3px solid var(--bar)}.money-tile.income{border-left:3px solid var(--good)}.money-tile.neg b{color:var(--bad)}.money-tile.credit{border-style:dashed}.fab-row{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);box-shadow:var(--shadow);z-index:10;border-radius:14px;gap:8px;padding:6px;display:flex;position:fixed;transform:translate(-50%)}.op-editor .amount-input{text-align:center;padding:10px;font:700 32px Unbounded,Inter,sans-serif}.seg.wrap button{font-size:13px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:99px;padding:3px 10px;font-size:13px}.chip.on{border-color:var(--accent);background:var(--accent-soft)}.grow{flex:1}.small{font-size:13px}.filters{grid-template-columns:repeat(3,minmax(0,180px)) 1fr;gap:8px;display:grid}.day-group{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:4px 0}.day-group h4{color:var(--ink-2);justify-content:space-between;margin:0;padding:8px 14px 4px;font-size:13px;font-weight:600;display:flex}.day-group h4 span:first-child{display:inline-block}.day-group h4 span:first-child:first-letter{text-transform:uppercase}.op-row{text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:8px 14px;display:flex}.op-row:hover{background:var(--panel-2)}.op-main{flex-direction:column;min-width:0;display:flex}.op-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.op-amount{white-space:nowrap}.op-amount.income,.op-amount.borrow{color:var(--good)}.op-amount.transfer{color:var(--ink-2)}.report{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.report-head{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:14px;display:flex}.report-head>div:first-child{flex-direction:column;gap:2px;display:flex}.big{font:700 26px Unbounded,Inter,sans-serif}.legend{color:var(--ink-2);align-items:center;gap:14px;font-size:13px;display:flex}.swatch{vertical-align:middle;border-radius:2px;width:12px;height:8px;margin-right:4px;display:inline-block}.swatch.cur{background:var(--bar)}.swatch.prev{background:var(--ink);width:2px;height:12px}.report-rows,.report-subs{margin:0;padding:0;list-style:none}.report-row{cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:140px 1fr 120px 60px;align-items:center;gap:10px;width:100%;padding:7px 0;display:grid}.report-row b{text-align:right}.report-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.report-bar{height:12px;position:relative}.report-bar .cur{background:var(--bar);border-radius:0 4px 4px 0;position:absolute;inset:0 auto 0 0}.report-bar .prev{background:var(--ink);border-radius:1px;width:2px;position:absolute;top:-3px;bottom:-3px}.delta{text-align:right;font-size:12px}.report-subs li{color:var(--ink-2);justify-content:space-between;padding:4px 0 4px 150px;font-size:13px;display:flex}.settings{flex-direction:column;gap:12px;display:flex}.settings .panel{flex-direction:column;gap:10px;display:flex}.settings h3,.settings p{margin:0}.set-list{flex-direction:column;gap:6px;display:flex}.set-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wallet-row>input:first-child{width:150px}.wallet-row>.muted{text-align:right;width:120px}.wallet-row input.num{width:130px}.set-row.archived,.cat-list li.archived{opacity:.5}.credit-fields{border-left:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding-left:12px;display:flex}input.short{width:64px}.cat-list{flex-direction:column;gap:2px;margin:6px 0;padding:0;list-style:none;display:flex}.cat-list li{border-bottom:1px solid var(--line);justify-content:space-between;padding:4px 0;display:flex}.howto ol{flex-direction:column;gap:4px;margin:8px 0 0;padding-left:20px;font-size:14px;display:flex}code{background:var(--panel-2);overflow-wrap:anywhere;border-radius:4px;padding:1px 6px;font-size:13px}@media (width<=900px){.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:span 2}.report-row{grid-template-columns:100px 1fr 96px 44px;gap:6px}.report-subs li{padding-left:106px}.money-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.wallet-row>input:first-child{width:120px}.wallet-row>.muted{display:none}}
