:root{--text:#111111;--muted:#666666;--line:#e4e4e4;--canvas:#f2f2f2;--paper:#ffffff;--ink:#111111}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--canvas);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.5}.shell,body{min-height:100dvh}.shell{display:flex;flex-direction:column;width:100%;max-width:375px;margin:0 auto;padding:28px 16px 32px;background:var(--paper)}h1{margin:0 0 8px;font-size:32px;line-height:1.25}h1,h2{font-weight:700}h2{margin:0 0 12px;font-size:20px;line-height:1.3}.alert,.detail,.empty,.kicker,.tagline{margin:0;font-size:16px}.detail,.empty,.kicker,.tagline{color:var(--muted)}.tagline{margin-bottom:28px}form{display:flex;flex-direction:column}label{margin-bottom:8px;font-size:16px;font-weight:600}input{width:100%;min-height:48px;margin-bottom:20px;padding:10px 14px;border:1px solid #cfcfcf;border-radius:12px;background:var(--paper);color:var(--text);font:inherit;font-size:16px}input::placeholder{color:#9a9a9a}.chip,.ghost,.primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;border-radius:12px;font:inherit;font-size:16px;text-decoration:none;cursor:pointer}.primary{width:100%;min-height:48px;padding:0 16px;border:0;background:var(--ink);color:#ffffff;font-weight:700}.ghost{padding:0 14px;border:1px solid var(--ink)}.chip,.ghost{background:var(--paper);color:var(--ink)}.chip{padding:0 18px;border:1px dashed var(--ink);border-radius:999px}.people-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.chip.add-person,.person-tag{margin:0}.person-tag{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 18px;border:1px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font:inherit;font-size:16px;cursor:pointer}.chip:focus-visible,.ghost:focus-visible,.person-tag:focus-visible,.primary:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.alert{margin-top:12px}.gathering-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.gathering-top h1{flex:1 1;margin:0}.gathering-actions{display:flex;flex-shrink:0;gap:8px}.gathering section{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.gathering{padding-bottom:88px}.kicker{margin-bottom:12px;font-weight:400}.dock{position:fixed;bottom:0;left:50%;width:min(375px,100%);padding:12px 16px calc(12px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--paper)}.not-found{display:flex;flex:1 1;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100dvh - 60px);text-align:center}.not-found h1{margin-bottom:12px}.not-found .detail{margin:0 0 28px}.not-found .primary{width:auto;min-width:168px;padding:0 32px}.sheet-root{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:rgb(0 0 0/40%)}.sheet{width:min(375px,100%);max-height:90dvh;padding:20px 16px calc(20px + env(safe-area-inset-bottom));overflow:auto;border-radius:16px 16px 0 0;background:var(--paper)}.sheet h2{margin-bottom:16px}.sheet .primary{margin-top:8px}.sheet .primary.inline{width:auto;flex:1 1}.sheet .ghost{width:100%;margin-top:10px}.sheet .ghost.danger{border-color:#b00020;color:#b00020}.sheet .ghost.sheet-cancel{margin-top:8px}.sheet .alert{margin:0 0 12px}.confirm-box{margin-top:12px}.confirm-box p{margin:0 0 12px;font-size:16px}.confirm-actions{display:flex;gap:10px}.confirm-actions .ghost{width:auto;flex:1 1;margin-top:0}.money{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-align:right}.settlement-table{width:100%;margin-bottom:12px;border-collapse:collapse;font-size:16px}.settlement-table td,.settlement-table th{padding:6px 0;vertical-align:top}.settlement-table thead th{font-weight:600;text-align:left}.settlement-table thead th.money-col{text-align:right}.settlement-table tbody th{font-weight:400;text-align:left}.settlement-table .net.positive{color:var(--ink);font-weight:600}.settlement-table .net.negative{color:var(--muted)}.transfer-list{margin:0;padding:0;list-style:none}.transfer-list li{margin:0 0 6px;font-size:16px}.transfer-list li:last-child{margin-bottom:0}.settlement-outcome .settled{margin:0;font-size:16px;font-weight:600}.field-label{margin:0 0 8px;font-size:16px;font-weight:600}.amount-field{display:flex;align-items:center;gap:8px;margin-bottom:20px}.amount-field input{margin-bottom:0;flex:1 1}.amount-prefix{font-size:16px;font-weight:600}.choice-list{margin:0 0 16px;padding:0;list-style:none}.choice-row{display:flex;align-items:center;gap:10px;min-height:44px;font-size:16px;cursor:pointer}.choice-row input{width:auto;min-height:auto;margin:0}.expense-list{margin:0;padding:0;list-style:none}.expense-row{display:block;width:100%;margin-bottom:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--text);font:inherit;font-size:16px;text-align:left;cursor:pointer}.expense-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}.expense-desc{font-weight:600}.expense-meta{margin:0 0 6px;color:var(--muted);font-size:16px}.expense-shares{margin:0;padding:0;list-style:none}.expense-shares li{display:flex;justify-content:space-between;gap:12px;font-size:16px}.dock .primary.is-disabled,.dock .primary[aria-disabled=true]{opacity:.45;cursor:not-allowed}.toast{position:fixed;bottom:calc(88px + env(safe-area-inset-bottom));left:50%;z-index:30;margin:0;padding:10px 16px;transform:translateX(-50%);border-radius:999px;background:rgb(17 17 17/92%);color:#ffffff;font-size:16px;pointer-events:none}