:root{--bg:#f4f5f7;--surface:#fff;--text:#14181f;--muted:#6b7280;--border:#e5e7eb;--accent:#2563eb;--accent-dark:#1d4ed8;--green:#0f9d58;--green-bg:#e7f7ee;--red:#d93025;--red-bg:#fdecea;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0}.loading{height:100vh;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:20px;display:flex}.loading.error p{color:var(--red);font-weight:600}.loading .submit-btn{width:auto;padding:10px 22px}.app{background:var(--bg);max-width:480px;min-height:100dvh;margin:0 auto;position:relative}.screen{min-height:100dvh;padding-bottom:calc(24px + env(safe-area-inset-bottom));flex-direction:column;display:flex}.topbar{padding:calc(14px + env(safe-area-inset-top)) 18px 14px;background:var(--bg);z-index:5;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar h1{text-align:center;flex-grow:1;margin:0;font-size:20px;font-weight:700}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;min-width:60px;padding:4px;font-size:15px;font-weight:600}.link-btn.danger{color:var(--red);text-align:right}.topbar-user{color:var(--muted);min-width:60px;font-size:13px;font-weight:600}.auth-screen{justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:18px;width:100%;max-width:360px;padding:32px 26px}.auth-title{margin:0 0 6px;font-size:26px;font-weight:800}.auth-subtitle{color:var(--muted);margin:0 0 22px;font-size:14px}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:12px 14px;font-size:16px}.auth-error{color:var(--red);text-align:left;margin:0;font-size:13.5px}.auth-switch{margin:18px auto 0;display:block}.summary{gap:10px;padding:0 18px 16px;display:flex}.summary-item{background:var(--surface);text-align:center;border:1px solid var(--border);border-radius:12px;flex:1;padding:12px 10px}.summary-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11px;display:block}.summary-value{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.summary-value.positive{color:var(--green)}.summary-value.negative{color:var(--red)}.friend-list{flex-direction:column;flex-grow:1;gap:8px;padding:0 18px;display:flex}.friend-row{background:var(--surface);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;font-size:16px;display:flex}.friend-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-weight:700;display:flex}.friend-name{flex-grow:1;font-weight:600}.friend-balance{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.friend-balance.positive{color:var(--green)}.friend-balance.negative{color:var(--red)}.friend-balance.zero{color:var(--muted);font-weight:500}.empty-hint{color:var(--muted);text-align:center;margin-top:40px;padding:0 20px;font-size:14px}.fab{right:24px;bottom:calc(24px + env(safe-area-inset-bottom));background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;width:56px;height:56px;font-size:28px;line-height:1;position:fixed;box-shadow:0 4px 14px #2563eb66}.balance-hero{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;margin:0 18px 16px;padding:22px}.balance-hero-label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.balance-hero-value{font-variant-numeric:tabular-nums;font-size:34px;font-weight:800}.balance-hero.positive .balance-hero-value{color:var(--green)}.balance-hero.negative .balance-hero-value{color:var(--red)}.balance-hero.zero .balance-hero-value{color:var(--muted)}.tx-form{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;margin:0 18px 16px;padding:14px;display:flex}.tx-toggle{background:var(--bg);border-radius:10px;gap:3px;padding:3px;display:flex}.tx-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px;font-size:13.5px;font-weight:600}.tx-toggle button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000014}.tx-fields{gap:8px;display:flex}.tx-fields input,.tx-form input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;width:100%;padding:11px 12px;font-size:16px}.tx-fields input:first-child{flex:0 0 110px}.tx-fields input:last-child{flex:1}.submit-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:700}.submit-btn:active{background:var(--accent-dark)}.tx-list{flex-direction:column;gap:8px;padding:0 18px;display:flex}.tx-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 40px 12px 14px;position:relative}.tx-row-main{justify-content:space-between;align-items:baseline;display:flex}.tx-amount{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.tx-amount.positive{color:var(--green)}.tx-amount.negative{color:var(--red)}.tx-date{color:var(--muted);font-size:12.5px}.tx-note{color:var(--muted);margin:4px 0 0;font-size:13.5px}.tx-delete{color:var(--muted);cursor:pointer;background:0 0;border:none;width:28px;height:28px;font-size:20px;line-height:1;position:absolute;top:8px;right:8px}.sheet-overlay{z-index:20;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:480px;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;flex-direction:column;gap:14px;margin:0 auto;display:flex}.sheet h2{margin:0;font-size:18px}.sheet input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;padding:12px;font-size:16px}.sheet-actions{justify-content:space-between;align-items:center;display:flex}
