:root{--bg:#f6f4f0;--card:#fff;--text:#1c1b20;--muted:#5f5c66;--line:#e3dfd8;--soft:#eef2f8;--accent:#2f5f9e;--on-accent:#fff;--ok:#1f6b49;--bad:#b3261e;--work:#c0603f;--personal:#2f5f9e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#18171c;--card:#24232a;--text:#f2f0f5;--muted:#b2aebb;--line:#38363f;--soft:#263044;--accent:#8db4ea;--on-accent:#10203a;--ok:#7dd3a8;--bad:#ff9a90;--work:#f0a184;--personal:#8db4ea}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:17px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}h1{margin:4px 0 2px;font-size:28px}h2{margin:0 0 8px;font-size:18px}p{margin:6px 0}.muted{color:var(--muted)}.small{font-size:14px}.pre{white-space:pre-line}.ok{color:var(--ok);font-weight:600}.error{color:var(--bad);font-weight:600}.center{text-align:center}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button{font:inherit;cursor:pointer;color:inherit}a{color:var(--accent)}.shell{flex-direction:column;height:100%;display:flex}.topbar{padding:max(10px, env(safe-area-inset-top)) 16px 4px;justify-content:space-between;align-items:center;display:flex}.brand{font-size:18px;font-weight:800}.content{-webkit-overflow-scrolling:touch;flex:1;width:100%;max-width:760px;margin:0 auto;padding:4px 16px 96px;overflow-y:auto}.tabbar{border-top:1px solid var(--line);background:var(--card);padding:6px 4px max(8px, env(safe-area-inset-bottom));grid-template-columns:repeat(6,1fr);display:grid}.tabbar button{min-height:52px;color:var(--muted);background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:600;display:flex}.tabbar button.on{color:var(--accent)}@media (width>=700px){.tabbar button{font-size:13px}}.toast{left:50%;bottom:calc(86px + env(safe-area-inset-bottom));z-index:60;background:var(--text);color:var(--bg);border-radius:12px;max-width:90vw;padding:10px 16px;font-size:15px;position:fixed;transform:translate(-50%)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;margin:14px 0;padding:14px 16px}.card.soft{background:var(--soft)}.card-link{cursor:pointer;align-items:center;gap:4px;display:flex}.chev{color:var(--accent);margin-left:auto;font-weight:700}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.empty{color:var(--muted);margin:8px 0}.list{flex-direction:column;display:flex}.event-row{text-align:left;border:0;border-top:1px solid var(--line);width:100%;min-height:48px;color:var(--text);background:0 0;align-items:center;gap:10px;padding:12px 2px;text-decoration:none;display:flex}.card>.event-row:first-of-type,.card h2+.event-row{border-top:0}.event-title{overflow-wrap:anywhere;flex:1;min-width:0}.dot{background:var(--personal);border-radius:50%;flex:none;width:10px;height:10px}.dot.work{background:var(--work)}.line-item{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.card h2+.line-item{border-top:0}.row-with-edit{align-items:center;gap:8px;display:flex}.row-with-edit>:first-child{flex:1;min-width:0}.edit-btn{color:var(--muted);background:0 0;border:0;border-radius:10px;flex:none;width:44px;height:44px;font-size:22px}.check-row{cursor:pointer;align-items:center;gap:12px;min-height:52px;padding:10px 2px;display:flex}.check-row input{appearance:none;aspect-ratio:1;border:2px solid var(--muted);background:var(--card);border-radius:50%;flex:none;place-content:center;width:26px;min-width:26px;height:26px;min-height:0;margin:0;padding:0;display:grid}.check-row input:checked{background:var(--ok);border-color:var(--ok)}.check-row input:checked:after{content:"✓";color:var(--card);font-size:15px;font-weight:800}.check-text{overflow-wrap:anywhere;min-width:0}.check-text small{color:var(--muted);font-size:14px;display:block}.check-row.done .check-text{color:var(--muted);text-decoration:line-through}.check-row.late .check-text small{color:var(--bad);font-weight:600}.check-row.routine input{border-radius:8px}.progress{align-items:center;gap:10px;margin:10px 0 0;display:flex}.progress .bar{background:var(--line);border-radius:5px;flex:1;height:10px;overflow:hidden}.progress .bar span{background:var(--ok);border-radius:5px;height:100%;transition:width .3s;display:block}.btn{border:1px solid var(--line);background:var(--card);border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:48px;padding:10px 18px;font-weight:700;display:inline-flex}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.danger{color:var(--bad);border-color:var(--bad);background:0 0}.btn.danger.sure{background:var(--bad);color:#fff}.btn:disabled{opacity:.6}.title-row .btn{width:auto}button.link{color:var(--accent);background:0 0;border:0;padding:10px 2px;font-weight:600}.topbar button.link.on{text-decoration:underline}.link.back{padding-left:0}.icon-btn{border:1px solid var(--line);background:var(--card);border-radius:50%;flex:none;width:44px;height:44px;font-size:18px}.quick-add{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;display:grid}.fab{right:max(20px,50% - 360px);bottom:calc(86px + env(safe-area-inset-bottom));z-index:20;background:var(--accent);width:60px;height:60px;color:var(--on-accent);border:0;border-radius:50%;font-size:30px;font-weight:700;position:fixed;box-shadow:0 6px 18px #00000040}.pill{border:1px solid var(--line);background:var(--card);border-radius:999px;min-height:36px;padding:6px 12px;font-size:14px;font-weight:600}.pill.ok{background:var(--ok);border-color:var(--ok);color:var(--card)}.seg{background:var(--line);border-radius:12px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:10px;min-height:40px;padding:8px 14px;font-size:15px;font-weight:600}.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px #0000001f}.seg.small{width:100%}.seg.small button{flex:1}.chips{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.chips button,.day-chips button{border:1px solid var(--line);background:var(--card);border-radius:999px;min-height:40px;padding:6px 14px;font-weight:600}.chips button.on,.day-chips button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.day-chips{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day-chips button{padding:6px 0;font-size:14px}.stats{grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px}.stat small{color:var(--muted);font-size:13px;display:block}.stat b{font-size:22px}.form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px;display:grid}.form .wide,.field.wide{grid-column:1/-1}@media (width<=420px){.form{grid-template-columns:minmax(0,1fr)}}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>span,.label{color:var(--muted);margin:0;font-size:14px;font-weight:600}input,select,textarea{width:100%;min-width:0;min-height:48px;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:17px}textarea{resize:vertical;min-height:0}input[type=date],input[type=time]{appearance:none;display:block}.check{align-items:center;gap:10px;min-height:44px;font-weight:500;display:flex}.check input{width:22px;height:22px;min-height:0;accent-color:var(--accent);flex:none}.line{grid-template-columns:minmax(0,1fr) 64px 84px 44px;align-items:center;gap:6px;margin-bottom:6px;display:grid}.total-line{margin:4px 0;font-size:18px;font-weight:700}.photo-btn{border:2px dashed var(--accent);min-height:52px;color:var(--accent);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;font-weight:700;display:flex;position:relative}.photo-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.receipt{border-radius:12px;max-width:100%;max-height:360px;margin:4px auto;display:block}dialog.sheet{background:var(--bg);width:100%;max-width:640px;max-height:92dvh;color:var(--text);border:0;border-radius:22px 22px 0 0;margin:auto auto 0;padding:0;box-shadow:0 -10px 40px #0000004d}@media (width>=700px){dialog.sheet{border-radius:22px;margin:auto}}dialog.sheet::backdrop{background:#0006}.sheet-body{padding:16px 16px calc(20px + env(safe-area-inset-bottom))}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.sheet-head h2{margin:0;font-size:20px}.month-head{justify-content:space-between;align-items:center;margin:10px 0 6px;display:flex}.month-head h2{margin:0}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.dow{text-align:center;color:var(--muted);padding:2px 0;font-size:13px;font-weight:600}.day{background:var(--card);border:0;border-radius:12px;min-height:52px;padding:6px 0 14px;font-weight:600;position:relative}.day.out{opacity:.4}.day.today{box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent)}.day.sel{background:var(--accent);color:var(--on-accent)}.dots{justify-content:center;gap:3px;display:flex;position:absolute;bottom:6px;left:0;right:0}.dots i{background:var(--personal);border-radius:50%;width:6px;height:6px}.dots i.work{background:var(--work)}.day.sel .dots i{background:var(--on-accent)}.gig{border-top:1px solid var(--line);padding:10px 0}.card h2+.gig,.card>.gig:first-child{border-top:0}.gig-main{text-align:left;background:0 0;border:0;align-items:flex-start;gap:12px;width:100%;padding:0;display:flex}.gig-date{flex-direction:column;min-width:58px;display:flex}.gig-date small{color:var(--muted);font-size:12px}.gig-text{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.gig-actions{flex-wrap:wrap;gap:6px;margin:8px 0 0 70px;display:flex}:is(.card>.gig-actions,.gig:has(.gig-text:only-child) .gig-actions){margin-left:0}.seg-scroll{margin:8px 0;overflow-x:auto}.seg-scroll .seg button{white-space:nowrap;padding:8px 12px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stats.three .stat b{font-size:18px}.budget-row{text-align:left;border:0;border-top:1px solid var(--line);background:0 0;flex-direction:column;gap:2px;width:100%;padding:12px 2px;display:flex}.card h2+.budget-row,.title-row+.budget-row{border-top:0}.budget-row.sel{background:var(--soft);border-radius:12px;padding:12px 10px}.budget-row.over .budget-line>span{color:var(--bad);font-weight:700}.budget-line{justify-content:space-between;gap:10px;font-size:17px;display:flex}.budget-line b{font-variant-numeric:tabular-nums;white-space:nowrap}.budget-row .bar{background:var(--line);border-radius:5px;height:10px;margin-top:6px;display:block;overflow:hidden}.budget-row .bar span{background:var(--ok);border-radius:5px;height:100%;display:block}.budget-row .bar.over span{background:var(--bad)}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 10px;display:flex}.inline-form label{color:var(--muted);font-size:14px;font-weight:600}.inline-form input{width:120px}.inline-form select{flex:1;min-width:180px}.account-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:12px 0;display:grid}.account-card{text-align:left;background:var(--card);border:1px solid var(--line);border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.account-card.sel{border:2px solid var(--accent);padding:11px 13px}.account-card small{color:var(--muted);font-size:12px}.account-card b{font-size:20px}.account-card span{overflow-wrap:anywhere;font-size:14px}.review-item{border-top:1px solid var(--line)}.review-item:first-child,.review-item .event-row{border-top:0}.txn-title{overflow-wrap:anywhere;margin:0;font-weight:600}.txn-amount{font-variant-numeric:tabular-nums;margin:2px 0 8px;font-size:30px;font-weight:800}.details{grid-template-columns:auto 1fr;gap:4px 14px;margin:0;display:grid}.details dt{color:var(--muted)}.details dd{overflow-wrap:anywhere;margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.google-bar{background:var(--soft);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;margin:0 16px;padding:8px 12px;font-size:15px;display:flex}.match{background:var(--soft);border-radius:12px;margin:4px 0;padding:10px 12px}.match .label{margin-bottom:4px}.match-row{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.match-row span{overflow-wrap:anywhere;min-width:0;font-size:15px}.sheet-link{vertical-align:middle;color:var(--accent);align-items:center;margin-left:6px;text-decoration:none;display:inline-flex}.txn-day{padding:10px 12px}.txn-day h2{color:var(--muted);margin-bottom:4px;font-size:15px}.txn-row{border-top:1px solid var(--line);align-items:center;gap:6px;padding:10px 0;display:flex}.txn-day h2+.txn-row{border-top:0}.txn-main{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;min-width:0;padding:0;display:flex}.txn-desc{overflow-wrap:anywhere;font-size:15px;line-height:1.3}.txn-side{flex-direction:column;flex:none;align-items:flex-end;gap:4px;max-width:42%;display:flex}.txn-side b{font-variant-numeric:tabular-nums;white-space:nowrap}select.cat-chip{background:var(--bg);width:auto;max-width:100%;min-height:32px;color:var(--muted);border:1px solid var(--line);text-overflow:ellipsis;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}select.cat-chip.set{color:var(--accent);border-color:var(--accent)}select.cat-chip.unsure{color:var(--bad);border-color:var(--bad)}.offer{flex-direction:column;gap:6px;display:flex}input[type=search]{margin:8px 0 4px}.flag-row{border-top:1px solid var(--line);align-items:center;gap:2px;display:flex}.flag-row>.event-row{border-top:0;flex:1;min-width:0}.card>.flag-row:first-child,.card h2+.flag-row{border-top:0}.flag-btn{width:36px;height:44px;color:var(--muted);opacity:.45;background:0 0;border:0;border-radius:10px;flex:none;place-items:center;display:grid}.flag-btn:hover{color:var(--muted)}.flag-btn.on{color:var(--bad);opacity:1}.flag-row>.line-item{border-top:0;flex:1;min-width:0}.line-item>span:last-child,.line-item>b:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}.txn-row .flag-btn{align-self:center}.flag-toggle{border:1px dashed var(--line);min-height:44px;color:var(--muted);background:0 0;border-radius:12px;font-weight:600}.flag-toggle.on{border-style:solid;border-color:var(--bad);color:var(--bad)}.review-item.pending{background:var(--soft);border-radius:12px;padding:0 8px}.pill.confirm{background:var(--accent);border-color:var(--accent);color:var(--on-accent);animation:1.1s ease-in-out infinite confirm-flash}@keyframes confirm-flash{0%,to{box-shadow:0 0 0 0 var(--accent);opacity:1}50%{opacity:.55;box-shadow:0 0 0 6px #0000}}@media (prefers-reduced-motion:reduce){.pill.confirm{outline:3px solid var(--accent);outline-offset:2px;animation:none}}.menu{padding:4px 8px}.menu-item{border:0;border-top:1px solid var(--line);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;padding:14px 6px;font-size:18px;font-weight:600;display:flex}.menu-item:first-child{border-top:0}.vault-item{border-top:1px solid var(--line);padding:10px 0}.vault-item:first-child{border-top:0}.secret{align-items:center;gap:6px;margin-top:4px;display:flex}.secret span{overflow-wrap:anywhere;flex:1;min-width:0}.mono{font-family:ui-monospace,Menlo,monospace}.pattern svg{aspect-ratio:1;width:min(80vw,300px);margin:8px auto;display:block}.signin{max-width:420px;padding:max(48px, env(safe-area-inset-top)) 20px 32px;margin:0 auto}.signin-icon{border-radius:18px;margin-bottom:8px;display:block}.signin form{display:block}.signin label{margin:10px 0 6px;font-weight:600;display:block}.signin input{margin-bottom:8px}.signin form button[type=submit]{background:var(--accent);width:100%;min-height:50px;color:var(--on-accent);border:0;border-radius:12px;margin-top:8px;font-weight:700}.print-overlay{z-index:90;padding:max(12px, env(safe-area-inset-top)) 12px 24px;background:#0009;position:fixed;inset:0;overflow:auto}.print-bar{gap:8px;max-width:700px;margin:0 auto 12px;display:flex}.invoice{color:#222;background:#fff;border-radius:8px;max-width:700px;margin:0 auto;padding:36px 32px}.invoice header{border-bottom:3px solid #2f5f9e;justify-content:space-between;gap:16px;margin-bottom:20px;padding-bottom:16px;display:flex}.invoice h1{font-size:22px}.invoice h2{color:#2f5f9e;letter-spacing:3px;margin:0}.invoice .right{text-align:right}.invoice p{margin:2px 0;font-size:14px}.invoice .label{text-transform:uppercase;letter-spacing:1px;color:#777;margin-top:12px;font-size:11px}.invoice table{border-collapse:collapse;width:100%;margin:20px 0;font-size:14px}.invoice th{text-align:left;text-transform:uppercase;color:#777;border-bottom:1px solid #ddd;padding:6px 4px;font-size:11px}.invoice td{border-bottom:1px solid #eee;padding:10px 4px}.invoice td:not(:first-child),.invoice th:not(:first-child){text-align:right;white-space:nowrap}.invoice-total{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#eef2f7;border-radius:6px;justify-content:space-between;align-items:center;padding:12px 14px;font-size:18px;display:flex}.paid-stamp{color:#1f6b49;letter-spacing:2px;border:2px solid #1f6b49;border-radius:6px;margin-top:14px;padding:4px 12px;font-weight:800;display:inline-block}@media print{body *{visibility:hidden}.print-overlay,.print-overlay *{visibility:visible}.print-overlay{background:0 0;padding:0;position:absolute;inset:0;overflow:visible}.no-print{display:none!important}.invoice{padding:0}}details.more summary{cursor:pointer;color:var(--accent);align-items:center;min-height:44px;font-weight:600;display:flex}details.more>.form{margin-top:6px}.mileage .mi-options{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:8px;display:flex}.mi-day{border-top:1px solid var(--line);padding:8px 0}.mi-day-head{margin:2px 0 4px}.mi-add{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.mi-add .btn{min-height:48px}.pill.fill-all{width:100%;min-height:44px;margin:4px 0 8px}.pill.wide{min-height:44px}
