*{box-sizing:border-box}
body{margin:0;overflow-x:hidden;-webkit-font-smoothing:antialiased;user-select:none;-webkit-tap-highlight-color:transparent}
button, input, select, textarea{font:inherit}
button{border:0;cursor:pointer;color:inherit}
input, select, textarea{width:100%;border:1px solid var(--line);outline:none;transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;user-select:text}
textarea{resize:vertical}
.app-shell{min-height:100vh;margin:0 auto;position:relative;padding:env(safe-area-inset-top) 18px calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}
.topbar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center}
.brand-mark{display:grid;place-items:center;font-weight:900;letter-spacing:-0.05em}
.brand-copy{min-width:0}
.brand-copy h1{margin:0}
.brand-copy p{margin:5px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.date-pill{white-space:nowrap;flex:0 0 auto}
main{position:relative}
.page{display:none;animation:pageIn .24s ease both}
.page.active{display:block}
@keyframes pageIn{from { opacity: 0; transform: translateY(8px) scale(.992); }
      to { opacity: 1; transform: translateY(0) scale(1); }}
.hero{border:1px solid rgba(77, 139, 87, .16);border-radius:var(--radius-xl);overflow:hidden;position:relative}
.hero::after{content:"";position:absolute;width:150px;height:150px;border-radius:999px;right:-60px;top:-64px}
.hero > *{position:relative;z-index:1}
.eyebrow{font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.hero h2{margin:0}
.hero p{margin:11px 0 0;color:var(--muted);font-weight:650}
.hero-budget{display:grid;gap:10px;margin-top:18px;border:1px solid rgba(76, 106, 74, .12)}
.hero-budget-label{color:var(--muted);font-size:12px;font-weight:900}
.hero-budget-value{letter-spacing:-0.08em;font-weight:950;line-height:.9}
.hero-budget-sub{font-weight:850;line-height:1.35}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stack{display:grid;gap:14px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.section-head h3{margin:0}
.section-head span{color:var(--muted);font-size:12px;font-weight:800;text-align:right}
.card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px;backdrop-filter:blur(16px)}
.stat-card{min-height:118px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.stat-card::after{content:"";position:absolute;right:-32px;bottom:-38px;width:110px;height:110px;border-radius:999px}
.stat-card > *{position:relative;z-index:1}
.stat-label{color:var(--muted);font-size:12px;font-weight:850}
.stat-value{font-size:28px;letter-spacing:-0.07em;font-weight:950;margin-top:6px}
.stat-sub{color:var(--muted);font-size:12px;font-weight:700;margin-top:5px;line-height:1.25}
.budget-control{display:grid;gap:12px}
.control-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border-radius:18px;border:1px solid rgba(76, 106, 74, .10)}
.control-title{font-weight:950;letter-spacing:-0.03em}
.control-sub{color:var(--muted);font-size:12px;font-weight:750;margin-top:3px}
.control-value{font-weight:950;white-space:nowrap}
.btn-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center}
.btn:active, .nav-btn:active, .item-card:active, .quick-chip:active{transform:scale(.985)}
.btn.secondary{border:1px solid var(--line)}
.btn.ghost{border:1px solid var(--line);box-shadow:none}
.btn.danger{border:1px solid rgba(216, 111, 111, .22)}
.btn.full{width:100%}
.btn.small{min-height:36px;border-radius:13px;padding:0 12px;font-size:12px}
.form-grid{display:grid}
.field label{display:block;margin:0 0 7px 2px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-chips{display:flex;gap:9px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}
.quick-chips::-webkit-scrollbar{display:none}
.quick-chip{flex:0 0 auto;border-radius:999px;padding:10px 13px;border:1px solid var(--line);font-size:12px;font-weight:900;box-shadow:var(--soft-shadow);transition:transform .12s ease}
.item-card{border:1px solid var(--line);border-radius:20px;padding:14px;display:grid;gap:10px;transition:transform .12s ease}
.item-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.item-title{font-weight:950;letter-spacing:-0.03em;line-height:1.15}
.item-meta{margin-top:5px;color:var(--muted);font-size:12px;font-weight:750;line-height:1.35}
.amount-pill{border-radius:999px;font-weight:950;padding:8px 10px;white-space:nowrap;font-size:13px}
.tag-row{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.tag{border-radius:999px;padding:7px 9px;border:1px solid rgba(76, 106, 74, .10);font-size:11px;font-weight:850}
.empty{color:var(--muted);text-align:center;padding:24px 14px;font-weight:750;line-height:1.45}
.soft-note{border-radius:20px;padding:13px;font-size:13px;line-height:1.4;font-weight:760}
.insight-row{display:grid;gap:8px}
.bar-line{display:grid;gap:6px}
.bar-head{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px;font-weight:850}
.bar-track{height:10px;border-radius:999px;overflow:hidden}
.bar-fill{height:100%;border-radius:999px;min-width:3px}
.nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);z-index:50}
.nav-inner{display:grid;grid-template-columns:repeat(5, 1fr);gap:4px}
.nav-btn{display:grid;place-items:center}
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;z-index:80;font-weight:850;transition:opacity .2s ease, transform .2s ease}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal-backdrop{position:fixed;place-items:end center;z-index:70}
.modal{animation:sheetIn .22s ease both;scrollbar-width:none}
.modal::-webkit-scrollbar{display:none}
@keyframes sheetIn{from { opacity: 0; transform: translateY(24px) scale(.985); }
      to { opacity: 1; transform: translateY(0) scale(1); }}
.modal-head{justify-content:space-between}
.close-btn{font-weight:950}
input[type="date"]{color-scheme:dark}
.brand-mark{color:#06120b}
.hero{border-color:rgba(125, 213, 138, .18);background:linear-gradient(145deg, rgba(24, 48, 34, .96), rgba(10, 23, 16, .9)),
        radial-gradient(circle at 100% 0%, rgba(125, 213, 138, .22), transparent 35%);box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.06)}
