:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{color:#1a1a1a;background:#f5f5f7;margin:0}#root{min-height:100svh}.center-screen{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:380px;padding:2rem;box-shadow:0 4px 24px #00000014}.auth-card h1{color:#0f172a;margin-bottom:1.25rem;font-size:1.4rem}.brand-accent{color:#d97706}.auth-card:not(.admin-auth-card) h1{isolation:isolate;background:linear-gradient(135deg,#1fcfbb,#0d9488);border-radius:16px 16px 0 0;margin:-2rem -2rem 1.5rem;padding:1rem 1.5rem;position:relative;overflow:hidden}.auth-card:not(.admin-auth-card) h1:before{content:"";clip-path:polygon(10px 0,0 25%,10px 50%,0 75%,10px 100%,100% 100%,100% 0);z-index:-1;background:linear-gradient(135deg,#fbbf24,#d97706);width:28%;position:absolute;top:0;bottom:0;right:0}.tabs{background:#f0f0f3;border-radius:10px;margin-bottom:1.25rem;padding:4px;display:flex}.tabs button{white-space:nowrap;cursor:pointer;color:#555;background:0 0;border:none;border-radius:8px;flex:1;margin:0;padding:.5rem .3rem;font-size:.9rem}.tabs button.active{color:#111;background:#fff;font-weight:600;box-shadow:0 1px 3px #0000001a}form{text-align:left;flex-direction:column;gap:.9rem;display:flex}label{color:#444;flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}input,select{color:#1a1a1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;border:1px solid #ddd;border-radius:8px;padding:.6rem .7rem;font-family:inherit;font-size:1rem}button{color:#fff;cursor:pointer;background:#0d9488;border:none;border-radius:8px;padding:.6rem 1rem;font-size:.9rem;font-weight:600}button:disabled{opacity:.6;cursor:default}button.secondary{color:#1f2937;background:#e5e7eb}.button-link{text-align:center;cursor:pointer;color:#1f2937;background:#e5e7eb;border-radius:8px;padding:.6rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}button.link-button{color:#dc2626;background:0 0;padding:0;font-size:.8rem;font-weight:400}.error{color:#dc2626;margin:0;font-size:.85rem}.muted{color:#888;font-size:.8rem}.app-shell{background:#f5f5f7;min-height:100vh}.topbar{z-index:100;background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;position:sticky;top:0}.app-title{color:#0f172a;font-weight:700}.topbar:not(.admin-topbar){background:linear-gradient(135deg,#1fcfbb,#0d9488);border-bottom:0;padding-top:.55rem;padding-bottom:.55rem;box-shadow:0 1px 6px #0f172a2e}.topbar:not(.admin-topbar):before{content:"";clip-path:polygon(10px 0,0 25%,10px 50%,0 75%,10px 100%,100% 100%,100% 0);z-index:-1;background:linear-gradient(135deg,#fbbf24,#d97706);width:46%;position:absolute;top:0;bottom:0;right:0}.topbar:not(.admin-topbar) .brand-accent,.auth-card:not(.admin-auth-card) h1 .brand-accent{color:#ea580c;text-shadow:0 0 1px #fff,0 0 1px #fff,0 0 2px #fff}.topbar:not(.admin-topbar) .topbar-username{color:#0f172a;opacity:.8}.topbar:not(.admin-topbar) button.secondary{color:#0f172a;background:#ffffffeb}.topbar-brand{flex-direction:column;gap:.1rem;display:flex}.topbar-username{color:#666;font-size:.8rem;font-weight:400}.topbar-actions{align-items:center;gap:.75rem;display:flex}.page{flex-direction:column;gap:1.75rem;max-width:640px;margin:0 auto;padding:1.5rem;display:flex}.page h2{margin:0}.page section h3{margin:0 0 .6rem;font-size:1rem}.back-link{color:#0d9488;background:0 0;align-self:flex-start;padding:0;font-weight:600}.section-header{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.section-header h3{margin:0}.group-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.group-list-item{color:#1a1a1a;text-align:left;background:#fff;border:1px solid #e5e7eb;border-left:4px solid #0d9488;border-radius:10px;align-items:center;gap:.85rem;width:100%;padding:.85rem 1rem;font-weight:600;transition:box-shadow .15s,transform .15s;display:flex;box-shadow:0 1px 3px #0f172a0f}.group-list-item:hover,.group-list-item:focus-visible{transform:translateY(-1px);box-shadow:0 4px 10px #0f172a1a}.group-badge{color:#fff;background:#0d9488;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.1rem;font-weight:700;display:flex;overflow:hidden}.group-badge-image{object-fit:cover;width:100%;height:100%}.group-badge-large{width:4rem;height:4rem;font-size:1.6rem}.group-detail-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.group-detail-heading h2{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.group-image-row{align-items:center;gap:1rem;display:flex}.group-image-actions,.settings-button-row{align-items:center;gap:.75rem;display:flex}.crop-modal-backdrop{z-index:1000;background:#0f172a99;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.crop-modal-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:360px;padding:1.5rem;box-shadow:0 4px 24px #0003}.crop-modal-card h3{margin:0 0 1rem}.crop-viewport{touch-action:none;cursor:grab;background:#f0f0f3;border:1px solid #e5e7eb;border-radius:12px;justify-content:center;align-items:center;width:260px;height:260px;margin:0 auto;display:flex;position:relative;overflow:hidden}.crop-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;position:absolute;top:0;left:0}.crop-loading{position:absolute}.crop-zoom-label{color:#444;margin-top:1rem;font-size:.8rem}.crop-zoom-label input[type=range]{width:100%}.crop-hint{margin-top:.5rem}.crop-modal-actions{justify-content:center;gap:.75rem;margin-top:1.25rem;display:flex}.receipt-viewer-card{max-width:480px}.receipt-viewer-image-wrap{background:#f0f0f3;border:1px solid #e5e7eb;border-radius:8px;max-height:70vh;overflow:auto}.receipt-viewer-image{width:100%;height:auto;display:block}.amount-row{align-items:flex-end;gap:.75rem;display:flex}.amount-field{flex:1;min-width:0}.receipt-button{white-space:nowrap;flex-shrink:0}.receipt-edit-box{touch-action:none;background:#f0f0f3;border:1px solid #e5e7eb;border-radius:12px;margin:0 auto;position:relative;overflow:hidden}.receipt-edit-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;max-width:none;position:absolute}.receipt-crop-rect{cursor:move;border:2px solid #0d9488;position:absolute;box-shadow:0 0 0 9999px #0f172a80}.receipt-crop-handle{background:#0d9488;border:2px solid #fff;border-radius:50%;width:18px;height:18px;margin:-9px;position:absolute}.receipt-crop-handle-nw{cursor:nwse-resize;top:0;left:0}.receipt-crop-handle-ne{cursor:nesw-resize;top:0;right:0}.receipt-crop-handle-sw{cursor:nesw-resize;bottom:0;left:0}.receipt-crop-handle-se{cursor:nwse-resize;bottom:0;right:0}.receipt-grayscale-label{margin-top:.75rem}.group-list-item-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.group-list-item-chevron{color:#9ca3af;flex-shrink:0;font-size:1.4rem;font-weight:400}.group-name{font-size:1.05rem}.inline-form{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:1;min-width:220px;padding:1rem}.invite-link-box{flex-direction:column;gap:.5rem;margin-bottom:.75rem;display:flex}.qr-box{justify-content:center;margin:.75rem 0 1rem;display:flex}.admin-table td.nowrap-cell{white-space:nowrap}.user-id-cell{color:#475569;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.qr-code{background:#fff;border:1px solid #e5e7eb;border-radius:12px;width:240px;max-width:100%;height:auto}.invite-link-box input{color:#475569;font-size:1rem}.invite-link-actions{flex-wrap:wrap;gap:.5rem;display:flex}.member-list,.balance-list,.settlement-list,.expense-list{flex-direction:column;gap:.4rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.balance-row,.settlement-row,.expense-row{background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;padding:.6rem .85rem;font-size:.9rem;display:flex}.settlement-actions{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:.4rem .8rem;display:flex}.settlement-row{flex-wrap:wrap;gap:.4rem .8rem}.settlement-row>span{overflow-wrap:anywhere;flex:12rem;min-width:0}.settlement-actions{margin-left:auto}.settlement-actions>*{flex:none}button.balance-name{color:#0d9488;text-align:left;font-size:.9rem;font-weight:500}.total-expenses{color:#0f172a;margin:0;font-size:1.5rem;font-weight:700}.totals-row{gap:2.5rem;display:flex}.totals-row h3{margin:0 0 .6rem}.balance-positive{color:#16a34a;font-weight:600}.balance-negative{color:#dc2626;font-weight:600}.expense-actions{align-items:center;gap:.75rem;display:flex}.expense-actions>span{white-space:nowrap}.expense-form{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:.75rem;padding:1rem}.form-row{gap:1rem;display:flex}.form-row>label{flex:1;min-width:0}input,select{box-sizing:border-box;width:100%}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.form-actions-delete{margin-right:auto}.split-members{border:1px solid #e5e7eb;border-radius:8px;padding:.75rem}.split-members legend{color:#666;padding:0 .3rem;font-size:.8rem}.split-select-actions{gap:1rem;margin-bottom:.5rem;display:flex}.split-member-row{justify-content:space-between;align-items:center;gap:.75rem;padding:.3rem 0;display:flex}.checkbox-label{color:#1a1a1a;flex-direction:row;align-items:center;gap:.5rem;font-size:.9rem}.checkbox-label input{width:auto}.split-value-input{width:90px}.offline-banner{color:#92400e;text-align:center;background:#fef3c7;padding:.5rem;font-size:.85rem;font-weight:600}.install-banner{color:#134e4a;background:#f0fdfa;border-bottom:1px solid #99f6e4;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1.5rem;font-size:.85rem;display:flex}.install-banner-actions{flex-shrink:0;gap:.5rem;display:flex}.install-banner button{padding:.4rem .8rem;font-size:.8rem}.invite-link-box{gap:.5rem;margin-top:.6rem;display:flex}.invite-link-box input{color:#444;flex:1;font-size:1rem}.group-name-row{background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:center;padding:.6rem .85rem;font-size:.95rem;font-weight:600;display:flex}.group-name-edit{flex-direction:row;align-items:center;gap:.6rem;display:flex}.group-name-edit input{flex:1}.invite-hint{text-align:center;color:#134e4a;background:#f0fdfa;border:1px solid #99f6e4;border-radius:8px;max-width:380px;margin:0 auto 1rem;padding:.65rem 1rem;font-size:.85rem}.page-error{max-width:640px;margin:1rem auto 0;padding:0 1.5rem}.group-tabs{margin-bottom:0}.member-settings-row{background:#fff;border:1px solid #e5e7eb;border-radius:10px;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem 1rem;padding:.6rem .85rem;font-size:.9rem;display:grid}.member-name-col{text-align:left}.member-share-col{justify-content:center;align-items:center;gap:.6rem;display:flex}.member-actions-col{justify-content:flex-end;align-items:center;display:flex}.profile-editor{flex-direction:column;gap:.75rem;display:flex}.profile-editor .inline-form{width:100%}.weight-confirm{grid-column:1/-1}.weight-confirm p{color:#444;margin:0 0 .6rem;font-size:.85rem}.weight-confirm-actions{flex-wrap:wrap;gap:.5rem;display:flex}.closed-banner{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.65rem 1rem;font-size:.85rem;font-weight:600}.settlements-section h4{margin:0 0 .3rem;font-size:.9rem}.settlements-section>h4:not(:first-child){margin-top:1.25rem}.member-expenses{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:.85rem}.table-scroll{overflow-x:auto}.member-expenses-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.85rem}.member-expenses-table th,.member-expenses-table td{text-align:left;border-bottom:1px solid #f0f0f3;padding:.5rem .6rem}.member-expenses-table th{color:#666;text-transform:uppercase;letter-spacing:.02em;font-size:.75rem;font-weight:600}.member-expenses-table tbody tr:last-child td{border-bottom:none}.admin-table{border-collapse:collapse;width:100%;font-size:.85rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid #f0f0f3;padding:.6rem .5rem}.admin-table td.actions-cell{white-space:nowrap;padding-left:.3rem;padding-right:.3rem}.admin-table th{color:#666;text-transform:uppercase;letter-spacing:.02em;font-size:.75rem;font-weight:600}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.admin-table th.sortable:hover{color:#dc2626}.sort-indicator{display:inline-block}.admin-list-toolbar{align-items:center;gap:.75rem;display:flex}.admin-list-toolbar input{flex:1}.admin-list-toolbar button{flex-shrink:0}.admin-table input[type=checkbox]{width:auto}.activity-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.activity-row{background:#fff;border:1px solid #e5e7eb;border-radius:10px;justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem .85rem;font-size:.9rem;display:flex}.activity-text{color:#1a1a1a}.activity-time{white-space:nowrap;flex-shrink:0;font-size:.8rem}.admin-auth-card h1{color:#b91c1c}button.danger{background:#b91c1c}.admin-topbar{border-bottom-color:#fecaca}.admin-topbar .app-title{color:#b91c1c}.admin-row{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:.5rem;padding:.6rem .85rem;font-size:.9rem;display:flex}.admin-row-main{flex-direction:column;gap:.15rem;display:flex}.admin-row-actions{flex-wrap:wrap;gap:.75rem;display:flex}.admin-group-members{border-top:1px solid #f0f0f3;margin-top:.25rem;padding-top:.5rem}.legal-page{max-width:720px}.legal-page p,.legal-page ul,.legal-page ol{color:#333;margin:0 0 .75rem;line-height:1.6}.legal-page ul,.legal-page ol{padding-left:1.25rem}.legal-page li{margin-bottom:.3rem}.legal-page a{color:#0d9488}.legal-divider{border:none;border-top:1px solid #e5e7eb;margin:1.5rem 0}.guide-screenshot{border:1px solid #e5e7eb;border-radius:12px;width:100%;max-width:220px;margin:.75rem 0;display:block}.footer-legal-link{text-align:center;padding:1.5rem}.footer-legal-link button{color:#666;background:0 0;padding:0;font-size:.8rem;font-weight:400;text-decoration:underline}.pull-to-refresh{justify-content:center;align-items:center;transition:height .15s;display:flex;overflow:hidden}.pull-to-refresh-spinner{border:3px solid #99f6e4;border-top-color:#0d9488;border-radius:50%;width:26px;height:26px}.pull-to-refresh-spinner.ready{border-top-color:#d97706}.pull-to-refresh-spinner.spinning{animation:.6s linear infinite pull-to-refresh-spin}@keyframes pull-to-refresh-spin{to{transform:rotate(360deg)}}.password-field{display:block;position:relative}.password-field input{width:100%;padding-right:2.6rem}button.password-toggle{color:#64748b;background:0 0;border-radius:6px;padding:.4rem;line-height:0;position:absolute;top:50%;right:.3rem;transform:translateY(-50%)}button.password-toggle:hover{color:#0f172a}.summary-download{align-self:flex-start;margin:.6rem 0 .25rem}.app-shell{overflow-wrap:anywhere}.app-shell button,.app-shell select{overflow-wrap:normal}.app-shell button.balance-name,.app-shell button.group-list-item{overflow-wrap:anywhere}.code-input{text-align:center;letter-spacing:.5em;font-variant-numeric:tabular-nums;font-size:1.6rem}.billing-actions{flex-wrap:wrap;gap:.6rem;display:flex}input[type=datetime-local]{appearance:none;text-align:left;min-width:0;max-width:100%;min-height:2.45rem;display:block}input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}.scan-qr-button{width:100%;margin-top:.75rem}.qr-scanner{z-index:2000;color:#fff;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.qr-scanner-top,.qr-scanner-bottom{padding:.75rem 1rem;padding-top:max(.75rem, env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:1rem;display:flex}.qr-scanner-bottom{padding-bottom:max(1rem, env(safe-area-inset-bottom));text-align:center;flex-direction:column}.qr-scanner-bottom p{min-height:1.4em;margin:0}.qr-scanner-view{flex:1;min-height:0;position:relative;overflow:hidden}.qr-scanner-view video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.qr-scanner-frame{aspect-ratio:1;border:3px solid #ffffffe6;border-radius:16px;width:min(70vw,280px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000073}.qr-scanner-fallback{text-align:center;flex:1;justify-content:center;align-items:center;padding:1.5rem;display:flex}.qr-scanner-photo{color:#fff;cursor:pointer;background:#0d9488;border-radius:8px;padding:.6rem 1rem;font-size:.9rem;font-weight:600;display:inline-block}.qr-hint-card{text-align:left}.qr-hint-card h3{text-align:center}.qr-hint-card p{margin:0 0 1.25rem;line-height:1.5}.qr-hint-actions{flex-direction:column;gap:.6rem;display:flex}#group-qr,#member-invite{scroll-margin-top:5rem}html{touch-action:pan-x pan-y}html,body{overscroll-behavior:none}.delete-dialog{text-align:left;max-width:420px;max-height:calc(100vh - 2.5rem);overflow-y:auto}.delete-dialog h3{text-align:center}.delete-dialog h4{margin:1rem 0 .4rem}.delete-dialog p{margin:.4rem 0;font-size:.9rem;line-height:1.45}.delete-dialog-group{border-top:1px solid #e5e7eb;flex-direction:column;gap:.35rem;padding:.75rem 0;display:flex}.delete-dialog-option{color:#1a1a1a;flex-direction:row;align-items:flex-start;gap:.6rem;font-size:.95rem}.delete-dialog-option input{width:auto;margin-top:.2rem}.delete-dialog-actions{flex-direction:column;gap:.6rem;margin-top:1rem;display:flex}.currency-block{flex-direction:column;gap:.5rem;display:flex}.other-currency{align-self:flex-start}.rate-hint,.rate-converted{margin:0;font-size:.85rem}.expense-amount{white-space:nowrap;flex-direction:column;align-items:flex-end;display:flex}.expense-amount .converted{font-size:.8rem}.qr-strip{background:#f0faf8;border:1px solid #cfe9e3;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;margin-bottom:.75rem;padding:.5rem .5rem .5rem .75rem;font-size:.9rem;display:flex}.qr-strip>span{flex:14rem;min-width:0}.qr-strip button.link-button{color:#0f766e;white-space:nowrap;font-size:.85rem;font-weight:600}.qr-strip-close{color:#6b7280;background:0 0;border:none;padding:.1rem .4rem;font-size:1.25rem;line-height:1}.payer-members{margin-bottom:.75rem}.payer-members .payer-sum{margin:.4rem 0 0;font-size:.85rem}
