:root{--ground:#F6F4EF;--surface:#FFFFFF;--surface2:#EFECE4;--ink:#20242B;--muted:#6B7078;--line:#E3DFD6;--accent:#D9551C;--accent-ink:#FFFFFF;--navy:#22384F;--navy-soft:#E4EAF1;--paid:#2F7D4F;--paid-soft:#E1EFE7;--pend:#A96F0E;--pend-soft:#F5EBD6;--prop:#7A5EA6;--prop-soft:#ECE6F5;--shadow:0 10px 30px rgba(32,36,43,.1)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--ground:#14171C;--surface:#1D2128;--surface2:#242932;--ink:#EDEBE4;--muted:#9AA0A8;--line:#2C313A;--accent:#F0703A;--accent-ink:#1A130E;--navy:#8FB0D1;--navy-soft:#243447;--paid:#5FBE8C;--paid-soft:#1E3329;--pend:#D9A441;--pend-soft:#372C17;--prop:#B49BE0;--prop-soft:#2C2540;--shadow:0 10px 30px rgba(0,0,0,.35)}}:root[data-theme=dark]{--ground:#14171C;--surface:#1D2128;--surface2:#242932;--ink:#EDEBE4;--muted:#9AA0A8;--line:#2C313A;--accent:#F0703A;--accent-ink:#1A130E;--navy:#8FB0D1;--navy-soft:#243447;--paid:#5FBE8C;--paid-soft:#1E3329;--pend:#D9A441;--pend-soft:#372C17;--prop:#B49BE0;--prop-soft:#2C2540;--shadow:0 10px 30px rgba(0,0,0,.35)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100vh}body{background:var(--ground);color:var(--ink);font-family:Barlow,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.45}#root{display:flex;justify-content:center}.app{width:100%;max-width:440px;display:flex;flex-direction:column;min-height:100vh;position:relative}header{position:sticky;top:0;z-index:20;background:var(--ground);padding:14px 18px 10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.backbtn{flex:0 0 auto;width:34px;height:34px;margin-left:-6px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-size:22px;line-height:1;padding-bottom:3px;display:flex;align-items:center;justify-content:center;cursor:pointer}.backbtn:active{transform:scale(.94)}.logo{font-family:Anton,Impact,sans-serif;font-size:26px;letter-spacing:.5px;line-height:1;text-transform:uppercase}.logo small{display:block;font-family:Barlow;font-weight:600;font-size:11px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-top:3px}.head-total{margin-left:auto;text-align:right}.head-total .amt{font-family:Anton,Impact,sans-serif;font-size:24px;color:var(--accent);line-height:1;font-variant-numeric:tabular-nums}.head-total .lbl{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.capbtn{border:1.5px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:6px 12px;font:600 12px Barlow;letter-spacing:.06em;cursor:pointer;text-transform:uppercase;flex-shrink:0}.capbtn.on{background:#22384f;border-color:#22384f;color:#f6f4ef}main{flex:1;padding:16px 16px 120px;overflow-x:hidden}h2.sec{font-family:Anton,Impact,sans-serif;font-size:20px;text-transform:uppercase;letter-spacing:.5px;margin:4px 2px 12px;text-wrap:balance}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.dayhdr{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:18px 4px 8px}.fine{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface)}.fine:last-child{border-bottom:none}.fine.prop{background:var(--prop-soft)}.ava{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:var(--surface2);color:var(--ink);border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:Anton,Impact,sans-serif;font-size:15px}.fine .who{flex:1;min-width:0}.fine .who b{font-weight:600;display:block}.fine .who span{font-size:13px;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fine .amt{font-family:Anton,Impact,sans-serif;font-size:19px;font-variant-numeric:tabular-nums;text-align:right}.chip{font:600 11px Barlow;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:4px 10px;border:none;cursor:default;white-space:nowrap}.chip.pend{background:var(--pend-soft);color:var(--pend)}.chip.paid{background:var(--paid-soft);color:var(--paid)}.chip.prop{background:var(--prop-soft);color:var(--prop);border:1px dashed var(--prop)}.chip.click{cursor:pointer}.del{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px;line-height:1}.propact{display:flex;gap:6px}.propact button{border:none;border-radius:8px;padding:6px 10px;font:600 12px Barlow;cursor:pointer}.propact .ok{background:var(--paid);color:#fff}.propact .no{background:var(--surface2);color:var(--muted)}.filterrow{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;-webkit-overflow-scrolling:touch}.filterrow::-webkit-scrollbar{display:none}.fchip{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 13px;font:600 13px Barlow;cursor:pointer;white-space:nowrap}.fchip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.rank{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}.rank:last-child{border-bottom:none}.rank .pos{font-family:Anton,Impact,sans-serif;font-size:16px;width:26px;color:var(--muted);text-align:center}.rank:first-child .pos{color:var(--accent);font-size:20px}.rank .mid{flex:1;min-width:0}.rank .mid b{font-weight:600}.bar{height:6px;border-radius:3px;background:var(--surface2);margin-top:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);border-radius:3px}.rank .tot{font-family:Anton,Impact,sans-serif;font-size:18px;font-variant-numeric:tabular-nums;text-align:right}.rank .tot small{display:block;font-family:Barlow;font-weight:600;font-size:11px;color:var(--muted)}.hero{background:#22384f;color:#f6f4ef;border-radius:16px;padding:22px 20px 18px;box-shadow:var(--shadow);margin-bottom:14px}.hero .big{font-family:Anton,Impact,sans-serif;font-size:52px;line-height:1;font-variant-numeric:tabular-nums}.hero .lbl{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin-bottom:6px}.hero .split{display:flex;gap:18px;margin-top:16px;border-top:1px solid rgba(246,244,239,.18);padding-top:12px}.hero .split div{flex:1}.hero .split .v{font-family:Anton,Impact,sans-serif;font-size:20px;font-variant-numeric:tabular-nums}.hero .split .k{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;opacity:.7}.hero .v.ok{color:#8fd8af}.hero .v.ko{color:#f2c879}.hero .heronote{font-size:12px;font-weight:600;color:#f2c879;margin-top:12px}.hero .goal{margin-top:14px}.hero .goalbar{height:8px;border-radius:4px;background:#f6f4ef2e;overflow:hidden}.hero .goalbar i{display:block;height:100%;background:#ff8a4a;border-radius:4px;transition:width .4s ease}.hero .goaltxt{font-size:12px;font-weight:600;letter-spacing:.03em;opacity:.85;margin-top:7px}.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px}.stat .v{font-family:Anton,Impact,sans-serif;font-size:22px;font-variant-numeric:tabular-nums}.stat .k{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}.months{display:flex;align-items:flex-end;gap:8px;height:110px;padding:16px 14px 8px}.mcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.mcol .mbar{width:100%;max-width:34px;background:var(--accent);border-radius:5px 5px 2px 2px;min-height:3px}.mcol .ml{font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.mcol .mv{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;gap:12px;padding:13px 14px;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.row .grow b{font-weight:600}.row .grow span{font-size:12.5px;color:var(--muted);display:block}.row .price{font-family:Anton,Impact,sans-serif;font-size:18px;font-variant-numeric:tabular-nums}.tag{font:600 10px Barlow;letter-spacing:.1em;text-transform:uppercase;background:var(--navy-soft);color:var(--navy);border-radius:6px;padding:3px 7px}.tag.click{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;padding:4px 8px}.addline{width:100%;border:1.5px dashed var(--line);background:none;color:var(--muted);border-radius:12px;padding:12px;font:600 14px Barlow;cursor:pointer;margin-top:10px}.fab{position:fixed;bottom:86px;right:calc(50% - 204px);z-index:30;background:var(--accent);color:var(--accent-ink);border:none;border-radius:999px;padding:15px 22px;font:700 15px Barlow;letter-spacing:.04em;cursor:pointer;box-shadow:0 8px 24px #d9551c66}@media (max-width:470px){.fab{right:16px}}nav{position:fixed;bottom:0;z-index:30;width:100%;max-width:440px;background:var(--surface);border-top:1px solid var(--line);display:flex;padding:6px 4px calc(8px + env(safe-area-inset-bottom))}nav button{flex:1;background:none;border:none;color:var(--muted);cursor:pointer;font:600 10.5px Barlow;letter-spacing:.06em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0}nav button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}nav button.on{color:var(--accent)}nav button:focus-visible,.fab:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f111580;z-index:40;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:440px;background:var(--ground);border-radius:20px 20px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));max-height:86vh;overflow-y:auto}.sheet h3{font-family:Anton,Impact,sans-serif;font-size:20px;text-transform:uppercase;margin:0 0 14px}.pickgrid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.pick{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;font:600 14px Barlow;cursor:pointer}.pick.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pick.motivo{border-radius:12px;width:100%;text-align:left;display:flex;justify-content:space-between;gap:10px}.pick .p2{font-variant-numeric:tabular-nums;font-weight:700}.sheet label,.landing label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:block;margin:14px 2px 6px}.sheet input,.sheet select,.landing input{width:100%;padding:11px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:500 15px Barlow}.sheetbtns{display:flex;gap:10px;margin-top:20px}.btn{flex:1;border:none;border-radius:12px;padding:14px;font:700 15px Barlow;cursor:pointer}.btn.pri{background:var(--accent);color:var(--accent-ink)}.btn.sec{background:var(--surface2);color:var(--ink)}.btn:disabled{opacity:.45;cursor:not-allowed}.hint{font-size:12.5px;color:var(--muted);margin:8px 2px 0}.empty{padding:34px 20px;text-align:center;color:var(--muted);font-size:14px}.reset{background:none;border:none;color:var(--muted);font:600 12px Barlow;cursor:pointer;text-decoration:underline;display:block;margin:26px auto 0}@media (prefers-reduced-motion:no-preference){.sheet{animation:up .22s ease-out}@keyframes up{0%{transform:translateY(40px);opacity:.6}to{transform:none;opacity:1}}}.landing{width:100%;max-width:440px;padding:40px 22px;display:flex;flex-direction:column;gap:10px}.landing .logo{font-size:44px;margin-bottom:2px}.landing .tagline{color:var(--muted);margin:0 0 18px;font-size:15px}.landing .card{padding:18px}.landing h3{font-family:Anton,Impact,sans-serif;font-size:18px;text-transform:uppercase;margin:0 0 6px}.landing .btn{width:100%;margin-top:14px}.banner{background:var(--pend-soft);color:var(--pend);font:600 12px Barlow;padding:8px 14px;text-align:center;letter-spacing:.04em}.invitebox{display:flex;align-items:center;gap:10px;background:var(--surface);border:1.5px dashed var(--line);border-radius:12px;padding:12px 14px;margin-top:10px}.invitebox code{font:700 15px ui-monospace,monospace;letter-spacing:.12em;flex:1}.invitebox button{border:none;background:var(--surface2);color:var(--ink);border-radius:8px;padding:8px 12px;font:600 12px Barlow;cursor:pointer;white-space:nowrap}.invitebox input{flex:1;padding:9px 10px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:500 14px Barlow}.errmsg{background:var(--prop-soft);color:var(--prop);border-radius:10px;padding:10px 14px;font-size:14px}.spin{padding:60px 20px;text-align:center;color:var(--muted)}
