:root{--paper: #f4efe6;--ink: #1c1914;--muted: #6b6358;--line: #ddd4c6;--card: #fffcf7;--teal: #1f6f64;--teal-soft: #e4f3f0;--clay: #b85c38;--clay-soft: #f8ece6;--good: #1f6f64;--bad: #9b3b2a;--shadow: 0 10px 30px rgba(40, 28, 12, .06);font-family:Segoe UI,Helvetica Neue,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(1200px 500px at 10% -10%,#efe4d2 0%,transparent 50%),var(--paper)}h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:650}button,input,select,textarea{font:inherit}.app{max-width:1180px;margin:0 auto;padding:28px 20px 64px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:22px}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}h1{margin:4px 0 0;font-size:34px}.subtitle{margin:6px 0 0;color:var(--muted)}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:18px;align-items:start}.stack{display:flex;flex-direction:column;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px}.card h2{margin:0 0 12px;font-size:20px}.row{display:flex;gap:10px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px}.field label,.legend{font-size:12px;color:var(--muted);font-weight:600}input,select{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px}input:focus,select:focus{outline:2px solid #c9e4df;border-color:var(--teal)}.btn{border:0;border-radius:999px;padding:9px 14px;background:var(--ink);color:#fff;cursor:pointer;font-weight:600}.btn:hover{opacity:.92}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:transparent;color:var(--bad);border:1px solid #ead2cc;padding:4px 10px;font-size:12px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.chip.on{background:var(--teal-soft);border-color:#b7d9d3;color:var(--teal);font-weight:700}.avatar{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;flex:0 0 auto}.expense{display:grid;grid-template-columns:28px 1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);align-items:start}.expense:last-child{border-bottom:0}.expense-title{font-weight:700}.expense-meta{color:var(--muted);font-size:13px;margin-top:2px}.cat{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--clay);background:var(--clay-soft);border-radius:999px;padding:2px 8px;margin-left:6px}.amount{font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.sort-label{font-size:12px;color:var(--muted);margin:-4px 0 8px}.balance-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.balance-row:last-child{border-bottom:0}.who{display:flex;align-items:center;gap:8px;font-weight:600}.owe{color:var(--bad);font-weight:700}.owed{color:var(--good);font-weight:700}.settled{color:var(--muted)}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{background:#f7f1e8;border-radius:12px;padding:10px 12px}.stat b{display:block;font-size:20px;margin-top:4px}.person-stat{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;border-bottom:1px dashed var(--line)}.hint{color:var(--muted);font-size:13px;margin:8px 0 0}.error{color:var(--bad);font-size:13px;margin:8px 0 0}.percent-grid{display:grid;gap:8px;margin-top:8px}.percent-row{display:grid;grid-template-columns:1fr 90px;gap:8px;align-items:center}.check{display:flex;gap:8px;align-items:center;font-size:14px}.empty{color:var(--muted);padding:12px 0}.transfer{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.transfer:last-child{border-bottom:0}.edit-amount{width:88px;text-align:right}.actions{display:flex;gap:6px;justify-content:flex-end;margin-top:6px}@media(max-width:900px){.workspace{grid-template-columns:1fr}h1{font-size:28px}}
