:root{--bg-color: var(--tg-theme-bg-color, #ffffff);--text-color: var(--tg-theme-text-color, #000000);--hint-color: var(--tg-theme-hint-color, #999999);--link-color: var(--tg-theme-link-color, #2481cc);--button-color: var(--tg-theme-button-color, #5288c1);--button-text-color: var(--tg-theme-button-text-color, #ffffff);--secondary-bg-color: var(--tg-theme-secondary-bg-color, #efeff3);--header-bg-color: var(--tg-theme-header-bg-color, #ffffff);--accent-text-color: var(--tg-theme-accent-text-color, #2481cc);--section-bg-color: var(--tg-theme-section-bg-color, #ffffff);--section-header-color: var(--tg-theme-section-header-text-color, #6d6d72);--destructive-color: var(--tg-theme-destructive-text-color, #ff3b30);--subtitle-color: var(--tg-theme-subtitle-text-color, #999999);--bottom-bar-bg-color: var(--tg-theme-bottom-bar-bg-color, var(--header-bg-color));--section-separator-color: var(--tg-theme-section-separator-color, rgba(0, 0, 0, .08));--color-positive: #34C759;--color-positive-bg: rgba(52, 199, 89, .12);--color-negative: var(--destructive-color);--color-negative-bg: rgba(255, 59, 48, .12);--color-warning: #FF9500;--color-warning-bg: rgba(255, 149, 0, .12);--color-neutral: var(--hint-color);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--spring-bounce: cubic-bezier(.34, 1.56, .64, 1);--spring-smooth: cubic-bezier(.25, .46, .45, .94);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .4s;--font-size-caption: .6875rem;--font-size-footnote: .75rem;--font-size-subhead: .8125rem;--font-size-body: .9375rem;--font-size-headline: 1.0625rem;--font-size-title2: 1.375rem;--font-size-title1: 1.75rem;--font-size-largetitle: 2.125rem;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--spacing-4xl: 48px}@media(prefers-color-scheme:dark){:root{--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .35);--section-separator-color: var(--tg-theme-section-separator-color, rgba(255, 255, 255, .08));--color-positive-bg: rgba(52, 199, 89, .18);--color-negative-bg: rgba(255, 59, 48, .18)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-size-body);font-variant-numeric:tabular-nums;background-color:var(--bg-color);color:var(--text-color);-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overflow-x:hidden}a{color:var(--link-color);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none}input,select,textarea{font-family:inherit;font-size:16px}@keyframes pageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pageSlideInRight{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pageSlideInLeft{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}.page-transition{animation:pageEnter .22s ease-out}.page-transition-forward{animation:pageSlideInRight .28s var(--spring-smooth)}.page-transition-back{animation:pageSlideInLeft .28s var(--spring-smooth)}.page-header{display:flex;align-items:center;padding:10px 16px;min-height:48px;position:sticky;top:0;background-color:var(--bg-color);z-index:100;gap:10px}.page-header-back{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--secondary-bg-color);color:var(--text-color);flex-shrink:0;transition:opacity .12s ease;-webkit-tap-highlight-color:transparent}.page-header-back:active{opacity:.5}.page-header-content{flex:1;min-width:0}.page-header-title{font-size:20px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.page-header-subtitle{font-size:13px;color:var(--hint-color);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.page-header-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.header-text-btn{padding:8px 18px;border-radius:10px;background-color:var(--button-color);color:var(--button-text-color);font-size:15px;font-weight:600;transition:transform var(--duration-fast) var(--spring-bounce),opacity var(--duration-fast) ease;-webkit-tap-highlight-color:transparent}.header-text-btn:active{opacity:.7;transform:scale(.95)}.card{background-color:var(--section-bg-color);border-radius:12px;padding:16px;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform var(--duration-fast) var(--spring-bounce),box-shadow var(--duration-fast) ease,opacity var(--duration-fast) ease;-webkit-tap-highlight-color:transparent}.card:active{transform:scale(.97);opacity:.8}.accordion-body{animation:accordionOpen .2s ease-out;overflow:hidden}@keyframes accordionOpen{0%{opacity:0;max-height:0}to{opacity:1;max-height:500px}}.category-chips::-webkit-scrollbar{display:none}@keyframes fabEnter{0%{transform:scale(0) rotate(-45deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.fab{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));right:20px;width:56px;height:56px;border-radius:16px;background-color:var(--button-color);color:var(--button-text-color);font-size:28px;font-weight:300;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:transform var(--duration-fast) var(--spring-bounce),box-shadow var(--duration-fast) ease;z-index:50;-webkit-tap-highlight-color:transparent;animation:fabEnter .4s var(--spring-bounce) .15s both}.fab:active{transform:scale(.88);box-shadow:var(--shadow-sm)}.fab-high{bottom:calc(48px + env(safe-area-inset-bottom))}.fab-with-nav{bottom:calc(80px + env(safe-area-inset-bottom))}.spinner-container{display:flex;align-items:center;justify-content:center;padding:48px 24px}.spinner{width:28px;height:28px;border:2.5px solid var(--secondary-bg-color);border-top-color:var(--accent-text-color);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--secondary-bg-color) 25%,var(--section-bg-color) 50%,var(--secondary-bg-color) 75%);background-size:800px 100%;animation:shimmer 1.5s infinite;border-radius:8px}.skeleton-card{border-radius:12px;padding:16px;background-color:var(--section-bg-color);box-shadow:var(--shadow-sm)}@keyframes listItemEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.animate-list-item{animation:listItemEnter .3s var(--spring-smooth) both}@keyframes successScale{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}@keyframes checkDraw{0%{stroke-dashoffset:36}to{stroke-dashoffset:0}}.success-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#00000026;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayFadeIn .15s ease-out}.success-circle{width:80px;height:80px;border-radius:50%;background-color:var(--color-positive);display:flex;align-items:center;justify-content:center;animation:successScale .4s var(--spring-bounce)}.success-check{stroke-dasharray:36;stroke-dashoffset:36;animation:checkDraw .3s ease-out .2s forwards}.tabs{display:flex;position:relative;border-bottom:1px solid var(--section-separator-color)}.tab{flex:1;padding:12px 0;font-size:14px;font-weight:600;text-align:center;background:transparent;color:var(--hint-color);border-bottom:2px solid transparent;transition:color var(--duration-normal) ease;-webkit-tap-highlight-color:transparent}.tab.active{color:var(--accent-text-color);border-bottom-color:transparent}.tab-indicator{position:absolute;bottom:-1px;height:2px;background-color:var(--accent-text-color);border-radius:1px;transition:transform var(--duration-normal) var(--spring-smooth),width var(--duration-normal) var(--spring-smooth)}.tab-content{animation:tabFadeIn .2s ease-out}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.form-input{width:100%;padding:12px 16px;border-radius:12px;border:none;background-color:var(--section-bg-color);color:var(--text-color);font-size:16px;outline:none;transition:box-shadow .15s ease}.form-input:focus{box-shadow:0 0 0 2px var(--accent-text-color)}.form-input::placeholder{color:var(--hint-color)}.form-label{font-size:13px;color:var(--section-header-color);text-transform:uppercase;display:block;margin-bottom:8px;font-weight:600}.btn-primary{width:100%;padding:14px;border-radius:12px;background-color:var(--button-color);color:var(--button-text-color);font-size:16px;font-weight:600;transition:transform var(--duration-fast) var(--spring-bounce),opacity var(--duration-fast) ease;-webkit-tap-highlight-color:transparent}.btn-primary:disabled{background-color:var(--hint-color);opacity:.5}.btn-primary:active:not(:disabled){opacity:.8;transform:scale(.97)}.btn-secondary{width:100%;padding:14px;border-radius:12px;background-color:var(--section-bg-color);color:var(--accent-text-color);font-size:15px;font-weight:500;transition:transform var(--duration-fast) var(--spring-bounce),opacity var(--duration-fast) ease;-webkit-tap-highlight-color:transparent}.btn-secondary:active{opacity:.7;transform:scale(.97)}.group-meta{padding:0 16px 12px}.group-meta-description{font-size:14px;color:var(--hint-color);line-height:1.4;margin-bottom:8px}.group-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.group-meta-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;background-color:var(--secondary-bg-color);font-size:12px;font-weight:500;color:var(--subtitle-color)}.group-meta-chip-lg{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;background-color:var(--secondary-bg-color);font-size:14px;font-weight:600;color:var(--text-color)}.group-meta-chip-tappable{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease,color .15s ease,transform .1s ease}.group-meta-chip-tappable:active{transform:scale(.95);opacity:.7}.group-meta-chip-copied{background-color:var(--color-positive-bg);color:var(--color-positive)}.member-row{display:flex;align-items:center;gap:12px;padding:12px;background-color:var(--section-bg-color);border-radius:12px}.member-row-tappable{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .12s ease}.member-row-tappable:active{opacity:.7}.member-actions{display:flex;flex-direction:column;gap:2px;padding:6px 12px 10px;margin-top:-4px;background-color:var(--section-bg-color);border-radius:0 0 12px 12px;animation:memberActionsOpen .15s ease-out}@keyframes memberActionsOpen{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.member-action-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 8px;border-radius:8px;background:transparent;color:var(--text-color);font-size:14px;font-weight:500;-webkit-tap-highlight-color:transparent;transition:background-color .12s ease}.member-action-btn:active{background-color:var(--secondary-bg-color)}.member-action-btn-danger{color:var(--destructive-color)}.member-action-btn:disabled{opacity:.5}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:overlayFadeIn .2s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.modal-sheet{width:100%;max-width:480px;background-color:var(--bg-color);border-radius:16px 16px 0 0;padding:24px 16px calc(16px + env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);animation:sheetSlideUp .3s var(--spring-smooth)}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background-color:var(--bottom-bar-bg-color);border-top:.5px solid var(--section-separator-color);display:flex;align-items:center;justify-content:space-around;z-index:100}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 24px;background:transparent;color:var(--hint-color);font-size:11px;font-weight:600;letter-spacing:.02em;transition:color .15s ease;-webkit-tap-highlight-color:transparent}.bottom-nav-item.active{color:var(--accent-text-color)}.amount{font-variant-numeric:tabular-nums;font-weight:600}.amount-positive{color:var(--color-positive);font-weight:600;font-variant-numeric:tabular-nums}.amount-negative{color:var(--destructive-color);font-weight:600;font-variant-numeric:tabular-nums}.amount-neutral{color:var(--text-color);font-weight:600;font-variant-numeric:tabular-nums}.amount-lg{font-size:var(--font-size-title2);font-weight:700}.amount-xl{font-size:var(--font-size-largetitle);font-weight:700}.section-header{font-size:var(--font-size-subhead);font-weight:600;color:var(--section-header-color);text-transform:uppercase;margin-bottom:10px}.chip{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:20px;font-size:var(--font-size-subhead);font-weight:600;white-space:nowrap;flex-shrink:0;background-color:var(--section-bg-color);color:var(--text-color);transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease;-webkit-tap-highlight-color:transparent}.chip-active{background-color:var(--accent-text-color);color:var(--button-text-color)}.chip:active{opacity:.7}.toggle-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background-color:var(--section-bg-color);cursor:pointer;-webkit-tap-highlight-color:transparent}.toggle-row-label{font-size:var(--font-size-body);font-weight:500}.toggle-row-hint{font-size:var(--font-size-subhead);color:var(--hint-color);margin-top:4px;line-height:1.4}.pill-toggle{width:51px;height:31px;border-radius:16px;position:relative;flex-shrink:0;transition:background-color .2s ease}.pill-toggle-on{background-color:var(--color-positive)}.pill-toggle-off{background-color:var(--hint-color)}.pill-toggle-knob{width:27px;height:27px;border-radius:50%;background-color:var(--bg-color);position:absolute;top:2px;transition:left .2s ease;box-shadow:0 1px 3px #0003}.pill-toggle-on .pill-toggle-knob{left:22px}.pill-toggle-off .pill-toggle-knob{left:2px}.btn-danger-outline{width:100%;padding:14px;border-radius:12px;background-color:transparent;color:var(--destructive-color);font-size:var(--font-size-body);font-weight:600;border:1px solid var(--destructive-color);cursor:pointer;transition:opacity var(--duration-fast) ease,transform var(--duration-fast) var(--spring-bounce);-webkit-tap-highlight-color:transparent}.btn-danger-outline:active{opacity:.7;transform:scale(.97)}.btn-danger-outline:disabled{opacity:.5;cursor:default}.modal-sheet-handle{width:36px;height:4px;border-radius:2px;background-color:var(--hint-color);opacity:.3;margin:0 auto 16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-4xl) var(--spacing-2xl);text-align:center}.empty-state-icon{margin-bottom:var(--spacing-lg);color:var(--hint-color);opacity:.5}.empty-state-title{font-size:18px;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-color)}.empty-state-description{font-size:14px;color:var(--hint-color);line-height:1.4}.btn-settle{width:100%;padding:10px;border-radius:10px;border:none;font-size:14px;font-weight:600;cursor:pointer;transition:opacity var(--duration-fast) ease,transform var(--duration-fast) var(--spring-bounce);-webkit-tap-highlight-color:transparent}.btn-settle:active:not(:disabled){opacity:.8;transform:scale(.97)}.btn-settle:disabled{opacity:.6;cursor:default}.btn-settle-positive{background-color:var(--color-positive);color:var(--button-text-color)}.btn-settle-negative{background-color:var(--destructive-color);color:var(--button-text-color)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}
