*{box-sizing:border-box}html{color:#0f172a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f1f5f9;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}body{margin:0}#root{min-height:100vh}button,input,select,textarea{font:inherit;max-width:100%}button{cursor:pointer}input,select,textarea,button{min-height:42px}h1,h2,h3,h4{line-height:1.25}p{line-height:1.5}a{color:#1d4ed8}.public-page{background:#f1f5f9;min-height:100vh;padding:22px 14px 40px}.public-wrap{max-width:650px;margin:auto}.public-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.public-header h1{margin:7px 0}.public-header p{color:#475569;margin:0}.eyebrow{letter-spacing:.13em;color:#475569;font-size:11px;font-weight:800}.refresh{background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:10px 14px;font-weight:600}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stats>div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:0;padding:15px 10px}.stats small{color:#64748b;margin-bottom:8px;display:block}.stats strong{overflow-wrap:anywhere;font-size:clamp(15px,3vw,22px)}.people{gap:10px;display:grid}.person,.bank{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:17px}.person-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.state{border-radius:30px;padding:6px 9px;font-size:12px;font-weight:700}.state.paid{color:#166534;background:#dcfce7}.state.partial{color:#92400e;background:#fef3c7}.state.pending{color:#991b1b;background:#fee2e2}.amounts{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:16px 0;display:grid}.amounts span{color:#64748b;flex-direction:column;gap:5px;font-size:12px;display:flex}.amounts b{color:#0f172a;font-size:15px}.progress{background:#e2e8f0;border-radius:10px;height:7px;overflow:hidden}.progress div{background:#16a34a;border-radius:10px;height:100%}.bank{margin-top:22px}.bank h2{margin-top:0}.bank p{margin:8px 0}.foot{color:#64748b;margin-top:22px;font-size:13px}.error{color:#9f1239;background:#fff1f2;border-radius:10px;padding:16px}@media (width<=380px){.stats>div{padding:10px 7px}.amounts b{font-size:13px}}.public-page{color:#17243b;background:#f4f6fa;padding:28px 16px 56px}.public-wrap{max-width:900px}.public-header{align-items:center;margin-bottom:24px}.public-header h1{letter-spacing:-.035em;margin:8px 0 7px;font-size:clamp(25px,4.4vw,36px)}.public-header .eyebrow{color:#53627a}.refresh{white-space:nowrap;border:1px solid #d5dce7;box-shadow:0 2px 8px #17243b0b}.refresh:hover:not(:disabled){background:#f8fafc;border-color:#9aabc1}.refresh:disabled{opacity:.6;cursor:wait}.overview{background:#fff;border:1px solid #e3e9f1;border-radius:20px;grid-template-columns:minmax(210px,.85fr) minmax(0,1.4fr);gap:24px;padding:28px;display:grid;box-shadow:0 8px 28px #17243b0a}.overview-chart{flex-direction:column;justify-content:center;align-items:center;gap:18px;display:flex}.donut{background:conic-gradient(#15803d var(--percentage),#e9a4a8 var(--percentage) 100%);border-radius:50%;place-items:center;width:188px;height:188px;display:grid;box-shadow:inset 0 0 0 1px #0000000a}.donut-center{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:139px;height:139px;display:flex}.donut-center strong{letter-spacing:-.05em;font-size:40px;line-height:1}.donut-center span{color:#69778b;margin-top:8px;font-size:13px}.donut-legend{color:#66748a;gap:20px;font-size:12px;font-weight:650;display:flex}.donut-legend>span{align-items:center;gap:7px;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot-paid{background:#15803d}.dot-due{background:#e9a4a8}.overview-figures{flex-direction:column;justify-content:center;min-width:0;display:flex}.summary-eyebrow{letter-spacing:.14em;color:#68788f;font-size:11px;font-weight:800}.overview-total{border-bottom:1px solid #e7edf5;flex-direction:column;gap:5px;padding:15px 0 18px;display:flex}.overview-total small,.overview-metrics small{color:#65748a;font-size:13px}.overview-total strong{letter-spacing:-.04em;overflow-wrap:anywhere;font-size:clamp(29px,5vw,42px)}.overview-metrics{grid-template-columns:1fr 1fr;gap:14px;padding:20px 0;display:grid}.overview-metrics>div{flex-direction:column;gap:6px;min-width:0;display:flex}.overview-metrics strong{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(18px,3vw,25px)}.overview-metrics>div:first-child strong{color:#15803d}.overview-metrics>div:last-child strong{color:#b4232d}.overview-counter{color:#53647a;background:#f3f6fa;border-radius:9px;padding:11px 12px;font-size:12px;font-weight:650}.section-title{justify-content:space-between;align-items:end;gap:12px;margin:30px 0 14px;display:flex}.section-title h2{letter-spacing:-.025em;margin:5px 0 0;font-size:21px}.section-count{color:#68788f;font-size:12px;font-weight:650}.people{gap:12px}.person{border-radius:15px;padding:19px 22px;transition:background .2s}.person.person-owing{background:#fff0f1;border:1px solid #efb6bd;border-left:5px solid #cf3444}.person.person-settled{color:#64748b;background:#e9edf2;border:1px solid #dce2e9;border-left:5px solid #a4afbd}.person-head{flex-wrap:wrap;gap:8px}.person-identity{align-items:center;gap:11px;min-width:0;display:flex}.person-identity strong{overflow-wrap:anywhere;font-size:16px}.person-index{color:#8b99ab;background:#ffffff9c;border-radius:7px;padding:7px;font-size:11px;font-weight:800}.person-owing .person-identity strong{color:#801c29}.person-settled .person-identity strong{color:#637185}.person-settled .state.paid{color:#64748b;background:#dce2e9;border:1px solid #ccd5df}.person-owing .state.pending,.person-owing .state.partial{color:#9b1c2a;background:#ffe1e4;border:1px solid #f1b5bd}.amounts{gap:12px;margin:18px 0 15px}.amounts span{color:#69788d}.amounts b{color:#2a3950;letter-spacing:-.025em;font-size:17px}.person-owing .balance-amount b{color:#b4232d}.person-settled .amounts b{color:#7c899a}.person .progress{background:#ffffffbd;height:6px}.person-owing .progress div{background:#ce4c58}.person-settled .progress div{background:#aab5c3}.bank{border-radius:16px;margin-top:27px;padding:24px;box-shadow:0 3px 12px #17243b08}.bank h2{margin:6px 0 18px;font-size:21px}.bank-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.bank-grid p{overflow-wrap:anywhere;flex-direction:column;gap:4px;margin:0;display:flex}.bank-grid small{color:#64748b;font-size:12px}.bank-grid b{font-size:15px}.public-notice{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:22px}@media (width<=620px){.overview{grid-template-columns:1fr;gap:23px;padding:20px}.donut{width:162px;height:162px}.donut-center{width:120px;height:120px}.donut-center strong{font-size:35px}.overview-chart{gap:14px}.overview-total{padding-top:12px}.person{padding:16px}.amounts{gap:7px}.amounts b{font-size:14px}.bank-grid{grid-template-columns:1fr}.section-title h2{font-size:19px}}@media (width<=365px){.amounts{grid-template-columns:repeat(2,minmax(0,1fr))}.amounts .balance-amount{grid-column:1/-1}}.admin-panel{border:1px solid #cbd5e1;border-radius:12px;margin:14px 0;padding:16px}.admin-stack{flex-direction:column;gap:10px;display:flex}.admin-stack h3,.admin-stack p{margin:0}.help-text{color:#64748b;font-size:13px;line-height:1.5}.beneficiary-row,.reminder-row{border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.beneficiary-row p{color:#64748b;margin:4px 0 0;font-size:13px}.danger-outline{cursor:pointer;border-radius:8px;margin:8px 0;padding:9px 12px;color:#991b1b!important;background:#fff5f5!important;border:1px solid #ef4444!important}.danger-outline:disabled{opacity:.5;cursor:wait}.overview-participants{border-top:1px solid #e5eaf2;flex-direction:column;gap:8px;margin-top:18px;padding-top:16px;display:flex}.overview-participants-title{color:#334155;margin-bottom:3px;font-size:13px}.overview-participant{border:1px solid #e7eaf0;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.overview-participant-due{color:#991b1b;background:#fff0f0;border-color:#f3c3c7}.overview-participant-paid{color:#6b7280;background:#f2f4f6;border-color:#e5e7eb}.overview-participant-name{overflow-wrap:anywhere;min-width:0;font-weight:700}.overview-participant-status{text-align:right;white-space:normal;flex-shrink:0;font-weight:700}@media (width<=420px){.overview-participant{flex-direction:column;align-items:flex-start;gap:4px}.overview-participant-status{text-align:left}}
