:root{--color-brand:#1d9e75;--color-brand-light:#e1f5ee;--color-warning:#b45309;--color-danger:#dc2626;--color-text:#2c2c2a;--color-surface:#f1efe8;--color-border:#d3d1c7;--font-family:system-ui, "Segoe UI", Roboto, sans-serif;--type-title-size:22px;--type-title-weight:500;--type-subtitle-size:16px;--type-subtitle-weight:500;--type-body-size:14px;--type-body-weight:400;--type-body-lh:1.6;--type-label-size:11px;--type-label-weight:500;--type-label-ls:.08em}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--type-body-size);font-weight:var(--type-body-weight);line-height:var(--type-body-lh);color:var(--color-text);background:var(--color-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{flex-direction:column;max-width:720px;min-height:100svh;margin:0 auto;display:flex}h1{font-size:var(--type-title-size);font-weight:var(--type-title-weight);color:var(--color-text);margin:0}h2{font-size:var(--type-subtitle-size);font-weight:var(--type-subtitle-weight);color:var(--color-text);margin:0 0 8px}p{margin:0}.app-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);align-items:center;gap:12px;padding:12px 24px;display:flex}.app-title{color:var(--color-text);font-size:var(--type-subtitle-size);font-weight:var(--type-subtitle-weight);flex:1;text-decoration:none}.change-session-btn{font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-ls);color:var(--color-text);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px}main{flex:1;padding:24px}.btn{font-family:var(--font-family);font-size:var(--type-body-size);font-weight:var(--type-body-weight);cursor:pointer;white-space:nowrap;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;text-decoration:none;display:inline-flex}.btn:disabled,.btn[disabled]{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-brand);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.9)}.btn-secondary{color:var(--color-brand);border:1px solid var(--color-brand);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--color-brand-light)}.btn-ghost{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-border)}.btn-danger{color:var(--color-danger);border:1px solid var(--color-danger);background:0 0}.btn-danger:hover:not(:disabled){background:#fef2f2}input,select{border:1px solid var(--color-border);width:100%;font-family:var(--font-family);font-size:var(--type-body-size);color:var(--color-text);background:#fff;border-radius:6px;padding:8px 12px}input:focus,select:focus{border:2px solid var(--color-brand);outline:none}input.field-error,select.field-error{border-color:var(--color-warning)}.field-error-msg{color:var(--color-warning);font-size:var(--type-label-size);margin-top:4px}.section-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.section-header h1,.section-header h2{flex:1;margin:0}.loading{text-align:center;color:var(--color-text);padding:48px}.empty{color:var(--color-text);opacity:.6;font-style:italic}.error{color:var(--color-warning);border:1px solid var(--color-warning);cursor:pointer;border-radius:6px;margin-bottom:12px;padding:8px 12px}.badge{font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-ls);text-transform:uppercase;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.badge.settled{background:var(--color-brand-light);color:var(--color-brand)}.badge.archived{background:var(--color-border);color:var(--color-text)}.group-list{max-width:600px;margin:0 auto}.group-list section{margin-bottom:24px}.group-cards{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.group-card{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:8px;padding:16px;transition:border-color .2s}.group-card:hover{border-color:var(--color-brand)}.group-card--settled{background:var(--color-brand-light);border-color:var(--color-brand)}.group-card--archived{opacity:.6}.group-card-name{font-weight:var(--type-subtitle-weight);font-size:var(--type-subtitle-size);align-items:center;gap:8px;margin-bottom:4px;display:flex}.group-card-meta{font-size:var(--type-label-size);color:var(--color-text);opacity:.6}.group-detail{max-width:600px;margin:0 auto}.balance-section,.activity-section{margin-top:24px}.settlement-list{flex-direction:column;gap:8px;padding:0;list-style:none;display:flex}.settlement-item{border:1px solid var(--color-border);background:#fff;border-radius:6px;padding:10px 14px}.debtor,.creditor{font-weight:var(--type-subtitle-weight)}.amount{color:var(--color-brand);font-weight:var(--type-subtitle-weight)}.activity-list{flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.activity-item{border:1px solid var(--color-border);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:12px;padding:12px 14px;display:flex}.activity-item:hover{border-color:var(--color-brand)}.activity-icon{color:var(--color-brand);flex-shrink:0;align-items:center;display:flex}.activity-info{flex-direction:column;flex:1;gap:2px;display:flex}.activity-description{font-weight:var(--type-subtitle-weight)}.activity-meta{font-size:var(--type-label-size);opacity:.6}.activity-amounts{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.activity-total{font-weight:var(--type-subtitle-weight)}.activity-position{font-size:var(--type-label-size)}.position-credit{color:var(--color-brand)}.position-debit{color:var(--color-warning)}.position-neutral{color:var(--color-text)}.activity-actions{gap:8px;display:flex}.group-links{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.form-page{max-width:520px;margin:0 auto}form{flex-direction:column;gap:16px;margin-top:16px;display:flex}label{font-weight:var(--type-label-weight);font-size:var(--type-label-size);letter-spacing:var(--type-label-ls);text-transform:uppercase;flex-direction:column;gap:6px;display:flex}.inline-label{text-transform:none;font-size:var(--type-body-size);letter-spacing:normal;flex-direction:row;justify-content:space-between;align-items:center}.proportional-shares{grid-template-columns:1fr auto;align-items:center;gap:8px 12px;display:grid}.proportional-shares .inline-label{display:contents}.form-actions{gap:8px;margin-top:8px;display:flex}.btn-group{border:1px solid var(--color-border);border-radius:6px;display:flex;overflow:hidden}.btn-group .btn{border:none;border-right:1px solid var(--color-border);border-radius:0;flex:1;justify-content:center}.btn-group .btn:last-child{border-right:none}.participants{flex-direction:column;gap:8px;margin-top:8px;display:flex}.participant-row{align-items:center;gap:8px;display:grid}.participant-row--equal,.participant-row--exact{grid-template-columns:20px minmax(0,1fr) auto}.participant-row--proportional{grid-template-columns:20px minmax(0,1fr) 80px auto}.split-name{text-overflow:ellipsis;white-space:nowrap;font-weight:var(--type-body-weight);font-size:var(--type-body-size);letter-spacing:normal;text-transform:none;cursor:pointer;display:block;overflow:hidden}.checkbox-label{font-size:var(--type-body-size);font-weight:var(--type-body-weight);letter-spacing:normal;text-transform:none;flex-direction:row;flex:1;align-items:center;gap:8px;display:flex}.shares-input,.exact-input{width:80px}.preview-amount{font-size:var(--type-label-size);color:var(--color-brand);margin-left:auto}.form-page section{border:1px solid var(--color-border);background:#fff;border-radius:8px;padding:16px}.form-page section h3{font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-ls);text-transform:uppercase;color:var(--color-text);margin:0 0 12px}.form-field-group{flex-direction:column;gap:6px;margin-top:16px;display:flex}.field-label{font-weight:var(--type-label-weight);font-size:var(--type-label-size);letter-spacing:var(--type-label-ls);text-transform:uppercase}.settled-tagline{color:var(--color-brand);font-style:italic}.group-card-tagline{font-size:var(--type-label-size);color:var(--color-brand);margin-top:4px;font-style:italic}.payer-chips,.payer-rows{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.payer-chip{border:1px solid var(--color-border);width:100%;color:var(--color-text);font-family:var(--font-family);font-size:var(--type-body-size);font-weight:var(--type-body-weight);cursor:pointer;background:0 0;border-radius:6px;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.payer-chip:hover:not(.payer-chip-selected){background:var(--color-border)}.payer-chip-selected{border-color:var(--color-brand);background:var(--color-brand-light);color:var(--color-brand)}.payer-chip-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;overflow:hidden}.payer-amount{font-weight:var(--type-subtitle-weight);flex-shrink:0;padding-left:8px}.history-section-header{align-items:center;gap:8px;margin-bottom:0;display:flex}.history-toggle{background:var(--color-brand);color:#fff;width:22px;height:22px;font-size:var(--type-label-size);font-weight:var(--type-subtitle-weight);font-family:var(--font-family);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.history-toggle:hover{filter:brightness(.9)}.history-list{flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.history-entry{font-size:var(--type-label-size);border:1px solid var(--color-border);background:#fff;border-radius:4px;flex-wrap:wrap;gap:8px;padding:8px;display:flex}.history-date,.history-by{color:var(--color-text);opacity:.6}.history-field{font-weight:var(--type-subtitle-weight)}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:8px;flex-direction:column;gap:16px;width:100%;max-width:480px;max-height:90vh;padding:24px;display:flex;overflow-y:auto}.modal h2{margin:0}.member-grid{grid-template-columns:1fr auto auto;align-items:center;gap:8px;margin-bottom:8px;display:grid}.member-grid-row{display:contents}.member-name-wrapper{position:relative}.member-name-tooltip{color:#fff;font-size:var(--type-label-size);white-space:nowrap;pointer-events:none;z-index:100;background:#000c;border-radius:4px;padding:4px 8px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}
