@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;600;700&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"DM Sans", "Avenir Next", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--color-bg:#fafaf8;--color-bg-elevated:#fff;--color-bg-muted:#f0efea;--color-ink:#252521;--color-ink-soft:#5d5c57;--color-muted:#8e8e93;--color-line:#e8e4da;--color-primary:#252521;--color-primary-contrast:#fff;--color-mint:#bff3c4;--color-mint-strong:#4caf7d;--color-lavender:#d8c1ee;--color-cream:#fff2c5;--color-sky:#cfeaf7;--color-rose:#ffd4d4;--color-danger:#e85d5d;--color-warning:#f5a623;--color-success:#4caf7d;--shadow-card:0 18px 45px #29271f14;--shadow-soft:0 10px 28px #29271f14;--radius-xs:10px;--radius-sm:14px;--radius-md:18px;--radius-lg:26px;--radius-xl:34px;--safe-top:env(safe-area-inset-top);--safe-bottom:env(safe-area-inset-bottom);--nav-rail:96px;--nav-gap:56px;--column-gap:40px;--aside-width:380px;--layout-max:1240px;--layout-pad-y:48px}*{box-sizing:border-box}html{background:radial-gradient(circle at top left, #d8c1ee61, transparent 36rem), radial-gradient(circle at 85% 10%, #bff3c46b, transparent 28rem), linear-gradient(180deg, #fffdfa 0%, var(--color-bg) 100%);-webkit-tap-highlight-color:transparent;min-height:100%}body{overscroll-behavior:none;min-width:320px;min-height:100vh;color:var(--color-ink);font-family:var(--font-display), serif;background:0 0;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}#root{min-height:100vh;overflow-x:hidden}.app-shell{grid-template-columns:1fr;width:min(100%,1180px);max-width:100%;min-height:100vh;margin:0 auto;display:grid;overflow-x:hidden}.app-frame{min-width:0;display:block}.app-main{width:min(100%,560px);min-width:0;padding:18px 16px calc(112px + env(safe-area-inset-bottom,0px));margin:0 auto;overflow-x:hidden}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;margin-bottom:18px;display:flex}.page-header>*{min-width:0}.eyebrow{color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:.78rem;font-weight:700}.headline{letter-spacing:-.06em;overflow-wrap:anywhere;margin:0;font-size:clamp(2rem,7vw,3.3rem);font-weight:800;line-height:.95}.section-title{letter-spacing:-.03em;margin:28px 0 14px;font-size:1.05rem;font-weight:800}.card{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#ffffffd1;border:1px solid #e8e4dac7}.card.pad{padding:18px}.button{background:var(--color-primary);min-height:46px;color:var(--color-primary-contrast);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:800;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.button:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.button.secondary{border:1px solid var(--color-line);background:var(--color-bg-elevated);color:var(--color-ink)}.button.ghost{background:var(--color-bg-muted);color:var(--color-ink)}.button.danger{background:var(--color-danger);color:#fff}.button.full{width:100%}.icon-button{width:44px;height:44px;color:var(--color-ink);background:#ffffffd9;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 8px 22px #25252114}.field{color:var(--color-ink-soft);gap:8px;font-size:.86rem;font-weight:700;display:grid}.input,.select,.textarea{border:1px solid var(--color-line);background:var(--color-bg-elevated);width:100%;min-height:48px;color:var(--color-ink);border-radius:16px;outline:0;padding:0 14px}.textarea{resize:vertical;min-height:92px;padding:14px}.input:focus,.select:focus,.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #25252114}.form-grid{gap:12px;display:grid}.amount{font-family:var(--font-mono), serif;letter-spacing:-.05em;font-weight:800}.muted{color:var(--color-muted)}.pill{background:var(--color-bg-muted);color:var(--color-ink-soft);border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:.75rem;font-weight:800;display:inline-flex}.pill.green{color:#297652;background:#4caf7d29}.pill.yellow{color:#875b10;background:#f5a6232e}.pill.red{color:#9d3030;background:#e85d5d29}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.metric-card{border-radius:var(--radius-md);background:var(--color-bg-elevated);min-height:112px;padding:16px;overflow:hidden}.metric-card.dark{background:var(--color-primary);color:var(--color-primary-contrast)}.metric-card.mint{background:var(--color-mint)}.metric-card.lavender{background:var(--color-lavender)}.metric-card.cream{background:var(--color-cream)}.metric-card.sky{background:var(--color-sky)}.metric-label{color:inherit;opacity:.72;margin:0 0 10px;font-size:.78rem;font-weight:800}.metric-value{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono), serif;letter-spacing:-.08em;margin:0;font-size:clamp(1.05rem,5.5vw,2rem);font-weight:800;overflow:hidden}.progress-track{background:#2525211a;border-radius:999px;height:10px;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--color-primary);height:100%;transition:width .28s}.bottom-nav{left:50%;bottom:max(8px, calc(env(safe-area-inset-bottom,0px) - 20px));z-index:20;isolation:isolate;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-backdrop-filter:blur(24px)saturate(190%)contrast(1.08)brightness(1.08);background-color:#ffffff2e;background-image:linear-gradient(145deg,#ffffff94,#ffffff38),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto,auto;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:padding-box;border:1px solid #ffffff94;border-radius:28px;grid-template-columns:repeat(5,1fr);width:min(100% - 28px,480px);padding:7px;display:grid;position:fixed;overflow:visible;transform:translate(-50%);box-shadow:inset 0 1px 1px #ffffffd1,inset 0 -1px 1px #25252114,inset 1px 0 1px #ffffff52,inset -1px 0 1px #2525210d}.bottom-nav:before,.bottom-nav:after{border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0}.bottom-nav:before{z-index:0;-webkit-backdrop-filter:blur(34px)saturate(210%);background:radial-gradient(circle at 16% 0,#ffffffdb,#0000 32%),radial-gradient(circle at 86% 112%,#ffffff57,#0000 38%),linear-gradient(#ffffff47,#ffffff14)}.bottom-nav:after{z-index:1;background:linear-gradient(135deg,#ffffff61,#ffffff0a 36%,#2525210f 72%,#ffffff2e),linear-gradient(90deg,#ffffff2e,#0000 22% 78%,#ffffff2e);border:1px solid #ffffff57;box-shadow:inset 0 1px #ffffffa3,inset 0 -1px #2525210f}.bottom-nav>*{z-index:2;position:relative}.bottom-nav__item{min-height:56px;color:var(--color-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 4px;transition:color .2s,background .2s,transform .12s;display:flex;position:relative}.bottom-nav__item:active{transform:scale(.92)}.bottom-nav__icon{border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,color .2s,box-shadow .2s;display:flex}.bottom-nav__label{letter-spacing:.01em;text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:64px;font-size:.6rem;font-weight:700;line-height:1.16;transition:color .2s;overflow:hidden}.bottom-nav__item.active .bottom-nav__icon,.bottom-nav a.active .bottom-nav__icon{background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:0 4px 14px #25252147,inset 0 1px #ffffff2e}.bottom-nav__item.active,.bottom-nav a.active{color:var(--color-primary)}@media (hover:hover){.bottom-nav__item:hover:not(.active) .bottom-nav__icon{background:#25252112}}.modal-backdrop{z-index:40;background:#25252147;place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.modal-panel{border-radius:var(--radius-xl);background:var(--color-bg-elevated);flex-direction:column;width:min(100%,520px);max-height:min(92dvh,720px);display:flex;overflow:hidden;box-shadow:0 24px 70px #25252138}.modal-panel__header{border-bottom:1px solid var(--color-line);flex-shrink:0;padding:20px 20px 16px}.modal-panel__body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-line) transparent;flex:1;padding:20px;overflow-y:auto}.confirm-dialog{gap:16px;display:grid}.confirm-dialog-icon{background:linear-gradient(135deg, #ffd4d4f5, #fff2c5b8), var(--color-rose);color:#a93838;border-radius:18px;place-items:center;width:52px;height:52px;display:grid;box-shadow:inset 0 0 0 1px #e85d5d24}.confirm-dialog-copy{gap:8px;display:grid}.confirm-dialog-copy p,.confirm-dialog-copy span{margin:0}.confirm-dialog-copy p{color:var(--color-ink);letter-spacing:-.02em;font-size:1rem;font-weight:800;line-height:1.35}.confirm-dialog-copy span{color:var(--color-ink-soft);font-size:.9rem;font-weight:700;line-height:1.45}.confirm-dialog-actions{gap:10px;display:grid}.mobile-modal-form{gap:16px;display:grid}.modal-form-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg,#edeae3 0%,#f8f6f0 45%,#edeae3 90%) 0 0/240% 100%;animation:1.4s infinite shimmer;overflow:hidden}.auth-screen{width:min(100%,1040px);min-height:100vh;padding:28px 16px calc(28px + var(--safe-bottom));align-items:center;gap:20px;margin:0 auto;display:grid}.auth-lang-toggle{top:max(16px, env(safe-area-inset-top,16px));right:max(16px, env(safe-area-inset-right,16px));z-index:50;position:fixed}.auth-lang-toggle .theme-toggle{background:var(--color-surface);box-shadow:0 2px 12px #0000001f}.auth-lang-toggle .theme-toggle button{min-height:34px;padding:0 14px;font-size:.78rem}.auth-hero{background:linear-gradient(135deg, #bff3c4db, #d8c1eed1), var(--color-bg-elevated);min-height:320px;box-shadow:var(--shadow-card);border-radius:38px;align-content:end;padding:32px;display:grid;position:relative;overflow:hidden}.auth-hero__glow{filter:blur(20px);pointer-events:none;background:radial-gradient(circle,#ffffffb3,#0000 70%);width:60%;height:70%;animation:9s ease-in-out infinite alternate authGlow;position:absolute;inset:-40% -20% auto auto}@keyframes authGlow{0%{opacity:.7;transform:translate(0)scale(1)}to{opacity:.95;transform:translate(-12%,14%)scale(1.18)}}.auth-hero__content{z-index:1;position:relative}.auth-hero__eyebrow{color:var(--color-ink);opacity:.65}.auth-hero__title{letter-spacing:-.03em;color:var(--color-ink);margin:8px 0 0;font-size:clamp(1.8rem,4.6vw,2.8rem);font-weight:800;line-height:1.05}.jars{align-items:flex-end;gap:10px;height:180px;margin-top:28px;display:flex}.jar{opacity:0;flex-direction:column;flex:1;align-items:center;gap:8px;animation:.55s cubic-bezier(.22,1,.36,1) forwards jarEnter;display:flex;transform:translateY(14px)}@keyframes jarEnter{to{opacity:1;transform:translateY(0)}}.jar__track{background:#ffffff73;border-radius:14px;justify-content:center;align-items:flex-end;width:100%;height:150px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff9}.jar__fill{transform-origin:bottom;border-radius:14px 14px 0 0;width:100%;animation:.7s cubic-bezier(.22,1,.36,1) both jarFill;position:absolute;bottom:0;left:0}@keyframes jarFill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.jar__fill--mint{background:var(--color-mint-strong)}.jar__fill--lavender{background:#9d7bc9}.jar__fill--sky{background:#5aa9cf}.jar__fill--cream{background:#e6b84d}.jar__fill--rose{background:#e07a7a}.jar__fill--charcoal{background:var(--color-primary)}.jar__pct{z-index:1;color:#fff;text-shadow:0 1px 2px #00000040;margin-bottom:8px;font-size:.72rem;font-weight:900;position:relative}.jar__name{color:var(--color-ink-soft);text-align:center;font-size:.62rem;font-weight:700;line-height:1.1}.auth-panel{width:min(100%,440px);margin:0 auto}.auth-card-shell{border-radius:var(--radius-lg);background:var(--color-bg-elevated);box-shadow:var(--shadow-card);padding:24px}.auth-card-shell__head{margin:4px 0 16px}.auth-card-shell__head h2{letter-spacing:-.02em;margin:0;font-size:1.3rem;font-weight:800}.auth-card-shell__head p{color:var(--color-muted);margin:4px 0 0;font-size:.88rem}.auth-field-reveal{animation:.4s both authReveal}@keyframes authReveal{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.auth-feedback{border-radius:14px;align-items:center;gap:8px;margin:0;padding:10px 12px;font-size:.85rem;font-weight:700;display:flex}.auth-feedback--error{background:var(--color-rose);color:#7c2424}.auth-feedback--success{background:var(--color-mint);color:#1f5a3d}.auth-switch-hint{text-align:center;color:var(--color-muted);margin:16px 0 0;font-size:.85rem}.auth-switch-hint button{color:var(--color-ink);cursor:pointer;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.auth-copy{max-width:36rem;color:var(--color-ink-soft);margin:16px 0 0;font-size:1rem;font-weight:600;line-height:1.55}.auth-card{width:min(100%,440px);margin:0 auto}.auth-tabs{background:var(--color-bg-muted);border-radius:999px;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:18px;padding:5px;display:grid}.auth-tabs button{min-height:40px;color:var(--color-muted);background:0 0;border-radius:999px;font-weight:800}.auth-tabs .active{background:var(--color-bg-elevated);color:var(--color-ink);box-shadow:0 8px 18px #25252114}.auth-oauth-button{width:100%;min-height:48px;color:var(--color-ink);cursor:pointer;background:#fff;border:1px solid #2525211f;border-radius:16px;justify-content:center;align-items:center;gap:10px;font-size:.95rem;font-weight:800;transition:transform .16s,box-shadow .16s,border-color .16s;display:inline-flex;box-shadow:0 10px 24px #2525210f}.auth-oauth-button:hover:not(:disabled){border-color:#25252133;transform:translateY(-1px);box-shadow:0 14px 28px #2525211a}.auth-oauth-button:active:not(:disabled){transform:translateY(0)}.auth-oauth-button:disabled{cursor:not-allowed;opacity:.68}.auth-oauth-button img{flex:none}.auth-divider{color:var(--color-muted);letter-spacing:.02em;align-items:center;gap:12px;margin:18px 0;font-size:.78rem;font-weight:800;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#2525211f;flex:1;height:1px}.form-message{background:var(--color-rose);color:#7c2424;border-radius:14px;margin:0;padding:10px 12px;font-size:.85rem;font-weight:700}.settings-stack{gap:24px;display:grid}.install-card__copy{margin:0 0 18px;line-height:1.55}.bucket-stack{gap:16px;display:grid}.bucket-settings-form{gap:14px;display:grid}.bucket-settings-actions{align-items:flex-end;gap:12px;display:flex}.bucket-settings-pct{flex:0 0 108px;min-width:0}.bucket-settings-save{flex:1;min-width:0;min-height:48px}.input-affix{align-items:center;display:flex;position:relative}.input-affix__control{padding-right:34px}.input-affix__suffix{color:var(--color-muted);pointer-events:none;font-size:.9rem;font-weight:700;position:absolute;right:14px}.bucket-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);background:#ffffffe6;border:1px solid #e8e4dae0;overflow:hidden}.bucket-card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:18px;list-style:none;display:flex}.bucket-card summary::-webkit-details-marker{display:none}.bucket-card summary p{letter-spacing:-.04em;margin:0 0 5px;font-size:1.05rem;font-weight:900}.bucket-card summary span{color:var(--color-muted);font-size:.84rem;font-weight:700}.bucket-summary-right{align-items:center;gap:8px;display:flex}.bucket-card[open] .bucket-summary-right svg{transform:rotate(180deg)}.bucket-body{border-top:1px solid var(--color-line);gap:14px;padding:0 18px 18px;display:grid}.bucket-progress{background:#25252114;border-radius:999px;height:9px;overflow:hidden}.bucket-progress-fill{border-radius:inherit;height:100%}.bucket-progress-fill.green{background:var(--color-success)}.bucket-progress-fill.yellow{background:var(--color-warning)}.bucket-progress-fill.red{background:var(--color-danger)}.bucket-numbers{color:var(--color-ink-soft);justify-content:space-between;gap:10px;font-size:.82rem;font-weight:800;display:flex}.group-section{gap:8px;display:grid}.group-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.group-section h3{color:var(--color-ink);letter-spacing:-.02em;margin:8px 0 0;font-size:.88rem;font-weight:900}.group-title-button,.expense-main-button,.amount-button{min-width:0;color:inherit;text-align:left;background:0 0;border:0;padding:0}.group-title-button h3{margin:8px 0 0}.expense-main-button:disabled,.amount-button:disabled,.group-title-button:disabled,.add-inline-button:disabled{cursor:not-allowed;opacity:.68}.expense-list{gap:8px;display:grid}.expense-row{background:var(--color-bg);border-radius:18px;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;display:grid}.expense-row strong,.expense-main-button strong{font-size:.9rem;display:block}.expense-row span,.expense-main-button span{color:var(--color-muted);font-size:.75rem;font-weight:700}.expense-row .amount{margin:0;font-size:.9rem}.expense-row.focused{background:var(--color-bg-elevated);box-shadow:inset 0 0 0 2px #25252129,0 12px 28px #25252114}.expense-row--paying{background:linear-gradient(180deg, #f5a62314, #f5a62308), var(--color-bg)}.pay-check{background:var(--color-bg-elevated);width:34px;height:34px;color:var(--color-muted);border-radius:50%;place-items:center;display:inline-grid}.pay-check.checked{background:var(--color-primary);color:var(--color-primary-contrast)}.pay-check.in-progress{color:#875b10;background:#f5a6232e;box-shadow:inset 0 0 0 1px #f5a62347}.expense-row__statusline{align-items:center;gap:6px;min-width:0;display:flex}.expense-row__statusline .pill{padding:4px 8px;font-size:.66rem}.expense-row__note{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.expense-row__progress{grid-column:2/-1;gap:6px;margin-top:-2px;display:grid}.expense-row__progress-meta{color:#875b10;justify-content:space-between;align-items:center;gap:10px;display:flex}.expense-row__progress--over .expense-row__progress-meta{color:var(--color-danger)}.expense-row__progress-meta span,.expense-row__progress-meta strong{font-size:.72rem;font-weight:900}.expense-row__progress-meta span{align-items:center;gap:4px;display:inline-flex}.expense-row__progress-track{background:#f5a62329;border-radius:999px;height:7px;overflow:hidden}.expense-row__progress-fill{border-radius:inherit;background:var(--color-warning);height:100%;transition:width .26s}.expense-row__progress--over .expense-row__progress-track{background:#e85d5d29}.expense-row__progress--over .expense-row__progress-fill{background:var(--color-danger)}.expense-row-editing{grid-template-columns:38px minmax(0,1fr) auto}.inline-edit-grid{grid-template-columns:minmax(0,1fr) minmax(92px,.48fr);gap:8px;display:grid}.inline-edit-row,.add-item-form,.add-group-form{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.inline-edit-row{flex:1}.add-item-form{background:#ffffffa3;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(92px,.45fr) auto;padding:10px}.add-group-form{border:1px dashed var(--color-line);border-radius:18px;padding:10px}.inline-input{border-radius:13px;min-height:38px;padding:0 10px;font-size:.86rem}.row-actions{align-items:center;gap:6px;display:flex}.icon-button.ghost{background:var(--color-bg-muted);box-shadow:none}.icon-button.danger{color:var(--color-danger);box-shadow:none;background:#ffffffe6}.add-inline-button{background:var(--color-bg-muted);width:fit-content;min-height:38px;color:var(--color-ink);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:.84rem;font-weight:900;display:inline-flex}.currency-switch{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;min-width:0;max-width:100%;margin:0 0 16px;padding-bottom:2px;display:flex;overflow-x:auto}.currency-switch::-webkit-scrollbar{display:none}.currency-switch button{min-height:38px;color:var(--color-muted);background:#ffffffbd;border-radius:999px;flex-shrink:0;padding:0 14px;font-weight:900}.currency-switch .active{background:var(--color-primary);color:var(--color-primary-contrast)}.trm-trigger-btn{background:var(--color-lavender);min-height:38px;color:var(--color-ink);letter-spacing:.04em;white-space:nowrap;border:1.5px solid #0000;border-radius:999px;flex-shrink:0;padding:0 14px;font-size:.78rem;font-weight:900;transition:background .2s}@media (hover:hover){.trm-trigger-btn:hover{color:var(--color-ink);background:#25252112;border-color:#0000}}.trm-trigger-btn:active{transform:scale(.97)}.trm-modal{padding:22px}.trm-modal__header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.trm-modal__title-group{align-items:center;gap:8px;display:flex}.trm-modal__icon{color:var(--color-muted)}.trm-modal__title{letter-spacing:-.03em;margin:0;font-size:1rem;font-weight:800}.trm-modal__actions{gap:8px;display:flex}.trm-pairs{gap:10px;display:grid}.trm-pair{border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff85;border:1px solid #e8e4daa6;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;padding:14px 16px;animation:.32s both trm-pair-in;display:grid;box-shadow:0 8px 24px #29271f0d,inset 0 1px #ffffffb8}.trm-pair:first-child{animation-delay:60ms}.trm-pair:nth-child(2){animation-delay:.12s}.trm-pair:nth-child(3){animation-delay:.18s}@keyframes trm-pair-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.trm-pair__labels{grid-area:1/1;align-items:center;gap:6px;display:flex}.trm-pair__from,.trm-pair__to{font-family:var(--font-mono), serif;letter-spacing:.06em;color:var(--color-ink-soft);background:#ffffffa6;border:1px solid #e8e4da8c;border-radius:6px;padding:2px 7px;font-size:.72rem;font-weight:700}.trm-pair__arrow{color:var(--color-ink-soft);font-size:.8rem}.trm-pair__name{color:var(--color-ink-soft);grid-area:2/1;margin:4px 0 0;font-size:.73rem;font-weight:600}.trm-pair__rate{text-align:right;grid-area:1/2/-1;margin:0}.trm-pair__value{font-family:var(--font-mono), serif;letter-spacing:-.03em;color:var(--color-ink);font-size:1.2rem;font-weight:700;display:block}.trm-pair__error{font-family:var(--font-mono), serif;color:var(--color-muted);font-size:1.35rem}.trm-skeleton{background:linear-gradient(90deg,#25252114 25%,#25252124 50%,#25252114 75%) 0 0/240% 100%;border-radius:8px;width:96px;height:1.4rem;animation:1.4s infinite shimmer;display:inline-block}.trm-refresh-btn--spinning svg{animation:.7s linear infinite trm-spin}@keyframes trm-spin{to{transform:rotate(360deg)}}.trm-modal__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:18px;display:flex}.trm-timestamp{color:var(--color-muted);align-items:center;gap:5px;font-size:.72rem;font-weight:600;display:flex}.trm-timestamp--loading{font-style:italic}.trm-error-msg{color:var(--color-danger);font-size:.72rem;font-weight:700}.trm-source{color:var(--color-muted);text-align:right;flex-shrink:0;font-size:.65rem;font-weight:500}.empty-state{justify-items:start;gap:10px;display:grid}.empty-state h2{letter-spacing:-.04em;margin:0;font-size:1.4rem}.empty-state p{color:var(--color-ink-soft);margin:0;line-height:1.5}.income-list{gap:10px;display:grid}.income-row{background:var(--color-bg);border-radius:18px;grid-template-columns:minmax(0,1fr) auto 38px;align-items:center;gap:10px;padding:10px;display:grid}.income-row.pending-row{cursor:pointer;transition:transform .16s,background .16s}.income-row.pending-row:hover{background:var(--color-bg-elevated);transform:translateY(-1px)}.income-row strong,.income-row span{display:block}.income-row span{color:var(--color-muted);font-size:.75rem;font-weight:800}.income-row .amount{margin:0}.icon-button.mini{width:34px;height:34px}.dashboard-progress{margin-top:20px}.dashboard-aside{gap:4px;display:grid}.section-heading-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.mini-bucket{justify-content:space-between;align-items:center;gap:14px;display:flex}.mini-bucket-copy{min-width:0}.mini-bucket-link{display:block}.mini-bucket-link .mini-bucket{transition:transform .16s,box-shadow .16s,background .16s}.mini-bucket-link:hover .mini-bucket{background:var(--color-bg-elevated);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.mini-bucket-copy strong,.mini-bucket-copy span{display:block}.mini-bucket-copy span{color:var(--color-muted);margin-top:4px;font-size:.78rem;font-weight:800}.mini-bucket-copy .available{color:var(--color-success)}.mini-bucket-copy .available.empty{color:var(--color-danger)}.mini-bucket-metrics{flex:0 0 116px;gap:6px;display:grid}.mini-bucket-stat{background:var(--color-bg-muted);min-height:34px;color:var(--color-ink-soft);border:1px solid #25252112;border-radius:15px;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;display:flex;box-shadow:inset 0 1px #ffffffa3}.mini-bucket-stat span{color:currentColor;letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:900;line-height:1}.mini-bucket-stat strong{color:currentColor;font-family:var(--font-mono), serif;letter-spacing:-.05em;font-size:.86rem;font-weight:900;line-height:1}.mini-bucket-stat.green{color:#297652;background:#4caf7d21;border-color:#4caf7d33}.mini-bucket-stat.yellow{color:#875b10;background:#f5a62326;border-color:#f5a6233d}.mini-bucket-stat.red{color:#9d3030;background:#e85d5d21;border-color:#e85d5d38}.mini-bucket-stat.suggested{color:var(--color-muted);background:#ffffffb8;border-color:#25252117}.entry-toggle{background:var(--color-bg-muted);border-radius:999px;grid-template-columns:repeat(2,1fr);gap:6px;margin:0 0 16px;padding:5px;display:grid}.entry-toggle button{min-height:38px;color:var(--color-muted);background:0 0;border-radius:999px;font-size:.84rem;font-weight:900}.entry-toggle .active{background:var(--color-primary);color:var(--color-primary-contrast);box-shadow:0 8px 18px #25252114}.history-timeline{gap:12px;display:grid}.period-row{grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid;position:relative}.period-row strong,.period-row span{display:block}.period-row span,.period-note{color:var(--color-muted);font-size:.78rem;font-weight:800}.timeline-dot{background:var(--color-primary);width:12px;height:12px;box-shadow:0 0 0 2px var(--color-lavender);border:3px solid #fff;border-radius:50%}.period-note{grid-column:2/-1;margin:-4px 0 0}@keyframes shimmer{to{background-position:-240% 0}}@media (width>=920px){.modal-backdrop{place-items:center}.confirm-dialog-actions{grid-template-columns:1fr 1fr}.auth-screen{grid-template-columns:1fr 440px}.app-main{width:min(100%,1040px);padding-inline:32px}.desktop-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:28px;display:grid}}@media (width>=1280px){.app-shell{width:min(100%, var(--layout-max));padding:var(--layout-pad-y) 0}.app-frame{grid-template-columns:var(--nav-rail) var(--nav-gap) minmax(0, 1fr);min-height:calc(100vh - var(--layout-pad-y) * 2);align-items:start;display:grid}.bottom-nav{width:var(--nav-rail);border-radius:28px;grid-column:1;grid-template-columns:1fr;align-self:start;padding:8px 6px;position:sticky;inset:max(48px,50vh - 160px) auto auto;transform:none}.bottom-nav__item{min-height:64px;padding:8px 6px}.bottom-nav__label{white-space:normal;text-align:center;max-width:80px;font-size:.58rem;line-height:1.2}.app-main{width:100%;padding:0 0 env(safe-area-inset-bottom,0px);grid-column:3;margin:0}.desktop-grid{grid-template-columns:minmax(0, 1fr) var(--aside-width);gap:var(--column-gap)}.page-header{margin-bottom:28px}.summary-grid{gap:16px}}@media (width<=919px){.desktop-grid{flex-direction:column;gap:16px;display:flex}.desktop-grid>section,.desktop-grid>aside{display:contents}.dashboard-summary{order:1}.dashboard-entry{order:2}.dashboard-buckets{order:3}.dashboard-incomes{order:4}.dashboard-pending{order:5}}.chip-combobox{gap:10px;display:grid}.chip-combobox.is-disabled{opacity:.6;pointer-events:none}.chip-combobox__input{width:100%}.chip-combobox__chips{flex-wrap:wrap;gap:8px;max-height:168px;display:flex;overflow-y:auto}.chip{border:1px solid var(--color-line);background:var(--color-bg-elevated);color:var(--color-ink-soft);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:.8rem;font-weight:800;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.chip--option.is-active,.chip--option:hover{background:var(--color-bg-muted);border-color:var(--color-ink-soft);color:var(--color-ink)}.chip--create{border-style:dashed;border-color:var(--color-mint-strong);color:var(--color-mint-strong);background:0 0}.chip--selected{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast);font-weight:900}.chip__remove{color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.chip-combobox__empty{color:var(--color-muted);font-size:.8rem}.item-detail{gap:20px;display:grid}.item-detail__summary{border-radius:var(--radius-md);background:var(--color-bg-muted);flex-wrap:wrap;align-items:center;gap:14px 20px;padding:16px;display:flex;position:relative;overflow:hidden}.item-detail__metrics-row{flex-wrap:wrap;flex:1;align-items:flex-end;gap:14px 20px;display:flex}.item-detail__metric{gap:2px;display:grid}.item-detail__metric span{color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;font-weight:800}.item-detail__metric strong{font-size:1rem}.item-detail__progress{background:#2525211a;border-radius:999px;flex-basis:100%;height:5px;margin-top:2px;overflow:hidden}.item-detail__overage{color:var(--color-danger);flex-basis:100%;align-items:center;gap:6px;margin:-2px 0 0;font-size:.78rem;font-weight:900;display:inline-flex}.item-detail__progress-bar{background:var(--color-mint-strong);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.34,1.56,.64,1)}.item-detail__progress-bar--warn{background:var(--color-warning)}.item-detail__progress-bar--over{background:var(--color-danger)}.item-detail__account{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-bg-elevated);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.item-detail__account div{gap:2px;display:grid}.item-detail__history{gap:10px;display:grid}.item-detail__history .section-title{margin:0}.movement-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.movement-row{border-radius:var(--radius-sm);background:var(--color-bg-elevated);border:1px solid var(--color-line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;transition:background .15s;display:grid}.movement-row:hover{background:var(--color-bg-muted)}.movement-copy{gap:2px;display:grid}.movement-copy span{color:var(--color-muted);font-size:.76rem}.movement-description{color:var(--color-ink-soft);margin-top:1px;font-size:.78rem;font-style:italic;font-weight:600}.wealth-summary{margin-bottom:20px}.wealth-list{gap:10px;display:grid}.wealth-row{grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:16px;display:grid}.wealth-row__icon{background:var(--color-bg-muted);width:44px;height:44px;color:var(--color-ink-soft);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wealth-row__icon--investment{color:var(--color-mint-strong);background:#4caf7d24}.wealth-row__icon--saving{color:#a07800;background:#b08a001a}.wealth-row__copy{gap:3px;min-width:0;display:grid}.wealth-row__copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.93rem;overflow:hidden}.wealth-row__copy span{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.wealth-row__amount{font-family:var(--font-mono), serif;letter-spacing:-.04em;text-align:right;white-space:nowrap;font-size:.88rem;font-weight:700}.wealth-row__actions{gap:4px;display:inline-flex}.savings-summary{gap:10px;margin-bottom:24px;display:grid}.savings-sub-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.savings-summary .metric-value{white-space:normal;text-overflow:unset;font-size:clamp(.88rem,4.5vw,1.45rem);line-height:1.12;overflow:visible}.savings-summary .metric-card.dark .metric-value{font-size:clamp(1rem,5.2vw,1.85rem)}.savings-summary .metric-card.dark{min-height:96px}.savings-sub-cards .metric-card{min-height:82px}.empty-state{text-align:center;color:var(--color-muted);justify-items:center;gap:12px;padding:40px 24px;display:grid}.wealth-tabs{background:var(--color-bg-muted);border-radius:999px;gap:6px;margin-bottom:16px;padding:5px;display:inline-flex}.wealth-tabs button{min-height:36px;color:var(--color-muted);background:0 0;border-radius:999px;padding:0 18px;font-size:.84rem;font-weight:900}.wealth-tabs .active{background:var(--color-primary);color:var(--color-primary-contrast)}.networth-breakdown{gap:10px;margin-top:12px;display:grid}.networth-line{border-radius:var(--radius-sm);background:var(--color-bg-elevated);border:1px solid var(--color-line);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.networth-line.is-negative strong{color:var(--color-danger)}.networth-total{border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-contrast);justify-content:space-between;align-items:center;padding:16px 18px;font-size:1.05rem;display:flex}.credit-progress{background:var(--color-bg-muted);border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.credit-progress__fill{background:var(--color-mint-strong);border-radius:999px;height:100%}.bottom-nav__more{min-width:0;display:flex;position:relative}.bottom-nav__more>.bottom-nav__item{flex:1}.more-menu{-webkit-backdrop-filter:blur(40px)saturate(180%);transform-origin:100% 100%;opacity:0;visibility:hidden;pointer-events:none;background:linear-gradient(160deg,#fffffff2 0%,#ffffffd1 100%);border:1px solid #e8e4dabf;border-radius:20px;gap:2px;min-width:232px;padding:8px;transition:transform .22s cubic-bezier(.22,1,.36,1),opacity .18s,visibility 0s linear .18s;display:grid;position:absolute;bottom:calc(100% + 12px);right:0;transform:translateY(8px)scale(.96);box-shadow:0 18px 48px #2525212e}.more-menu.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:transform .24s cubic-bezier(.22,1,.36,1),opacity .2s;transform:translateY(0)scale(1)}.more-menu__item{color:var(--color-ink-soft);border-radius:14px;align-items:center;gap:12px;padding:12px 14px;font-size:.9rem;font-weight:700;text-decoration:none;transition:background .16s,color .16s;display:flex}.more-menu__item:hover,.more-menu__item.active{background:var(--color-bg-muted);color:var(--color-ink)}@media (width>=1280px){.more-menu{transform-origin:0 100%;bottom:0;left:calc(100% + 14px);right:auto}}.bottom-nav__help{color:var(--color-muted)}.theme-toggle{background:var(--color-bg-muted);border-radius:999px;gap:6px;padding:5px;display:inline-flex}.theme-toggle button{min-height:40px;color:var(--color-muted);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 18px;font-size:.85rem;font-weight:800;display:inline-flex}.theme-toggle .active{background:var(--color-primary);color:var(--color-primary-contrast)}.currency-options{gap:8px;display:grid}.currency-option{border:1px solid var(--color-line);border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.currency-option input{width:20px;height:20px;min-height:0}.currency-option.is-base{opacity:.7}@media (width<=919px){.auth-screen{padding:16px 16px calc(16px + var(--safe-bottom));padding-top:max(24px, env(safe-area-inset-top,16px));align-items:start;gap:12px}.auth-hero{border-radius:28px;min-height:auto;padding:22px 20px 18px}.auth-hero__title{margin-top:6px;font-size:clamp(1.45rem,5.8vw,2rem)}.auth-copy{display:none}.jars{gap:7px;height:110px;margin-top:16px}.jar__track{height:90px}.jar__name{font-size:.55rem}.auth-panel{width:100%}.auth-card-shell{border-radius:var(--radius-md)}.auth-oauth-button{min-height:46px}.auth-divider{margin:14px 0}}.ob-backdrop{z-index:90;-webkit-backdrop-filter:blur(22px)saturate(140%);background:#1212109e;place-items:center;padding:20px 16px;animation:.34s both ob-fade-in;display:grid;position:fixed;inset:0}@keyframes ob-fade-in{0%{opacity:0}to{opacity:1}}.ob-card{background:var(--color-bg-elevated);border-radius:36px;width:min(100%,420px);animation:.48s cubic-bezier(.22,1,.36,1) both ob-card-rise;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14,0 48px 120px #0a0a0873,0 12px 32px #0a0a0838}@keyframes ob-card-rise{0%{opacity:0;transform:translateY(52px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.ob-visual-slot{animation:.3s cubic-bezier(.22,1,.36,1) both ob-slot-in}.ob-visual-slot--exit{animation:.18s both ob-slot-out}@keyframes ob-slot-in{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes ob-slot-out{to{opacity:0;transform:scale(.97)}}.ob-content{padding:22px 26px 28px;animation:.36s cubic-bezier(.22,1,.36,1) 60ms both ob-content-in}.ob-content--exit{animation:.18s both ob-content-out}@keyframes ob-content-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes ob-content-out{to{opacity:0;transform:translateY(-8px)}}.ob-progress{gap:6px;margin-bottom:18px;display:flex}.ob-dot{background:var(--color-line);border-radius:999px;width:20px;height:5px;transition:width .26s cubic-bezier(.22,1,.36,1),background .26s}.ob-dot--active{background:var(--color-primary);width:36px}.ob-dot--done{background:var(--color-mint-strong);opacity:.6}.ob-step-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--color-mint-strong);margin:0 0 6px;font-size:.72rem;font-weight:800}.ob-title{letter-spacing:-.04em;color:var(--color-ink);margin:0 0 10px;font-size:clamp(1.55rem,5.5vw,1.9rem);font-weight:900;line-height:1.08}.ob-body{color:var(--color-ink-soft);margin:0 0 20px;font-size:.97rem;font-weight:500;line-height:1.6}.ob-note{color:var(--color-muted);align-items:center;gap:6px;margin:0 0 20px;font-size:.78rem;font-weight:700;display:flex}.ob-bullets{gap:9px;margin:0 0 22px;padding:0;list-style:none;display:grid}.ob-bullet{color:var(--color-ink-soft);opacity:0;align-items:center;gap:10px;font-size:.9rem;font-weight:600;animation:.36s cubic-bezier(.22,1,.36,1) both ob-bullet-slide;display:flex;transform:translate(-10px)}@keyframes ob-bullet-slide{to{opacity:1;transform:translate(0)}}.ob-bullet-check{background:var(--color-mint);width:24px;height:24px;color:var(--color-mint-strong);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ob-skip{width:100%;color:var(--color-muted);cursor:pointer;text-align:center;background:0 0;border:0;margin-top:14px;padding:8px;font-size:.84rem;font-weight:700;transition:color .16s;display:block}.ob-skip:hover{color:var(--color-ink-soft)}.ob-visual--welcome{background:linear-gradient(135deg,#bff3c4 0%,#cfeaf7 50%,#d8c1ee 100%);place-items:center;height:210px;display:grid;position:relative;overflow:hidden}.ob-visual__ring{border:2px solid #4caf7d4d;border-radius:50%;margin:auto;animation:2.6s ease-out infinite ob-ring-expand;position:absolute;inset:0}.ob-visual__ring--1{width:96px;height:96px;animation-delay:0s}.ob-visual__ring--2{width:96px;height:96px;animation-delay:.85s}.ob-visual__ring--3{width:96px;height:96px;animation-delay:1.7s}@keyframes ob-ring-expand{0%{opacity:.7;transform:scale(.85)}to{opacity:0;transform:scale(2.4)}}.ob-visual__icon-wrap{z-index:2;border-radius:26px;place-items:center;width:76px;height:76px;display:grid;position:relative;box-shadow:0 12px 36px #4caf7d47,inset 0 0 0 1px #ffffffb3}.ob-visual__icon-wrap--welcome{color:var(--color-mint-strong);background:#ffffffeb;animation:.6s cubic-bezier(.22,1,.36,1) .15s both ob-icon-bounce}@keyframes ob-icon-bounce{0%{opacity:0;transform:scale(.6)rotate(-12deg)}to{opacity:1;transform:scale(1)rotate(0)}}.ob-visual--method{background:linear-gradient(180deg, var(--color-bg-muted) 0%, var(--color-bg-elevated) 100%);flex-direction:column;height:210px;padding:16px 20px 0;display:flex;position:relative;overflow:hidden}.ob-jars-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin:0 0 10px;font-size:.65rem;font-weight:800}.ob-jars-wrap{flex:1;align-items:flex-end;gap:7px;display:flex}.ob-jar{opacity:0;flex-direction:column;flex:1;align-items:center;gap:6px;height:100%;animation:.5s cubic-bezier(.22,1,.36,1) forwards jarEnter;display:flex;transform:translateY(12px)}.ob-jar__track{background:#25252112;border-radius:10px;flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex;position:relative;overflow:hidden}.ob-jar__fill{transform-origin:bottom;border-radius:10px 10px 0 0;width:100%;animation:.65s cubic-bezier(.22,1,.36,1) both jarFill;position:absolute;bottom:0;left:0}.ob-jar__pct{z-index:1;color:#fff;text-shadow:0 1px 3px #00000059;margin-bottom:5px;font-size:.65rem;font-weight:900;position:relative}.ob-jar__name{color:var(--color-ink-soft);text-align:center;padding-bottom:8px;font-size:.52rem;font-weight:700;line-height:1.25}.ob-visual--ready{background:var(--color-primary);place-items:center;height:210px;display:grid;position:relative;overflow:hidden}.ob-visual__glow{background:radial-gradient(circle at 50% 60%,#4caf7d59 0%,#0000 65%);animation:2.8s ease-in-out infinite alternate ob-glow-pulse;position:absolute;inset:0}@keyframes ob-glow-pulse{0%{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}.ob-visual__icon-wrap--ready{z-index:2;color:var(--color-primary-contrast);background:#ffffff1f;border:1px solid #ffffff2e;animation:.55s cubic-bezier(.22,1,.36,1) .1s both ob-icon-bounce;position:relative}.ob-card--setup{flex-direction:column;width:min(100%,480px);max-height:min(90vh,700px);animation:.42s cubic-bezier(.22,1,.36,1) both ob-card-rise;display:flex}.obs-header{border-bottom:1px solid var(--color-line);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:14px;padding:22px 24px 16px;animation:.38s cubic-bezier(.22,1,.36,1) 40ms both ob-content-in;display:flex}.obs-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--color-mint-strong);margin:0 0 4px;font-size:.68rem;font-weight:800}.obs-title{letter-spacing:-.03em;color:var(--color-ink);margin:0 0 4px;font-size:1.12rem;font-weight:900;line-height:1.2}.obs-subtitle{color:var(--color-muted);margin:0;font-size:.82rem;font-weight:600}.obs-total-badge{background:var(--color-mint);color:#1f5a3d;min-width:54px;font-family:var(--font-mono), serif;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:6px 12px;font-size:.88rem;font-weight:900;transition:background .22s,color .22s;display:inline-flex}.obs-total-badge--warn{background:var(--color-cream);color:#875b10}.obs-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;overflow-y:auto}.obs-bucket-list{gap:10px;margin:0;padding:12px 16px 4px;list-style:none;display:grid}.obs-bucket-row{border:1px solid #0000;border-radius:16px;transition:box-shadow .16s;overflow:hidden}.obs-bucket-row:focus-within{box-shadow:0 0 0 2px var(--color-primary)}.obs-bucket-row__main{align-items:center;gap:10px;padding:13px 14px 8px;display:flex}.obs-bucket-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.obs-bucket-name{letter-spacing:-.02em;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.95rem;font-weight:800;overflow:hidden}.obs-pct-wrap{flex-shrink:0;align-items:center;gap:3px;display:flex}.obs-pct-input{border:1.5px solid var(--color-line);width:46px;height:36px;color:var(--color-ink);font-family:var(--font-mono), serif;text-align:center;-moz-appearance:textfield;background:#ffffffb8;border-radius:10px;padding:0 4px;font-size:.9rem;font-weight:800;transition:border-color .16s,box-shadow .16s}.obs-pct-input::-webkit-inner-spin-button{-webkit-appearance:none}.obs-pct-input::-webkit-outer-spin-button{-webkit-appearance:none}.obs-pct-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #25252114}.obs-pct-suffix{color:var(--color-muted);font-size:.84rem;font-weight:800}.obs-bucket-edu{padding:0 14px 13px 34px}.obs-bucket-desc{color:var(--color-ink-soft);margin:0 0 4px;font-size:.8rem;font-weight:500;line-height:1.5}.obs-bucket-tip{align-items:flex-start;gap:4px;margin:0;font-size:.74rem;font-weight:700;line-height:1.45;display:flex}.obs-info-banner{background:var(--color-bg-muted);border:1px solid var(--color-line);color:var(--color-ink-soft);border-radius:14px;flex-shrink:0;align-items:flex-start;gap:10px;margin:8px 16px 16px;padding:11px 14px;display:flex}.obs-info-banner svg{color:var(--color-mint-strong);flex-shrink:0;margin-top:2px}.obs-info-banner p{margin:0;font-size:.8rem;font-weight:600;line-height:1.5}.obs-footer{border-top:1px solid var(--color-line);flex-shrink:0;gap:2px;padding:14px 22px 22px;animation:.38s cubic-bezier(.22,1,.36,1) 80ms both ob-content-in;display:grid}.ob-card--period,.ob-card--preferences{width:min(100%,420px);animation:.42s cubic-bezier(.22,1,.36,1) both ob-card-rise}.ob-visual--period,.ob-visual--preferences{background:var(--color-primary);place-items:center;height:210px;display:grid;position:relative;overflow:hidden}.preferences-setup-form{margin:18px 0}.ob-visual__glow--green{background:radial-gradient(circle at 50% 55%,#4caf7d73 0%,#0000 60%);animation:3s ease-in-out infinite alternate ob-glow-pulse;position:absolute;inset:0}.obp-icon-wrap{z-index:2;width:76px;height:76px;color:var(--color-primary-contrast);background:#ffffff24;border:1px solid #fff3;border-radius:24px;place-items:center;animation:.55s cubic-bezier(.22,1,.36,1) .12s both ob-icon-bounce;display:grid;position:relative}.obp-period-pill{z-index:3;white-space:nowrap;color:#ffffffd9;letter-spacing:.02em;background:#ffffff24;border:1px solid #fff3;border-radius:999px;padding:5px 14px;font-size:.75rem;font-weight:700;animation:.4s cubic-bezier(.22,1,.36,1) .3s both ob-content-in;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.obp-features{gap:8px;margin:0 0 22px;padding:0;list-style:none;display:grid}.obp-feature{color:var(--color-ink-soft);opacity:0;align-items:center;gap:10px;font-size:.88rem;font-weight:600;animation:.36s cubic-bezier(.22,1,.36,1) both ob-bullet-slide;display:flex}.obp-feature-icon{background:var(--color-mint);width:26px;height:26px;color:var(--color-mint-strong);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}@keyframes egreso-toast{0%{opacity:0;transform:translateY(6px)scale(.97)}14%{opacity:1;transform:translateY(0)scale(1)}76%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-4px)scale(.98)}}.egreso-toast{border-radius:var(--radius-sm);background:var(--color-mint);color:var(--color-mint-strong);letter-spacing:-.01em;pointer-events:none;align-items:center;gap:9px;padding:11px 15px;font-size:.875rem;font-weight:700;animation:3.2s forwards egreso-toast;display:flex}.period-navigator-wrapper{align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;margin:0 0 16px;display:flex;overflow:hidden}.period-navigator{scrollbar-width:none;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;flex:1;gap:6px;min-width:0;max-width:100%;padding-bottom:2px;display:flex;overflow-x:auto}.period-navigator::-webkit-scrollbar{display:none}.period-navigator--loading{border-radius:var(--radius-sm);background:var(--color-bg-muted);opacity:.5;height:38px;margin:0 0 16px}.period-pill{scroll-snap-align:center;min-height:34px;color:var(--color-muted);background:#ffffffbd;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:0 12px;font-size:.8rem;font-weight:700;transition:background .15s,color .15s;display:flex;position:relative}.period-pill--selected{background:var(--color-primary);color:var(--color-primary-contrast)}.period-pill--current:not(.period-pill--selected){color:var(--color-ink);box-shadow:inset 0 0 0 2px var(--color-primary);background:#ffffffeb}.period-pill--closed{opacity:.55}.period-pill--planned{opacity:.75;border:1.5px dashed}.period-pill__dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.period-pill--selected .period-pill__dot{background:var(--color-primary-contrast)}.period-navigator__back-btn{background:var(--color-lavender);min-height:34px;color:var(--color-ink);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:3px;padding:0 12px 0 9px;font-size:.78rem;font-weight:800;transition:background .15s;display:flex}@media (hover:hover){.period-pill:hover:not(.period-pill--selected){color:var(--color-ink);background:#ffffffeb}.period-navigator__back-btn:hover{background:#25252112}}.close-period-btn{min-height:34px;color:var(--color-ink-soft);letter-spacing:.02em;white-space:nowrap;background:#ffffffbd;border-radius:999px;align-items:center;gap:5px;margin-left:auto;padding:0 12px 0 10px;font-size:.78rem;font-weight:800;transition:background .15s,color .15s;display:flex}@media (hover:hover){.close-period-btn:hover{background:var(--color-lavender);color:var(--color-ink)}}.cycle-backfill-banner{border-radius:var(--radius-sm);background:var(--color-lavender);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.cycle-backfill-banner__copy{color:var(--color-ink);flex:1;align-items:center;gap:8px;min-width:0;font-size:.84rem;font-weight:600;display:flex}.period-readonly-banner{border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-muted);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:.84rem;font-weight:600;display:flex}.pt-modal__summary{margin-bottom:4px}.pt-modal__error{color:var(--color-danger,#e53e3e);margin-bottom:12px;font-size:.84rem}.pt-modal__changes{flex-direction:column;gap:20px;margin-bottom:20px;display:flex}.pt-modal__section{flex-direction:column;gap:6px;display:flex}.pt-modal__section-header{border-bottom:1px solid var(--color-line);align-items:center;gap:8px;padding-bottom:6px;display:flex}.pt-modal__section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);font-size:.78rem;font-weight:700}.pt-modal__section-count{background:var(--color-bg-muted);min-width:18px;height:18px;color:var(--color-muted);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-size:.72rem;font-weight:700;display:inline-flex}.pt-modal__section-list{flex-direction:column;gap:4px;display:flex}.pt-modal__row{border-radius:var(--radius-sm);background:var(--color-bg-elevated);flex-direction:column;gap:4px;padding:10px 12px;transition:opacity .15s;display:flex}.pt-modal__row--rejected{opacity:.45}.pt-modal__row--rejected .pt-modal__item-name{text-decoration:line-through}.pt-modal__row-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.pt-modal__row-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}.pt-modal__item-name{flex:1;min-width:0;font-size:.875rem;font-weight:600;line-height:1.3}.pt-modal__breadcrumb{color:var(--color-muted);flex:1;min-width:0;font-size:.72rem}.pt-modal__row-amounts{flex-shrink:0;align-items:center;gap:5px;display:flex}.pt-modal__amount{font-variant-numeric:tabular-nums;font-size:.84rem;font-weight:600}.pt-modal__amount--old{color:var(--color-muted);font-weight:400;text-decoration:line-through}.pt-modal__amount--new{color:var(--color-ink)}.pt-modal__amount--edited{color:var(--color-primary,#3b82f6)}.pt-modal__arrow{color:var(--color-muted);font-size:.75rem}.pt-modal__inline-edit{width:100px}.pt-modal__inline-edit input{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:var(--color-bg);width:100%;color:var(--color-ink);text-align:right;padding:4px 6px;font-size:.84rem}.pt-modal__row-actions{flex-shrink:0;align-items:center;gap:4px;margin-top:-2px;display:flex}.pt-modal__edit-btn{color:var(--color-muted);margin-left:2px;padding:3px}.pt-modal__edit-btn:hover:not(:disabled){color:var(--color-ink)}.pt-modal__action-btn{border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;color:var(--color-muted);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.pt-modal__action-btn--accept:hover,.pt-modal__action-btn--accept.pt-modal__action-btn--active{background:var(--color-mint);color:var(--color-success,#16a34a)}.pt-modal__action-btn--discard:hover,.pt-modal__action-btn--discard.pt-modal__action-btn--active{background:var(--color-rose);color:var(--color-danger,#dc2626)}.pt-modal__actions{border-top:1px solid var(--color-line);flex-direction:column;gap:10px;margin-top:4px;padding-top:16px;display:flex}.pt-modal__action-row{gap:8px;display:flex}.pt-modal__action-row .button{flex:1}
