:root{--color-bg-primary: #F2F0E9;--color-bg-secondary: #FBFAF6;--color-bg-tertiary: #E9E6DB;--color-bg-card: #FFFFFF;--color-text-primary: #26302A;--color-text-secondary: #535E56;--color-text-muted: #8B958D;--color-action: #2C4437;--color-action-hover: #3A5647;--color-action-text: #F4F6EE;--color-accent: #4E7C5F;--color-accent-hover: #416A50;--color-accent-dim: rgba(78, 124, 95, .14);--color-success: #3E7A4E;--color-success-bg: rgba(62, 122, 78, .14);--color-danger: #C05B41;--color-danger-bg: rgba(192, 91, 65, .12);--color-danger-solid: #B3543C;--color-danger-solid-hover: #A04832;--color-danger-solid-text: #FDF6F3;--color-warning: #C99A3B;--tint-sage: #E3EAD9;--tint-rose: #F2E1DB;--tint-sand: #EEE6D4;--color-border: rgba(38, 48, 42, .08);--color-border-strong: rgba(38, 48, 42, .16);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 22px;--radius-hero: 26px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(31, 41, 35, .05);--shadow-md: 0 6px 16px rgba(31, 41, 35, .08);--shadow-lg: 0 14px 32px rgba(31, 41, 35, .16);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--touch-target: 44px;--app-max-width: 480px;--nav-clearance: 92px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);color-scheme:light}:root[data-theme=dark]{--color-bg-primary: #151A17;--color-bg-secondary: #1C221E;--color-bg-tertiary: #2A322C;--color-bg-card: #202723;--color-text-primary: #E7ECE5;--color-text-secondary: #BAC4BA;--color-text-muted: #79847B;--color-action: #C7DABB;--color-action-hover: #D6E6CB;--color-action-text: #1E2B20;--color-accent: #96BF9D;--color-accent-hover: #A9CFAF;--color-accent-dim: rgba(150, 191, 157, .16);--color-success: #8CC493;--color-success-bg: rgba(140, 196, 147, .15);--color-danger: #E08E75;--color-danger-bg: rgba(224, 142, 117, .14);--color-danger-solid: #9C4A34;--color-danger-solid-hover: #AF553D;--color-danger-solid-text: #F8EAE4;--color-warning: #D9B25F;--tint-sage: #242E25;--tint-rose: #2E2624;--tint-sand: #2C2921;--color-border: rgba(231, 236, 229, .08);--color-border-strong: rgba(231, 236, 229, .16);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 14px 32px rgba(0, 0, 0, .45);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg-primary: #151A17;--color-bg-secondary: #1C221E;--color-bg-tertiary: #2A322C;--color-bg-card: #202723;--color-text-primary: #E7ECE5;--color-text-secondary: #BAC4BA;--color-text-muted: #79847B;--color-action: #C7DABB;--color-action-hover: #D6E6CB;--color-action-text: #1E2B20;--color-accent: #96BF9D;--color-accent-hover: #A9CFAF;--color-accent-dim: rgba(150, 191, 157, .16);--color-success: #8CC493;--color-success-bg: rgba(140, 196, 147, .15);--color-danger: #E08E75;--color-danger-bg: rgba(224, 142, 117, .14);--color-danger-solid: #9C4A34;--color-danger-solid-hover: #AF553D;--color-danger-solid-text: #F8EAE4;--color-warning: #D9B25F;--tint-sage: #242E25;--tint-rose: #2E2624;--tint-sand: #2C2921;--color-border: rgba(231, 236, 229, .08);--color-border-strong: rgba(231, 236, 229, .16);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 14px 32px rgba(0, 0, 0, .45);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:16px;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.5;height:100%;overflow:hidden;overscroll-behavior:none}#root{height:100%;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;color:var(--color-text-primary)}h1{font-size:1.75rem}h2{font-size:1.375rem}h3{font-size:1.125rem}p{color:var(--color-text-secondary)}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}input,textarea,select,button{font-family:inherit;font-size:1rem}input,textarea,select{width:100%;padding:.875rem 1rem;background:var(--color-bg-tertiary);border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-primary);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim)}input::placeholder{color:var(--color-text-muted)}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=radio],input[type=checkbox]{width:20px;height:20px;padding:0;flex-shrink:0;accent-color:var(--color-accent)}label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--touch-target);padding:.75rem 1.5rem;font-weight:600;border:none;border-radius:var(--radius-full);cursor:pointer;transition:background-color .15s,color .15s,transform .1s}button:active,.btn:active{transform:scale(.98)}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-action);color:var(--color-action-text);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--color-action-hover)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-border-strong)}.btn-danger{background:var(--color-danger-solid);color:var(--color-danger-solid-text)}.btn-danger:hover:not(:disabled){background:var(--color-danger-solid-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-block{width:100%}.btn-sm{min-height:36px;padding:.5rem 1rem;font-size:.875rem}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.container{width:100%;max-width:var(--app-max-width);margin:0 auto;padding:var(--space-md)}.page{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;width:100%;max-width:var(--app-max-width);margin:0 auto;padding-top:var(--safe-top)}.page>.header{flex:0 0 auto}.page>.container{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior-y:none;scrollbar-gutter:stable both-edges;padding-bottom:calc(var(--safe-bottom) + var(--nav-clearance))}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);background:var(--color-bg-primary);position:sticky;top:0;z-index:100}.header-title{font-size:1.25rem;font-weight:700}.header-back{width:var(--touch-target);height:var(--touch-target);display:flex;align-items:center;justify-content:center;padding:0;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-primary);box-shadow:var(--shadow-sm);cursor:pointer}.header-back svg{width:22px;height:22px;flex-shrink:0}.header-back:hover{background:var(--color-bg-tertiary)}.bottom-nav{position:fixed;bottom:calc(var(--safe-bottom) + var(--space-md));left:50%;transform:translate(-50%);width:calc(100% - 2 * var(--space-md));max-width:calc(var(--app-max-width) - 2 * var(--space-md));display:flex;align-items:center;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);padding:6px;z-index:100}.bottom-nav svg{width:24px;height:24px}.nav-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--space-sm) var(--space-xs);min-height:56px;color:var(--color-text-muted);font-size:.6875rem;font-weight:600;text-decoration:none;background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;transition:color .15s,background-color .15s}.nav-btn svg{width:24px;height:24px}.nav-btn.active{color:var(--color-accent);background:var(--color-accent-dim)}.nav-btn:hover:not(.nav-btn-center){color:var(--color-text-primary)}.nav-btn.active:hover{color:var(--color-accent)}.nav-btn-center{background:var(--color-action);color:var(--color-action-text);border-radius:var(--radius-full);width:56px;height:56px;min-height:56px;flex:0 0 56px;margin:0 var(--space-sm);box-shadow:var(--shadow-md)}.nav-btn-center:hover{background:var(--color-action-hover)}.nav-btn-center svg{width:28px;height:28px}.bento-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-bottom:var(--space-md)}.bento-tile{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm);min-height:120px;padding:var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);color:var(--color-text-primary);text-align:left;cursor:pointer;transition:transform .12s ease,box-shadow .15s ease,background-color .15s}.bento-tile:active{transform:scale(.97)}.bento-tile--sage{background:var(--tint-sage)}.bento-tile--rose{background:var(--tint-rose)}.bento-tile--sand{background:var(--tint-sand)}.bento-tile--full{grid-column:1 / -1}.bento-tile--center{align-items:center;text-align:center;justify-content:center}.bento-tile-icon{width:52px;height:52px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:var(--color-bg-primary);color:var(--color-text-primary);flex-shrink:0}.bento-tile--sage .bento-tile-icon,.bento-tile--rose .bento-tile-icon,.bento-tile--sand .bento-tile-icon{background:#ffffff8c}:root[data-theme=dark] .bento-tile--sage .bento-tile-icon,:root[data-theme=dark] .bento-tile--rose .bento-tile-icon,:root[data-theme=dark] .bento-tile--sand .bento-tile-icon{background:#00000040}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .bento-tile--sage .bento-tile-icon,:root:not([data-theme=light]) .bento-tile--rose .bento-tile-icon,:root:not([data-theme=light]) .bento-tile--sand .bento-tile-icon{background:#00000040}}.bento-tile-icon svg{width:26px;height:26px}.bento-tile-icon.is-initial{font-size:1.375rem;font-weight:800}.bento-tile-label{font-weight:700;line-height:1.2;overflow-wrap:anywhere}.bento-tile-sub{font-size:.75rem;color:var(--color-text-muted)}.bento-tile-value{font-size:1.125rem;font-weight:700;font-variant-numeric:tabular-nums;margin-top:auto}.hero-tile{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-xl) var(--space-lg);background:var(--tint-sage);border:1px solid var(--color-border);border-radius:var(--radius-hero);box-shadow:var(--shadow-sm);text-align:center;margin-bottom:var(--space-md)}.hero-tile--rose{background:var(--tint-rose)}.hero-tile--sand{background:var(--tint-sand)}.hero-tile-label{font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.hero-tile-value{font-size:2.75rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.hero-tile-sub{font-size:.875rem;color:var(--color-text-secondary)}.choice-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm)}.choice-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);min-height:84px;padding:var(--space-md) var(--space-sm);background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:.8125rem;font-weight:600;cursor:pointer;transition:border-color .15s,background-color .15s}.choice-tile svg{width:26px;height:26px;color:var(--color-text-secondary)}.choice-tile.is-active{border-color:var(--color-accent);background:var(--color-accent-dim)}.choice-tile.is-active svg{color:var(--color-accent)}.choice-tile .check-badge{position:absolute;top:6px;right:6px;opacity:0;transform:scale(.6);transition:opacity .15s,transform .15s}.choice-tile.is-active .check-badge{opacity:1;transform:scale(1)}.check-badge{width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-bg-card);display:flex;align-items:center;justify-content:center}.check-badge svg{width:12px;height:12px;color:inherit}.auth-page{height:100%;overflow-y:auto;overscroll-behavior-y:none;scrollbar-gutter:stable both-edges;display:flex;flex-direction:column;width:100%;max-width:var(--app-max-width);margin:0 auto;padding:var(--space-xl)}.auth-page:before,.auth-page:after{content:"";flex:1 0 0}.auth-logo{text-align:center;margin-bottom:var(--space-2xl)}.auth-logo h1{font-size:2rem;color:var(--color-text-primary);margin-top:var(--space-md)}.auth-logo svg{width:80px;height:80px}.auth-logo-icon{width:80px;height:80px;border-radius:22%;object-fit:cover;box-shadow:var(--shadow-md)}.auth-form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-footer{text-align:center;margin-top:var(--space-xl);color:var(--color-text-muted)}.auth-footer a{color:var(--color-accent);font-weight:600}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-error{color:var(--color-danger);font-size:.875rem}.password-input-wrap{position:relative}.password-input-wrap input{padding-right:3rem}.password-toggle{position:absolute;top:50%;right:.5rem;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;min-height:0;background:transparent;border:none;border-radius:var(--radius-full);color:var(--color-text-primary);cursor:pointer}.password-toggle:hover{background:var(--color-border)}.password-toggle:active{transform:translateY(-50%)}.notification-badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;display:flex;align-items:center;justify-content:center;background:var(--color-danger-solid);color:#fff;font-size:.6875rem;font-weight:700;line-height:1;border-radius:var(--radius-full)}.notification-popup-body{overflow:hidden;transition:height .22s cubic-bezier(.4,0,.2,1)}.notification-list{display:flex;flex-direction:column;max-height:60vh;overflow-y:auto;overscroll-behavior:contain}.notification-swipe-shell{--swipe-icon-opacity: .35;--swipe-icon-scale: .82;position:relative;flex:0 0 auto;overflow:hidden;background:var(--color-danger-solid);border-bottom:1px solid var(--color-border);opacity:1;transition:height .22s cubic-bezier(.4,0,.2,1),opacity .18s ease-out,border-bottom-width .22s ease}.notification-swipe-shell:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.notification-swipe-shell:last-of-type{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-bottom:none}.notification-swipe-shell:only-of-type{border-radius:var(--radius-lg)}.notification-swipe-delete-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);color:var(--color-danger-solid-text)}.notification-swipe-delete-bg span{display:flex;align-items:center;justify-content:center;opacity:var(--swipe-icon-opacity);transform:scale(var(--swipe-icon-scale));transition:opacity .12s linear,transform .12s linear}.notification-swipe-delete-bg svg{width:22px;height:22px}.notification-swipe-content{position:relative;z-index:1;display:flex;align-items:center;min-height:76px;padding:var(--space-md);background:var(--color-bg-card);cursor:grab;touch-action:pan-y;backface-visibility:hidden;transform:translateZ(0);transition:transform .32s cubic-bezier(.22,1,.36,1),background-color .15s ease,opacity .22s ease-out}.notification-swipe-content:hover:not(.is-dragging){background:var(--color-bg-tertiary)}.notification-swipe-content:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.notification-swipe-content.is-dragging{cursor:grabbing;transition:none;-webkit-user-select:none;user-select:none;will-change:transform}.notification-swipe-content.is-dismissing{pointer-events:none;will-change:transform;opacity:.84;transition:transform .26s cubic-bezier(.4,0,1,1),opacity .22s ease-out}.notification-swipe-shell.is-collapsing{pointer-events:none}.notification-date{margin-top:2px;font-size:.75rem;opacity:.7}.notification-swipe-hint{padding:var(--space-sm) var(--space-xs) 0;color:var(--color-text-muted);font-size:.75rem;text-align:center}.form-hint{color:var(--color-text-muted);font-size:.875rem}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-card);border-bottom:1px solid var(--color-border);cursor:pointer;transition:background-color .15s}.list-item:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.list-item:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-bottom:none}.list-item:only-child{border-radius:var(--radius-lg)}.list-item:hover{background:var(--color-bg-tertiary)}.list-item-content{flex:1;min-width:0}.list-item-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-subtitle{font-size:.875rem;color:var(--color-text-muted)}.balance{font-weight:700;font-variant-numeric:tabular-nums}.balance-positive{color:var(--color-success)}.balance-negative{color:var(--color-danger)}.balance-zero{color:var(--color-text-muted)}.balances-summary{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-hero);box-shadow:var(--shadow-sm);padding:var(--space-lg);margin-bottom:var(--space-lg)}.balances-summary h3{margin-bottom:var(--space-md);color:var(--color-text-muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em}.group-summary-carousel{position:relative;margin-bottom:var(--space-lg);--summary-gap: var(--space-md)}.group-summary-viewport{overflow:hidden;border-radius:var(--radius-hero);touch-action:pan-y}.group-summary-viewport:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.group-summary-track{display:flex;width:calc(200% + var(--summary-gap));gap:var(--summary-gap);align-items:stretch;transition:transform .36s cubic-bezier(.22,.61,.36,1);will-change:transform}.group-summary-track.is-dragging{transition:none}.group-summary-slide{display:flex;flex:1 1 0;min-width:0}.group-summary-slide .balances-summary{width:100%;height:100%;margin-bottom:0}.cost-summary-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md)}.cost-summary-heading{color:var(--color-text-muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em}.cost-summary-values{display:grid;gap:var(--space-sm)}.cost-summary-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-md);min-height:58px;padding:var(--space-md) 0;border-bottom:1px solid var(--color-border)}.cost-summary-row-final{min-height:72px;margin-top:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card)}.cost-summary-label{font-weight:600}.cost-summary-amount{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.cost-summary-amount-final{color:var(--color-text-primary);font-size:1.5rem}.viewport-info-popover{position:fixed;visibility:hidden;width:min(300px,calc(100vw - 24px));max-width:calc(100vw - 24px);color:var(--color-text-primary);font-size:.8rem;line-height:1.45;z-index:300}.viewport-info-popover-content{max-height:calc(100dvh - 24px);overflow-y:auto;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-md)}.viewport-info-popover:before{content:"";position:absolute;left:var(--info-popover-arrow-left);width:10px;height:10px;background:var(--color-bg-card);transform:translate(-50%) rotate(45deg)}.viewport-info-popover.is-below:before{top:-6px;border-left:1px solid var(--color-border-strong);border-top:1px solid var(--color-border-strong)}.viewport-info-popover.is-above:before{bottom:-6px;border-right:1px solid var(--color-border-strong);border-bottom:1px solid var(--color-border-strong)}.cost-info-popover{width:min(330px,calc(100vw - 24px))}.cost-info-popover strong{display:inline}.cost-info-popover .viewport-info-popover-content>strong{display:block;margin-bottom:6px}.cost-info-popover p+p{margin-top:6px}.group-summary-dots{display:flex;align-items:center;justify-content:center;gap:7px;height:18px;padding-top:var(--space-sm)}.group-summary-dot{width:7px;height:7px;min-height:0;padding:0;border:0;border-radius:var(--radius-full);background:var(--color-text-muted);opacity:.4;transition:opacity .2s ease,background-color .2s ease,transform .2s ease}.group-summary-dot.is-active{background:var(--color-accent);opacity:1;transform:scale(1.15)}.balance-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0}.balance-item:not(:last-child){border-bottom:1px solid var(--color-border)}.activity-card{border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:var(--space-sm)}.activity-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-card);cursor:pointer}.date-badge{width:34px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15}.date-badge-month{font-size:.7rem;color:var(--color-text-muted)}.date-badge-day{font-size:1.25rem;font-weight:700;color:var(--color-text-primary)}.settlement-sentence{font-size:.8125rem;white-space:normal}.activity-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.activity-icon.expense{background:var(--tint-sand);color:var(--color-text-primary)}.activity-icon.settlement{background:var(--color-success-bg);color:var(--color-success)}.activity-content{flex:1;min-width:0}.activity-title{font-weight:600}.activity-meta{font-size:.875rem;color:var(--color-text-muted)}.expense-entry-title,.expense-entry-meta{display:-webkit-box;min-width:0;overflow:hidden;white-space:normal;overflow-wrap:anywhere;text-overflow:ellipsis;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.activity-amount{flex:0 0 auto;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.expense-entry-amount{flex:0 0 auto;text-align:right;white-space:nowrap}@media (max-width: 360px){.expense-entry-item{gap:var(--space-sm);padding:var(--space-sm)}}.empty-state{text-align:center;padding:var(--space-2xl);color:var(--color-text-muted)}.empty-state svg{width:64px;height:64px;margin-bottom:var(--space-md);opacity:.5}.empty-state h3{color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.fab{position:fixed;bottom:calc(var(--safe-bottom) + var(--nav-clearance));right:calc(max(0px,(100% - var(--app-max-width)) / 2) + var(--space-md));width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-action);color:var(--color-action-text);box-shadow:var(--shadow-lg);z-index:50}.fab svg{width:24px;height:24px}.amount-input-wrapper{position:relative}.amount-input-wrapper .currency{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1.25rem;font-weight:600;color:var(--color-text-muted)}.amount-input{padding-left:2.5rem;font-size:1.5rem;font-weight:700;text-align:right}.chip{display:inline-flex;align-items:center;padding:.25rem .75rem;background:var(--color-bg-tertiary);border-radius:var(--radius-full);font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.chip.active{background:var(--color-accent-dim);color:var(--color-accent)}.member-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--tint-sage);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.875rem;color:var(--color-text-primary);border:2px solid var(--color-accent);flex-shrink:0}.member-avatar-img{object-fit:cover;display:block}.member-avatar-placeholder{background:transparent;border:2px dashed var(--color-text-muted);color:var(--color-text-secondary)}.placeholder-tag{display:inline-block;padding:1px 8px;border:1px dashed var(--color-text-muted);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:.7rem;font-weight:600;vertical-align:middle;white-space:nowrap}.member-list-item{display:grid;grid-template-columns:40px minmax(0,1fr) 82px;column-gap:var(--space-md);row-gap:var(--space-sm)}.member-list-item.has-remove-column{grid-template-columns:40px minmax(0,1fr) 82px 36px}.member-role-cell{display:flex;justify-content:flex-end;flex-shrink:0}.member-role-cell .role-tag{margin-left:0}.member-remove-btn{width:36px;min-width:36px;padding:0;flex-shrink:0}.placeholder-claim-hint{margin:var(--space-sm) var(--space-md) var(--space-lg);color:var(--color-text-muted);font-size:.75rem;line-height:1.4}@media (max-width: 360px){.member-list-item{column-gap:var(--space-sm)}}.role-tag{display:inline-flex;align-items:center;justify-content:center;width:82px;min-height:36px;margin-left:6px;padding:1px 8px;background:transparent;border:1px solid var(--color-text-muted);border-radius:var(--radius-full);color:var(--color-text-muted);font-size:.7rem;font-weight:600;font-family:inherit;line-height:inherit;text-align:center;vertical-align:middle;white-space:nowrap}.role-tag.is-admin{border-color:var(--color-accent);color:var(--color-accent)}.member-placeholder-role-tag{border-style:dashed;border-color:var(--color-text-muted);color:var(--color-text-secondary);background:transparent}button.member-placeholder-role-tag:hover:not(:disabled){background:var(--color-bg-tertiary)}button.role-tag{cursor:pointer}button.role-tag:disabled{opacity:.6;cursor:default}.offline-banner{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--app-max-width);background:var(--color-warning);color:#33290f;text-align:center;padding:var(--space-sm);font-weight:600;font-size:.875rem;z-index:1000}.update-notice{position:fixed;top:calc(var(--safe-top) + var(--space-sm));left:50%;transform:translate(-50%);z-index:1001;width:calc(100% - 2 * var(--space-md));max-width:calc(var(--app-max-width) - 2 * var(--space-md));display:flex;flex-direction:column;gap:var(--space-sm);padding:.75rem var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:update-notice-in .2s ease-out}.update-notice-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.update-notice-text strong{color:var(--color-text-primary);font-size:.875rem}.update-notice-text span{color:var(--color-text-secondary);font-size:.75rem;line-height:1.35}.update-notice-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.update-notice-actions .btn{width:100%;min-width:0;height:auto;padding:var(--space-sm);font-size:.8rem;line-height:1.2;white-space:normal}@keyframes update-notice-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.loading-screen{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;color:var(--color-text-muted)}.skeleton{background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-secondary) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.transfer-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-md)}.transfer-arrow{color:var(--color-accent);font-size:1.5rem}.transfer-user{flex:1;text-align:center}.transfer-amount{font-size:1.25rem;font-weight:700;color:var(--color-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:var(--color-accent-dim);color:var(--color-text-primary)}.split-options{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.split-option{flex:1;padding:var(--space-md);background:var(--color-bg-card);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);text-align:center;cursor:pointer;transition:all .15s}.split-option.active{border-color:var(--color-accent);background:var(--color-accent-dim)}.member-checkbox{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-card);border-radius:var(--radius-md);margin-bottom:var(--space-sm);cursor:pointer}.member-checkbox input[type=checkbox]{width:24px;height:24px;accent-color:var(--color-accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181573;display:flex;align-items:flex-end;justify-content:center;z-index:200}.modal{width:100%;max-width:var(--app-max-width);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-hero);box-shadow:var(--shadow-lg);margin:0 var(--space-md) calc(var(--safe-bottom) + var(--space-md));padding:var(--space-lg);max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.avatar-editor-canvas{position:relative;width:280px;height:280px;margin:0 auto var(--space-md);overflow:hidden;border-radius:var(--radius-md);background:var(--color-bg-tertiary);touch-action:none;cursor:grab}.avatar-editor-canvas:active{cursor:grabbing}.avatar-editor-canvas img{position:absolute;left:50%;top:50%;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.avatar-editor-mask{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 0 0 9999px #282c298c;border:2px solid rgba(255,255,255,.8);pointer-events:none}.avatar-editor-zoom{display:flex;align-items:center;gap:var(--space-sm);max-width:280px;margin:0 auto var(--space-sm);color:var(--color-text-secondary);font-size:1.25rem}.avatar-editor-zoom input[type=range]{flex:1;accent-color:var(--color-accent)}.avatar-editor-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md)}.avatar-editor-actions .btn{flex:1}.message{padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.message-success{background:var(--color-success-bg);color:var(--color-success)}.message-error{background:var(--color-danger-bg);color:var(--color-danger)}.invite-link-box{display:flex;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-md)}.invite-link-box input{flex:1;background:transparent;border:none;padding:0;font-size:.875rem;color:var(--color-text-secondary)}.invite-link-box input:focus{box-shadow:none}.toggle-switch{position:relative;display:inline-block;width:52px;height:30px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-bg-tertiary);border-radius:var(--radius-full);transition:background-color .2s ease;border:1px solid var(--color-border)}.toggle-slider:before{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:var(--radius-full);background:var(--color-bg-card);box-shadow:var(--shadow-sm);transition:transform .2s ease}.toggle-switch input:checked+.toggle-slider{background:var(--color-accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5}.settlement-toggle-row{display:flex;align-items:center;gap:var(--space-sm)}.settlement-toggle-label{flex:1;font-weight:500}.settlement-toggle-row.is-disabled .settlement-toggle-label{color:var(--color-text-muted)}.push-settings{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.push-settings-status{margin-top:var(--space-sm);margin-bottom:0}.push-settings-divider{margin:var(--space-md) 0;border-top:1px solid var(--color-border)}.push-test-button,.push-settings-message{margin-top:var(--space-md)}.push-settings-message{margin-bottom:0}.settlement-toggle-label-with-info{display:flex;align-items:center;gap:var(--space-sm)}.settlement-info-btn{width:30px;height:30px;min-height:30px;border-radius:var(--radius-full);padding:0;background:var(--color-bg-tertiary);color:var(--color-text-primary);font-weight:700;line-height:1}.settlement-info-wrap{display:inline-flex}.settlement-info-popover{width:min(300px,calc(100vw - 24px))}.settlement-info-popover strong{display:block;margin-bottom:6px}.settlement-info-popover p+p{margin-top:6px}.collapsible{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);display:flow-root}.collapsible-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:transparent;border:none;border-radius:var(--radius-xl);cursor:pointer;text-align:left}.collapsible-header:hover{background:var(--color-bg-tertiary)}.collapsible-title{font-weight:600;color:var(--color-text-primary)}.collapsible-summary{font-size:.875rem;color:var(--color-text-muted)}.collapsible-chevron{width:20px;height:20px;flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease}.collapsible.open .collapsible-chevron{transform:rotate(180deg)}.collapsible-body{padding:0 var(--space-md) var(--space-md)}.collapsible-header:first-child+.collapsible-body{padding-top:var(--space-sm)}.collapsible-static{padding:var(--space-md) var(--space-md) 0}.collapsible-static label{margin-bottom:var(--space-sm)}.collapsible-static+.collapsible-header{width:calc(100% - 2 * var(--space-md));margin:0 var(--space-md) var(--space-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.collapsible:not(.open) .collapsible-static+.collapsible-header{margin-bottom:calc(var(--space-md) + var(--space-xs))}.collapsible-static+.collapsible-header:hover{background:var(--color-border-strong)}.collapsible-body .member-checkbox{border:1px solid var(--color-border)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.section-title{font-size:.8125rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.mt-md{margin-top:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.gap-sm{gap:var(--space-sm)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.w-full{width:100%}.tint-sage{background:var(--tint-sage)}.tint-rose{background:var(--tint-rose)}.tint-sand{background:var(--tint-sand)}.add-menu-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.add-menu-option{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-sm);min-height:140px;padding:var(--space-lg) var(--space-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;text-align:center;transition:background .15s,transform .12s ease}.add-menu-option:active{transform:scale(.97)}.add-menu-option:nth-child(odd){background:var(--tint-sage)}.add-menu-option:nth-child(2n){background:var(--tint-sand)}.add-menu-icon{width:56px;height:56px;border-radius:var(--radius-lg);background:#ffffff8c;display:flex;align-items:center;justify-content:center;color:var(--color-text-primary);flex-shrink:0}:root[data-theme=dark] .add-menu-icon{background:#00000040}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .add-menu-icon{background:#00000040}}.add-menu-icon svg{width:28px;height:28px}.add-menu-text{display:flex;flex-direction:column;gap:2px}.add-menu-title{font-weight:700;color:var(--color-text-primary)}.add-menu-subtitle{font-size:.75rem;color:var(--color-text-muted)}.person-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-sm);overflow:hidden;transition:opacity .15s ease}.person-card.is-settled{opacity:.68}.person-card.is-settled:hover,.person-card.is-settled.open{opacity:.9}.person-card-header{width:100%;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:transparent;border:none;border-radius:0;color:var(--color-text-primary);cursor:pointer;text-align:left}.person-card-header:hover{background:var(--color-bg-tertiary)}.person-card-chevron{width:20px;height:20px;flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease}.person-card.open .person-card-chevron{transform:rotate(180deg)}.person-card-body{padding:var(--space-sm) var(--space-md) .75rem}.person-card-body .list-item{background:var(--color-bg-primary);border-bottom-color:var(--color-bg-card)}.person-card-body .list-item:hover{background:var(--color-bg-tertiary)}.settled-toggle{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;padding:var(--space-sm);background:none;border:none;color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer}.settled-toggle svg{width:16px;height:16px;flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease}.settled-toggle.open svg{transform:rotate(180deg)}.expense-activity-details{background:var(--color-bg-secondary);border-top:1px solid var(--color-border)}.expense-details-content{padding:var(--space-md)}.expense-details-section+.expense-details-section{margin-top:var(--space-md)}.expense-details-heading{margin-bottom:var(--space-xs);color:var(--color-text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.expense-details-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-xs) 0;color:var(--color-text-secondary);font-size:.875rem}.expense-details-row .placeholder-tag{margin-left:var(--space-xs)}.expense-details-note{color:var(--color-text-secondary);font-size:.875rem;white-space:pre-wrap;overflow-wrap:anywhere}.activity-actions{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-top:1px solid var(--color-border)}.activity-actions .btn{flex:1}.ptr-indicator{position:fixed;top:calc(var(--safe-top) + 14px);left:50%;z-index:200;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-md);color:var(--color-text-muted);opacity:0;transform:translate(-50%) scale(.5);pointer-events:none}.ptr-indicator svg{width:20px;height:20px}.ptr-indicator.is-armed{color:var(--color-accent)}.ptr-indicator.is-refreshing svg{animation:ptr-spin .8s linear infinite}@keyframes ptr-spin{0%{transform:rotate(225deg)}to{transform:rotate(585deg)}}
