:root{--paper: #f6f1e7;--paper-2: #efe7d8;--card: #fffdf8;--ink: #1c1a17;--ink-soft: #5c554a;--ink-faint: #8d8577;--line: #e3dac9;--accent: #c2492f;--accent-dark: #9d3a25;--green: #2e7d4f;--green-bg: #e5f0e8;--red-bg: #f7e4df;--mono: "IBM Plex Mono", ui-monospace, monospace;--serif: "Fraunces", Georgia, serif}*{box-sizing:border-box;margin:0}html,body{height:100%}body{background:var(--paper);background-image:radial-gradient(#00000008 1px,transparent 1px);background-size:22px 22px;color:var(--ink);font-family:var(--mono);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{max-width:860px;margin:0 auto;padding:20px 16px 96px;min-height:100%}h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.01em}button{font-family:var(--mono);font-size:13px;cursor:pointer;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:8px;box-shadow:2px 2px 0 var(--ink);transition:transform .06s ease,box-shadow .06s ease}button:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}button:active:not(:disabled){transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--ink);color:var(--paper)}button.accent{background:var(--accent);border-color:var(--accent-dark);color:#fff;box-shadow:2px 2px 0 var(--accent-dark)}button.accent:hover:not(:disabled){box-shadow:3px 3px 0 var(--accent-dark)}button.ghost{border-color:var(--line);box-shadow:none;background:transparent;color:var(--ink-soft)}button.ghost:hover:not(:disabled){border-color:var(--ink);color:var(--ink);box-shadow:none}input,textarea{font-family:var(--mono);font-size:14px;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;width:100%}input:focus,textarea:focus{outline:none;border-color:var(--ink)}label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:5px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.brand{display:flex;align-items:baseline;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.brand .mark{width:34px;height:34px;align-self:center;transform:rotate(-4deg)}.brand h1{font-size:34px;font-weight:900}.brand .tagline{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.14em}.account-chip{display:flex;align-items:center;gap:8px;background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12px}.net-pill{font-size:11px;border-radius:999px;padding:2px 9px;border:1px solid transparent}.net-pill.ok{background:var(--green-bg);color:var(--green)}.net-pill.bad{background:var(--red-bg);color:var(--accent);cursor:pointer;border-color:var(--accent)}.hero{text-align:center;padding:48px 12px 20px;max-width:560px;margin:0 auto}.hero .stamp-mark{width:110px;height:110px;margin-bottom:22px;transform:rotate(-2deg)}.hero h2{font-size:30px;margin-bottom:12px}.hero p{color:var(--ink-soft);margin-bottom:26px}.hero .fine{margin-top:18px;font-size:11px;color:var(--ink-faint)}.hero .fine a{color:inherit}.receipt{background:var(--card);border:1.5px solid var(--line);border-radius:12px 12px 0 0;padding:18px 18px 24px;position:relative;--notch: radial-gradient(circle at 8px -2px, transparent 7px, var(--card) 8px)}.receipt:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px;background-image:radial-gradient(circle at 8px 0,transparent 6px,var(--card) 7px);background-size:16px 8px;background-repeat:repeat-x}.receipt+.receipt,.stack>*+*{margin-top:22px}.receipt-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1.5px dashed var(--line);padding-bottom:10px;margin-bottom:12px}.receipt-head h3{font-size:20px}.receipt-head .meta{font-size:11px;color:var(--ink-faint)}.tab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.tab-card{background:var(--card);border:1.5px solid var(--line);border-radius:12px;padding:16px;cursor:pointer;transition:transform .08s ease,box-shadow .08s ease,border-color .08s}.tab-card:hover{transform:translateY(-2px) rotate(-.4deg);border-color:var(--ink);box-shadow:4px 4px 0 var(--ink)}.tab-card h3{font-size:19px;margin-bottom:6px}.tab-card .sub{font-size:11px;color:var(--ink-faint);margin-bottom:12px}.balance-line{font-size:13px}.balance-line strong{font-size:16px}.pos{color:var(--green)}.neg{color:var(--accent)}.zero{color:var(--ink-faint)}.member-row{display:flex;flex-wrap:wrap;gap:8px}.member-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:4px 11px 4px 6px;font-size:12px;cursor:pointer}.member-chip:hover{border-color:var(--ink)}.dot{width:16px;height:16px;border-radius:50%;border:1px solid #00000022;flex:none}.you-badge{font-size:9px;text-transform:uppercase;letter-spacing:.1em;background:var(--ink);color:var(--paper);padding:1px 6px;border-radius:999px}.debt-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:13px}.debt-row:last-child{border-bottom:none}.debt-row .who{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.arrow{color:var(--ink-faint)}.amount{font-weight:600;white-space:nowrap}.settled-note{text-align:center;color:var(--green);font-size:13px;padding:14px 0 4px}.settled-note .stamp-paid{display:inline-block;border:2px solid var(--green);color:var(--green);border-radius:8px;padding:4px 14px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;transform:rotate(-3deg);font-size:14px}.feed-item{display:flex;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line);font-size:13px;align-items:baseline}.feed-item:last-child{border-bottom:none}.feed-item .when{flex:none;width:74px;color:var(--ink-faint);font-size:11px}.feed-item .what{flex:1;min-width:0}.feed-item .memo{font-weight:600}.feed-item .detail{color:var(--ink-soft);font-size:12px}.feed-amount{white-space:nowrap;font-weight:600}.feed-tag{font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:1px 7px;border-radius:999px;margin-right:6px}.feed-tag.expense{background:var(--paper-2);color:var(--ink-soft)}.feed-tag.paid{background:var(--green-bg);color:var(--green)}.form-grid{display:grid;gap:14px}.row-2{display:grid;grid-template-columns:1fr 150px;gap:12px}.mate-row{display:grid;grid-template-columns:1fr 160px auto auto;gap:8px;align-items:center}.check-row{display:flex;flex-wrap:wrap;gap:8px}.check-chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--paper)}.check-chip.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.hint{font-size:11px;color:var(--ink-faint)}.error-text{font-size:12px;color:var(--accent)}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%);background:var(--ink);color:var(--paper);border-radius:10px;padding:10px 18px;font-size:13px;display:flex;gap:12px;align-items:center;box-shadow:0 8px 30px #0005;z-index:50;max-width:min(92vw,560px)}.toast a{color:#f4b8a4}.spinner{width:13px;height:13px;border:2px solid #ffffff44;border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.section-title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin:26px 0 12px;display:flex;align-items:center;gap:10px}.section-title:after{content:"";flex:1;border-top:1.5px dashed var(--line)}.back-link{background:none;border:none;box-shadow:none;padding:0;color:var(--ink-faint);font-size:12px;margin-bottom:14px}.back-link:hover{color:var(--ink);box-shadow:none;transform:none}.empty{text-align:center;color:var(--ink-faint);padding:26px 0;font-size:13px}.mono-addr{font-size:11px;color:var(--ink-faint)}.footer-note{margin-top:40px;text-align:center;font-size:11px;color:var(--ink-faint)}.footer-note a{color:inherit}@media (max-width: 560px){.row-2,.mate-row{grid-template-columns:1fr}.brand .tagline{display:none}.feed-item .when{width:56px}}