.hero::after{background:radial-gradient(circle, rgba(125, 213, 138, .28), rgba(125, 213, 138, .05) 58%, transparent 70%)}
.eyebrow{color:#8be895}
.hero-budget{background:linear-gradient(145deg, rgba(8, 18, 13, .78), rgba(21, 42, 30, .72));border-color:rgba(202, 236, 199, .13);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.hero-budget-value{color:#eaffdf;text-shadow:0 0 22px rgba(125, 213, 138, .18)}
.hero-budget-sub{color:#b7edba}
.card{background:linear-gradient(145deg, rgba(18, 35, 25, .86), rgba(11, 24, 17, .78));border-color:rgba(202, 236, 199, .12);box-shadow:var(--soft-shadow), inset 0 1px 0 rgba(255,255,255,.04)}
.stat-card::after{background:rgba(125, 213, 138, .10)}
.stat-card.good::after{background:rgba(125, 213, 138, .16)}
.stat-card.warn::after{background:rgba(240, 189, 99, .17)}
.stat-card.bad::after{background:rgba(240, 138, 138, .16)}
.control-row{background:rgba(8, 18, 13, .48);border-color:rgba(202, 236, 199, .10)}
.control-value.good{color:#8ce897}
.control-value.warn{color:#f0bd63}
.control-value.bad{color:#ff9b9b}
.btn.ghost{background:rgba(255,255,255,.03)}
.quick-chip{background:rgba(17, 32, 23, .82);border-color:rgba(202, 236, 199, .13);color:#d7ffd8}
.item-card{background:rgba(13, 28, 20, .78);border-color:rgba(202, 236, 199, .12);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.amount-pill{background:rgba(125, 213, 138, .18);color:#d7ffd8;border:1px solid rgba(125, 213, 138, .16)}
.amount-pill.warn{background:rgba(240, 189, 99, .16);color:#ffd88e;border-color:rgba(240, 189, 99, .18)}
.amount-pill.bad{background:rgba(240, 138, 138, .14);color:#ffb0b0;border-color:rgba(240, 138, 138, .18)}
.tag{background:rgba(255, 255, 255, .045);border-color:rgba(202, 236, 199, .10);color:#aebdad}
.tag.need, .tag.paid{background:rgba(125, 213, 138, .14);color:#aef5b5}
.tag.want, .tag.pending{background:rgba(240, 189, 99, .14);color:#ffd88e}
.tag.mixed{background:rgba(143, 187, 229, .14);color:#b7d8f7}
.tag.high{background:rgba(240, 138, 138, .13);color:#ffb0b0}
.soft-note{background:rgba(125, 213, 138, .11);color:#c9f7cc;border:1px solid rgba(125, 213, 138, .12)}
.soft-note.warn{background:rgba(240, 189, 99, .13);color:#ffe0a1;border-color:rgba(240, 189, 99, .16)}
.soft-note.bad{background:rgba(240, 138, 138, .12);color:#ffc0c0;border-color:rgba(240, 138, 138, .16)}
.danger-zone{border-color:rgba(240, 138, 138, .20);background:rgba(40, 18, 18, .42)}
.bar-track{background:rgba(202, 236, 199, .08)}
.bar-fill{background:linear-gradient(90deg, #9af0a2, #4ab461)}
.bar-fill.warn{background:linear-gradient(90deg, #f2cb7c, #d59b38)}
.bar-fill.bad{background:linear-gradient(90deg, #ffadad, #de6969)}
.toast{background:rgba(231, 245, 229, .94);color:#06120b;box-shadow:0 16px 38px rgba(0, 0, 0, .36)}
html, body{overscroll-behavior-y:contain;scrollbar-width:none}
html::-webkit-scrollbar,
    body::-webkit-scrollbar,
    .app-shell::-webkit-scrollbar,
    main::-webkit-scrollbar{display:none;width:0;height:0}
.app-shell{touch-action:pan-y;isolation:isolate}
main{min-height:calc(100vh - var(--nav-h) - 120px)}
.page{transform-origin:center top;will-change:transform, opacity}
.page.slide-forward{animation:spendlySlideForward .24s cubic-bezier(.22, .8, .22, 1) both}
.page.slide-back{animation:spendlySlideBack .24s cubic-bezier(.22, .8, .22, 1) both}
@keyframes spendlySlideForward{from { opacity: 0; transform: translateX(22px) scale(.992); filter: blur(.4px); }
      to { opacity: 1; transform: translateX(0) scale(1); filter: blur(0); }}
@keyframes spendlySlideBack{from { opacity: 0; transform: translateX(-22px) scale(.992); filter: blur(.4px); }
      to { opacity: 1; transform: translateX(0) scale(1); filter: blur(0); }}
.nav-btn{-webkit-user-select:none;user-select:none}
.btn, .nav-btn, .quick-chip, .item-card{-webkit-tap-highlight-color:transparent}
@media (prefers-reduced-motion: reduce){.page,
      .page.slide-forward,
      .page.slide-back,
      .modal{animation:none!important}
.btn,
      .nav-btn,
      .item-card,
      .quick-chip{transition:none!important}}
body.startup-lock{overflow:hidden}
.brand-mark{overflow:hidden;padding:0;background:#fbfaf4}
.brand-mark img{width:100%;height:100%;display:block;object-fit:cover}
.startup-screen{position:fixed;inset:0;z-index:999;min-height:100dvh;display:grid;place-items:center;padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));opacity:1;visibility:visible;transition:opacity .42s ease, visibility .42s ease}
body.startup-complete .startup-screen{opacity:0;visibility:hidden;pointer-events:none}
.startup-content{width:min(100%, 340px);display:grid;place-items:center;text-align:center;animation:startupContentIn .78s cubic-bezier(.2, .9, .2, 1) both}
.startup-logo-shell{width:122px;height:122px;border-radius:32px;display:grid;place-items:center;background:rgba(255,255,255,.04);overflow:hidden;animation:startupLogoPop .86s cubic-bezier(.2, .95, .2, 1.15) both}
.startup-logo-shell img{width:100%;height:100%;display:block;object-fit:cover}
.startup-title{margin-top:24px;font-size:42px;line-height:.92;font-weight:950;letter-spacing:-0.075em;text-shadow:0 18px 50px rgba(0,0,0,.38)}
.startup-subtitle{margin-top:10px;font-size:15px;font-weight:850;letter-spacing:-0.03em}
.startup-loader{width:122px;height:5px;margin-top:28px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.startup-loader span{display:block;height:100%;width:44%;border-radius:inherit;background:linear-gradient(90deg, rgba(140,232,151,.2), #8ce897, #10b998);animation:startupLoad 1.05s ease-in-out both}
@keyframes startupContentIn{from { opacity: 0; transform: translateY(14px) scale(.985); filter: blur(8px); }
      to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }}
@keyframes startupLogoPop{0% { opacity: 0; transform: translateY(18px) scale(.74) rotate(-4deg); }
      68% { opacity: 1; transform: translateY(0) scale(1.045) rotate(0); }
      100% { opacity: 1; transform: translateY(0) scale(1) rotate(0); }}
@keyframes startupLoad{0% { transform: translateX(-115%); }
      72% { transform: translateX(62%); }
      100% { transform: translateX(142%); }}
@media (max-width: 380px){.app-shell{padding-left:14px;padding-right:14px}
.hero h2{font-size:27px}
.hero-budget-value{font-size:36px}
.stat-value{font-size:25px}
.field-row{grid-template-columns:1fr}
.brand-copy h1{font-size:20px}}
html,
    body{width:100%;min-width:100%;min-height:100%;background-color:#07110c}
body{min-height:100dvh}
.app-shell{max-width:520px}
.topbar{padding-top:max(12px, env(safe-area-inset-top));padding-bottom:12px}
.brand{flex:1 1 auto}
.brand-copy p{line-height:1.1}
.hero{padding:20px}
.hero h2{font-size:clamp(27px, 8vw, 34px);letter-spacing:-0.08em;line-height:.96}
.hero p{font-size:16px;line-height:1.42;max-width:95%}
.hero-budget{padding:14px;border-radius:22px}
.hero-budget-value{font-size:clamp(40px, 13vw, 58px)}
.hero-budget-sub{font-size:13px}
#page-buy .hero .btn-row{display:grid;grid-template-columns:1fr 1fr;justify-items:stretch;align-items:center;gap:12px;margin-top:18px!important}
#page-buy .hero .btn-row .btn.primary{grid-column:1 / -1;justify-self:center;width:min(100%, 260px)}
#page-buy .hero .btn-row .btn.secondary,
    #page-buy .hero .btn-row .btn.ghost{width:100%}
.form-grid{gap:10px}
input,
    select,
    textarea{border-radius:15px;padding:12px 13px;min-height:49px;font-size:16px}
.modal .btn.full{min-height:50px;margin-top:2px}
@supports (-webkit-touch-callout: none){input,
      select,
      textarea{font-size:16px}}
@media (max-width: 640px){.app-shell{width:100%;max-width:none;margin:0;padding-left:16px;padding-right:16px;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}
.topbar{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;border-bottom:1px solid rgba(202, 236, 199, .06)}
.nav{left:0;right:0;bottom:0;transform:none;width:100%;max-width:none;padding-left:16px;padding-right:16px}
.nav-inner{max-width:none}
.hero,
      .card,
      .item-card{border-radius:24px}
.grid-2{gap:12px}
.stat-card{min-height:116px;padding:14px}
.stat-value{font-size:clamp(25px, 8vw, 32px)}
.modal-backdrop{padding-left:10px;padding-right:10px}}
@media (max-width: 390px){.app-shell{padding-left:14px;padding-right:14px}
.topbar{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}
.brand-mark{width:39px;height:39px;border-radius:14px}
.brand-mark img{border-radius:14px}
.brand-copy h1{font-size:19px}
.date-pill{padding:7px 9px}
.hero{padding:18px}
#page-buy .hero .btn-row{grid-template-columns:1fr}
#page-buy .hero .btn-row .btn.primary{width:100%}}
html,
    body{max-width:100%;overflow-x:hidden;overscroll-behavior-x:none}
body{position:relative}
.app-shell,
    main,
    .page,
    .modal-backdrop,
    .modal,
    .modal *{max-width:100%}
.modal-backdrop{left:0;right:0;width:100%;overflow-x:hidden;touch-action:pan-y}
.modal{max-width:492px;overflow-x:hidden}
@supports (width: 100dvw){.modal{width:calc(100dvw - 20px)}}
.field,
    .field-row,
    .field-row > *{min-width:0}
.modal input,
    .modal select,
    .modal textarea{width:100%;max-width:100%;min-width:0}
.modal input[type="date"]{-webkit-appearance:none;appearance:none;text-align:left}
.modal input[type="date"]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}
@media (max-width: 640px){.modal-backdrop{padding-left:10px;padding-right:10px}
.modal{width:calc(100vw - 20px)}
@supports (width: 100dvw){.modal{width:calc(100dvw - 20px)}}
.modal .field-row{grid-template-columns:minmax(0, 1fr);gap:10px}}
.home-hero::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.home-hero > *{position:relative;z-index:1}
.home-hero-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.home-kicker{text-transform:uppercase}
.home-week-badge{min-width:0;max-width:68%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid rgba(202, 236, 199, .10);border-radius:999px;font-size:10px}
.home-safe-label{color:#a9bca9;font-size:12px;font-weight:850}
.home-safe-status{align-items:center;border-radius:999px}
.home-actions{display:grid;gap:10px}
.home-actions .btn{width:100%;min-width:0;min-height:50px}
.home-actions .btn.secondary{background:rgba(255,255,255,.055);border-color:rgba(202, 236, 199, .11);color:#d9e8d7;box-shadow:none}
.home-glance{display:grid}
.home-glance-item{min-width:0}
.home-glance-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-glance-value{line-height:1}
.home-week-label{color:#dcebd9;font-size:14px;font-weight:900}
.home-week-dates{margin-top:5px}
.home-week-amount{flex:0 0 auto;color:#f1fff1;font-size:27px;font-weight:950;letter-spacing:-.065em;font-variant-numeric:tabular-nums}
.home-details{overflow:hidden;border:1px solid rgba(202, 236, 199, .10);border-radius:22px;background:rgba(12, 28, 19, .66);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.home-details summary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:13px;padding:14px 46px 14px 16px;list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.home-details summary::-webkit-details-marker{display:none}
.home-details summary::after{content:"⌄";position:absolute;right:17px;top:50%;font-size:18px;font-weight:900;transform:translateY(-54%);transition:transform .18s ease}
.home-details[open] summary::after{transform:translateY(-42%) rotate(180deg)}
.home-details summary strong{display:block}
.home-details summary small{display:block;margin-top:4px;font-size:10px}
.home-details-badge{flex:0 0 auto;padding:7px 9px;border-radius:999px;font-size:10px}
.home-details-body{display:grid;gap:15px;padding:0 15px 15px;border-top:1px solid rgba(202, 236, 199, .07)}
.home-progress{padding-top:15px}
.home-detail-list{display:grid;border:1px solid rgba(202, 236, 199, .075);border-radius:17px;overflow:hidden}
.home-detail-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:12px 13px;border-bottom:1px solid rgba(202, 236, 199, .055)}
.home-detail-row:last-child{border-bottom:0}
.home-detail-row span{font-size:11px}
.home-detail-row strong{min-width:0;font-size:12px;text-align:right;font-variant-numeric:tabular-nums}
.home-details-subhead{margin:4px 2px 9px;color:#8ea18e;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.section-link{padding:6px 0;background:transparent;font-size:11px;font-weight:900}
.home-activity{display:grid;border:1px solid rgba(202, 236, 199, .09);background:rgba(12, 28, 19, .62)}
.home-activity-row{min-width:0}
.home-activity-icon{display:grid;place-items:center;font-size:13px;font-weight:950}
.home-activity-meta{overflow:hidden;margin-top:4px;text-overflow:ellipsis;white-space:nowrap}
.home-activity-empty{padding:22px 16px;color:#849684;font-size:12px;font-weight:750;text-align:center;line-height:1.45}
.home-activity-count{margin:8px 3px 0;font-size:10px;font-weight:800;text-align:right}
@media (max-width: 370px){.home-hero{padding:18px}
.home-week-badge{max-width:62%}
.home-glance{gap:7px}
.home-glance-item{padding:12px 9px}
.home-glance-value{font-size:16px}
.home-actions{grid-template-columns:1fr}}
.home-glance-value{overflow:visible;white-space:nowrap}
#homeBudgetLeft{font-size:clamp(14px, 4.15vw, 20px)}
.nav-add-btn{overflow:visible}
.nav-add-btn .nav-add-orb{margin-top:-16px;display:grid;place-items:center;font-size:29px;line-height:1;font-weight:500;transition:transform .14s ease, box-shadow .14s ease}
.nav-add-btn:active{transform:none}
.nav-add-btn:active .nav-add-orb{transform:scale(.94);box-shadow:0 8px 20px rgba(49, 184, 84, .28), inset 0 1px 0 rgba(255,255,255,.30)}
.nav-add-btn > span:last-child{color:#dff7df;font-size:10px}
.spend-sheet-form{gap:12px}
.spend-sheet-summary{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid rgba(125, 213, 138, .14);border-radius:16px;background:rgba(125, 213, 138, .08);color:#aebfad;font-size:12px;font-weight:800}
.spend-sheet-summary strong{min-width:0;color:#d9ffdc;font-size:17px;font-weight:950;font-variant-numeric:tabular-nums;white-space:nowrap}
.spend-amount-field label{margin-bottom:7px}
.spend-amount-input{min-width:0;display:flex;align-items:center;gap:8px;padding:0 15px;border:1px solid rgba(125, 213, 138, .24);background:rgba(255,255,255,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.spend-amount-input:focus-within{border-color:rgba(125, 213, 138, .54);box-shadow:0 0 0 4px rgba(125, 213, 138, .10), inset 0 1px 0 rgba(255,255,255,.04)}
.spend-amount-input > span{flex:0 0 auto;color:#8fe99a;font-size:29px;font-weight:900}
.spend-amount-input input{min-width:0;height:70px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#f4fff4;font-size:clamp(36px, 12vw, 48px);line-height:1;font-weight:950;letter-spacing:-.065em;font-variant-numeric:tabular-nums}
.spend-amount-input input:focus{border:0;background:transparent;box-shadow:none}
.spend-amount-input input::-webkit-outer-spin-button,
    .spend-amount-input input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}
.spend-sheet-quick{display:flex;gap:8px;overflow-x:auto;padding:0 0 3px;scrollbar-width:none}
.spend-sheet-quick::-webkit-scrollbar{display:none}
.spend-quick-chip{flex:0 0 auto;min-height:36px;padding:0 11px;border:1px solid rgba(202, 236, 199, .11);border-radius:999px;background:rgba(255,255,255,.045);color:#bed0bd;font-size:11px;font-weight:850;transition:transform .12s ease, background .14s ease, color .14s ease, border-color .14s ease}
.spend-quick-chip:active{transform:scale(.97)}
.spend-quick-chip.selected{border-color:rgba(125, 213, 138, .30);background:rgba(125, 213, 138, .14);color:#d9ffdc}
.spend-more-details{overflow:hidden;border:1px solid rgba(202, 236, 199, .10);border-radius:17px;background:rgba(255,255,255,.025)}
.spend-more-details summary{min-height:50px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 13px;color:#dbe9d9;font-size:13px;font-weight:900;cursor:pointer;list-style:none}
.spend-more-details summary::-webkit-details-marker{display:none}
.spend-more-details summary::after{content:"⌄";color:#829682;font-size:18px;line-height:1;transition:transform .16s ease}
.spend-more-details[open] summary::after{transform:rotate(180deg)}
.spend-more-details summary small{margin-left:auto;color:#7f927f;font-size:10px;font-weight:750}
.spend-more-body{display:grid;gap:10px;padding:0 12px 12px}
.spend-save-btn{border-radius:18px;font-size:15px}
@media (max-width: 370px){.home-glance{grid-template-columns:minmax(0, 1.22fr) minmax(0, .68fr) minmax(0, 1.10fr)}
.home-glance-item{padding-left:8px;padding-right:8px}
.home-glance-value,
      #homeBudgetLeft{font-size:13px}
.nav-add-btn .nav-add-orb{width:46px;height:46px;border-radius:17px}
.spend-more-details summary small{display:none}}
.history-header{padding:10px 2px 4px}
.history-kicker{color:#8fe99a;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
.history-header h2{margin:7px 0 0;color:#f2fbf0;font-size:clamp(29px, 8.6vw, 38px);line-height:.98;letter-spacing:-.065em}
.history-header p{margin:10px 0 0;color:#8da08d;font-size:13px;font-weight:700}
.history-overview{display:grid}
.history-overview-item{min-width:0}
.history-overview-item span{display:block}
.history-overview-item strong{display:block;margin-top:7px;overflow:hidden;line-height:1;letter-spacing:-.06em;font-variant-numeric:tabular-nums;white-space:nowrap}
.history-overview-item.compact strong{font-size:clamp(24px, 7vw, 30px)}
.history-opening-note{display:flex;align-items:center;justify-content:space-between;gap:14px}
.history-opening-note div{min-width:0}
.history-opening-note span{display:block;font-size:11px}
.history-opening-note small{display:block;margin-top:3px;font-size:9px;line-height:1.35}
.history-opening-note strong{flex:0 0 auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.history-feed{display:grid}
.history-day-group{min-width:0}
.history-day-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.history-day-head h4{margin:0;letter-spacing:-.02em}
.history-day-head span{font-variant-numeric:tabular-nums}
.history-day-card{border:1px solid rgba(202, 236, 199, .09)}
.history-transaction-row{width:100%;min-width:0;display:grid;align-items:center;border-bottom:1px solid rgba(202, 236, 199, .055);border-radius:0;background:transparent;text-align:left;transition:background .14s ease, transform .12s ease}
.history-transaction-row:last-child{border-bottom:0}
.history-transaction-row:active{transform:scale(.995)}
.history-transaction-icon{display:grid;place-items:center;font-size:13px;font-weight:950}
.history-transaction-copy{min-width:0}
.history-transaction-copy > strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.history-transaction-copy small{min-width:0;display:flex;align-items:center;gap:7px;margin-top:5px;overflow:hidden;font-size:10px;white-space:nowrap}
.history-transaction-copy small > span:first-child{overflow:hidden;text-overflow:ellipsis}
.history-type{flex:0 0 auto;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.045);color:#9bad9a;font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.history-type.need{background:rgba(125, 213, 138, .10);color:#aee9b5}
.history-type.want{background:rgba(232, 178, 92, .11);color:#e7bd7c}
.history-type.mixed{background:rgba(111, 158, 204, .11);color:#a9c8e3}
.history-transaction-amount{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.history-transaction-chevron{font-size:18px;font-weight:700}
.history-empty{display:grid;justify-items:center;border:1px solid rgba(202, 236, 199, .09);text-align:center}
.history-empty-icon{display:grid;place-items:center;font-size:19px;font-weight:950}
.history-empty strong{font-size:14px;font-weight:900}
.history-empty span{max-width:240px;font-size:11px;font-weight:700;line-height:1.45}
.history-empty .btn{margin-top:5px}
.transaction-detail{display:grid}
.transaction-detail-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:15px;border:1px solid rgba(125, 213, 138, .13);border-radius:19px;background:rgba(125, 213, 138, .07)}
.transaction-detail-hero span{min-width:0;overflow:hidden;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}
.transaction-detail-hero strong{flex:0 0 auto;font-size:27px;line-height:1;font-weight:950;letter-spacing:-.06em;font-variant-numeric:tabular-nums;white-space:nowrap}
.transaction-detail-list{overflow:hidden;border:1px solid rgba(202, 236, 199, .09);border-radius:18px;background:rgba(255,255,255,.022)}
.transaction-detail-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:12px 13px;border-bottom:1px solid rgba(202, 236, 199, .055)}
.transaction-detail-row:last-child{border-bottom:0}
.transaction-detail-row > span{flex:0 0 auto;font-size:11px;font-weight:800}
.transaction-detail-row > strong{min-width:0;font-size:11px;font-weight:900;line-height:1.4;text-align:right;overflow-wrap:anywhere}
.transaction-detail-row.note > strong{max-width:68%}
.transaction-detail-row > strong.muted{color:#728572;font-weight:750}
.transaction-detail-actions{display:grid}
@media (max-width: 350px){.history-overview{grid-template-columns:minmax(0, 1fr) 96px}
.history-overview-item{padding:13px 11px}
.history-overview-item strong{font-size:20px}
.history-transaction-row{grid-template-columns:37px minmax(0, 1fr) auto 9px;gap:9px;padding-left:11px;padding-right:9px}
.history-transaction-icon{width:37px;height:37px;border-radius:12px}
.history-type{display:none}}
.screen-header{padding:8px 3px 16px}
.screen-kicker{color:#7df096;font-size:11px;font-weight:950;letter-spacing:.11em;text-transform:uppercase}
.screen-header h2{margin:7px 0 0;color:#f2fff2;font-size:31px;line-height:1;letter-spacing:-.065em}
.screen-header p{margin:9px 0 0;color:#849786;font-size:13px;font-weight:700;line-height:1.45}
.plan-segments{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));border:1px solid rgba(202, 236, 199, .08)}
.plan-segment{min-width:0;padding:0 8px;background:transparent;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;transition:background .16s ease, color .16s ease, transform .12s ease}
.plan-segment:active{transform:scale(.98)}
.plan-segment small{min-width:19px;height:19px;padding:0 5px;border-radius:999px;display:inline-grid;place-items:center;font-size:10px;font-weight:950}
.plan-panel[hidden]{display:none!important}
.plan-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 2px 10px}
.plan-panel-head h3{margin:0;letter-spacing:-.045em}
.plan-panel-head p{margin:4px 0 0;font-size:11px}
.plan-add-action{flex:0 0 auto;display:grid;place-items:center;font-size:23px;font-weight:800;transition:transform .12s ease}
.plan-add-action:active{transform:scale(.96)}
.plan-list{border:1px solid rgba(202, 236, 199, .08)}
.plan-row{width:100%;min-width:0;display:grid;grid-template-columns:40px minmax(0, 1fr) auto 9px;align-items:center;gap:11px;padding:13px 12px;background:transparent;border-bottom:1px solid rgba(202, 236, 199, .055);text-align:left;transition:background .14s ease, transform .12s ease}
.plan-row:last-child{border-bottom:0}
.plan-row:active{background:rgba(255,255,255,.035);transform:scale(.995)}
.plan-row.complete{opacity:.62}
.plan-row-icon{width:40px;height:40px;display:grid;place-items:center;font-size:12px;font-weight:950}
.plan-row-copy{min-width:0;display:grid;gap:4px}
.plan-row-copy strong{min-width:0;font-size:13px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-row-copy small{min-width:0;font-size:10px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan-row-amount{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-row-chevron{font-size:20px;line-height:1}
.plan-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.plan-empty-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:17px;font-size:23px;margin-bottom:13px}
.plan-empty strong{color:#dfeade;font-size:15px}
.plan-empty small{max-width:260px;margin:7px 0 16px;color:#718373;font-size:11px;line-height:1.45;font-weight:700}
.settings-section{margin-top:18px}
.settings-section-title{text-transform:uppercase}
.settings-list{overflow:hidden;border:1px solid rgba(202, 236, 199, .08);border-radius:21px;background:rgba(255,255,255,.022)}
.settings-row{width:100%;min-width:0;display:grid;grid-template-columns:39px minmax(0, 1fr) auto;align-items:center;gap:12px;padding:11px 13px;background:transparent;border-bottom:1px solid rgba(202, 236, 199, .055);text-align:left;cursor:pointer;transition:background .14s ease, transform .12s ease}
.settings-row:last-child{border-bottom:0}
button.settings-row:active, label.settings-row:active{background:rgba(255,255,255,.035);transform:scale(.995)}
.settings-row.static{cursor:default}
.settings-icon{display:grid;place-items:center;font-size:14px;font-weight:950}
.settings-copy{min-width:0;display:grid;gap:4px}
.settings-copy strong{letter-spacing:-.015em}
.settings-copy small{min-width:0;font-size:10px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.settings-chevron{font-size:21px;line-height:1}
.settings-value{font-size:10px;white-space:nowrap}
.settings-footnote{margin:8px 5px 0;font-size:10px;font-weight:700;line-height:1.4}
.advanced-settings{margin-top:18px;overflow:hidden;border:1px solid rgba(202, 236, 199, .08);border-radius:21px;background:rgba(255,255,255,.022)}
.advanced-settings summary{min-height:64px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none}
.advanced-settings summary::-webkit-details-marker{display:none}
.advanced-settings summary > span:first-child{display:grid;gap:4px}
.advanced-settings summary strong{font-size:13px}
.advanced-settings summary small{font-size:10px}
.advanced-settings-body{padding:0 13px 13px;border-top:1px solid rgba(202, 236, 199, .055);padding-top:13px}
.plan-detail{gap:13px}
@media (max-width: 350px){.plan-segment{gap:4px;padding:0 5px;font-size:11px}
.plan-segment small{min-width:18px;padding:0 4px}
.plan-row{grid-template-columns:37px minmax(0, 1fr) auto 8px;gap:9px;padding-left:10px;padding-right:9px}
.plan-row-icon{width:37px;height:37px}
.settings-row{grid-template-columns:37px minmax(0, 1fr) auto;gap:10px;padding-left:11px;padding-right:11px}
.settings-icon{width:37px;height:37px}}
:root{--surface-0:#07110c;--surface-1:#0b1a12;--surface-2:#10251a;--surface-3:#153021;--text-soft:#b8c8b7}
.app-icon{width:20px;height:20px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.btn-icon{width:18px;height:18px}
.topbar{background:linear-gradient(180deg, rgba(7,17,12,.96), rgba(7,17,12,.80) 76%, transparent);border-bottom:1px solid transparent}
.brand-copy p{margin-top:4px;font-size:10px;font-weight:800;color:#718473}
.date-pill{border-color:var(--hairline)}
.history-header, .screen-header{padding:10px 2px 15px}
.history-kicker, .screen-kicker{color:#72df86;font-size:10px;letter-spacing:.12em;font-weight:900}
.history-header h2, .screen-header h2{margin-top:7px;color:var(--text-strong);font-size:30px;line-height:1;letter-spacing:-.06em}
.history-header p, .screen-header p{margin-top:8px;color:var(--text-muted);font-size:12px;font-weight:700}
.btn{padding:0 15px;gap:8px;box-shadow:none;transition:transform .12s ease, background .16s ease, border-color .16s ease, opacity .16s ease}
.btn:active{transform:scale(.975)}
.btn:focus-visible, .nav-btn:focus-visible, .settings-row:focus-visible, .plan-row:focus-visible, .plan-segment:focus-visible, .plan-add-action:focus-visible, .close-btn:focus-visible{outline:2px solid rgba(123, 235, 143, .72);outline-offset:2px}
.nav{padding-left:10px;padding-right:10px}
.nav-btn{transition:color .16s ease, background .16s ease, transform .12s ease}
.nav-btn .ico{font-size:0;line-height:0}
.nav-btn:active{transform:scale(.97)}
.nav-add-btn{gap:2px}
.nav-add-btn .nav-add-orb{border-color:rgba(188,255,195,.29)}
.plan-panel-head{min-height:48px}
.plan-add-action .app-icon{width:20px;height:20px;stroke-width:2.1}
.plan-list, .settings-list, .advanced-settings, .history-day-card, .transaction-detail-list{border-radius:var(--radius-list);background:rgba(255,255,255,.018);border-color:var(--hairline);box-shadow:inset 0 1px 0 rgba(255,255,255,.018)}
.plan-row, .history-transaction-row, .settings-row{min-height:62px}
.plan-row-icon, .history-transaction-icon, .settings-icon{background:rgba(116,226,135,.075);color:#84ed97}
.plan-row-icon .app-icon, .history-transaction-icon .app-icon, .settings-icon .app-icon{width:19px;height:19px}
.plan-row-icon.complete .app-icon{width:18px;height:18px}
.plan-row-chevron, .history-transaction-chevron, .settings-chevron{display:grid;place-items:center;color:#4f6252;font-size:0}
.plan-row-chevron .app-icon, .history-transaction-chevron .app-icon, .settings-chevron .app-icon{width:16px;height:16px;stroke-width:2}
.advanced-settings[open] .settings-chevron{transform:rotate(90deg)}
.plan-empty-icon .app-icon, .history-empty-icon .app-icon{width:22px;height:22px}
.home-activity-icon .app-icon{width:18px;height:18px}
.modal-backdrop{padding-top:max(10px, env(safe-area-inset-top))}
.modal{scroll-padding-bottom:calc(82px + env(safe-area-inset-bottom))}
.modal-head{top:0}
input, select, textarea{min-height:50px;border-radius:15px;padding:13px 14px;font-size:16px}
textarea{min-height:88px}
.field label{margin-bottom:7px;font-size:11px}
.spend-amount-input{border-radius:19px}
.spend-save-btn{min-height:54px!important}
.toast{max-width:calc(100vw - 32px);padding:11px 14px;border-radius:14px;font-size:12px;white-space:normal;text-align:center}
.toast.has-action{display:flex;align-items:center;gap:16px;min-width:min(310px, calc(100vw - 32px));justify-content:space-between;pointer-events:auto;text-align:left}
.toast-message{min-width:0}
.toast-action{flex:0 0 auto;padding:5px 2px;background:transparent;color:#176a2d;font-size:12px;font-weight:950;text-decoration:underline;text-underline-offset:3px}
.toast-action:active{transform:scale(.96)}
@media (hover: hover) and (pointer: fine){button.settings-row:hover, label.settings-row:hover, .plan-row:hover, .history-transaction-row:hover{background:rgba(255,255,255,.03)}
.btn:hover{opacity:.94}}
@media (max-width: 350px){.app-shell{padding-left:13px;padding-right:13px}
.brand-mark{width:39px;height:39px;border-radius:13px}
.brand-mark img{border-radius:13px}
.date-pill{padding-left:8px;padding-right:8px}
.nav{padding-left:7px;padding-right:7px}
.nav-inner{border-radius:20px}
.nav-btn{font-size:8px}
.nav-add-btn .nav-add-orb{width:45px;height:45px;border-radius:16px}
.modal-backdrop{padding-left:6px;padding-right:6px}
.modal{padding-left:13px;padding-right:13px}
.modal-head{margin-left:-13px;margin-right:-13px;padding-left:13px;padding-right:13px}}
@media (prefers-reduced-motion: reduce){*, *::before, *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.topbar{min-height:58px;padding:8px 2px 7px;gap:12px}
.brand{gap:9px;min-width:0}
.brand-mark{width:36px;height:36px;border-radius:12px;flex:0 0 36px;box-shadow:0 8px 22px rgba(35, 190, 95, .16)}
.brand-mark img{border-radius:12px}
.brand-copy h1{font-size:20px;line-height:1;letter-spacing:-.05em}
.brand-copy p{display:none}
.date-pill{margin-left:auto;padding:4px 1px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#829383;font-size:11px;font-weight:850;letter-spacing:.01em}
.modal-head{margin-bottom:12px}
.close-btn{flex:0 0 36px;margin-left:auto}
.nav-btn[data-tab="more"] .ico .app-icon{width:20px;height:20px;stroke-width:1.8}
@media (max-width: 350px){.brand-mark{width:34px;height:34px;flex-basis:34px;border-radius:11px}
.brand-mark img{border-radius:11px}
.brand-copy h1{font-size:19px}
.date-pill{font-size:10px}
.modal-head{padding-left:11px;padding-right:11px}}
.contextual-topbar{gap:14px;align-items:center}
.context-header-copy{display:grid;gap:5px}
.context-header-copy h1{margin:0}
.context-header-copy p{margin:0}
.context-header-meta{margin-left:auto;line-height:1;letter-spacing:.01em;white-space:nowrap}
.context-header-meta[hidden]{display:none}
#page-insights .history-overview,
    #page-buy .plan-segments,
    #page-more .settings-section:first-of-type{margin-top:10px}
@media (max-width: 350px){.contextual-topbar{min-height:66px;padding-top:8px}
.context-header-copy h1{font-size:23px}
.context-header-copy p{font-size:10px}
.context-header-meta{padding:6px 8px;font-size:10px}}
.home-insights-entry{width:100%;display:grid;grid-template-columns:42px minmax(0, 1fr) 28px;align-items:center;gap:12px;color:inherit;text-align:left;transition:transform .14s ease, border-color .14s ease, background .14s ease}
.home-insights-entry:active{transform:scale(.988)}
.home-insights-icon{display:grid;place-items:center;border:1px solid rgba(115, 245, 154, .13)}
.home-insights-icon .app-icon{width:21px;height:21px}
.home-insights-copy{min-width:0;display:grid;gap:4px}
.home-insights-copy strong{line-height:1.1;letter-spacing:-.025em}
.home-insights-copy small{overflow:hidden;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.home-insights-chevron{width:28px;height:28px;display:grid;place-items:center}
.home-insights-chevron .app-icon{width:17px;height:17px}
body.insights-open{overflow:hidden}
.insights-subpage{position:fixed;inset:0;z-index:65;display:none;flex-direction:column;width:100%;height:100dvh;color:var(--text);overflow:hidden}
.insights-subpage.show{display:flex;animation:insightsPageIn .22s ease both}
@keyframes insightsPageIn{from { opacity: 0; transform: translateX(14px); }
      to { opacity: 1; transform: translateX(0); }}
.insights-subpage-header{flex:0 0 auto;min-height:calc(68px + env(safe-area-inset-top));display:grid;grid-template-columns:40px minmax(0, 1fr) auto;align-items:end;gap:11px;padding:calc(9px + env(safe-area-inset-top)) 16px 10px;border-bottom:1px solid rgba(202, 236, 199, .075);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.insights-back{width:38px;height:38px;display:grid;place-items:center;border-radius:14px;border:1px solid rgba(202,236,199,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.insights-back:active{transform:scale(.96)}
.insights-back .app-icon{width:19px;height:19px}
.insights-header-copy{min-width:0;display:grid;gap:4px}
.insights-header-copy h1{margin:0;font-size:23px;line-height:1;letter-spacing:-.052em}
.insights-header-copy p{margin:0;color:#7d9080;font-size:10.5px;line-height:1.1;font-weight:800}
.insights-period-label{align-self:center;max-width:105px;overflow:hidden;padding:7px 9px;border-radius:999px;color:#91a493;background:rgba(255,255,255,.025);border:1px solid rgba(202,236,199,.08);font-size:9.5px;line-height:1;font-weight:900;text-overflow:ellipsis;white-space:nowrap}
.insights-subpage-body{flex:1 1 auto;min-height:0;width:min(100%, 520px);margin:0 auto;padding:12px 14px calc(18px + env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.insights-subpage-body::-webkit-scrollbar{display:none}
.insights-controls{position:sticky;top:-12px;z-index:3;display:grid;gap:9px;padding:0 0 11px}
.insights-scope-switch,
    .insights-section-tabs{display:grid;padding:4px;border:1px solid rgba(202,236,199,.09);border-radius:16px}
.insights-scope-switch{grid-template-columns:1fr 1fr}
.insights-scope-switch[hidden]{display:none!important}
.insights-section-tabs{grid-template-columns:repeat(4, minmax(0, 1fr))}
.insights-scope-btn,
    .insights-section-btn{min-width:0;min-height:34px;border-radius:12px;background:transparent;font-size:10px;line-height:1;font-weight:900;white-space:nowrap;transition:color .14s ease, background .14s ease, transform .12s ease}
.insights-section-btn{font-size:9px}
.insights-scope-btn:active,
    .insights-section-btn:active{transform:scale(.975)}
.insights-panel{display:none;animation:insightsPanelIn .18s ease both}
.insights-panel.active{display:grid;gap:11px}
@keyframes insightsPanelIn{from { opacity: 0; transform: translateY(5px); }
      to { opacity: 1; transform: translateY(0); }}
.insights-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.insights-metric{min-width:0;min-height:83px;display:flex;flex-direction:column;justify-content:space-between;gap:7px;padding:12px;border:1px solid rgba(202,236,199,.085);border-radius:18px;background:rgba(255,255,255,.027);box-shadow:inset 0 1px 0 rgba(255,255,255,.018)}
.insights-metric span{color:#788b7b;font-size:9.5px;line-height:1.1;font-weight:850;text-transform:uppercase;letter-spacing:.035em}
.insights-metric strong{max-width:100%;overflow:hidden;color:#eef8ec;font-size:clamp(18px, 5.4vw, 23px);line-height:1;font-weight:950;letter-spacing:-.055em;text-overflow:ellipsis;white-space:nowrap}
.insights-metric small{overflow:hidden;color:#718374;font-size:9px;line-height:1.15;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.insights-card{min-width:0;padding:14px;border:1px solid rgba(202,236,199,.085);border-radius:21px;background:linear-gradient(145deg, rgba(18,39,27,.88), rgba(9,23,15,.94));box-shadow:0 14px 34px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.02);overflow:hidden}
.insights-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.insights-card-head div{min-width:0;display:grid;gap:4px}
.insights-card-head h2{margin:0;color:#eaf5e8;font-size:14px;line-height:1.1;font-weight:950;letter-spacing:-.025em}
.insights-card-head p{margin:0;color:#718374;font-size:9.5px;line-height:1.25;font-weight:750}
.insights-card-head strong{flex:0 0 auto;font-size:12px;line-height:1;font-weight:950}
.insights-type-bar{height:13px;display:flex;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.045);box-shadow:inset 0 1px 3px rgba(0,0,0,.22)}
.insights-type-segment{min-width:0;height:100%;transition:width .25s ease}
.insights-type-segment.need{background:#5de58a}
.insights-type-segment.want{background:#f4b45f}
.insights-type-segment.mixed{background:#75aef0}
.insights-type-legend{display:grid;grid-template-columns:repeat(3, 1fr);gap:7px;margin-top:11px}
.insights-type-item{min-width:0;display:grid;gap:3px}
.insights-type-item span{color:#728476;font-size:9px;font-weight:850}
.insights-type-item strong{color:#dce9db;font-size:11px;font-weight:950}
.insights-chart-empty{min-height:180px;display:grid;place-items:center;color:#708173;text-align:center;font-size:11px;line-height:1.4;font-weight:800}
.insights-donut-layout{display:grid;grid-template-columns:152px minmax(0, 1fr);align-items:center;gap:14px}
.insights-donut{position:relative;width:152px;height:152px;border-radius:50%;background:rgba(255,255,255,.045);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03), 0 14px 28px rgba(0,0,0,.17)}
.insights-donut::after{content:"";position:absolute;inset:25px;border-radius:50%;box-shadow:0 0 0 1px rgba(202,236,199,.06), inset 0 8px 20px rgba(0,0,0,.22)}
.insights-donut-center{position:absolute;inset:34px;z-index:1;display:grid;place-content:center;gap:4px;text-align:center}
.insights-donut-center strong{color:#eff9ed;font-size:19px;font-weight:950;letter-spacing:-.05em}
.insights-donut-center span{color:#718374;font-size:8.5px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.insights-category-legend{display:grid;gap:8px;min-width:0}
.insights-category-row{min-width:0;display:grid;grid-template-columns:8px minmax(0, 1fr) auto;align-items:center;gap:7px}
.insights-category-dot{width:8px;height:8px;border-radius:50%}
.insights-category-row span:nth-child(2){overflow:hidden;color:#8a9b8c;font-size:9.5px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.insights-category-row strong{color:#dce8da;font-size:10px;font-weight:950}
.insights-chart-svg{display:block;width:100%;height:auto;overflow:visible}
.insights-chart-grid{stroke-width:1}
.insights-chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.insights-chart-dot{stroke-width:2}
.insights-chart-label{font-size:8px;font-weight:800}
.insights-chart-value{fill:#d9e8d7;font-size:8px;font-weight:900}
.insights-trend-footer,
    .insights-week-footer{display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:#718374;font-size:9px;font-weight:800}
.insights-week-chart{height:178px;display:flex;align-items:end;gap:6px;padding:9px 2px 0;border-bottom:1px solid rgba(202,236,199,.08)}
.insights-week-column{min-width:0;flex:1 1 0;height:100%;display:grid;grid-template-rows:minmax(0, 1fr) 17px;align-items:end;gap:5px}
.insights-week-bar-wrap{height:100%;display:flex;align-items:end;justify-content:center}
.insights-week-bar{width:min(22px, 72%);min-height:3px;border-radius:7px 7px 3px 3px;transition:height .25s ease}
.insights-week-column.current .insights-week-bar{background:linear-gradient(180deg, #b0ffc2, #5cdd81)}
.insights-week-column span{color:#6e8171;text-align:center;font-size:8px;font-weight:900}
.insights-note{padding:10px 12px;border-radius:15px;color:#718374;font-size:9.5px;line-height:1.35;font-weight:750}
@media (max-width: 360px){.insights-subpage-header{padding-left:12px;padding-right:12px}
.insights-subpage-body{padding-left:11px;padding-right:11px}
.insights-header-copy h1{font-size:21px}
.insights-donut-layout{grid-template-columns:128px minmax(0, 1fr);gap:10px}
.insights-donut{width:128px;height:128px}
.insights-donut::after{inset:22px}
.insights-donut-center{inset:29px}
.insights-donut-center strong{font-size:17px}
.insights-section-btn{font-size:8.3px}}
@media (prefers-reduced-motion: reduce){.insights-subpage.show, .insights-panel{animation:none!important}
.insights-type-segment, .insights-week-bar{transition:none!important}}
:root{--spendly-visual-height:100dvh;--spendly-visual-top:0px;--sheet-side-gap:8px;--sheet-header-height:64px;--sheet-content-gutter:16px;--sheet-bottom-comfort:max(14px, calc(env(safe-area-inset-bottom) - 8px))}
body.modal-open{overflow:hidden;overscroll-behavior:none}
.modal-backdrop{inset:auto 0 auto 0;top:var(--spendly-visual-top);height:var(--spendly-visual-height);display:none;align-items:flex-end;justify-content:center;overflow:hidden;padding:max(8px, env(safe-area-inset-top)) var(--sheet-side-gap) 8px;overscroll-behavior:none}
.modal-backdrop.show{display:flex}
.modal{width:min(calc(100vw - (var(--sheet-side-gap) * 2)), 500px);height:auto;max-height:min(780px, calc(var(--spendly-visual-height) - max(16px, env(safe-area-inset-top)) - 12px));display:flex;flex-direction:column;min-width:0;min-height:0;padding:0;overflow:hidden;border-radius:30px;border:1px solid rgba(157, 230, 169, .16);overscroll-behavior:contain;touch-action:pan-y}
.modal-head{position:relative;inset:auto;z-index:4;flex:0 0 auto;min-height:var(--sheet-header-height);margin:0;padding:10px 12px 10px 20px;display:grid;grid-template-columns:minmax(0, 1fr) 44px;align-items:center;gap:12px;border-bottom:1px solid rgba(202,236,199,.075)}
.modal-head h3{min-width:0;margin:0;overflow:hidden;font-size:22px;line-height:1.08;letter-spacing:-.048em;text-overflow:ellipsis;white-space:nowrap}
.close-btn{width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0;display:grid;place-items:center;align-self:center;justify-self:end;box-shadow:inset 0 0 0 1px rgba(255,255,255,.018);transition:transform .12s ease, background .16s ease}
.close-btn:active{transform:scale(.94);background:rgba(255,255,255,.095)}
.close-btn .app-icon{width:19px;height:19px;stroke-width:2.15}
.modal-body{flex:0 1 auto;min-width:0;min-height:0;padding:15px var(--sheet-content-gutter) var(--sheet-bottom-comfort);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scroll-padding:18px 0 calc(72px + var(--sheet-bottom-comfort));touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.modal-body::-webkit-scrollbar{display:none;width:0;height:0}
.modal-body > *{min-width:0}
.transaction-detail{gap:13px}
.transaction-detail-actions{gap:9px;padding-top:2px}
.transaction-detail-actions .btn{min-height:52px}
.modal-backdrop[data-kind="expense-edit"] .modal{max-height:min(760px, calc(var(--spendly-visual-height) - max(16px, env(safe-area-inset-top)) - 12px))}
.modal-backdrop[data-kind="expense-edit"] .modal-body{flex:0 1 auto;display:flex;padding:0;overflow:hidden}
.edit-expense-form{flex:0 1 auto;width:100%;min-width:0;min-height:0;max-height:100%;display:flex;flex-direction:column;overflow:hidden}
.edit-expense-scroll{flex:0 1 auto;min-width:0;min-height:0;display:grid;align-content:start;gap:12px;padding:15px var(--sheet-content-gutter) 18px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scroll-padding:16px 0 26px;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.edit-expense-scroll::-webkit-scrollbar{display:none;width:0;height:0}
.edit-expense-scroll > *{min-width:0}
.edit-expense-amount{position:relative;min-width:0}
.edit-expense-amount span{position:absolute;left:14px;top:50%;z-index:1;color:#90a292;font-size:15px;font-weight:900;transform:translateY(-50%);pointer-events:none}
.edit-expense-amount input{height:50px;min-height:50px;padding-left:33px;font-size:16px;font-weight:900;font-variant-numeric:tabular-nums}
.edit-expense-section{display:grid;gap:11px;margin-top:3px;padding-top:14px;border-top:1px solid rgba(202,236,199,.075)}
.edit-expense-section-title{margin:0 2px -1px;font-size:11px;line-height:1;font-weight:950;letter-spacing:.045em;text-transform:uppercase}
.modal-backdrop[data-kind="expense-edit"] .field-row{grid-template-columns:minmax(0, 1.18fr) minmax(0, .82fr);gap:10px}
.edit-expense-form textarea{min-height:96px;resize:none}
.edit-expense-footer{position:relative;z-index:3;flex:0 0 auto;margin:0;padding:10px var(--sheet-content-gutter) var(--sheet-bottom-comfort);border-top:1px solid rgba(202,236,199,.075)}
.edit-expense-footer .btn{min-height:52px;margin:0;border-radius:16px}
@media (max-width: 380px){:root{--sheet-side-gap:6px;--sheet-content-gutter:14px}
.modal{border-radius:27px}
.modal-head{padding-left:17px;padding-right:10px}
.modal-head h3{font-size:21px}}
@media (max-width: 340px){.modal-backdrop[data-kind="expense-edit"] .field-row{grid-template-columns:minmax(0, 1fr)}
.edit-expense-scroll{gap:10px;padding-top:13px}}
@media (orientation: landscape) and (max-height: 540px){:root{--sheet-header-height:56px}
.modal-backdrop{padding-top:6px;padding-bottom:6px}
.modal{max-height:calc(var(--spendly-visual-height) - 12px);border-radius:24px}
.modal-head{padding-top:6px;padding-bottom:6px}
.modal-head h3{font-size:20px}
.edit-expense-scroll{padding-top:12px}}
@media (prefers-reduced-motion: reduce){.modal-body, .edit-expense-scroll{scroll-behavior:auto}}
html.modal-open,
    body.modal-open{height:100%;overflow:hidden;overscroll-behavior:none}
.modal-backdrop,
    .modal,
    .modal-head{overscroll-behavior:none}
.modal-body,
    .edit-expense-scroll{overscroll-behavior-y:contain;overscroll-behavior-x:none;scroll-snap-type:none}
.modal-body:not(.can-scroll),
    .edit-expense-scroll:not(.can-scroll){overflow-y:hidden}
.activity-tools{display:grid;grid-template-columns:minmax(0, 1fr) auto}
.activity-search{min-width:0;height:46px;display:grid;grid-template-columns:20px minmax(0, 1fr);align-items:center;gap:9px;padding:0 13px;border:1px solid rgba(202, 236, 199, .10);border-radius:16px;background:rgba(12, 28, 19, .66);color:#789079}
.activity-search .app-icon{width:18px;height:18px}
.activity-search input{min-width:0;height:44px;padding:0;border:0;border-radius:0;box-shadow:none;font-size:14px}
.activity-search input:focus{border:0;background:transparent;box-shadow:none}
.activity-search input::-webkit-search-cancel-button{filter:invert(.72)}
.activity-filter-button{height:46px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid rgba(202, 236, 199, .10);border-radius:16px;background:rgba(12, 28, 19, .66);font-size:12px}
.activity-filter-button .app-icon{width:17px;height:17px}
.activity-filter-button strong[hidden]{display:none}
.activity-filter-button strong{min-width:18px;height:18px;display:inline-grid;place-items:center;padding:0 5px;border-radius:999px;font-size:9px;font-weight:950}
.activity-filter-chips{display:flex;gap:7px;overflow-x:auto;padding:0 0 10px;scrollbar-width:none;overscroll-behavior-inline:contain}
.activity-filter-chips[hidden]{display:none}
.activity-filter-chips::-webkit-scrollbar{display:none}
.activity-filter-chip{flex:0 0 auto;min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid rgba(125, 224, 141, .16);border-radius:999px;font-size:10px;font-weight:900}
.activity-filter-chip .app-icon{width:12px;height:12px}
.activity-filter-form{display:grid;gap:15px}
.activity-filter-actions{display:grid;gap:9px;margin-top:3px}
.activity-filter-summary{padding:12px 13px;border:1px solid rgba(125, 224, 141, .12);border-radius:16px;background:rgba(125, 224, 141, .065);font-size:11px;font-weight:760;line-height:1.45}
.setup-adjustment-card{display:grid;gap:12px;padding:14px;border:1px solid rgba(125, 224, 141, .12);border-radius:19px;background:rgba(125, 224, 141, .055)}
.setup-adjustment-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.setup-adjustment-head strong{color:#dce9db;font-size:13px;font-weight:920}
.setup-adjustment-head small{display:block;margin-top:4px;color:#7f927f;font-size:10px;font-weight:720;line-height:1.4}
.setup-adjustment-head span{color:#9eeaaa;font-size:13px;font-weight:950;white-space:nowrap}
.setup-balance-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#819481;font-size:11px;font-weight:800}
.setup-balance-preview strong{color:#e5f4e3;font-size:14px;font-weight:950}
@media (max-width: 350px){.activity-tools{grid-template-columns:minmax(0, 1fr) 48px}
.activity-filter-button{min-width:48px;padding:0}
.activity-filter-button > span{display:none}}
:root{--shadow:0 24px 70px rgba(0,0,0,.34);--soft-shadow:0 12px 34px rgba(0,0,0,.20);--radius-sheet:28px;--radius-list:18px;--radius-control:15px}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none}
.context-header-meta{font-size:10px;font-weight:760}
.btn{min-height:50px;border-radius:15px;font-size:13px;font-weight:820;letter-spacing:-.015em}
.btn.primary{color:#07110b;background:linear-gradient(145deg, #8be5a5, #5cc67b);box-shadow:0 12px 30px rgba(72,183,103,.19), inset 0 1px 0 rgba(255,255,255,.34)}
.btn.secondary{color:#d6dbe0;background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.075);box-shadow:none}
.btn.ghost{color:#9ba2ab;border-color:rgba(255,255,255,.075)}
.btn.danger{color:#ff9ba1;background:rgba(239,133,141,.075);border-color:rgba(239,133,141,.17)}
.home-hero{border:1px solid rgba(255,255,255,.07);background:radial-gradient(circle at 92% -5%, rgba(123,221,152,.13), transparent 34%),
        linear-gradient(150deg, #171c22 0%, #101419 72%);box-shadow:0 24px 64px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.045)}
.home-hero::after{width:190px;height:190px;right:-118px;bottom:-128px;background:rgba(123,221,152,.045)}
.home-kicker{color:#84dda0;font-size:10px;font-weight:820;letter-spacing:.11em}
.home-week-badge{padding:7px 10px;border-color:rgba(255,255,255,.07);background:rgba(255,255,255,.035);color:#969ea7;font-weight:700}
.home-question{margin-top:20px}
.home-safe-block{margin-top:13px}
.home-safe-value{margin-top:0}
.home-safe-status{margin-top:13px;padding:7px 10px;background:rgba(123,221,152,.09);color:#bdecc9;font-size:11px;font-weight:720}
.home-safe-status.warn{background:rgba(230,173,91,.10);color:#f3ca8d}
.home-safe-status.bad{background:rgba(239,133,141,.10);color:#ffadb3}
.home-actions{grid-template-columns:minmax(0, 1fr);margin-top:21px}
.home-actions .btn.primary{width:100%}
.home-actions .btn.secondary{display:none}
.home-glance{margin-top:12px;border:1px solid rgba(255,255,255,.065);background:#11151a;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.home-glance-item{border-radius:0;box-shadow:none}
.home-glance-item:nth-child(2){border-left:1px solid rgba(255,255,255,.06)}
.home-glance-item:nth-child(3){display:none}
.week-status-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;line-height:1;white-space:nowrap}
.week-status-pill.watch{border-color:rgba(226, 173, 91, .18)}
.week-status-pill.over{border-color:rgba(239, 133, 141, .18)}
.home-week-card{border:1px solid rgba(255,255,255,.065);background:#11151a;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.home-week-progress span{width:0;transition:width .24s ease}
.home-week-foot strong{text-align:right}
.home-insights-entry{padding:10px 13px;border:1px solid rgba(255,255,255,.06);border-radius:18px;background:#11151a;box-shadow:none}
.home-insights-icon{width:38px;height:38px;border-radius:12px}
.home-insights-copy strong{color:#e3e6e9;font-size:13px;font-weight:760}
.home-insights-copy small{color:#727a84;font-size:9px;font-weight:620}
.home-insights-chevron{color:#515861}
.home-details,
    .home-activity{border-color:rgba(255,255,255,.06);border-radius:19px;background:#11151a;box-shadow:none}
.home-details summary{min-height:64px;padding-left:15px}
.home-details summary strong{color:#e2e6e8;font-size:13px;font-weight:760}
.home-details summary small{color:#707881;font-weight:620}
.home-details summary::after{color:#5e6670}
.home-details-badge{font-weight:740}
.home-details-body{border-top-color:rgba(255,255,255,.055)}
.home-detail-list{border-color:rgba(255,255,255,.055);background:#0d1115}
.home-detail-row{border-bottom-color:rgba(255,255,255,.05)}
.home-detail-row span{color:#737b84;font-weight:650}
.home-detail-row strong{color:#dce0e3;font-weight:760}
.home-activity-row{border-bottom-color:rgba(255,255,255,.05)}
.home-activity-icon{width:36px;height:36px;border-radius:11px;background:#1a2027;color:#8d98a3}
.home-activity-count{color:#545c65}
.history-overview{grid-template-columns:minmax(0, 1.25fr) minmax(108px,.75fr);overflow:hidden;border:1px solid rgba(255,255,255,.065);border-radius:20px;background:#11151a}
.history-overview-item{min-height:82px;padding:15px 16px;border:0;background:transparent;box-shadow:none}
.history-overview-item + .history-overview-item{border-left:1px solid rgba(255,255,255,.06)}
.history-overview-item span{font-size:10px;font-weight:690}
.history-overview-item strong{font-size:26px;font-weight:800}
.activity-tools{gap:8px;margin:13px 0 9px}
.activity-search,
    .activity-filter-button{height:44px;border-color:rgba(255,255,255,.065);background:#11151a;color:#858e98}
.activity-search input{color:#e5e8eb;font-weight:650}
.activity-search input::placeholder{color:#626a74}
.activity-filter-button{min-width:82px;font-weight:740}
.activity-filter-button strong{background:#7bdd98;color:#07110b}
.activity-filter-chip{border-color:rgba(123,221,152,.14);background:rgba(123,221,152,.075);color:#a9e1b8}
.history-opening-note{margin-top:8px;padding:11px 3px;border:0;background:transparent}
.history-opening-note span{font-weight:720}
.history-opening-note small{font-weight:600}
.history-opening-note strong{color:#b9bec4;font-size:13px;font-weight:760}
.history-section{margin-top:18px}
.history-feed{gap:21px}
.history-day-head{margin:0 2px 8px}
.history-day-head h4{font-weight:760}
.history-day-head span{font-size:11px;font-weight:720}
.history-day-card{border-color:rgba(255,255,255,.06);background:#11151a;box-shadow:none}
.history-transaction-row{grid-template-columns:36px minmax(0,1fr) auto 10px;gap:11px}
.history-transaction-row:active{background:rgba(255,255,255,.025)}
.history-transaction-icon{width:36px;height:36px;border-radius:11px;background:#1a2027;color:#8d98a3}
.history-transaction-copy small{font-weight:620}
.history-transaction-chevron{color:#49515a}
.history-empty{gap:7px;padding:24px 18px;border-color:rgba(255,255,255,.06);border-radius:18px;background:#11151a}
.history-empty-icon{width:42px;height:42px;border-radius:13px;background:#1a2027;color:#91a09b}
.history-empty strong{color:#dfe3e6}
.history-empty span{color:#707881}
.plan-segments{gap:3px;border-color:rgba(255,255,255,.065);background:#11151a;box-shadow:none}
.plan-segment{font-weight:710}
.plan-segment small{background:rgba(255,255,255,.045);color:#747c86}
.plan-segment.active small{background:rgba(123,221,152,.11);color:#9fdfb1}
.plan-panel{margin-top:19px}
.plan-panel-head h3{color:#e7eaed;font-size:16px;font-weight:780}
.plan-panel-head p{color:#6d7580;font-weight:620}
.plan-add-action{width:39px;height:39px;color:#07110b;box-shadow:0 9px 22px rgba(72,183,103,.17)}
.plan-list{border-color:rgba(255,255,255,.06);background:#11151a;box-shadow:none}
.plan-row-icon{color:#909aa4}
.plan-row-icon.complete{background:rgba(123,221,152,.09);color:#81d69a}
.plan-row-copy strong{font-weight:740}
.plan-row-copy small{font-weight:620}
.plan-row-amount{font-weight:780}
.plan-row-chevron{color:#49515a}
.plan-empty{min-height:180px;padding:22px 18px;background:transparent}
.plan-empty-icon{background:#1a2027;color:#8d98a3}
.settings-section-title{margin:0 5px 8px;font-size:10px;font-weight:760;letter-spacing:.075em}
.settings-list,
    .advanced-settings{border-color:rgba(255,255,255,.06);background:#11151a;box-shadow:none}
.settings-copy small{font-weight:610}
.settings-value{font-weight:700}
.settings-chevron{color:#49515a}
.settings-footnote{color:#575f68}
.advanced-settings summary strong{color:#d9dde0;font-weight:740}
.advanced-settings summary small{color:#6b737d;font-weight:610}
.modal-head h3{font-weight:790}
.modal-body{background:transparent}
input::placeholder, textarea::placeholder{color:#59616a}
.field label{font-weight:690}
.spend-amount-shell,
    .transaction-detail-hero,
    .transaction-detail-list,
    .activity-filter-summary,
    .setup-adjustment-card{border-color:rgba(255,255,255,.07);background:#11161b}
.transaction-detail-hero span{color:#abb2b9}
.transaction-detail-hero strong{color:#f0f5f1}
.transaction-detail-row{border-bottom-color:rgba(255,255,255,.05)}
.transaction-detail-row > span{color:#747c85}
.transaction-detail-row > strong{color:#dce0e3}
.edit-expense-section{border-top-color:rgba(255,255,255,.055)}
.edit-expense-section-title{color:#7d858e}
.edit-expense-footer{box-shadow:0 -14px 34px rgba(0,0,0,.22)}
.activity-filter-summary{color:#7f8790}
body.insights-open .nav{display:none}
.insights-back{background:#171c22;color:#b7bec5;border-color:rgba(255,255,255,.06)}
.insights-header-copy h1{color:#f2f4f6;font-weight:790}
.insights-header-copy p,
    .insights-period-label{color:#747c86}
.insights-scope-switch,
    .insights-section-tabs{border-color:rgba(255,255,255,.06);background:#11151a;box-shadow:none}
.insights-scope-btn,
    .insights-section-btn{color:#6e7680}
.insights-scope-btn.active,
    .insights-section-btn.active{box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.insights-metric,
    .insights-card{border-color:rgba(255,255,255,.06);background:#11151a;box-shadow:none}
.insights-metric span,
    .insights-metric small,
    .insights-card-head p,
    .insights-note{color:#707881}
.insights-card-head strong{color:#8edca5}
.insights-note{background:#0f1318}
.insights-donut::after{background:#11151a;border-color:rgba(255,255,255,.05)}
.insights-chart-line{stroke:#7bdd98}
.insights-chart-dot{fill:#a6edb9;stroke:#11151a}
.insights-chart-grid{stroke:rgba(255,255,255,.06)}
.insights-chart-label{fill:#69717a}
.insights-week-chart{border-bottom-color:rgba(255,255,255,.06)}
.insights-week-bar{background:linear-gradient(180deg, #8be5a5, #58b974);box-shadow:none}
.nav-inner{border-color:rgba(255,255,255,.075)}
.nav-add-btn .nav-add-orb{border:0}
.startup-logo-shell{box-shadow:0 24px 70px rgba(0,0,0,.42)}
@media (max-width: 380px){.app-shell{padding-left:15px;padding-right:15px}
.context-header-copy h1{font-size:25px}
.home-hero{padding:19px}
.home-safe-value{font-size:clamp(54px, 17vw, 68px)}
.home-glance-item{padding-left:13px;padding-right:13px}
.nav{padding-left:8px;padding-right:8px}}
@media (max-width: 340px){.home-week-badge{max-width:57%}
.history-overview{grid-template-columns:minmax(0,1fr) 92px}
.activity-filter-button{min-width:48px}}
.home-week-card{min-width:0;align-items:stretch;justify-items:stretch;justify-content:stretch}
.home-week-primary,
    .home-week-amount-line,
    .home-week-progress,
    .home-week-foot{width:100%;min-width:0}
.home-week-foot{justify-content:stretch}
:root{--bg:#080a0c;--bg-soft:#0c0f11;--surface:#14171a;--surface-raised:#191d20;--surface-soft:#101316;--card:#14171a;--card-strong:#191d20;--text:#efeee9;--text-strong:#f2f1ec;--muted:#969a9f;--text-muted:#969a9f;--text-faint:#656a70;--line:rgba(223, 228, 224, .09);--hairline:rgba(223, 228, 224, .09);--green:#78df92;--green-dark:#78df92;--accent:#78df92;--accent-soft:rgba(120, 223, 146, .12);--mint:rgba(120, 223, 146, .12);--mint-strong:rgba(120, 223, 146, .20);--amber:#e6ad65;--rose:#ed858d;--blue:#77aef0;--nav-h:94px;--radius-xl:30px;--radius-lg:24px;--radius-md:17px;color-scheme:dark;font-family:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", Inter, system-ui, sans-serif}
html{background:var(--bg)}
body{color:var(--text);background:radial-gradient(circle at 78% -9%, rgba(92, 174, 115, .075), transparent 27%),
        radial-gradient(circle at 0% 18%, rgba(130, 145, 158, .035), transparent 30%),
        linear-gradient(180deg, #080a0c 0%, #0a0c0e 47%, #080a0c 100%)}
body::before{background:linear-gradient(110deg, transparent 0%, rgba(255,255,255,.009) 45%, transparent 78%)}
.app-shell{width:min(100%, 520px);padding-left:16px;padding-right:16px;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 25px)}
.contextual-topbar{min-height:102px;padding:21px 5px 19px;background:linear-gradient(180deg, rgba(8,10,12,.985), rgba(8,10,12,.90) 75%, transparent);backdrop-filter:blur(24px) saturate(135%);-webkit-backdrop-filter:blur(24px) saturate(135%)}
.context-header-copy{min-width:0}
.context-header-copy h1{color:#f0efe9;font-size:clamp(31px, 8.5vw, 38px);line-height:.98;font-weight:760;letter-spacing:-.055em}
.context-header-copy p{margin-top:9px;max-width:315px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#85898f;font-size:13px;line-height:1.2;font-weight:590;letter-spacing:-.015em}
.context-header-meta{width:52px;height:52px;padding:0;display:grid;place-items:center;flex:0 0 52px;border:1px solid rgba(255,255,255,.07);border-radius:50%;background:linear-gradient(145deg, #171a1d, #101215);color:#72dd8d;box-shadow:0 12px 28px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.035)}
.context-header-meta .app-icon{width:23px;height:23px;stroke-width:1.8}
.section{margin-top:24px}
.section-head{margin:0 10px 12px}
.section-head h3{color:#ebeae5;font-size:20px;line-height:1;font-weight:735;letter-spacing:-.045em}
.section-head span,
    .section-link{color:#7d8288;font-size:12px;font-weight:680}
.section-link{color:#79df92}
#page-home{padding-top:1px}
.home-week-section{margin-top:1px}
.home-week-card,
    .home-hero,
    .home-activity,
    .home-glance,
    .home-insights-entry,
    .home-details{border:1px solid rgba(224, 229, 225, .09);background:linear-gradient(145deg, rgba(255,255,255,.019), transparent 42%),
        linear-gradient(155deg, #171a1d 0%, #111416 100%);box-shadow:0 22px 52px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.025)}
.home-week-card{width:100%;display:grid;grid-template-columns:minmax(0, 1fr);gap:19px;padding:22px 20px 20px;border-radius:30px;overflow:hidden}
.home-week-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.home-week-card-head h3{min-width:0;margin:0;color:#efeee9;font-size:clamp(20px, 5.7vw, 25px);line-height:1;font-weight:735;letter-spacing:-.045em}
.week-status-pill{min-height:36px;padding:0 14px;border:1px solid rgba(120,223,146,.17);background:linear-gradient(145deg, rgba(34,90,51,.62), rgba(24,63,36,.72));color:#86e79d!important;font-size:12px!important;font-weight:760!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.week-status-pill::before{content:"✓";width:18px;height:18px;display:grid;place-items:center;margin-right:7px;border-radius:50%;background:#79df92;color:#102417;font-size:11px;font-weight:950}
.week-status-pill.watch{background:rgba(104,70,30,.72);color:#efc37f!important}
.week-status-pill.watch::before{content:"!";background:#e6ad65;color:#2b1c08}
.week-status-pill.over{background:rgba(105,39,47,.72);color:#f1a0a6!important}
.week-status-pill.over::before{content:"!";background:#ed858d;color:#2a0d10}
.home-week-primary{display:grid;gap:14px;min-width:0}
.home-week-amount-line{width:100%;display:flex;align-items:baseline;gap:10px;min-width:0}
.home-week-amount-line strong{min-width:0;color:#f1f0eb;font-size:clamp(43px, 12.6vw, 61px);line-height:.94;font-weight:760;letter-spacing:-.073em;font-variant-numeric:tabular-nums}
.home-week-amount-line span{color:#9a9ea4;font-size:clamp(16px, 4.4vw, 20px);font-weight:650;letter-spacing:-.02em}
.home-week-date-row{display:flex;align-items:center;gap:9px;color:#898e94}
.home-week-date-row .app-icon{width:20px;height:20px;stroke-width:1.7}
.home-week-dates{color:#898e94;font-size:14px;font-weight:620;letter-spacing:-.015em}
.home-week-progress-row{display:grid;grid-template-columns:minmax(0, 1fr) auto;align-items:center;gap:12px;width:100%;min-width:0}
.home-week-progress{width:100%;height:12px;overflow:hidden;border-radius:999px;background:#262a2e;box-shadow:inset 0 1px 2px rgba(0,0,0,.28)}
.home-week-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg, #66d986, #8ce7a2);box-shadow:0 0 18px rgba(120,223,146,.18)}
.home-week-progress span.near{background:linear-gradient(90deg, #d9964c, #efbf76)}
.home-week-progress span.over{background:linear-gradient(90deg, #dc6b75, #f0969d)}
.week-percent-pill{min-width:55px;min-height:38px;display:grid;place-items:center;padding:0 11px;border-radius:15px;background:linear-gradient(145deg, #86e39e, #60c97d);color:#0b1a10;font-size:14px;font-weight:830;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.week-percent-pill.watch{background:linear-gradient(145deg, #efc27b, #d39750);color:#281b0c}
.week-percent-pill.over{background:linear-gradient(145deg, #f19aa1, #d96b75);color:#2a0d10}
.home-week-foot{width:100%;display:grid;grid-template-columns:minmax(0, 1fr) auto;align-items:baseline;gap:12px;padding-top:1px;color:#878c92;font-size:13px;font-weight:620;font-variant-numeric:tabular-nums}
.home-week-foot strong{justify-self:end;color:#b7bbb8;font-size:13px;font-weight:720}
.home-today-section{margin-top:20px}
.home-hero{position:relative;padding:20px;border-radius:28px;overflow:hidden}
.home-hero::after{display:none}
.home-today-top{display:grid;grid-template-columns:48px minmax(0,1fr) auto 24px;align-items:center;gap:12px;min-width:0}
.home-today-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:rgba(120,223,146,.13);color:#78df92;box-shadow:inset 0 0 0 1px rgba(120,223,146,.06)}
.home-today-icon .app-icon{width:24px;height:24px;stroke-width:1.8}
.home-today-copy{min-width:0;display:grid;gap:4px}
.home-question{margin:0;color:#efeee9;font-size:19px;line-height:1.05;font-weight:720;letter-spacing:-.035em}
.home-today-subtitle{color:#8b9096;font-size:12px;font-weight:610}
.home-safe-value{margin:0;color:#75df90;font-size:clamp(28px, 8vw, 36px);line-height:1;font-weight:760;letter-spacing:-.055em;font-variant-numeric:tabular-nums;white-space:nowrap}
.home-today-add{width:24px;height:42px;display:grid;place-items:center;padding:0;background:transparent;color:#666c72}
.home-today-add .app-icon{width:22px;height:22px;stroke-width:2}
.home-today-progress{height:10px;margin-top:20px;overflow:hidden;border-radius:999px;background:#25292d}
.home-today-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg, #62d681, #83e39a)}
.home-today-progress span.warn{background:linear-gradient(90deg, #d99a4f, #edbd73)}
.home-today-progress span.bad{background:linear-gradient(90deg, #d86973, #ef939b)}
.home-today-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;color:#8e9399;font-size:13px;font-weight:620;font-variant-numeric:tabular-nums}
.home-today-foot strong{color:#aeb2b0;font-weight:690}
.home-safe-status{display:none!important}
.home-recent-section{margin-top:28px}
.home-activity{overflow:hidden;border-radius:25px}
.home-activity-row{width:100%;min-height:75px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px 15px;border:0;border-bottom:1px solid rgba(223,228,224,.075);background:transparent;text-align:left;color:inherit}
.home-activity-row:last-child{border-bottom:0}
.home-activity-row:active{background:rgba(255,255,255,.025)}
.home-activity-icon,
    .history-transaction-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#202429;color:#9ca3aa}
.home-activity-icon .app-icon,
    .history-transaction-icon .app-icon{width:22px;height:22px;stroke-width:1.8}
.category-tone-groceries{color:#76df90!important;background:rgba(120,223,146,.12)!important}
.category-tone-eating{color:#eea759!important;background:rgba(238,167,89,.12)!important}
.category-tone-trips{color:#72abef!important;background:rgba(114,171,239,.12)!important}
.category-tone-shared{color:#b894e9!important;background:rgba(184,148,233,.12)!important}
.category-tone-gym{color:#eb7f89!important;background:rgba(235,127,137,.12)!important}
.category-tone-clothes{color:#74d4cd!important;background:rgba(116,212,205,.12)!important}
.category-tone-misc{color:#a3a8ad!important;background:rgba(163,168,173,.11)!important}
.home-activity-copy{min-width:0;display:grid;gap:5px}
.home-activity-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ecebe6;font-size:15px;font-weight:690;letter-spacing:-.02em}
.home-activity-meta{color:#898e94;font-size:12px;font-weight:590}
.home-activity-side{display:grid;justify-items:end;gap:5px}
.home-activity-amount{color:#efeee9;font-size:15px;font-weight:720;font-variant-numeric:tabular-nums}
.home-activity-side small{color:#8a8f95;font-size:11px;font-weight:590}
.home-activity-count{display:none}
.home-overview-section{margin-top:28px}
.home-glance{grid-template-columns:repeat(3, minmax(0,1fr));gap:0;overflow:hidden;border-radius:23px}
.home-glance-item{min-height:83px;padding:16px 14px;border:0;border-right:1px solid rgba(223,228,224,.075);background:transparent;text-align:left}
.home-glance-item:last-child{display:block;border-right:0}
.home-glance-label{color:#777c82;font-size:10px;font-weight:660}
.home-glance-value{margin-top:9px;color:#ebeae5;font-size:clamp(18px, 5.3vw, 24px);font-weight:740;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.home-insights-entry,
    .home-details{border-radius:22px}
.home-insights-entry{min-height:68px}
.home-insights-icon{background:rgba(120,223,146,.11);color:#78df92}
.home-insights-copy strong,
    .home-details summary strong{color:#e7e6e1}
.home-insights-copy small,
    .home-details summary small{color:#7f848a}
.home-details-badge{background:rgba(120,223,146,.10);color:#8de5a3}
.history-overview{gap:10px;margin-top:2px}
.history-overview-item,
    .activity-search,
    .activity-filter-button,
    .history-opening-note,
    .history-day-card,
    .history-empty{border-color:rgba(223,228,224,.085);background:linear-gradient(150deg, #171a1d, #111416);box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}
.history-overview-item{border-radius:21px}
.history-overview-item span{color:#7e8389}
.history-overview-item strong{color:#ebeae5}
.activity-tools{margin-top:16px}
.activity-search,
    .activity-filter-button{min-height:48px;border-radius:17px}
.activity-search input{background:transparent}
.activity-filter-button{color:#aeb3b7}
.history-opening-note{border-radius:20px}
.history-opening-note span{color:#d8d7d2}
.history-opening-note small{color:#787d83}
.history-day-head h4{color:#9b9fa4;font-size:12px}
.history-day-head span{color:#858a90}
.history-day-card{overflow:hidden;border-radius:23px}
.history-transaction-row{min-height:72px;padding:12px 14px;border-bottom-color:rgba(223,228,224,.07)}
.history-transaction-copy > strong{color:#e9e8e3;font-size:14px;font-weight:690}
.history-transaction-copy small{color:#868b91}
.history-transaction-amount{color:#ecebe6;font-weight:720}
.plan-segments,
    .plan-list,
    .settings-list,
    .advanced-settings{border-color:rgba(223,228,224,.085);background:linear-gradient(150deg, #171a1d, #111416);box-shadow:inset 0 1px 0 rgba(255,255,255,.02)}
.plan-segments{border-radius:18px;padding:4px}
.plan-segment{min-height:45px;border-radius:14px;color:#777c82}
.plan-segment.active{color:#ecebe6;background:#25292d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035), 0 7px 18px rgba(0,0,0,.18)}
.plan-add-action{border-radius:50%;background:linear-gradient(145deg, #8ae5a0, #60ca7d)}
.plan-list{border-radius:23px;overflow:hidden}
.plan-row{min-height:68px;border-bottom-color:rgba(223,228,224,.07)}
.plan-row-icon{border-radius:50%;background:#22262a}
.plan-row-copy strong{color:#e7e6e1}
.plan-row-copy small{color:#83888e}
.plan-row-amount{color:#ecebe6}
#page-more .settings-section{margin-top:22px}
.settings-section-title{margin-left:10px;color:#777c82}
.settings-list,
    .advanced-settings{border-radius:23px;overflow:hidden}
.settings-row{min-height:68px;border-bottom-color:rgba(223,228,224,.07)}
.settings-icon{width:40px;height:40px;border-radius:14px;background:#23272b;color:#9ca2a7}
.settings-copy strong{color:#e6e5e0;font-size:14px;font-weight:680}
.settings-copy small{color:#81868c}
.settings-value{color:#9ca1a6}
.modal-backdrop{background:rgba(0,0,0,.70);backdrop-filter:blur(10px) saturate(115%);-webkit-backdrop-filter:blur(10px) saturate(115%)}
.modal{border-color:rgba(223,228,224,.10);background:linear-gradient(180deg, #1b1f22 0%, #111416 100%);box-shadow:0 32px 100px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.03)}
.modal-head{background:rgba(27,31,34,.985);border-bottom-color:rgba(223,228,224,.075)}
.modal-head h3{color:#efeee9}
.close-btn{border-radius:50%;background:rgba(255,255,255,.055);color:#b8bcbf}
input, select, textarea{color:#ebeae5;background:#0e1113;border-color:rgba(223,228,224,.10)}
input:focus, select:focus, textarea:focus{border-color:rgba(120,223,146,.42);background:#101315;box-shadow:0 0 0 3px rgba(120,223,146,.09)}
.field label{color:#8f949a}
.edit-expense-footer{background:rgba(17,20,22,.985);border-top-color:rgba(223,228,224,.075)}
.insights-subpage{background:#080a0c}
.insights-subpage-header{background:rgba(8,10,12,.975);border-bottom-color:rgba(223,228,224,.07)}
.insights-controls{background:linear-gradient(180deg, #080a0c 72%, transparent)}
.insights-scope-switch,
    .insights-section-tabs,
    .insights-metric,
    .insights-card{border-color:rgba(223,228,224,.085);background:linear-gradient(150deg, #171a1d, #111416)}
.insights-scope-btn.active,
    .insights-section-btn.active{background:#25292d;color:#ecebe6}
.insights-metric strong,
    .insights-card-head h2{color:#eae9e4}
.nav{width:min(100%, 520px);padding:9px 10px calc(9px + env(safe-area-inset-bottom));background:linear-gradient(180deg, transparent, rgba(8,10,12,.84) 22%, #080a0c 68%)}
.nav-inner{height:78px;overflow:visible;padding:5px 4px;border:1px solid rgba(223,228,224,.085);border-radius:29px;background:rgba(23,26,29,.96);box-shadow:0 20px 58px rgba(0,0,0,.50), inset 0 1px 0 rgba(255,255,255,.025);backdrop-filter:blur(24px) saturate(125%);-webkit-backdrop-filter:blur(24px) saturate(125%)}
.nav-btn{min-width:0;height:68px;grid-template-rows:43px auto;align-content:center;gap:2px;border-radius:21px;background:transparent;color:#8b9096;font-size:10px;font-weight:630}
.nav-btn .ico{width:43px;height:43px;display:grid;place-items:center;margin:0 auto;border-radius:50%;color:#969ba1}
.nav-btn .ico .app-icon{width:23px;height:23px;stroke-width:1.75}
.nav-btn.active{color:#78df92;background:transparent;box-shadow:none}
.nav-btn.active .ico{background:rgba(120,223,146,.13);color:#78df92;box-shadow:inset 0 0 0 1px rgba(120,223,146,.05)}
.nav-add-btn{position:relative;z-index:2;transform:translateY(-5px);color:#989da2}
.nav-add-btn .nav-add-orb{width:56px;height:56px;border-radius:50%;color:#0a180f;background:linear-gradient(145deg, #91e7a5, #62cb7d);box-shadow:0 12px 30px rgba(72,183,103,.31), inset 0 1px 0 rgba(255,255,255,.30)}
.nav-add-orb .app-icon{width:27px;height:27px;stroke-width:2.1}
.startup-screen{background:#080a0c}
.startup-title{color:#efeee9}
.startup-subtitle{color:#858a90}
@media (max-width: 390px){.app-shell{padding-left:14px;padding-right:14px}
.contextual-topbar{min-height:96px}
.context-header-copy h1{font-size:31px}
.context-header-copy p{max-width:270px;font-size:12px}
.context-header-meta{width:48px;height:48px;flex-basis:48px}
.home-week-card{padding:20px 18px 18px}
.home-week-card-head h3{font-size:21px}
.week-status-pill{min-height:34px;padding:0 11px;font-size:11px!important}
.home-week-foot{grid-template-columns:1fr;gap:5px}
.home-week-foot strong{justify-self:start}
.home-today-top{grid-template-columns:44px minmax(0,1fr) auto 20px;gap:10px}
.home-today-icon{width:44px;height:44px}
.home-question{font-size:17px}
.home-safe-value{font-size:28px}
.home-glance-item{padding-left:11px;padding-right:11px}
.home-glance-value{font-size:18px}}
@media (max-width: 345px){.home-week-card-head{align-items:flex-start}
.week-status-pill::before{display:none}
.home-week-progress-row{grid-template-columns:minmax(0,1fr) 48px;gap:9px}
.week-percent-pill{min-width:48px;min-height:34px;font-size:12px}
.home-today-top{grid-template-columns:42px minmax(0,1fr) auto}
.home-today-add{display:none}
.home-safe-value{font-size:25px}
.home-glance{grid-template-columns:1fr 1fr}
.home-glance-item:nth-child(3){display:none}
.nav-btn{font-size:9px}
.nav-add-btn .nav-add-orb{width:52px;height:52px}}


/* v4.2 — Itemised grocery expenses */
.expense-grocery-items{display:grid;gap:12px;padding:14px;border:1px solid rgba(223,228,224,.085);border-radius:20px;background:linear-gradient(150deg,rgba(28,32,35,.92),rgba(15,18,20,.94))}
.expense-grocery-items[hidden]{display:none!important}
.expense-grocery-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.expense-grocery-head>div{display:grid;gap:3px;min-width:0}
.expense-grocery-head strong{color:#e9e8e3;font-size:14px;font-weight:760;letter-spacing:-.02em}
.expense-grocery-head span{color:#858b90;font-size:11px;font-weight:650}
.expense-grocery-optional{flex:0 0 auto;padding:6px 8px;border-radius:999px;background:rgba(120,223,146,.09);color:#8cda9f!important;font-size:10px!important;font-weight:760!important}
.expense-grocery-list{display:grid;gap:10px}
.expense-grocery-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,.42fr) 36px;align-items:end;gap:8px;min-width:0}
.expense-grocery-line .field{min-width:0}
.expense-grocery-line .field label{margin-bottom:6px;font-size:11px}
.expense-grocery-line .field label small{color:#666c71;font:inherit;font-weight:600}
.expense-grocery-line input{min-height:46px;padding:11px 12px;border-radius:14px}
.expense-grocery-price-input{position:relative;display:flex;align-items:center;min-width:0}
.expense-grocery-price-input>span{position:absolute;left:12px;z-index:1;color:#7f858a;font-size:14px;font-weight:760;pointer-events:none}
.expense-grocery-price-input input{padding-left:28px}
.expense-grocery-remove{width:36px;height:46px;display:grid;place-items:center;border-radius:13px;background:rgba(255,255,255,.045);color:#7d8388;font-size:22px;line-height:1;transition:background .15s ease,color .15s ease,transform .12s ease}
.expense-grocery-remove:active{transform:scale(.96);background:rgba(229,107,115,.12);color:#e7949a}
.expense-grocery-add{min-height:42px;border:1px dashed rgba(120,223,146,.22);border-radius:14px;background:rgba(120,223,146,.055);color:#8bdda0;font-size:12px;font-weight:760}
.expense-grocery-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid rgba(223,228,224,.07);font-size:11px;font-weight:680}
.expense-grocery-summary span{color:#7f858b}
.expense-grocery-summary strong{color:#a9afb3;text-align:right}
.expense-grocery-items[data-balance-state="match"] .expense-grocery-summary strong{color:#7fe097}
.expense-grocery-items[data-balance-state="partial"] .expense-grocery-summary strong{color:#c8b77c}
.expense-grocery-items[data-balance-state="over"] .expense-grocery-summary strong{color:#e18d94}
.transaction-grocery-items{display:grid;gap:0;overflow:hidden;border:1px solid rgba(223,228,224,.085);border-radius:20px;background:rgba(255,255,255,.018)}
.transaction-grocery-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-bottom:1px solid rgba(223,228,224,.07)}
.transaction-grocery-head strong{color:#e6e5e0;font-size:13px;font-weight:740}
.transaction-grocery-head span{color:#777d82;font-size:11px;font-weight:680}
.transaction-grocery-list{display:grid}
.transaction-grocery-row{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 15px;border-bottom:1px solid rgba(223,228,224,.06)}
.transaction-grocery-row span{min-width:0;color:#b8bcbf;font-size:13px;font-weight:620;overflow-wrap:anywhere}
.transaction-grocery-row strong{flex:0 0 auto;color:#e6e5e0;font-size:13px;font-weight:720;font-variant-numeric:tabular-nums}
.transaction-grocery-row strong.muted{color:#686e73;font-weight:620}
.transaction-grocery-subtotal{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 15px;background:rgba(120,223,146,.045)}
.transaction-grocery-subtotal span{color:#858b90;font-size:11px;font-weight:650}
.transaction-grocery-subtotal strong{color:#8cdda0;font-size:12px;font-weight:760;font-variant-numeric:tabular-nums}
@media (max-width:370px){.expense-grocery-line{grid-template-columns:minmax(0,1fr) 88px 34px;gap:6px}.expense-grocery-items{padding:12px}.expense-grocery-line input{padding-left:10px;padding-right:10px}.expense-grocery-price-input input{padding-left:25px}.expense-grocery-price-input>span{left:10px}.expense-grocery-remove{width:34px}}


/* v4.2.1 — Grocery entry and iPhone keyboard comfort */
.modal input,.modal textarea,.modal select{scroll-margin-top:18px;scroll-margin-bottom:150px}
.modal-body:focus-within{padding-bottom:max(96px,var(--sheet-bottom-comfort))}
.edit-expense-scroll:focus-within{padding-bottom:108px}
.expense-grocery-entry{display:grid;gap:10px;min-width:0}
.expense-grocery-entry[hidden]{display:none!important}
.expense-grocery-toggle{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 15px;border:1px solid rgba(223,228,224,.085);border-radius:17px;background:rgba(255,255,255,.028);color:#d9ddd9;font-size:13px;font-weight:760;text-align:left}
.expense-grocery-toggle .app-icon{width:18px;height:18px;color:#777e83;transition:transform .16s ease,color .16s ease}
.expense-grocery-toggle[aria-expanded="true"]{border-color:rgba(120,223,146,.15);background:rgba(120,223,146,.045);color:#95dfa7}
.expense-grocery-toggle[aria-expanded="true"] .app-icon{color:#8ad99e;transform:rotate(90deg)}
.expense-grocery-items{gap:11px;padding:13px}
.expense-grocery-balance{margin-top:-2px;color:#8b9196;font-size:11px;font-weight:680;text-align:right}
.expense-grocery-items[data-balance-state="match"] .expense-grocery-balance{color:#7fe097}
.expense-grocery-items[data-balance-state="partial"] .expense-grocery-balance{color:#c8b77c}
.expense-grocery-items[data-balance-state="over"] .expense-grocery-balance{color:#e18d94}
.expense-grocery-summary{padding-top:9px}
.expense-grocery-summary strong{color:#e1e4e1;font-variant-numeric:tabular-nums}
@media (max-height:620px){.modal-body,.edit-expense-scroll{scroll-padding-bottom:190px}.expense-grocery-items{padding:11px}}

/* v4.2.2 — Itemised groceries use an automatic transaction description. */


/* v4.3 — Grocery checklist and highlighted budget balance */
.home-budget-focus-section{margin-top:12px}
.home-budget-focus{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(112px,.75fr);overflow:hidden;border:1px solid rgba(126,225,151,.16);border-radius:24px;background:linear-gradient(145deg,rgba(28,41,32,.98),rgba(15,19,17,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 18px 42px rgba(0,0,0,.18)}
.home-budget-focus-main,.home-budget-focus-side{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:18px 17px}
.home-budget-focus-side{border-left:1px solid rgba(223,228,224,.075)}
.home-budget-focus span{color:#8f9992;font-size:10px;font-weight:720;text-transform:uppercase;letter-spacing:.06em}
.home-budget-focus strong{margin-top:7px;color:#91e6a5;font-size:clamp(28px,8.5vw,38px);line-height:1;font-weight:820;letter-spacing:-.06em;font-variant-numeric:tabular-nums;white-space:nowrap}
.home-budget-focus-side strong{color:#ebeae5;font-size:clamp(25px,7.5vw,32px)}
.home-budget-focus small{margin-top:7px;color:#748078;font-size:10px;font-weight:640;white-space:nowrap}
.home-overview-section{margin-top:24px}
.grocery-quick-add{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:9px;margin-bottom:10px}
.grocery-quick-add input{min-width:0;height:48px;padding:0 15px;border-radius:17px;background:#11151a}
.grocery-quick-add button{width:48px;height:48px;display:grid;place-items:center;border-radius:17px;color:#07110b;background:linear-gradient(145deg,#8ae5a0,#60ca7d);box-shadow:0 9px 22px rgba(72,183,103,.17)}
.grocery-quick-add button .app-icon{width:21px;height:21px;stroke-width:2.2}
.grocery-plan-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 14px}
.grocery-log-run,.grocery-clear-bought{min-height:39px;padding:0 13px;border-radius:14px;font-size:11px;font-weight:760}
.grocery-log-run{flex:1;background:rgba(120,223,146,.09);color:#98dfa9;border:1px solid rgba(120,223,146,.13)}
.grocery-log-run:disabled{opacity:.42}
.grocery-clear-bought{background:rgba(255,255,255,.035);color:#92989d;border:1px solid rgba(255,255,255,.055)}
.grocery-plan-groups{display:grid;gap:17px}
.grocery-plan-group{display:grid;gap:7px}
.grocery-plan-group-head{display:flex;align-items:center;justify-content:space-between;padding:0 5px;color:#838b92;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.06em}
.grocery-plan-group-head small{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:rgba(255,255,255,.045);color:#777f86;font-size:10px}
.grocery-plan-row{display:grid;grid-template-columns:45px minmax(0,1fr);align-items:stretch;border-bottom:1px solid rgba(223,228,224,.07)}
.grocery-plan-row:last-child{border-bottom:0}
.grocery-plan-row.complete{opacity:.63}
.grocery-check-button{width:45px;min-height:67px;display:grid;place-items:center;background:transparent;color:#07110b}
.grocery-check-button::before{content:'';width:22px;height:22px;border:1.5px solid #596269;border-radius:50%;background:#171b1f}
.grocery-check-button.complete::before{display:none}
.grocery-check-button.complete .app-icon{width:15px;height:15px;stroke-width:2.5}
.grocery-check-button.complete{position:relative}
.grocery-check-button.complete::after{content:'';position:absolute;width:24px;height:24px;border-radius:50%;background:#7bdd98;z-index:-1}
.grocery-plan-main{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:10px;padding:12px 13px 12px 0;background:transparent;text-align:left}
.grocery-plan-main:active{background:rgba(255,255,255,.025)}
.grocery-plan-main .plan-row-copy strong{white-space:normal;overflow-wrap:anywhere}
.grocery-plan-row.complete .plan-row-copy strong{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:#657068}
.grocery-list-empty{min-height:144px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px;text-align:center;border:1px solid rgba(223,228,224,.085);border-radius:23px;background:linear-gradient(150deg,#171a1d,#111416)}
.grocery-list-empty strong{color:#dfe3e6;font-size:14px}
.grocery-list-empty span{margin-top:7px;color:#717981;font-size:11px}
.grocery-detail-hero{align-items:flex-start}
.grocery-detail-hero strong{font-size:24px;white-space:normal;text-align:right;overflow-wrap:anywhere}
@media(max-width:370px){.home-budget-focus{grid-template-columns:minmax(0,1.35fr) minmax(100px,.65fr)}.home-budget-focus-main,.home-budget-focus-side{padding:16px 13px}.home-budget-focus strong{font-size:27px}.home-budget-focus-side strong{font-size:25px}.grocery-quick-add{grid-template-columns:minmax(0,1fr) 46px}.grocery-quick-add button{width:46px}}


/* v4.4 — Full-screen Grocery Run Mode */
.grocery-quantity-stepper{height:50px;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;overflow:hidden;border:1px solid rgba(223,228,224,.09);border-radius:17px;background:#11151a}
.grocery-quantity-stepper button{background:rgba(255,255,255,.025);color:#9ce0ab;font-size:22px;font-weight:520}
.grocery-quantity-stepper input{height:48px;padding:0;border:0;border-left:1px solid rgba(223,228,224,.07);border-right:1px solid rgba(223,228,224,.07);border-radius:0;background:transparent;text-align:center;font-variant-numeric:tabular-nums}
.grocery-run-subpage{position:fixed;inset:0;z-index:68;display:none;flex-direction:column;width:100%;height:var(--spendly-visual-height,100dvh);top:var(--spendly-visual-top,0);overflow:hidden;color:var(--text);background:#080a0c}
.grocery-run-subpage.show{display:flex;animation:groceryRunIn .25s cubic-bezier(.2,.75,.2,1) both}
@keyframes groceryRunIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.grocery-run-open{overflow:hidden;overscroll-behavior:none}
body.grocery-run-open .nav{display:none}
.grocery-run-header{flex:0 0 auto;min-height:calc(70px + env(safe-area-inset-top));display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:end;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 16px 11px;border-bottom:1px solid rgba(223,228,224,.07);background:rgba(8,10,12,.975);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.grocery-run-back{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;background:#15191c;color:#c3c7c4}
.grocery-run-back .app-icon{width:20px;height:20px}
.grocery-run-header>div:nth-child(2){min-width:0;display:flex;flex-direction:column;justify-content:center;padding-bottom:2px}
.grocery-run-header>div:nth-child(2) span{color:#6f777d;font-size:9px;font-weight:760;text-transform:uppercase;letter-spacing:.09em}
.grocery-run-header>div:nth-child(2) strong{margin-top:2px;color:#efeee9;font-size:18px;font-weight:790;letter-spacing:-.03em}
.grocery-run-header-badge{align-self:center;margin-top:env(safe-area-inset-top);padding:7px 10px;border:1px solid rgba(120,223,146,.13);border-radius:999px;background:rgba(120,223,146,.08);color:#8fe2a2;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.06em}
.grocery-run-body{flex:1 1 auto;min-height:0;width:min(100%,520px);margin:0 auto;padding:14px 14px calc(18px + env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;scroll-padding-bottom:150px}
.grocery-run-body::-webkit-scrollbar{display:none}
.grocery-run-hero{display:grid;grid-template-columns:minmax(0,1fr) 74px;align-items:center;gap:14px;padding:19px;border:1px solid rgba(120,223,146,.13);border-radius:25px;background:linear-gradient(145deg,#18231c,#101412);box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 18px 42px rgba(0,0,0,.2)}
.grocery-run-hero>div:first-child{display:flex;flex-direction:column}.grocery-run-hero span{color:#80cb91;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.07em}.grocery-run-hero strong{margin-top:6px;color:#f0efe9;font-size:29px;line-height:1;font-weight:820;letter-spacing:-.055em}.grocery-run-hero small{margin-top:8px;color:#7d8780;font-size:11px;font-weight:650}
.grocery-run-progress-ring{width:68px;height:68px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#7bdd98 var(--run-progress),rgba(255,255,255,.055) 0);position:relative}.grocery-run-progress-ring::after{content:'';position:absolute;inset:6px;border-radius:50%;background:#121814}.grocery-run-progress-ring span{position:relative;z-index:1;color:#dce4dd;font-size:12px;font-weight:780;letter-spacing:0}
.grocery-run-store-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:12px;padding:14px;border:1px solid rgba(223,228,224,.075);border-radius:21px;background:#121518}.grocery-run-store-card label{min-width:0;display:grid;gap:7px}.grocery-run-store-card label>span{color:#7f878d;font-size:10px;font-weight:700}.grocery-run-store-card input{height:43px;padding:0 12px;border-radius:14px;background:#0d1012}.grocery-run-connectivity{display:flex;align-items:center;gap:6px;padding-bottom:12px;color:#777f84;font-size:9px;font-weight:680;white-space:nowrap}.grocery-run-status-dot{width:7px;height:7px;border-radius:50%;background:#78df92;box-shadow:0 0 0 4px rgba(120,223,146,.08)}.grocery-run-connectivity.offline .grocery-run-status-dot{background:#e6ad65;box-shadow:0 0 0 4px rgba(230,173,101,.08)}
.grocery-run-groups{display:grid;gap:18px;margin-top:18px}.grocery-run-group{display:grid;gap:8px}.grocery-run-group-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px;color:#81898f;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.065em}.grocery-run-group-head small{min-width:21px;height:21px;display:grid;place-items:center;border-radius:999px;background:rgba(255,255,255,.045);font-size:10px}
.grocery-run-list{display:grid;gap:9px}.grocery-run-item{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;padding:13px 12px;border:1px solid rgba(223,228,224,.075);border-radius:21px;background:#121518;transition:transform .18s ease,border-color .18s ease,background .18s ease}.grocery-run-item.in-cart{border-color:rgba(120,223,146,.15);background:linear-gradient(145deg,rgba(120,223,146,.065),#121618);animation:groceryCartPop .24s ease both}.grocery-run-item.not-found{opacity:.55}@keyframes groceryCartPop{0%{transform:scale(.975)}65%{transform:scale(1.012)}100%{transform:scale(1)}}
.grocery-run-check{width:34px;height:34px;margin-top:2px;display:grid;place-items:center;border:1.5px solid #4f585f;border-radius:50%;background:#171b1f;color:#07110b}.grocery-run-item.in-cart .grocery-run-check{border-color:#7bdd98;background:#7bdd98}.grocery-run-check .app-icon{width:15px;height:15px;stroke-width:2.6}.grocery-run-item-main{min-width:0}.grocery-run-item-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.grocery-run-item-title strong{min-width:0;color:#e8e7e2;font-size:14px;font-weight:740;overflow-wrap:anywhere}.grocery-run-item-title span{flex:0 0 auto;padding:5px 7px;border-radius:9px;background:rgba(255,255,255,.045);color:#969da2;font-size:10px;font-weight:720}.grocery-run-item-main>small{display:block;margin-top:5px;color:#747d82;font-size:10px}
.grocery-run-item-controls{display:grid;grid-template-columns:auto minmax(82px,1fr) auto;align-items:center;gap:8px;margin-top:11px}.grocery-run-stepper{height:34px;display:grid;grid-template-columns:30px 28px 30px;overflow:hidden;border:1px solid rgba(223,228,224,.075);border-radius:11px}.grocery-run-stepper button{background:#181c20;color:#9ce0ab;font-size:16px}.grocery-run-stepper span{display:grid;place-items:center;border-left:1px solid rgba(223,228,224,.06);border-right:1px solid rgba(223,228,224,.06);color:#cfd2cf;font-size:11px;font-weight:760}.grocery-run-price{height:34px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;padding:0 8px;border:1px solid rgba(223,228,224,.075);border-radius:11px;background:#0f1214}.grocery-run-price span{color:#737b80;font-size:9px}.grocery-run-price input{min-width:0;height:31px;padding:0;border:0;background:transparent;text-align:right;font-size:12px}.grocery-run-line-total{color:#cdd1ce;font-size:10px;font-weight:720;white-space:nowrap}.grocery-run-not-found{grid-column:2;justify-self:start;margin-top:-1px;padding:0;background:transparent;color:#737b80;font-size:10px;font-weight:680}.grocery-run-not-found.active{color:#d8aa72}
.grocery-run-shop-footer{position:sticky;bottom:-1px;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:20px -2px -2px;padding:12px;border:1px solid rgba(223,228,224,.08);border-radius:21px;background:rgba(17,20,23,.96);box-shadow:0 -14px 32px rgba(0,0,0,.22);backdrop-filter:blur(18px)}.grocery-run-shop-footer>div{display:flex;flex-direction:column}.grocery-run-shop-footer span{color:#777f84;font-size:9px;font-weight:680}.grocery-run-shop-footer strong{margin-top:3px;color:#ebeae5;font-size:18px;font-weight:790}.grocery-run-shop-footer button{min-height:47px;padding:0 16px;border-radius:15px;background:linear-gradient(145deg,#8ae5a0,#60ca7d);color:#07110b;font-size:12px;font-weight:800}.grocery-run-shop-footer button:disabled{opacity:.35}
.grocery-checkout-intro{display:flex;flex-direction:column;padding:19px;border:1px solid rgba(120,223,146,.13);border-radius:24px;background:linear-gradient(145deg,#18231c,#101412)}.grocery-checkout-intro span{color:#80cb91;font-size:10px;font-weight:760;text-transform:uppercase;letter-spacing:.07em}.grocery-checkout-intro strong{margin-top:7px;color:#f0efe9;font-size:27px;font-weight:810;letter-spacing:-.05em}.grocery-checkout-intro small{margin-top:7px;color:#7f8981;font-size:11px}.grocery-checkout-card{display:grid;gap:12px;margin-top:12px;padding:15px;border:1px solid rgba(223,228,224,.075);border-radius:22px;background:#121518}.grocery-checkout-amount{height:54px;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;border:1px solid rgba(120,223,146,.15);border-radius:17px;background:#0d1110}.grocery-checkout-amount>span{padding-left:13px;color:#7bdd98;font-size:19px}.grocery-checkout-amount input{height:52px;padding:0 13px 0 0;border:0;background:transparent;color:#eef1ed;font-size:26px;font-weight:790;letter-spacing:-.04em}
.grocery-checkout-summary{display:grid;gap:0;margin-top:12px;overflow:hidden;border:1px solid rgba(223,228,224,.075);border-radius:21px;background:#121518}.grocery-checkout-summary>div{min-height:47px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-bottom:1px solid rgba(223,228,224,.06)}.grocery-checkout-summary>div:last-child{border-bottom:0}.grocery-checkout-summary span{color:#81898f;font-size:11px}.grocery-checkout-summary strong{color:#e2e4e1;font-size:12px}.grocery-checkout-summary .over strong{color:#e18d94}.grocery-checkout-items{display:grid;margin-top:12px;overflow:hidden;border:1px solid rgba(223,228,224,.065);border-radius:19px;background:#101316}.grocery-checkout-items>div{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 13px;border-bottom:1px solid rgba(223,228,224,.055)}.grocery-checkout-items>div:last-child{border-bottom:0}.grocery-checkout-items span{color:#a9afb2;font-size:11px}.grocery-checkout-items strong{color:#858d92;font-size:11px}.grocery-checkout-footer{position:sticky;bottom:-1px;z-index:3;display:grid;grid-template-columns:.72fr 1.28fr;gap:9px;margin:18px -2px -2px;padding:11px;border:1px solid rgba(223,228,224,.08);border-radius:20px;background:rgba(17,20,23,.96);box-shadow:0 -14px 32px rgba(0,0,0,.22);backdrop-filter:blur(18px)}.grocery-checkout-footer button{min-height:49px;border-radius:15px;font-size:12px;font-weight:790}.grocery-checkout-footer .secondary{background:#202428;color:#b7bdba}.grocery-checkout-footer .primary{background:linear-gradient(145deg,#8ae5a0,#60ca7d);color:#07110b}
.grocery-run-complete{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.grocery-run-complete-check{width:86px;height:86px;display:grid;place-items:center;border-radius:50%;background:#7bdd98;color:#07110b;box-shadow:0 18px 44px rgba(72,183,103,.26);animation:groceryComplete .45s cubic-bezier(.2,.9,.25,1.25) both}.grocery-run-complete-check .app-icon{width:38px;height:38px;stroke-width:2.4}@keyframes groceryComplete{from{opacity:0;transform:scale(.55) rotate(-10deg)}to{opacity:1;transform:none}}.grocery-run-complete>span{margin-top:20px;color:#8ddda0;font-size:11px;font-weight:760;text-transform:uppercase;letter-spacing:.08em}.grocery-run-complete>strong{margin-top:7px;color:#f0efe9;font-size:42px;font-weight:830;letter-spacing:-.06em}.grocery-run-complete>small{margin-top:8px;color:#7f878c;font-size:12px}.grocery-run-empty{min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.grocery-run-empty strong{color:#e5e5df;font-size:18px}.grocery-run-empty span{margin-top:7px;color:#747c82;font-size:11px}
@media(max-width:370px){.grocery-run-body{padding-left:11px;padding-right:11px}.grocery-run-hero{grid-template-columns:minmax(0,1fr) 62px;padding:16px}.grocery-run-progress-ring{width:60px;height:60px}.grocery-run-item{padding-left:10px;padding-right:10px}.grocery-run-item-controls{grid-template-columns:auto minmax(72px,1fr);}.grocery-run-line-total{grid-column:2;text-align:right}.grocery-run-store-card{grid-template-columns:1fr}.grocery-run-connectivity{padding:0}.grocery-run-shop-footer{grid-template-columns:1fr auto}.grocery-run-shop-footer button{padding:0 12px}}
@media(prefers-reduced-motion:reduce){.grocery-run-subpage.show,.grocery-run-item.in-cart,.grocery-run-complete-check{animation:none!important}}

.grocery-detail-quantity-row{align-items:center}.grocery-detail-stepper{display:grid;grid-template-columns:34px auto 34px;align-items:center;gap:6px}.grocery-detail-stepper button{width:34px;height:34px;border-radius:11px;background:#202428;color:#9ce0ab;font-size:17px}.grocery-detail-stepper strong{min-width:52px;text-align:center}

.grocery-detailed-add{min-height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid rgba(120,223,146,.12);border-radius:12px;background:rgba(120,223,146,.065);color:#91dca2;font-size:10px;font-weight:740}.grocery-detailed-add .app-icon{width:14px;height:14px;stroke-width:2.1}
.grocery-run-store-field{min-width:0;display:grid;gap:8px}.grocery-run-store-field label{display:grid;gap:7px}.grocery-store-suggestions{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.grocery-store-suggestions::-webkit-scrollbar{display:none}.grocery-store-suggestions button{flex:0 0 auto;min-height:27px;padding:0 9px;border:1px solid rgba(223,228,224,.07);border-radius:999px;background:rgba(255,255,255,.035);color:#8f979c;font-size:9px;font-weight:680}


/* v4.5 — Groceries Hub */
.grocery-hub-page { display: grid; gap: 18px; }
.grocery-hub-page.active { display: grid; }
.grocery-hub-hero {
  margin-top: 2px;
  padding: 22px;
  border-radius: 30px;
  border: 1px solid rgba(126, 224, 153, .22);
  background:
    radial-gradient(circle at 96% 0%, rgba(111, 221, 145, .17), transparent 34%),
    linear-gradient(150deg, rgba(25, 34, 31, .98), rgba(13, 17, 19, .98));
  box-shadow: 0 24px 60px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255,255,255,.04);
  overflow: hidden;
}
.grocery-hub-hero-top { display:flex; align-items:center; gap:12px; }
.grocery-hub-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:17px; background:rgba(124,226,153,.13); color:var(--green); }
.grocery-hub-icon .app-icon { width:25px; height:25px; }
.grocery-hub-kicker { min-width:0; flex:1; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.grocery-hub-kicker > span { color:var(--muted); font-size:12px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.grocery-hub-kicker > strong { padding:7px 10px; border-radius:999px; color:#a8edb9; background:rgba(111,221,145,.12); font-size:11px; white-space:nowrap; }
.grocery-hub-copy { margin-top:21px; }
.grocery-hub-copy h2 { margin:0; font-size:29px; line-height:1.02; letter-spacing:-.06em; }
.grocery-hub-copy p { margin:9px 0 0; color:var(--muted); line-height:1.45; font-size:14px; font-weight:650; }
.grocery-hub-progress { height:7px; margin-top:20px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.07); }
.grocery-hub-progress span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#80e49b,#54c876); transition:width .35s ease; }
.grocery-hub-progress-copy { margin-top:9px; display:flex; justify-content:space-between; color:var(--muted); font-size:12px; font-weight:780; }
.grocery-hub-progress-copy strong { color:var(--text); }
.grocery-hub-start { width:100%; min-height:68px; margin-top:18px; padding:12px 16px; display:flex; align-items:center; gap:13px; text-align:left; border-radius:21px; background:linear-gradient(135deg,#83e49c,#5ccc79); color:#07100a; box-shadow:0 18px 34px rgba(74,196,109,.20); }
.grocery-hub-start:disabled { opacity:.42; box-shadow:none; }
.grocery-hub-start-icon { width:39px; height:39px; display:grid; place-items:center; border-radius:14px; background:rgba(2,15,7,.12); }
.grocery-hub-start-icon .app-icon { width:22px; height:22px; }
.grocery-hub-start > span:last-child { display:grid; gap:3px; }
.grocery-hub-start strong { font-size:17px; letter-spacing:-.025em; }
.grocery-hub-start small { color:rgba(4,22,10,.65); font-size:12px; font-weight:800; }
.grocery-hub-list-card, .grocery-recent-section, .grocery-other-plans {
  border:1px solid var(--line); border-radius:28px; background:linear-gradient(155deg,rgba(24,28,31,.96),rgba(14,17,19,.96)); box-shadow:var(--soft-shadow);
}
.grocery-hub-list-card { padding:18px; }
.grocery-hub-section-head { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.grocery-hub-section-head h3 { margin:0; font-size:22px; letter-spacing:-.045em; }
.grocery-hub-section-head p { margin:5px 0 0; color:var(--muted); font-size:13px; font-weight:750; }
.grocery-hub-section-head.compact { padding:18px 18px 12px; }
.grocery-hub-detail-add { min-height:39px; padding:0 12px; display:flex; align-items:center; gap:6px; border:1px solid rgba(111,221,145,.18); border-radius:14px; background:rgba(111,221,145,.08); color:#99e9ae; font-size:12px; font-weight:900; white-space:nowrap; }
.grocery-hub-detail-add .app-icon { width:17px; height:17px; }
.grocery-hub-quick-add { margin-top:16px; }
.grocery-hub-toolbar { justify-content:flex-end; min-height:0; margin:10px 0 0; }
.grocery-hub-list { margin-top:8px; }
.grocery-hub-item-row { width:100%; align-items:center; background:linear-gradient(150deg,rgba(26,31,34,.95),rgba(17,20,22,.95)); }
.grocery-hub-item-row .grocery-plan-main { pointer-events:none; }
.grocery-quantity-badge { flex:0 0 auto; min-width:48px; min-height:48px; padding:0 10px; display:grid; place-items:center; border-radius:16px; background:rgba(111,221,145,.10); color:#9de8b0; font-size:13px; font-weight:950; }
.grocery-quantity-badge.complete { background:rgba(111,221,145,.14); }
.grocery-quantity-badge .app-icon { width:20px; height:20px; }
.grocery-recent-section { overflow:hidden; }
.grocery-recent-runs { display:grid; }
.grocery-recent-row { width:100%; min-height:72px; padding:13px 17px; display:grid; grid-template-columns:42px minmax(0,1fr) auto 18px; align-items:center; gap:11px; border-top:1px solid var(--line); background:transparent; text-align:left; }
.grocery-recent-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; background:rgba(111,221,145,.09); color:#91e5a8; }
.grocery-recent-icon .app-icon { width:21px; height:21px; }
.grocery-recent-copy { min-width:0; display:grid; gap:4px; }
.grocery-recent-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:15px; }
.grocery-recent-copy small { color:var(--muted); font-size:12px; font-weight:740; }
.grocery-recent-amount { font-size:14px; font-weight:900; }
.grocery-recent-chevron { color:var(--muted); }
.grocery-recent-chevron .app-icon { width:18px; height:18px; }
.grocery-recent-empty { padding:25px 18px; display:grid; gap:6px; text-align:center; border-top:1px solid var(--line); }
.grocery-recent-empty span { color:var(--muted); font-size:13px; }
.grocery-other-plans { overflow:hidden; }
.grocery-other-plans > summary { min-height:76px; padding:15px 18px; display:grid; grid-template-columns:minmax(0,1fr) auto 22px; align-items:center; gap:12px; list-style:none; cursor:pointer; }
.grocery-other-plans > summary::-webkit-details-marker { display:none; }
.grocery-other-plans > summary span:first-child { display:grid; gap:4px; }
.grocery-other-plans > summary strong { font-size:16px; }
.grocery-other-plans > summary small { color:var(--muted); font-size:12px; font-weight:720; }
.grocery-other-count { min-width:32px; height:32px; display:grid; place-items:center; border-radius:999px; background:rgba(255,255,255,.06); color:var(--muted); font-weight:900; }
.grocery-other-plans > summary > .app-icon { width:20px; height:20px; color:var(--muted); transition:transform .2s ease; }
.grocery-other-plans[open] > summary > .app-icon { transform:rotate(180deg); }
.grocery-other-plans-body { padding:0 14px 14px; display:grid; gap:14px; }
.grocery-other-panel { padding:15px; border:1px solid var(--line); border-radius:22px; background:rgba(8,11,13,.55); }
.grocery-run-quick-add { margin:14px 0 4px; display:grid; grid-template-columns:minmax(0,1fr) 50px; gap:10px; }
.grocery-run-quick-add input { min-height:50px; border-radius:17px; background:rgba(255,255,255,.055); }
.grocery-run-quick-add button { border-radius:17px; background:rgba(111,221,145,.13); color:#8de5a6; }
.grocery-run-quick-add .app-icon { width:22px; height:22px; }
.grocery-run-item { animation:groceryItemArrive .22s ease both; }
@keyframes groceryItemArrive { from { opacity:.4; transform:translateY(5px) scale(.992); } to { opacity:1; transform:none; } }
@media (max-width:360px) {
  .grocery-hub-hero { padding:18px; }
  .grocery-hub-copy h2 { font-size:26px; }
  .grocery-hub-list-card { padding:15px; }
  .grocery-hub-detail-add span { display:none; }
  .grocery-hub-detail-add { width:40px; padding:0; justify-content:center; }
  .grocery-recent-row { grid-template-columns:38px minmax(0,1fr) auto 14px; padding-left:14px; padding-right:14px; }
}


/* v4.5.2 compatibility — iPhone Grocery Mode polish */
.grocery-hub-page { display: none; gap: 18px; }
.grocery-hub-page.active { display: grid; }
#groceryHubBadge,
#groceryHubSubtitle,
#groceryHubStartMeta { display: none !important; }
.grocery-hub-kicker { justify-content: flex-start; }
.grocery-hub-copy { margin-top: 17px; }
.grocery-hub-start > span:last-child { display: block; }
.grocery-run-header { grid-template-columns: 42px minmax(0,1fr) 42px; align-items: end; }
.grocery-run-header > div:nth-child(2) { padding-bottom: 8px; }
.grocery-run-header > div:nth-child(2) strong { margin-top: 0; }
.grocery-run-store-card { grid-template-columns: minmax(0,1fr); align-items: stretch; }
.grocery-run-connectivity { display: none !important; }
.grocery-run-subpage input,
.grocery-run-subpage textarea,
.grocery-run-subpage select { font-size: 16px; }
.grocery-run-price input { font-size: 16px !important; line-height: 1; }
.grocery-run-subpage.keyboard-active .grocery-run-shop-footer,
.grocery-run-subpage.keyboard-active .grocery-checkout-footer { display: none; }
.grocery-run-subpage.keyboard-active .grocery-run-body { scroll-padding-bottom: 28px; }
.grocery-run-subpage.keyboard-active .grocery-run-header { min-height: calc(62px + env(safe-area-inset-top)); }
@media (max-width: 370px) {
  .grocery-run-item-controls { grid-template-columns: auto minmax(84px,1fr); }
  .grocery-run-price input { font-size: 16px !important; }
}


/* v4.5.3 — Grocery Mode design upgrade */
:root { --nav-h: 78px; }
.nav { padding: 7px 12px calc(7px + env(safe-area-inset-bottom)); }
.nav-inner { height: 64px; padding: 4px 5px; border-radius: 24px; }
.nav-btn { height: 56px; grid-template-rows: 32px auto; gap: 1px; border-radius: 17px; font-size: 9px; }
.nav-btn .ico { width: 32px; height: 32px; }
.nav-btn .ico .app-icon { width: 20px; height: 20px; }
.nav-add-btn { transform: translateY(-4px); }
.nav-add-btn .nav-add-orb { width: 46px; height: 46px; }
.nav-add-orb .app-icon { width: 23px; height: 23px; }
.nav-btn.active .ico { background: rgba(120,223,146,.11); }

.grocery-hub-hero { padding: 19px; border-radius: 26px; background: radial-gradient(circle at 88% 12%, rgba(120,223,146,.10), transparent 32%), linear-gradient(145deg,#111a15,#0c100e); }
.grocery-hub-hero-top { align-items:center; }
.grocery-hub-icon { width: 46px; height: 46px; border-radius: 15px; }
.grocery-hub-copy { margin-top: 15px; }
.grocery-hub-copy h2 { font-size: 29px; }
.grocery-hub-progress { height: 7px; margin-top: 17px; }
.grocery-hub-start { min-height: 59px; border-radius: 18px; }
.grocery-hub-list-card, .grocery-recent-section, .grocery-other-plans { border-radius: 24px; }
.grocery-purchased-section[hidden] { display:none !important; }
.grocery-clear-bought.compact { min-height: 32px; padding:0 11px; border:1px solid rgba(120,223,146,.12); border-radius:999px; background:rgba(120,223,146,.07); color:#8de5a6; }
.grocery-recent-row.purchased { grid-template-columns:42px minmax(0,1fr) 18px; }
.grocery-recent-icon.purchased { border-radius:50%; background:rgba(120,223,146,.18); }

body.grocery-run-open .nav { display:block; z-index:72; }
body.grocery-run-open .app-shell { visibility:hidden; }
.grocery-run-subpage { z-index:68; padding-bottom:calc(72px + env(safe-area-inset-bottom)); background:radial-gradient(circle at 50% -18%,rgba(120,223,146,.045),transparent 35%),#080a0c; }
.grocery-run-header { min-height:calc(68px + env(safe-area-inset-top)); grid-template-columns:42px minmax(0,1fr) 42px; align-items:end; padding:calc(9px + env(safe-area-inset-top)) 16px 10px; border-bottom-color:rgba(223,228,224,.055); background:rgba(8,10,12,.91); }
.grocery-run-header > div:nth-child(2) { align-items:center; padding-bottom:8px; }
.grocery-run-header > div:nth-child(2) strong { font-size:19px; }
.grocery-run-header-spacer { width:42px; }
.grocery-run-back { width:42px; height:42px; border-radius:15px; background:#14181b; }
.grocery-run-body { padding:16px 15px 124px; gap:14px; }
.grocery-run-hero { grid-template-columns:minmax(0,1fr) 72px; padding:20px; border-radius:25px; background:radial-gradient(circle at 88% 20%,rgba(120,223,146,.10),transparent 36%),linear-gradient(145deg,#121d16,#0d120f); box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 16px 42px rgba(0,0,0,.20); }
.grocery-run-hero span { color:#78df92; font-size:10px; letter-spacing:.12em; }
.grocery-run-hero strong { margin-top:7px; font-size:31px; }
.grocery-run-hero small { margin-top:7px; font-size:12px; }
.grocery-run-progress-ring { width:70px; height:70px; }
.grocery-run-store-card { margin-top:0; padding:15px; border-radius:22px; background:linear-gradient(145deg,#121619,#0f1214); }
.grocery-run-store-field label { gap:8px; }
.grocery-run-store-input-shell { height:48px; display:grid; grid-template-columns:34px minmax(0,1fr) 18px; align-items:center; gap:6px; padding:0 12px; border:1px solid rgba(223,228,224,.08); border-radius:16px; background:#0b0e10; }
.grocery-run-store-input-shell i { width:29px; height:29px; display:grid; place-items:center; border-radius:10px; background:rgba(120,223,146,.09); color:#86df9d; font-style:normal; }
.grocery-run-store-input-shell i .app-icon { width:17px; height:17px; }
.grocery-run-store-input-shell input { height:45px; padding:0; border:0; background:transparent; font-weight:650; }
.grocery-run-store-input-shell b { color:#8f969b; font-size:18px; font-weight:500; }
.grocery-run-quick-add { margin:0; grid-template-columns:minmax(0,1fr) 50px; }
.grocery-run-quick-add input { min-height:52px; border-radius:17px; }
.grocery-run-quick-add button { border-radius:17px; }
.grocery-run-groups { gap:18px; }
.grocery-run-group-head { margin:0 7px 8px; }
.grocery-run-group-head span { letter-spacing:.13em; }
.grocery-run-group-empty { min-height:70px; display:flex; align-items:center; justify-content:center; gap:10px; padding:14px; border:1px dashed rgba(120,223,146,.12); border-radius:18px; background:rgba(120,223,146,.025); color:#737b80; text-align:center; }
.grocery-run-group-empty > span { width:30px; height:30px; display:grid; place-items:center; color:#77817c; }
.grocery-run-group-empty .app-icon { width:20px; height:20px; }
.grocery-run-group-empty small { max-width:190px; font-size:11px; line-height:1.35; }
.grocery-run-list { gap:8px; }
.grocery-run-item { grid-template-columns:38px minmax(0,1fr); gap:10px; padding:13px; border-radius:20px; background:linear-gradient(145deg,#13171a,#0f1214); }
.grocery-run-check { width:34px; height:34px; background:#101417; }
.grocery-run-item-title strong { font-size:15px; }
.grocery-run-item-title span { padding:4px 7px; border-radius:8px; }
.grocery-run-item-controls { grid-template-columns:auto minmax(104px,1fr) auto; gap:8px; margin-top:10px; }
.grocery-run-stepper { height:34px; border-radius:10px; }
.grocery-run-price { height:34px; grid-template-columns:12px minmax(0,1fr); border-radius:10px; }
.grocery-run-price span { font-size:13px; }
.grocery-run-price input { font-size:16px!important; text-align:left; }
.grocery-run-line-total { min-width:0; font-size:10px; }
.grocery-run-not-found { margin-top:4px; font-size:10px; }
.grocery-run-shop-footer { position:fixed; left:50%; bottom:calc(70px + env(safe-area-inset-bottom)); width:min(calc(100% - 30px),490px); transform:translateX(-50%); margin:0; padding:11px 12px; border-radius:20px; background:rgba(18,22,24,.96); box-shadow:0 -16px 38px rgba(0,0,0,.38); }
.grocery-run-shop-footer button { min-height:46px; display:flex; align-items:center; gap:8px; padding:0 16px; border-radius:15px; }
.grocery-run-shop-footer button .app-icon { width:17px; height:17px; }
.grocery-run-subpage.keyboard-active { padding-bottom:0; }
.grocery-run-subpage.keyboard-active + .nav, body.grocery-run-open:has(.grocery-run-subpage.keyboard-active) .nav { display:none; }
.grocery-run-subpage.keyboard-active .grocery-run-shop-footer, .grocery-run-subpage.keyboard-active .grocery-checkout-footer { display:none; }
.grocery-run-subpage.keyboard-active .grocery-run-body { padding-bottom:28px; }

@media(max-width:370px){
  :root { --nav-h:74px; }
  .nav { padding-left:8px; padding-right:8px; }
  .nav-inner { height:61px; }
  .nav-btn { height:53px; font-size:8.5px; }
  .nav-add-btn .nav-add-orb { width:43px; height:43px; }
  .grocery-run-body { padding-left:11px; padding-right:11px; }
  .grocery-run-item-controls { grid-template-columns:auto minmax(92px,1fr); }
  .grocery-run-line-total { grid-column:2; text-align:right; }
  .grocery-run-shop-footer { width:calc(100% - 22px); bottom:calc(66px + env(safe-area-inset-bottom)); }
}

.grocery-checkout-footer { position:fixed; left:50%; bottom:calc(70px + env(safe-area-inset-bottom)); width:min(calc(100% - 30px),490px); transform:translateX(-50%); margin:0; z-index:4; }
.grocery-run-subpage:has(.grocery-checkout-footer) .grocery-run-body { padding-bottom:128px; }
@media(max-width:370px){.grocery-checkout-footer{width:calc(100% - 22px);bottom:calc(66px + env(safe-area-inset-bottom));}}

#clearBoughtGroceriesBtn { display:none!important; }


/* v4.5.5 — Grocery Mode layout polish */
:root { --nav-h: 70px; }
.nav { padding: 5px 10px calc(5px + env(safe-area-inset-bottom)); }
.nav-inner { height: 58px; padding: 3px 5px; border-radius: 22px; }
.nav-btn { height: 50px; grid-template-rows: 28px auto; gap: 1px; border-radius: 16px; font-size: 8.5px; }
.nav-btn .ico { width: 28px; height: 28px; }
.nav-btn .ico .app-icon { width: 18.5px; height: 18.5px; }
.nav-add-btn { transform: translateY(-3px); }
.nav-add-btn .nav-add-orb { width: 42px; height: 42px; }
.nav-add-orb .app-icon { width: 21px; height: 21px; }

.grocery-run-subpage { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
.grocery-run-body {
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 16px 15px 150px;
}
.grocery-run-hero,
.grocery-run-store-card,
.grocery-run-quick-add,
.grocery-run-groups { margin: 0; }
.grocery-run-hero { border-radius: 24px; }
.grocery-run-store-card {
  padding: 14px;
  border-radius: 21px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.018);
}
.grocery-run-store-field label > span { margin-left: 2px; }
.grocery-run-store-input-shell {
  height: 50px;
  grid-template-columns: 34px minmax(0,1fr) 18px;
  padding: 0 13px;
  border-radius: 16px;
}
.grocery-run-store-input-shell input { min-width: 0; height: 48px; }

.grocery-run-quick-add {
  display: grid;
  grid-template-columns: minmax(0,1fr) 44px;
  gap: 0;
  padding: 4px;
  border: 1px solid rgba(223,228,224,.075);
  border-radius: 18px;
  background: linear-gradient(145deg,#121619,#0f1214);
}
.grocery-run-quick-add input {
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  box-shadow: none;
}
.grocery-run-quick-add input:focus { box-shadow: none; background: rgba(255,255,255,.018); }
.grocery-run-quick-add button {
  width: 44px;
  height: 44px;
  align-self: center;
  border-radius: 14px;
  background: rgba(120,223,146,.12);
  color: #8de5a6;
}
.grocery-run-quick-add button .app-icon { width: 20px; height: 20px; }

.grocery-run-groups { gap: 22px; }
.grocery-run-group { gap: 9px; }
.grocery-run-group-head { margin: 0 6px; padding: 0; }
.grocery-run-group-head small { min-width: 22px; height: 22px; }
.grocery-run-item {
  grid-template-columns: 38px minmax(0,1fr);
  gap: 11px;
  padding: 14px;
  border-radius: 21px;
}
.grocery-run-item-title { align-items: center; }
.grocery-run-item-title strong { font-size: 15.5px; line-height: 1.2; }
.grocery-run-item-title span { padding: 4px 8px; }
.grocery-run-item-controls {
  grid-template-columns: auto minmax(118px,1fr);
  align-items: center;
  gap: 9px;
  margin-top: 12px;
}
.grocery-run-stepper {
  width: 98px;
  height: 36px;
  grid-template-columns: 32px 32px 32px;
  border-radius: 11px;
}
.grocery-run-price {
  height: 36px;
  grid-template-columns: 14px minmax(0,1fr);
  gap: 6px;
  padding: 0 10px;
  border-radius: 11px;
  background: #0c0f11;
}
.grocery-run-price span { color: #7b8287; font-size: 14px; }
.grocery-run-price input {
  height: 34px;
  padding: 0;
  text-align: left;
  color: #e8e9e5;
  font-size: 16px !important;
}
.grocery-run-price input::placeholder { color: #697077; opacity: 1; }
.grocery-run-price.empty { border-color: rgba(223,228,224,.06); }
.grocery-run-line-total {
  grid-column: 2;
  justify-self: end;
  min-height: 12px;
  margin-top: -3px;
  color: #9fa6a2;
  font-size: 10px;
}
.grocery-run-line-total:empty { display: none; }
.grocery-run-not-found {
  grid-column: 2;
  justify-self: start;
  margin-top: 8px;
  padding: 5px 8px;
  border-radius: 9px;
  background: rgba(255,255,255,.025);
  color: #737b80;
}
.grocery-run-not-found.active { background: rgba(230,173,101,.08); }

.grocery-run-shop-footer {
  bottom: calc(63px + env(safe-area-inset-bottom));
  width: min(calc(100% - 30px),490px);
  padding: 10px 11px;
  border-radius: 19px;
}
.grocery-run-shop-footer strong { font-size: 17px; }
.grocery-run-shop-footer button { min-height: 44px; padding: 0 15px; border-radius: 14px; }
.grocery-checkout-footer { bottom: calc(63px + env(safe-area-inset-bottom)); }

@media(max-width:370px){
  :root { --nav-h: 68px; }
  .nav { padding-left: 7px; padding-right: 7px; }
  .nav-inner { height: 56px; }
  .nav-btn { height: 48px; font-size: 8px; }
  .nav-add-btn .nav-add-orb { width: 40px; height: 40px; }
  .grocery-run-body { padding-left: 11px; padding-right: 11px; }
  .grocery-run-item-controls { grid-template-columns: 96px minmax(105px,1fr); gap: 7px; }
  .grocery-run-stepper { width: 96px; grid-template-columns: 31px 32px 31px; }
  .grocery-run-shop-footer { width: calc(100% - 22px); bottom: calc(61px + env(safe-area-inset-bottom)); }
  .grocery-checkout-footer { bottom: calc(61px + env(safe-area-inset-bottom)); }
}

/* v4.5.5 — optical alignment polish */
.grocery-run-quick-add button {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
}
.grocery-run-quick-add button .app-icon {
  display: block;
  margin: 0;
  transform: translateX(.75px);
  transform-origin: center;
}

.grocery-run-price.empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding-left: 11px;
  padding-right: 11px;
}
.grocery-run-price.empty span {
  flex: 0 0 auto;
  line-height: 1;
  transform: translateY(-.25px);
}
.grocery-run-price.empty input {
  flex: 0 1 84px;
  width: 84px;
  min-width: 0;
  text-align: center;
}
.grocery-run-price:not(.empty) input {
  text-align: left;
}

.nav-add-orb {
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-add-orb .app-icon {
  display: block;
  margin: 0;
  transform: translateX(.5px);
}

.grocery-run-shop-footer button:disabled {
  opacity: .48;
  color: rgba(7,17,11,.9);
}


/* v4.5.6 — quantity badge and supermarket picker polish */
.grocery-plan-row {
  grid-template-columns: 58px minmax(0,1fr);
  column-gap: 10px;
}
.grocery-quantity-badge {
  width: 58px;
  min-width: 58px;
  min-height: 58px;
  padding: 0 6px;
  align-self: center;
  justify-self: center;
  overflow: hidden;
  white-space: nowrap;
}
.grocery-plan-main { padding-left: 0; }

.grocery-run-store-field { position: relative; }
.grocery-run-store-input-shell {
  grid-template-columns: 34px minmax(0,1fr) 34px;
  gap: 7px;
  padding-right: 8px;
}
.grocery-store-toggle {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 11px;
  background: transparent;
  color: #8f969b;
}
.grocery-store-toggle .app-icon {
  width: 17px;
  height: 17px;
  transform: rotate(90deg);
  transition: transform .18s ease, color .18s ease;
}
.grocery-store-toggle[aria-expanded="true"] .app-icon { transform: rotate(-90deg); color: #8de5a6; }
.grocery-store-toggle:disabled { opacity: .34; }
.grocery-store-dropdown {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 20;
  padding: 9px;
  border: 1px solid rgba(223,228,224,.09);
  border-radius: 16px;
  background: rgba(15,18,20,.985);
  box-shadow: 0 18px 40px rgba(0,0,0,.38);
}
.grocery-store-dropdown[hidden] { display: none; }
.grocery-store-dropdown > span {
  display: block;
  padding: 3px 6px 8px;
  color: #737b80;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.grocery-store-dropdown > div { display: grid; gap: 5px; }
.grocery-store-dropdown button {
  width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.035);
  color: #e4e7e3;
  text-align: left;
  font-size: 13px;
  font-weight: 700;
}
.grocery-store-dropdown button:active { background: rgba(120,223,146,.10); color: #9be8ad; }

@media(max-width:370px){
  .grocery-plan-row { grid-template-columns: 54px minmax(0,1fr); column-gap: 8px; }
  .grocery-quantity-badge { width:54px; min-width:54px; min-height:54px; }
}

/* v4.6 — Grocery List + Store Budget Mode */
.grocery-run-body {
  gap: 13px;
  padding: 15px 15px 148px;
}
.grocery-run-budget-card {
  display: grid;
  gap: 13px;
  padding: 17px;
  border: 1px solid rgba(120,223,146,.15);
  border-radius: 24px;
  background:
    radial-gradient(circle at 90% 10%,rgba(120,223,146,.10),transparent 34%),
    linear-gradient(145deg,#142018,#0e1310);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025),0 16px 40px rgba(0,0,0,.18);
}
.grocery-run-budget-card.over { border-color: rgba(229,157,91,.26); }
.grocery-run-budget-head {
  display: grid;
  grid-template-columns: minmax(0,1fr) 104px;
  align-items: center;
  gap: 14px;
}
.grocery-run-budget-head > div { min-width: 0; display: flex; flex-direction: column; }
.grocery-run-budget-head > div > span {
  color: #7bdd98;
  font-size: 10px;
  font-weight: 780;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.grocery-run-budget-head > div > strong {
  margin-top: 6px;
  color: #f0efe9;
  font-size: 25px;
  line-height: 1.05;
  font-weight: 820;
  letter-spacing: -.045em;
}
.grocery-run-budget-card.over .grocery-run-budget-head > div > strong { color: #e9ad78; }
.grocery-run-budget-head > div > small {
  margin-top: 7px;
  color: #7d8781;
  font-size: 10.5px;
  font-weight: 650;
}
.grocery-run-budget-input {
  height: 48px;
  display: grid;
  grid-template-columns: 18px minmax(0,1fr);
  align-items: center;
  padding: 0 11px;
  border: 1px solid rgba(223,228,224,.085);
  border-radius: 15px;
  background: #0b0f0d;
}
.grocery-run-budget-input > span { color: #7bdd98; font-size: 15px; }
.grocery-run-budget-input input {
  min-width: 0;
  height: 46px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #eceeea;
  text-align: right;
  font-size: 16px !important;
  font-weight: 750;
}
.grocery-run-budget-input input::placeholder { color: #626b66; opacity: 1; }
.grocery-run-budget-track {
  height: 6px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.055);
}
.grocery-run-budget-track i {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,#70d98b,#8be3a0);
  transition: width .22s ease;
}
.grocery-run-budget-card.over .grocery-run-budget-track i { background: linear-gradient(90deg,#d69458,#e8b276); }

.grocery-run-store-card { padding: 14px; }
.grocery-run-store-field label > span {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.grocery-run-store-field label > span small {
  color: #5f686d;
  font-size: 8.5px;
  font-weight: 670;
  text-transform: none;
  letter-spacing: 0;
}

.grocery-run-simple-list {
  display: grid;
  gap: 9px;
  margin-top: 4px;
}
.grocery-run-simple-list .grocery-run-group-head {
  margin: 0 6px;
}
.grocery-run-simple-list .grocery-run-group-head small {
  min-width: 34px;
  padding: 0 7px;
}
.grocery-run-list { gap: 8px; }
.grocery-run-item {
  grid-template-columns: 38px minmax(0,1fr);
  gap: 11px;
  padding: 13px;
  border-radius: 20px;
  background: linear-gradient(145deg,#13171a,#0f1214);
  transition: border-color .18s ease,background .18s ease,transform .18s ease;
}
.grocery-run-item.selected {
  border-color: rgba(120,223,146,.20);
  background: linear-gradient(145deg,rgba(120,223,146,.075),#111715);
  animation: groceryCartPop .22s ease both;
}
.grocery-run-item.selected .grocery-run-check {
  border-color: #7bdd98;
  background: #7bdd98;
  color: #07110b;
}
.grocery-run-item-title { align-items: center; }
.grocery-run-item-title strong { font-size: 15.5px; }
.grocery-run-item-title span {
  min-width: 38px;
  text-align: center;
  color: #9ba29e;
}
.grocery-run-item-hint {
  display: block;
  margin-top: 5px;
  color: #687177 !important;
  font-size: 10px !important;
}
.grocery-run-item-controls {
  grid-template-columns: 100px minmax(110px,1fr);
  gap: 8px;
  margin-top: 11px;
}
.grocery-run-stepper {
  width: 100px;
  height: 38px;
  grid-template-columns: 33px 34px 33px;
}
.grocery-run-stepper button,
.grocery-run-stepper span { min-width: 0; }
.grocery-run-price {
  height: 38px;
  display: grid !important;
  grid-template-columns: 14px minmax(0,1fr) !important;
  align-items: center;
  justify-content: stretch !important;
  gap: 6px !important;
  padding: 0 10px !important;
}
.grocery-run-price input,
.grocery-run-price.empty input {
  flex: initial;
  width: 100%;
  min-width: 0;
  height: 36px;
  text-align: right;
  font-size: 16px !important;
}
.grocery-run-price input::placeholder { color: #697077; }
.grocery-run-calculation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  padding: 0 2px;
}
.grocery-run-calculation span {
  min-width: 0;
  color: #687176;
  font-size: 9.5px;
  font-weight: 650;
}
.grocery-run-calculation strong {
  flex: 0 0 auto;
  color: #aeb5b0;
  font-size: 10px;
  font-weight: 760;
}
.grocery-run-item.selected .grocery-run-calculation strong { color: #8fe2a2; }

.grocery-run-shop-footer {
  grid-template-columns: minmax(0,1fr) auto;
  bottom: calc(63px + env(safe-area-inset-bottom));
  width: min(calc(100% - 30px),490px);
  padding: 10px 11px;
}
.grocery-run-shop-footer > div small {
  margin-top: 2px;
  color: #60696e;
  font-size: 8.5px;
  font-weight: 650;
}
.grocery-run-shop-footer button {
  min-width: 130px;
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 15px;
  border: 1px solid rgba(120,223,146,.18);
  background: linear-gradient(145deg,#8ae5a0,#60ca7d);
  color: #07110b;
  opacity: 1;
}
.grocery-run-shop-footer button[data-state="empty"] {
  background: rgba(120,223,146,.085);
  color: #86d99a;
}
.grocery-run-shop-footer button[data-state="missing"] {
  border-color: rgba(229,173,101,.20);
  background: rgba(229,173,101,.11);
  color: #e1ae74;
}
.grocery-run-shop-footer button .app-icon { width: 17px; height: 17px; }

@media(max-width:370px){
  .grocery-run-body { padding-left: 11px; padding-right: 11px; }
  .grocery-run-budget-card { padding: 15px; }
  .grocery-run-budget-head { grid-template-columns: minmax(0,1fr) 92px; gap: 10px; }
  .grocery-run-budget-head > div > strong { font-size: 22px; }
  .grocery-run-budget-input { padding: 0 8px; }
  .grocery-run-item { padding: 12px 10px; gap: 9px; }
  .grocery-run-item-controls { grid-template-columns: 94px minmax(100px,1fr); gap: 7px; }
  .grocery-run-stepper { width: 94px; grid-template-columns: 31px 32px 31px; }
  .grocery-run-shop-footer { width: calc(100% - 22px); bottom: calc(61px + env(safe-area-inset-bottom)); }
  .grocery-run-shop-footer button { min-width: 116px; padding: 0 12px; }
}


/* v4.6.1 — compact quantities and cleaner Store Mode controls */
.grocery-plan-row {
  grid-template-columns: 50px minmax(0,1fr);
  column-gap: 10px;
}
.grocery-quantity-badge {
  width: 48px;
  min-width: 48px;
  min-height: 48px;
  height: 48px;
  border-radius: 15px;
  font-size: 12px;
}

.grocery-run-body {
  padding-top: 14px;
}
.grocery-run-store-card {
  margin-top: 0;
}
.grocery-run-item-controls {
  grid-template-columns: 104px minmax(118px,1fr);
  align-items: end;
  gap: 10px;
  margin-top: 12px;
}
.grocery-run-control-group {
  min-width: 0;
  display: grid;
  gap: 6px;
}
.grocery-run-control-label {
  color: #70797e;
  font-size: 9px;
  line-height: 1;
  font-weight: 760;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.grocery-run-stepper {
  width: 104px;
  height: 40px;
  grid-template-columns: 34px 36px 34px;
}
.grocery-run-price-group {
  cursor: text;
}
.grocery-run-price {
  width: 100%;
  height: 40px;
  display: grid !important;
  grid-template-columns: 15px minmax(0,1fr) !important;
  align-items: center;
  gap: 7px !important;
  padding: 0 12px !important;
  border-radius: 14px;
}
.grocery-run-price > span {
  display: grid;
  place-items: center;
  color: #7c858a;
  line-height: 1;
}
.grocery-run-price input,
.grocery-run-price.empty input {
  width: 100%;
  height: 38px;
  padding: 0;
  text-align: left;
  font-size: 16px !important;
  font-weight: 700;
}
.grocery-run-price input::placeholder {
  color: #646c71;
  opacity: 1;
}
.grocery-run-calculation {
  margin-top: 9px;
  padding: 0;
}
.grocery-run-calculation span {
  color: #697277;
}
.grocery-run-calculation strong {
  min-width: 36px;
  text-align: right;
  color: #858d89;
}
.grocery-run-item.selected .grocery-run-calculation strong {
  color: #8fe2a2;
}

@media(max-width:370px){
  .grocery-plan-row { grid-template-columns: 46px minmax(0,1fr); column-gap: 8px; }
  .grocery-quantity-badge { width:44px; min-width:44px; min-height:44px; height:44px; border-radius:14px; }
  .grocery-run-item-controls { grid-template-columns: 98px minmax(108px,1fr); gap: 8px; }
  .grocery-run-stepper { width:98px; grid-template-columns:32px 34px 32px; }
}

/* v4.6.2 — optically centred unit-price field */
.grocery-run-price {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px !important;
  padding: 0 12px !important;
}
.grocery-run-price > span {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  line-height: 1;
  transform: translateY(-0.5px);
}
.grocery-run-price input,
.grocery-run-price.empty input {
  flex: 0 0 6.2ch;
  width: 6.2ch;
  min-width: 0;
  max-width: 6.2ch;
  height: 38px;
  padding: 0;
  text-align: center;
}


/* v4.6.3 — active grocery run reset and refreshed-list support */
.grocery-run-header { grid-template-columns: 64px minmax(0,1fr) 64px; }
.grocery-run-back { justify-self:start; }
.grocery-run-reset {
  justify-self:end;
  min-width:58px;
  height:38px;
  padding:0 10px;
  display:grid;
  place-items:center;
  border:1px solid rgba(223,228,224,.09);
  border-radius:13px;
  background:#14181b;
  color:#949b9f;
  font-size:12px;
  font-weight:800;
  letter-spacing:-.01em;
}
.grocery-run-reset:active { transform:scale(.97); }
@media (max-width:340px) {
  .grocery-run-header { grid-template-columns:56px minmax(0,1fr) 56px; padding-left:12px; padding-right:12px; }
  .grocery-run-reset { min-width:52px; padding:0 8px; font-size:11px; }
}

/* Portfolio demo build uses fictional local data only. */
/* =========================================================
   Portfolio web mode
   Keeps the app mobile-first while making it comfortable to
   open, scroll and interact with on laptop and desktop screens.
   ========================================================= */

@media (min-width: 721px) {
  html {
    min-height: 100%;
    overflow-y: auto;
    overscroll-behavior-y: auto;
    background: #050709;
  }

  body.portfolio-demo {
    min-height: 100vh;
    height: auto;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: auto;

    background:
      radial-gradient(circle at 50% -10%, rgba(120, 223, 146, 0.08), transparent 30%),
      linear-gradient(180deg, #050709, #080a0c 45%, #050709);
  }

  body.portfolio-demo:not(.startup-lock):not(.modal-open):not(.insights-open):not(.grocery-run-open) {
    position: relative !important;
    height: auto !important;
    overflow-y: auto !important;
  }

  body.portfolio-demo .app-shell {
    width: min(100%, 520px);
    min-height: 100vh;
    margin-inline: auto;

    overflow: visible;

    border-inline: 1px solid rgba(223, 228, 224, 0.055);
    background:
      radial-gradient(circle at 78% -9%, rgba(92, 174, 115, 0.075), transparent 27%),
      linear-gradient(180deg, #080a0c 0%, #0a0c0e 47%, #080a0c 100%);

    box-shadow: 0 0 5rem rgba(0, 0, 0, 0.48);
  }

  body.portfolio-demo main,
  body.portfolio-demo .page.active {
    overflow: visible;
  }

  body.portfolio-demo .nav {
    left: 50%;
    right: auto;

    width: min(100%, 520px);

    transform: translateX(-50%);
  }

  body.portfolio-demo .startup-screen,
  body.portfolio-demo .insights-subpage,
  body.portfolio-demo .grocery-run-subpage,
  body.portfolio-demo .modal-backdrop {
    left: 50%;
    right: auto;

    width: min(100%, 520px);

    transform: translateX(-50%);
  }

  body.portfolio-demo .insights-subpage,
  body.portfolio-demo .grocery-run-subpage {
    height: var(--spendly-visual-height, 100dvh);
    max-height: 100dvh;

    border-inline: 1px solid rgba(223, 228, 224, 0.055);
    box-shadow: 0 0 5rem rgba(0, 0, 0, 0.5);
  }

  body.portfolio-demo .insights-subpage-body,
  body.portfolio-demo .grocery-run-body {
    overscroll-behavior: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(120, 223, 146, 0.35) transparent;
  }

  body.portfolio-demo .insights-subpage-body::-webkit-scrollbar,
  body.portfolio-demo .grocery-run-body::-webkit-scrollbar {
    display: block;
    width: 7px;
  }

  body.portfolio-demo .insights-subpage-body::-webkit-scrollbar-thumb,
  body.portfolio-demo .grocery-run-body::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(120, 223, 146, 0.3);
  }
}
/* =========================================================
   Desktop subpage centring fix
   Keeps Insights and Store Mode inside the same centred app
   column without exposing or overlapping the page underneath.
   ========================================================= */

@media (min-width: 721px) {
  body.portfolio-demo.insights-open,
  body.portfolio-demo.grocery-run-open {
    min-height: 100dvh;
    overflow: hidden !important;
    background: #050709;
  }

  body.portfolio-demo.insights-open .app-shell,
  body.portfolio-demo.grocery-run-open .app-shell {
    visibility: hidden;
    pointer-events: none;
  }

  body.portfolio-demo.insights-open .nav,
  body.portfolio-demo.grocery-run-open .nav {
    display: none !important;
  }

  body.portfolio-demo .insights-subpage,
  body.portfolio-demo .grocery-run-subpage {
    inset: auto !important;
    top: 0 !important;
    left: 50vw !important;
    right: auto !important;
    bottom: auto !important;

    width: min(100vw, 520px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;

    transform: translateX(-50%) !important;

    border-inline: 1px solid rgba(223, 228, 224, 0.055);
    background:
      radial-gradient(
        circle at 78% -9%,
        rgba(92, 174, 115, 0.06),
        transparent 27%
      ),
      #080a0c;

    box-shadow: 0 0 5rem rgba(0, 0, 0, 0.5);
  }

  body.portfolio-demo .insights-subpage.show {
    animation: spendlyDesktopInsightsIn 180ms ease both;
  }

  body.portfolio-demo .grocery-run-subpage.show {
    animation: spendlyDesktopStoreModeIn 180ms ease both;
  }

  body.portfolio-demo .insights-subpage-body,
  body.portfolio-demo .grocery-run-body {
    width: 100%;
    max-width: none;
    margin: 0;

    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(120, 223, 146, 0.28) transparent;
  }

  body.portfolio-demo .grocery-run-shop-footer,
  body.portfolio-demo .grocery-checkout-footer {
    left: 50% !important;
    width: min(calc(100% - 28px), 490px) !important;
    transform: translateX(-50%) !important;
  }
}

@keyframes spendlyDesktopInsightsIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(0.45rem);
  }

  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

@keyframes spendlyDesktopStoreModeIn {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(0.45rem);
  }

  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) and (min-width: 721px) {
  body.portfolio-demo .insights-subpage.show,
  body.portfolio-demo .grocery-run-subpage.show {
    animation: none;
    transform: translateX(-50%) !important;
  }
}
