:root{--ink: #1a1730;--paper: #ffffff;--paper-2: #f4f1fb;--bg: #f6f4fc;--indigo: #6c47d6;--indigo-700: #5733bf;--violet-soft: #ede7fb;--grad: linear-gradient(135deg, #7c5cff 0%, #6c47d6 55%, #9d4edd 100%);--owe: #c4453a;--owed: #2f8f6b;--settled: #1faa6b;--line: #e7e2f3;--muted: #6f6a85;--focus: #7c5cff;--radius: 16px;--radius-lg: 22px;--shadow: 0 1px 2px rgba(26, 23, 48, .04), 0 8px 24px rgba(108, 71, 214, .07);--shadow-lift: 0 10px 30px rgba(108, 71, 214, .18);--glow: 0 0 0 4px rgba(124, 92, 255, .18)}@media(prefers-color-scheme:dark){:root{--ink: #ece9f7;--paper: #1c1930;--paper-2: #24213a;--bg: #131124;--indigo: #9b81f0;--indigo-700: #b3a0f5;--violet-soft: #2c2750;--grad: linear-gradient(135deg, #8a6bff 0%, #7c5cff 55%, #b15de0 100%);--line: #322d4d;--muted: #9a95b4;--owe: #e8867a;--owed: #6fd6a8;--settled: #6fe0a8;--focus: #9b81f0;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px rgba(0, 0, 0, .45);--shadow-lift: 0 12px 34px rgba(0, 0, 0, .55);--glow: 0 0 0 4px rgba(155, 129, 240, .22)}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 600px at 50% -10%,var(--violet-soft),transparent 70%),var(--bg);background-attachment:fixed;color:var(--ink);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-feature-settings:"tnum" 1,"cv05" 1;-webkit-font-smoothing:antialiased;line-height:1.45}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:600;letter-spacing:-.01em;margin:0}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}.app{max-width:480px;margin:0 auto;padding:16px 16px 48px;display:flex;flex-direction:column;gap:16px}.tnum{font-variant-numeric:tabular-nums}.masthead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-top:8px}.masthead h1{font-size:1.75rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.masthead .sub{color:var(--muted);font-size:.875rem}.brand{display:flex;align-items:center;gap:10px}.brand-mark{flex:none;width:34px;height:34px;filter:drop-shadow(0 4px 10px rgba(108,71,214,.35))}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card.sunk{background:var(--paper-2);box-shadow:none}.btn{border:1px solid var(--line);border-radius:12px;padding:11px 16px;min-height:44px;font-weight:600;background:var(--paper-2);color:var(--ink);transition:transform .06s ease,box-shadow .16s ease,filter .16s ease}.btn:active{transform:translateY(1px)}.btn.primary{border-color:transparent;background:var(--grad);background-size:140% 140%;color:#fff;box-shadow:var(--shadow-lift)}.btn.primary:hover{filter:brightness(1.05);background-position:100% 0}.btn.ghost{background:transparent;border-color:var(--line)}.btn.ghost:hover{background:var(--violet-soft)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.block{width:100%}.amount{font-variant-numeric:tabular-nums;font-weight:600}.amount.big{font-family:Fraunces,Georgia,serif;font-size:2.5rem;line-height:1}.amount.owe{color:var(--owe)}.amount.owed{color:var(--owed)}.amount.settled{color:var(--settled)}.balance-card{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.balance-card .label{color:var(--muted);font-size:.875rem}.balance-card .square{font-family:Fraunces,Georgia,serif;font-size:1.75rem}.chip{display:inline-flex;align-items:center;gap:7px}.chip .ava{width:26px;height:26px;border-radius:50%;background:var(--indigo);color:#fff;display:grid;place-items:center;font-size:.75rem;font-weight:700;overflow:hidden}.chip .ava img{width:100%;height:100%;object-fit:cover}.row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.row .meta{display:flex;flex-direction:column;gap:2px;min-width:0}.row .meta .title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .meta .sub{color:var(--muted);font-size:.8125rem}.plan-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.plan-row:last-child{border-bottom:none}.plan-row .desc{display:flex;flex-direction:column;gap:2px}.plan-row .note{color:var(--muted);font-size:.8125rem}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:.8125rem;color:var(--muted);font-weight:600}.field input,.field select{font:inherit;padding:12px 13px;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);transition:border-color .14s ease,box-shadow .14s ease}.field input:focus,.field select:focus{border-color:var(--focus);outline:none;box-shadow:var(--glow)}.checks{display:flex;flex-wrap:wrap;gap:8px}.checks label{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:.875rem}.checks input{accent-color:var(--indigo)}.muted{color:var(--muted)}.error{color:var(--owe);font-size:.875rem}.empty{text-align:center;color:var(--muted);padding:24px 8px;display:flex;flex-direction:column;gap:14px;align-items:center}.section-title{font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.stack{display:flex;flex-direction:column;gap:8px}.spread{display:flex;align-items:center;justify-content:space-between;gap:8px}.pill{font-size:.75rem;padding:2px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.sr-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.settle-flow{margin:8px 0 2px;max-width:260px}.flow-track{stroke:var(--line);stroke-width:2;stroke-linecap:round}.flow-track.done{stroke:var(--settled)}.flow-node{fill:var(--paper);stroke:var(--indigo);stroke-width:2}.flow-node.arrived{fill:var(--settled);stroke:var(--settled)}.flow-dot{fill:var(--indigo)}.flow-ends{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:2px}.graph{margin:4px 0 10px}.ring-closed{stroke:var(--settled);stroke-width:2;stroke-dasharray:3 7;stroke-linecap:round;opacity:.7}.gross-arc{stroke:var(--owe);stroke-width:1.25;opacity:.42;transition:opacity .5s ease}.graph.collapsed .gross-arc{opacity:0}.plan-arc{stroke:var(--indigo);stroke-width:2;opacity:0;transition:opacity .6s ease,stroke-width .6s ease}.graph.collapsed .plan-arc{opacity:.95;stroke-width:4}.plan-arc.settled{stroke:var(--settled)}.arrow-head{fill:var(--indigo)}.arrow-head.settled{fill:var(--settled)}.arc-label{fill:var(--ink);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--paper);stroke-width:3px}.arc-label.settled{fill:var(--settled)}.node-dot{fill:var(--indigo)}.node-mono{fill:#fff;font-size:12px;font-weight:700}.node-name{fill:var(--muted);font-size:11px;font-weight:600}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app>.card,.app>.masthead{animation:rise .32s ease both}.plan-row,.row{animation:rise .26s ease both}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.flow-dot{display:none}}
