:root{
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --safe-left:env(safe-area-inset-left,0px);
  --safe-right:env(safe-area-inset-right,0px);
  --app-height:100vh;
  --bg-grad-1:#1a1525;--bg-grad-2:#1e1a2e;--bg-grad-3:#16141f;--bg-grad-4:#1c1728;
  --glass:rgba(255,255,255,.04);--glass2:rgba(255,255,255,.07);--glass3:rgba(255,255,255,.02);
  --border:rgba(255,255,255,.1);--surface:#1e1a2e;
  --purple:#c4b5fd;--soft:#a89bc2;
  --pink:#f472b6;--gold:#fbbf24;--mint:#34d399;--peach:#fb923c;--blue:#60a5fa;--rose:#e879f9;
  --text:#e8e0ff;--text-soft:#a89bc2;--text-inv:#1a1525;
  --shadow:0 4px 32px rgba(0,0,0,.4);--shadow2:0 2px 16px rgba(0,0,0,.3);
  --receipt-bg:#13101e;--receipt-border:#2a2040;--receipt-ink:rgba(232,224,255,.9);--receipt-ink-soft:rgba(196,181,253,.65);--receipt-ink-faint:rgba(196,181,253,.4);
  --nav-bg:rgba(20,16,35,.95);--header-bg:rgba(20,16,35,.9);
  --input-bg:rgba(255,255,255,.06);--modal-bg:linear-gradient(155deg,#1e1a2e,#16141f);
  --card-bg:rgba(255,255,255,.05);--section-bg:rgba(255,255,255,.03);
  --villa-pink:#f472b6;--villa-lavender:#c4b5fd;--villa-glow:rgba(244,114,182,.22);--villa-soft:rgba(244,114,182,.12);
  --sticky-bg:#fffef0;--sticky-border:#e8e0a0;--sticky-ink:#7a6a20;
}
[data-theme="light"]{
  --bg-grad-1:#f0ecff;--bg-grad-2:#e8ecff;--bg-grad-3:#ecf2ff;--bg-grad-4:#ede8f8;
  --glass:rgba(255,255,255,.6);--glass2:rgba(255,255,255,.85);--glass3:rgba(255,255,255,.4);
  --border:rgba(160,140,220,.2);--surface:#faf8ff;
  --purple:#6d28d9;--soft:#7c6a9a;
  --pink:#db2777;--gold:#b45309;--mint:#059669;--peach:#c2410c;--blue:#1d4ed8;--rose:#a21caf;
  --text:#3b1f7a;--text-soft:#6d5a8a;--text-inv:#fff;
  --shadow:0 4px 24px rgba(100,80,180,.12);--shadow2:0 2px 12px rgba(100,80,180,.08);
  --receipt-bg:#faf8f2;--receipt-border:#c8c0d8;--receipt-ink:#2a2438;--receipt-ink-soft:#5a5070;--receipt-ink-faint:#8a8098;
  --nav-bg:rgba(255,255,255,.9);--header-bg:rgba(255,255,255,.8);
  --input-bg:rgba(255,255,255,.9);--modal-bg:linear-gradient(155deg,#f0ecff,#e8f0ff);
  --card-bg:rgba(255,255,255,.85);--section-bg:rgba(255,255,255,.6);
  --villa-pink:#db2777;--villa-lavender:#7c3aed;--villa-glow:rgba(219,39,119,.15);--villa-soft:rgba(219,39,119,.1);
  --sticky-bg:#fffef5;--sticky-border:#e0d890;--sticky-ink:#6a5a18;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{height:-webkit-fill-available;}
body{font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;color:var(--text);padding-bottom:calc(20px + var(--safe-bottom));padding-left:var(--safe-left);padding-right:var(--safe-right);overflow-x:hidden;transition:background .4s;overscroll-behavior-y:none;touch-action:pan-y;-webkit-text-size-adjust:100%;}
body::before{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(150deg,var(--bg-grad-1) 0%,var(--bg-grad-2) 30%,var(--bg-grad-3) 65%,var(--bg-grad-4) 100%);pointer-events:none;}
body.modal-open{overflow:hidden;position:fixed;width:100%;left:0;right:0;}
button,.sign-btn,.sign-action-btn,.menu-btn,.week-arrow,.icon-btn,.add-btn,.toggle,.payoff-tab,.meal-subtab,.routine-pill,.skincare-pill,.day-toggle-btn,.recipe-action-btn,.settings-btn-sm,.check-box,.cal-day,.list-card-hdr,.sec-hdr,.date-card,.payday-pill,.rollover-pill,.chart-filter-pill,.ing-convert-toggle,.todo-note-toggle,.todo-expand,.todo-add-sub{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;}
input,textarea,select,.finput,.fselect,.ftextarea,.search-input{-webkit-user-select:text;user-select:text;}
.stars-bg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden;}
.star{position:absolute;animation:floatStar linear infinite;}
@keyframes floatStar{0%{transform:translateY(0) rotate(0deg);opacity:0;}10%{opacity:.6;}60%{opacity:.85;}85%{opacity:.5;}100%{transform:translateY(-90px) rotate(22deg);opacity:0;}}
.wrap{position:relative;z-index:1;}
.onboard-overlay{position:fixed;inset:0;background:linear-gradient(150deg,var(--bg-grad-1),var(--bg-grad-3));z-index:999;display:none;align-items:center;justify-content:center;padding:24px;}
.onboard-card{background:var(--glass2);border:1.5px solid var(--border);border-radius:28px;padding:32px 24px;width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center;}
.onboard-emoji{font-size:52px;margin-bottom:12px;display:flex;align-items:center;justify-content:center;color:var(--purple);}
.onboard-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:26px;font-weight:700;color:var(--purple);margin-bottom:8px;}
.onboard-sub{font-size:14px;color:var(--soft);margin-bottom:24px;font-weight:600;line-height:1.5;}
.onboard-step{display:none;}.onboard-step.active{display:block;}
.onboard-label{font-size:12px;font-weight:700;color:var(--soft);text-align:left;margin-bottom:6px;}
.onboard-dots{display:flex;gap:6px;justify-content:center;margin-top:20px;}
.onboard-dot{width:8px;height:8px;border-radius:50%;background:rgba(160,140,220,.3);transition:background .2s;}
.onboard-dot.active{background:var(--purple);}
.reminder-note{margin:8px 14px 4px;background:#fffef0;border:1.5px solid #e8e0a0;border-radius:4px 16px 16px 4px;padding:12px 14px;box-shadow:2px 3px 12px rgba(180,160,60,.18);position:relative;overflow:hidden;}
.reminder-note::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#e8c840;}
.reminder-note-lines{position:absolute;inset:0;background:repeating-linear-gradient(transparent,transparent 22px,rgba(100,140,200,.08) 22px,rgba(100,140,200,.08) 23px);pointer-events:none;}
.reminder-note-title{font-family:Georgia,'Times New Roman',serif;font-size:16px;font-weight:700;color:#7a6a20;margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.reminder-item{font-family:Georgia,'Times New Roman',serif;font-size:14px;color:#5a5010;padding:2px 0;display:flex;align-items:center;gap:6px;}
.reminder-dismiss{position:absolute;top:8px;right:10px;background:none;border:none;font-size:16px;cursor:pointer;opacity:.5;}
[data-theme="dark"] .reminder-note{background:#2a2810;border-color:#5a5020;}
[data-theme="dark"] .reminder-note-title{color:#d4c860;}
[data-theme="dark"] .reminder-item{color:#c0b840;}
.header{background:var(--header-bg);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);border-bottom:1px solid var(--border);padding:calc(10px + var(--safe-top)) calc(14px + var(--safe-right)) 10px calc(14px + var(--safe-left));position:sticky;top:0;z-index:100;}
.header h1{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:15px;font-weight:700;letter-spacing:1.5px;color:var(--purple);text-transform:uppercase;flex:1;text-align:center;}
.paycheck-bar{display:flex;align-items:center;gap:8px;margin-top:10px;background:var(--glass2);border-radius:13px;padding:8px 13px;border:1.5px solid var(--border);box-shadow:var(--shadow2);}
.paycheck-hero{background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(109,40,217,.1));border:1px solid rgba(196,181,253,.15);border-radius:14px;padding:12px 14px 9px;box-shadow:0 4px 20px rgba(109,40,217,.15);}
.paycheck-hero-center{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:10px;}
.paycheck-hero-label{font-size:9px;font-weight:700;color:var(--soft);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px;}
.paycheck-hero-amount{display:flex;align-items:baseline;gap:2px;justify-content:center;}
.paycheck-hero-dollar{font-size:16px;font-weight:300;color:var(--purple);opacity:.5;line-height:1;align-self:flex-start;margin-top:6px;}
.paycheck-hero-input{background:none;border:none;font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:32px;font-weight:800;color:var(--purple);width:180px;outline:none;letter-spacing:-0.5px;padding:0;line-height:1;text-align:left;}
.paycheck-hero-input::placeholder{color:rgba(196,181,253,.2);}
.payday-pill{font-size:10px;background:rgba(196,181,253,.12);color:var(--soft);border-radius:6px;padding:3px 9px;font-weight:700;white-space:nowrap;flex-shrink:0;cursor:pointer;border:1px solid rgba(196,181,253,.15);letter-spacing:.3px;}
.header-week-nav{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(196,181,253,.1);padding-top:7px;}
.header-week-label{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:11px;font-weight:700;color:var(--soft);letter-spacing:.3px;}
.week-arrow{background:rgba(196,181,253,.08);border:1px solid rgba(196,181,253,.15);border-radius:6px;padding:3px 10px;font-size:14px;font-weight:700;color:var(--purple);cursor:pointer;line-height:1.5;}
.paycheck-label{font-size:11px;color:var(--soft);font-weight:700;flex-shrink:0;}
.paycheck-input{background:none;border:none;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:18px;font-weight:700;color:var(--purple);width:100%;outline:none;}
.paycheck-input::placeholder{color:rgba(160,140,210,.5);}
.rollover-pill{font-size:10px;background:rgba(74,170,122,.18);color:var(--mint);border-radius:20px;padding:2px 8px;font-weight:700;white-space:nowrap;flex-shrink:0;transition:opacity .15s;}.rollover-pill:hover{opacity:.7;}
.payday-pill{font-size:10px;background:rgba(160,130,220,.15);color:var(--soft);border-radius:20px;padding:2px 8px;font-weight:700;white-space:nowrap;flex-shrink:0;cursor:pointer;}
.sign-overlay{display:none;position:fixed;inset:0;z-index:149;background:rgba(60,40,100,.15);pointer-events:none;}
.sign-overlay.open{display:block;pointer-events:auto;}
.sign-wrap{position:fixed;top:0;left:0;right:0;z-index:150;pointer-events:none;height:auto;}
.sign-panel{display:none;background:var(--glass2);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1.5px solid var(--border);border-top:none;border-radius:0 0 24px 24px;box-shadow:0 8px 32px rgba(100,80,180,.18);padding:0 16px 18px;margin:0 6px;animation:slideDown .22s ease;}
.sign-panel.open{display:block;pointer-events:auto;}
.sign-header-block{text-align:center;padding:14px 0 10px;border-bottom:1.5px solid var(--border);}
.sign-date-label{font-family:'Courier New',Courier,monospace;font-size:13px;color:var(--purple);letter-spacing:1px;}
.sign-tagline{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:10px;color:var(--soft);margin-top:3px;font-weight:700;letter-spacing:1.5px;}
.sign-nav-btns{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px 0 10px;}
.sign-btn{display:flex;align-items:center;gap:8px;background:var(--glass);border:1.5px solid var(--border);border-radius:13px;padding:10px 13px;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:12px;font-weight:700;color:var(--soft);cursor:pointer;transition:all .18s;width:100%;}
.sign-btn.active{background:linear-gradient(135deg,rgba(200,184,240,.5),rgba(184,200,240,.4));color:var(--purple);border-color:rgba(180,160,220,.5);box-shadow:var(--shadow2);}
.sign-btn-icon{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:.8;}.sign-btn-icon svg{width:18px;height:18px;}.sign-btn.active .sign-btn-icon{opacity:1;}
.sign-footer-btns{display:flex;gap:8px;padding-top:10px;border-top:1.5px solid var(--border);}
.sign-action-btn{flex:1;background:var(--glass);border:1.5px solid var(--border);border-radius:11px;padding:9px 6px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:11px;font-weight:800;color:var(--soft);cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;gap:5px;}
.header-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}.header-row{display:flex;align-items:center;gap:10px;margin-bottom:2px;}
.menu-btn{display:flex;flex-direction:column;gap:4px;background:var(--glass2);border:1.5px solid var(--border);border-radius:10px;padding:8px 9px;cursor:pointer;flex-shrink:0;}
.menu-line{display:block;width:18px;height:2px;background:var(--purple);border-radius:2px;}
.header-center{flex:1;text-align:center;}
.header-week-nav{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:2px;}
.header-week-label{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:10px;font-weight:700;color:var(--soft);}
.week-arrow{background:var(--glass2);border:1.5px solid var(--border);border-radius:8px;padding:1px 9px;font-size:17px;font-weight:700;color:var(--purple);cursor:pointer;line-height:1.5;}
.page{display:none;}.page.active{display:block;}
.card{margin:6px 13px;background:var(--card-bg);backdrop-filter:blur(20px);border-radius:14px;padding:14px 16px;border:1px solid var(--border);box-shadow:var(--shadow);}
.card-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:var(--soft);margin-bottom:11px;font-weight:700;;display:flex;align-items:center;gap:6px;}
.bal-rows{display:flex;flex-direction:column;gap:7px;}
.bal-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;}
.bal-row .lbl{color:var(--soft);font-weight:700;display:flex;align-items:center;gap:5px;}.bal-row .lbl svg{display:block;flex-shrink:0;}
.bal-row .amt{font-weight:800;}
.r-bills .amt{color:var(--pink);}.r-savings .amt{color:var(--gold);}.r-groceries .amt{color:var(--mint);}.r-shopping .amt{color:var(--blue);}.r-spent .amt{color:var(--peach);}.r-debt .amt{color:var(--rose);}
.bal-divider{height:1.5px;background:rgba(160,140,200,.2);border-radius:2px;margin:2px 0;}
.r-total .lbl{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-weight:700;}
.r-total .amt{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:26px;font-weight:800;letter-spacing:-.5px;}
.amt.negative{color:var(--pink)!important;}
.section{margin:6px 13px;background:var(--section-bg);backdrop-filter:blur(20px);border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow2);overflow:hidden;}
.sec-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;cursor:pointer;user-select:none;}
.sec-hdr-l{display:flex;align-items:center;gap:9px;}
.sec-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}.ic-bills svg{width:17px;height:17px;display:block;}.ic-savings svg{width:16px;height:16px;display:block;}.ic-cats svg{width:17px;height:17px;display:block;}.ic-spend svg{width:18px;height:18px;display:block;}.ic-debt svg{width:17px;height:17px;display:block;}
.ic-bills{background:rgba(224,112,144,.18);}.ic-savings{background:rgba(248,228,138,.32);}.ic-cats{background:rgba(160,130,220,.18);}.ic-spend{background:rgba(224,133,90,.18);}.ic-debt{background:rgba(192,96,160,.18);}
.sec-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:13px;font-weight:700;color:var(--text);letter-spacing:.1px;}
.sec-sub{font-size:10px;color:var(--soft);margin-top:1px;font-weight:700;}
.sec-total{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:14px;font-weight:700;}
.t-bills{color:var(--pink);}.t-savings{color:var(--gold);}.t-cats{color:#9070c8;}.t-spend{color:var(--peach);}.t-debt{color:var(--rose);}
.chevron{color:var(--soft);font-size:10px;transition:transform .2s;margin-left:4px;}
.chevron.open{transform:rotate(180deg);}
.sec-body{display:none;padding:0 15px 12px;}
.sec-body.open{display:block;}
.item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-top:1.5px solid rgba(160,140,200,.15);gap:7px;}
.item-l{flex:1;min-width:0;}
.item-name{font-size:13px;font-weight:700;color:var(--text);}
.item-meta{font-size:10px;color:var(--soft);margin-top:1px;font-weight:600;}
.item-amt{font-weight:800;font-size:13px;white-space:nowrap;}
.icon-btn{background:none;border:none;cursor:pointer;font-size:13px;opacity:.4;padding:2px 3px;transition:opacity .15s;}
.icon-btn:hover{opacity:.9;}
.due-badge{font-size:9px;background:rgba(224,112,144,.16);color:var(--pink);border-radius:4px;padding:1px 5px;font-weight:800;margin-left:3px;}
.weekly-badge{font-size:9px;background:rgba(160,130,220,.16);color:#9070c8;border-radius:4px;padding:1px 5px;font-weight:800;margin-left:3px;}
.paused-badge{font-size:9px;background:rgba(160,160,160,.16);color:#888;border-radius:4px;padding:1px 5px;font-weight:800;margin-left:3px;}
.empty{text-align:center;padding:14px 10px;color:var(--soft);font-size:12px;font-weight:700;line-height:1.5;}
.empty-hint{font-size:11px;opacity:.7;margin-top:4px;}
.goal-item{flex-direction:column;align-items:stretch;}
.goal-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.prog-bar{height:6px;background:rgba(248,228,138,.25);border-radius:4px;overflow:hidden;}
.prog-fill{height:100%;background:linear-gradient(90deg,#f8c870,#f8e88a);border-radius:4px;transition:width .5s ease;}
.prog-fill.complete{background:linear-gradient(90deg,#70d890,#a0f0b0);}
.goal-stats{display:flex;justify-content:space-between;margin-top:3px;font-size:10px;color:var(--soft);font-weight:700;}
.goal-log{font-size:10px;color:var(--soft);margin-top:5px;font-weight:600;}
.goal-log-entry{padding:2px 0;}
.cat-item{flex-direction:column;align-items:stretch;}
.cat-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.cat-prog-bar{height:5px;border-radius:3px;overflow:hidden;}
.cat-prog-fill{height:100%;border-radius:3px;transition:width .4s ease;}
.cat-stats{display:flex;justify-content:space-between;margin-top:3px;font-size:10px;color:var(--soft);font-weight:700;}
.cat-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;display:inline-block;margin-right:5px;}
.spend-entry{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-top:1.5px solid rgba(160,140,200,.15);gap:7px;}
.spend-entry-l{flex:1;}
.spend-name{font-size:13px;font-weight:700;color:var(--text);}
.spend-cat-tag{font-size:10px;font-weight:700;margin-top:1px;}
.add-btn{display:flex;align-items:center;justify-content:center;gap:4px;background:rgba(255,255,255,.03);border:1px dashed rgba(196,181,253,.25);border-radius:10px;padding:9px 12px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:600;color:var(--soft);cursor:pointer;width:100%;margin-top:7px;transition:all .15s;letter-spacing:.1px;}
.add-btn:hover{background:rgba(255,255,255,.5);}
.add-to-goal-btn{margin-top:7px;background:rgba(248,228,138,.15);border:1.5px dashed rgba(200,160,60,.3);border-radius:9px;padding:6px 11px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:11px;color:var(--gold);cursor:pointer;width:100%;font-weight:800;}
.finput{background:var(--input-bg);border:1px solid rgba(196,181,253,.2);border-radius:10px;padding:10px 13px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:13px;font-weight:500;color:var(--text);outline:none;width:100%;display:block;margin-bottom:8px;}
.finput:focus{border-color:var(--purple);background:var(--glass2);}
.finput::placeholder{color:rgba(160,140,210,.5);}
.frow{display:flex;gap:6px;margin-bottom:8px;}
.frow .finput{margin-bottom:0;}
.ftextarea{background:var(--input-bg);border:1.5px solid rgba(160,140,200,.4);border-radius:11px;padding:9px 12px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:600;color:var(--text);outline:none;width:100%;display:block;margin-bottom:8px;resize:vertical;min-height:75px;}
.ftextarea:focus{border-color:var(--purple);}
.ftextarea::placeholder{color:rgba(160,140,210,.5);}
.btn-add{flex:1;background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border:none;border-radius:10px;padding:11px;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(109,40,217,.35);letter-spacing:.2px;}
.btn-cancel{background:var(--glass);border:1.5px solid var(--border);border-radius:11px;padding:10px 13px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:700;color:var(--soft);cursor:pointer;}
.btn-danger{flex:1;background:rgba(224,112,144,.15);border:1.5px solid rgba(224,112,144,.3);border-radius:11px;padding:10px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:700;color:var(--pink);cursor:pointer;}
.btn-row{display:flex;gap:7px;margin-top:4px;}
.fselect{background:var(--input-bg);border:1.5px solid rgba(160,140,200,.4);border-radius:11px;padding:9px 12px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:13px;font-weight:700;color:var(--text);outline:none;width:100%;display:block;margin-bottom:8px;appearance:none;}
.ftoggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:8px 12px;background:rgba(255,255,255,.2);border-radius:10px;}
.ftoggle-label{font-size:13px;font-weight:700;color:var(--text);}
.toggle{width:44px;height:24px;background:rgba(160,140,200,.3);border-radius:12px;position:relative;cursor:pointer;transition:background .2s;border:none;flex-shrink:0;}
.toggle.on{background:linear-gradient(135deg,#c8b8f0,#b8c8f0);}
.toggle::after{content:'';position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.2);}
.toggle.on::after{transform:translateX(20px);}
.overlay{display:none;position:fixed;inset:0;background:rgba(60,40,100,.35);backdrop-filter:blur(6px);z-index:200;align-items:flex-end;pointer-events:none;}
.overlay.open{display:flex;pointer-events:auto;}
.modal{background:var(--modal-bg);border-radius:20px 20px 0 0;padding:20px 16px calc(38px + var(--safe-bottom));width:100%;border-top:1.5px solid var(--border);animation:slideUp .22s ease;max-height:min(88vh,calc(var(--app-height,100vh) * 0.88));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
@keyframes slideUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
@keyframes slideDown{from{transform:translateY(-20px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.week-nav-btn{background:var(--glass2);border:1.5px solid var(--border);border-radius:10px;padding:5px 12px;font-family:-apple-system,"SF Pro Text","Helvetica Neue",sans-serif;font-size:12px;font-weight:700;color:var(--purple);cursor:pointer;}
.modal h3{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:16px;font-weight:700;color:var(--purple);margin-bottom:13px;display:flex;align-items:center;gap:7px;}
.modal-section{font-size:11px;font-weight:700;color:var(--soft);margin-bottom:5px;margin-top:4px;}
.color-opts{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;}
.color-opt{width:25px;height:25px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:border-color .15s;}
.color-opt.sel{border-color:var(--purple);}
.confirm-overlay{display:none;position:fixed;inset:0;background:rgba(60,40,100,.4);backdrop-filter:blur(8px);z-index:300;align-items:center;justify-content:center;padding:20px;pointer-events:none;}
.confirm-overlay.open{display:flex;pointer-events:auto;}
.confirm-box{background:var(--card-bg);border:1.5px solid var(--border);border-radius:20px;padding:24px 20px;width:100%;max-width:320px;box-shadow:var(--shadow);text-align:center;}
.confirm-emoji{font-size:36px;margin-bottom:10px;display:flex;align-items:center;justify-content:center;}
.confirm-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:16px;font-weight:700;color:var(--purple);margin-bottom:6px;}
.confirm-msg{font-size:13px;color:var(--soft);font-weight:600;margin-bottom:18px;}
.settings-overlay{display:none;position:fixed;inset:0;background:rgba(60,40,100,.35);backdrop-filter:blur(6px);z-index:200;align-items:flex-end;pointer-events:none;}
.settings-overlay.open{display:flex;pointer-events:auto;}
.settings-panel{background:var(--modal-bg);border-radius:20px 20px 0 0;padding:20px 16px calc(40px + var(--safe-bottom));width:100%;border-top:1.5px solid var(--border);animation:slideUp .22s ease;max-height:min(92vh,calc(var(--app-height,100vh) * 0.92));overflow-y:auto;-webkit-overflow-scrolling:touch;}
.settings-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:17px;font-weight:700;color:var(--purple);margin-bottom:18px;display:flex;align-items:center;gap:7px;}
.settings-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1.5px solid rgba(160,140,200,.15);}
.settings-item-label{font-size:14px;font-weight:700;color:var(--text);}
.settings-item-sub{font-size:11px;color:var(--soft);font-weight:600;margin-top:2px;}
.settings-btn-sm{background:var(--glass2);border:1.5px solid var(--border);border-radius:10px;padding:7px 14px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:800;color:var(--purple);cursor:pointer;}
.receipt{margin:7px auto;max-width:360px;background-color:var(--receipt-bg);background-image:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,0,0,.018) 3px,rgba(0,0,0,.018) 4px);border-radius:4px 4px 12px 12px;box-shadow:0 4px 20px rgba(0,0,0,.35),inset 0 0 0 1px var(--receipt-border);position:relative;overflow:hidden;transition:background .3s,opacity .3s,transform .3s;}
.receipt-past{opacity:.82;transform:scale(.985);}
.receipt-current{box-shadow:0 6px 28px rgba(100,80,180,.25),inset 0 0 0 1.5px var(--purple);}
.receipt-stamp{position:absolute;top:18px;right:12px;font-family:'Courier New',Courier,monospace;font-size:9px;font-weight:800;letter-spacing:1.5px;color:var(--purple);border:2px solid var(--purple);border-radius:3px;padding:3px 7px;transform:rotate(12deg);opacity:.75;pointer-events:none;z-index:2;}
.receipt::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:repeating-linear-gradient(90deg,var(--purple) 0px,var(--purple) 8px,transparent 8px,transparent 16px);opacity:.35;}
.receipt-masthead{font-family:'Courier New',Courier,monospace;font-size:10px;color:var(--receipt-ink-faint);letter-spacing:3px;text-transform:uppercase;margin-bottom:6px;}
.receipt-masthead strong{display:block;font-size:13px;color:var(--purple);letter-spacing:4px;margin-top:2px;}
.receipt-top{padding:14px 15px 10px;text-align:center;border-bottom:1px dashed var(--receipt-ink-faint);}
.receipt-store{font-family:'Courier New',Courier,monospace;font-size:13px;color:var(--receipt-ink);letter-spacing:2px;text-transform:uppercase;font-weight:700;}
.receipt-date{font-family:'Courier New',Courier,monospace;font-size:10px;color:var(--receipt-ink-soft);margin-top:3px;letter-spacing:1px;}
.receipt-pill{display:inline-block;font-size:10px;font-weight:800;border-radius:4px;padding:3px 8px;margin-top:5px;letter-spacing:.5px;font-family:'Courier New',Courier,monospace;}
.r-pill-green{background:rgba(74,170,122,.15);color:#2a8050;}
.r-pill-yellow{background:rgba(220,180,40,.18);color:#907020;}
.r-pill-red{background:rgba(224,112,144,.16);color:#c03060;}
.receipt-body{padding:8px 15px 10px;}
.r-line{display:flex;justify-content:space-between;align-items:baseline;padding:3px 0;font-family:'Courier New',Courier,monospace;font-size:12px;}
.r-label{flex:1;color:var(--receipt-ink-soft);}
.r-dots{flex:1;border-bottom:1px dotted var(--receipt-ink-faint);margin:0 5px;height:1em;min-width:12px;}
.r-val{color:var(--receipt-ink);white-space:nowrap;font-weight:600;}
.r-income .r-val{color:#2a8050;}
.r-sub .r-label{padding-left:10px;font-size:11px;color:var(--receipt-ink-faint);}
.r-sub .r-val{font-size:11px;font-weight:500;}
.r-negative .r-val{color:#c03060;}
.r-positive .r-val{color:#2a8050;}
.r-divider{border:none;border-top:1px dashed var(--receipt-ink-faint);margin:6px 0;}
.r-divider-solid{border:none;border-top:2px solid var(--receipt-ink);margin:8px 0 6px;opacity:.25;}
.r-section-hdr{font-family:'Courier New',Courier,monospace;font-size:10px;color:var(--receipt-ink-soft);letter-spacing:1.5px;margin-bottom:3px;text-transform:uppercase;}
.r-details{border:none;margin:0;padding:0;}
.r-details summary.r-line{cursor:pointer;list-style:none;}
.r-details summary.r-line::-webkit-details-marker{display:none;}
.r-details summary.r-line::before{content:'▾ ';opacity:.45;font-size:10px;}
.r-details:not([open]) summary.r-line::before{content:'▸ ';}
.r-details-body{padding-left:2px;}
.r-total-block{margin-top:4px;padding:10px 12px;border:2px solid var(--receipt-ink-faint);border-radius:4px;background:rgba(196,181,253,.04);}
.receipt-current .r-total-block{border-color:var(--purple);background:rgba(196,181,253,.08);}
.r-total-line{display:flex;justify-content:space-between;align-items:baseline;font-family:'Courier New',Courier,monospace;}
.r-total-label{font-size:12px;color:var(--purple);letter-spacing:1.5px;text-transform:uppercase;font-weight:700;}
.r-total-val{font-size:22px;color:var(--purple);font-weight:800;letter-spacing:-.5px;}
.r-total-val.negative{color:#c03060;}
.r-total-val.positive{color:#2a8050;}
.receipt-footer{text-align:center;padding:6px 15px 10px;border-top:1px dashed var(--receipt-ink-faint);}
.r-footer-txt{font-family:'Courier New',Courier,monospace;font-size:10px;color:var(--receipt-ink-faint);letter-spacing:1px;}
.r-footer-id{font-family:'Courier New',Courier,monospace;font-size:9px;color:var(--receipt-ink-faint);opacity:.7;margin-top:3px;letter-spacing:.5px;}
.receipt-zigzag{height:8px;background:linear-gradient(135deg,var(--receipt-bg) 25%,transparent 25%) -8px 0,linear-gradient(225deg,var(--receipt-bg) 25%,transparent 25%) -8px 0,linear-gradient(315deg,var(--receipt-bg) 25%,transparent 25%),linear-gradient(45deg,var(--receipt-bg) 25%,transparent 25%);background-size:16px 8px;background-color:rgba(196,181,253,.06);}
.prefund-add-btn{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.2);border:1px dashed rgba(160,140,200,.35);border-radius:6px;padding:5px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:10px;font-weight:800;color:var(--soft);cursor:pointer;width:100%;margin-top:4px;}
.pull-back-btn{background:none;border:1px solid rgba(224,112,144,.3);border-radius:4px;padding:1px 5px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:9px;font-weight:800;color:var(--pink);cursor:pointer;}
.warn-banner{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.2);border-radius:6px;padding:4px 8px;font-size:9px;color:var(--gold);font-weight:700;margin:2px 0;font-family:'Courier New',Courier,monospace;}
.r-event-line{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-family:'Courier New',Courier,monospace;font-size:11px;padding:3px 0;border-bottom:1px dotted rgba(160,140,200,.08);}
.r-event-line:last-child{border-bottom:none;}
.r-event-name{flex:1;color:var(--receipt-ink);font-weight:600;}
.r-event-when{white-space:nowrap;color:var(--receipt-ink-soft);font-size:10px;text-align:right;}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 13px;}
.dash-card{background:var(--card-bg);border:1.5px solid var(--border);border-radius:15px;padding:14px 13px;box-shadow:var(--shadow2);}
.dash-card.full{grid-column:1/-1;}
.dash-icon{font-size:22px;margin-bottom:6px;}
.dash-val{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:20px;font-weight:700;color:var(--purple);}
.dash-label{font-size:10px;color:var(--soft);font-weight:700;margin-top:2px;}
.dash-sub{font-size:10px;color:var(--soft);margin-top:4px;font-weight:600;}
.networth-bar{height:8px;background:rgba(160,140,200,.2);border-radius:4px;overflow:hidden;margin-top:8px;}
.networth-fill{height:100%;background:linear-gradient(90deg,var(--mint),#90f0b0);border-radius:4px;transition:width .6s ease;}
.debt-type-badge{display:inline-block;font-size:9px;border-radius:4px;padding:1px 6px;font-weight:800;margin-right:3px;}
.dtb-credit{background:rgba(224,112,144,.15);color:var(--pink);}
.dtb-car{background:rgba(90,138,224,.15);color:var(--blue);}
.dtb-student{background:rgba(160,130,220,.15);color:#9070c8;}
.dtb-personal{background:rgba(224,133,90,.15);color:var(--peach);}
.dtb-medical{background:rgba(74,170,122,.15);color:var(--mint);}
.dtb-other{background:rgba(160,160,160,.15);color:#888;}
.debt-item{flex-direction:column;align-items:stretch;}
.debt-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;}
.debt-info{flex:1;}
.debt-name{font-size:13px;font-weight:700;color:var(--text);}
.debt-prog-bar{height:6px;background:rgba(192,96,160,.15);border-radius:4px;overflow:hidden;}
.debt-prog-fill{height:100%;background:linear-gradient(90deg,var(--rose),#e090c0);border-radius:4px;transition:width .5s ease;}
.debt-stats{display:flex;justify-content:space-between;margin-top:3px;font-size:10px;color:var(--soft);font-weight:700;}
.payoff-card{margin:6px 13px;background:var(--card-bg);border-radius:17px;border:1.5px solid var(--border);box-shadow:var(--shadow);padding:14px 15px;}
.payoff-tabs{display:flex;gap:6px;margin-bottom:12px;}
.payoff-tab{flex:1;background:var(--glass);border:1.5px solid var(--border);border-radius:10px;padding:7px;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:11px;font-weight:700;color:var(--soft);cursor:pointer;text-align:center;transition:all .15s;}
.payoff-tab.active{background:var(--glass2);color:var(--purple);}
.payoff-method{display:none;}.payoff-method.active{display:block;}
.payoff-item{display:flex;gap:10px;padding:8px 0;border-top:1px solid rgba(160,140,200,.15);align-items:flex-start;}
.payoff-order{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--rose),#e090c0);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.payoff-info{flex:1;}
.payoff-name{font-size:13px;font-weight:700;color:var(--text);}
.payoff-detail{font-size:10px;color:var(--soft);font-weight:600;margin-top:2px;}
.payoff-date{font-size:11px;font-weight:800;color:var(--rose);white-space:nowrap;}
.payoff-comparison{background:rgba(74,170,122,.1);border:1px solid rgba(74,170,122,.2);border-radius:10px;padding:10px 12px;margin-top:10px;font-size:12px;color:var(--text);font-weight:700;}
.list-card{margin:6px 13px;background:var(--card-bg);border-radius:17px;border:1.5px solid var(--border);box-shadow:var(--shadow);overflow:hidden;}
.list-card-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;cursor:pointer;}
.list-card-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:14px;font-weight:700;color:var(--purple);}
.list-type-badge{font-size:9px;border-radius:5px;padding:2px 7px;font-weight:800;}
.badge-todo{background:rgba(160,130,220,.18);color:#9070c8;}
.badge-shop{background:rgba(90,138,224,.18);color:var(--blue);}
.list-card-body{display:none;padding:0 15px 12px;}
.list-card-body.open{display:block;}
.check-box{width:19px;height:19px;border-radius:5px;border:2px solid rgba(160,130,220,.45);background:rgba(255,255,255,.35);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:all .2s;}
.check-box.checked{background:linear-gradient(135deg,#c8b8f0,#b8c8f0);border-color:#c8b8f0;}
.check-box.checked::after{content:'\2713';color:#fff;font-size:11px;font-weight:800;}
.check-box.shop-style{border-color:rgba(90,138,224,.4);}
.check-box.shop-style.checked{background:linear-gradient(135deg,#a8c0f0,#90b0e8);border-color:#a8c0f0;}
.todo-item{display:flex;align-items:flex-start;gap:9px;padding:7px 0;border-top:1.5px solid rgba(160,140,200,.15);}
.todo-text{flex:1;}
.todo-name{font-size:13px;font-weight:700;color:var(--text);transition:all .2s;}
.todo-name.done{text-decoration:line-through;opacity:.4;}
.todo-note{font-size:11px;color:var(--soft);font-weight:600;margin-top:3px;line-height:1.4;white-space:pre-wrap;word-break:break-word;}
.todo-note-toggle{font-size:10px;color:var(--purple);font-weight:700;cursor:pointer;margin-top:2px;opacity:.7;background:none;border:none;padding:0;font-family:inherit;}.todo-note-toggle:hover{opacity:1;}
.todo-link{display:inline-flex;align-items:center;gap:3px;font-size:10px;color:var(--blue);font-weight:700;margin-top:3px;text-decoration:none;word-break:break-all;}.todo-link:hover{opacity:.7;}
.todo-subs{margin:4px 0 2px;padding-left:2px;}
.todo-sub{display:flex;align-items:flex-start;gap:7px;padding:4px 0;border-top:1px solid rgba(160,140,200,.08);}
.todo-sub .check-box{width:15px;height:15px;min-width:15px;border-radius:4px;margin-top:1px;}
.todo-sub-name{font-size:11px;font-weight:600;color:var(--text);transition:all .2s;}
.todo-sub-name.done{text-decoration:line-through;opacity:.4;}
.todo-sub-link{display:inline-flex;align-items:center;gap:3px;font-size:9px;color:var(--blue);font-weight:700;text-decoration:none;word-break:break-all;}.todo-sub-link:hover{opacity:.7;}
.todo-sub-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;}.todo-sub-actions .icon-btn{font-size:11px;padding:2px 3px;}
.todo-expand{font-size:10px;color:var(--purple);font-weight:700;cursor:pointer;margin-top:2px;opacity:.7;background:none;border:none;padding:0;font-family:inherit;}.todo-expand:hover{opacity:1;}
.todo-add-sub{font-size:10px;color:var(--purple);font-weight:700;cursor:pointer;margin-top:3px;opacity:.6;background:none;border:none;padding:0;font-family:inherit;}.todo-add-sub:hover{opacity:1;}
.todo-goal-tag{font-size:10px;color:var(--gold);font-weight:700;margin-top:2px;}
.todo-goal-prog{height:3px;background:rgba(248,228,138,.25);border-radius:2px;margin-top:3px;overflow:hidden;}
.todo-goal-prog-fill{height:100%;background:linear-gradient(90deg,#f8c870,#f8e88a);border-radius:2px;}
.shop-total-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0 1px;}
.meal-subtabs{display:flex;gap:5px;padding:7px 13px 3px;}
.meal-subtab{flex:1;background:var(--glass);border:1.5px solid var(--border);border-radius:10px;padding:7px 4px;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:11px;font-weight:700;color:var(--soft);cursor:pointer;text-align:center;transition:all .18s;}
.meal-subtab.active{background:var(--glass2);color:var(--purple);}
.meal-subpage{display:none;}.meal-subpage.active{display:block;}
.search-wrap{padding:7px 13px 3px;position:relative;}
.search-input{background:var(--glass2);border:1.5px solid var(--border);border-radius:12px;padding:9px 13px 9px 34px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:13px;font-weight:700;color:var(--text);outline:none;width:100%;box-shadow:var(--shadow2);}
.search-input::placeholder{color:rgba(160,140,210,.5);}
.search-icon{position:absolute;left:25px;top:50%;transform:translateY(-50%);font-size:14px;pointer-events:none;}
.recipe-card{margin:6px 13px;background:var(--card-bg);border-radius:17px;border:1.5px solid var(--border);box-shadow:var(--shadow2);overflow:hidden;}
.recipe-card-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 15px 9px;cursor:pointer;}
.recipe-card-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:14px;font-weight:700;color:var(--purple);}
.recipe-card-meta{font-size:10px;color:var(--soft);margin-top:2px;font-weight:600;}
.meal-type-badge{font-size:9px;border-radius:5px;padding:2px 6px;font-weight:800;margin-right:3px;}
.mb-breakfast{background:rgba(248,200,80,.2);color:#a07010;}
.mb-lunch{background:rgba(74,170,122,.18);color:#2a7050;}
.mb-dinner{background:rgba(90,138,224,.18);color:#3050a0;}
.mb-snack{background:rgba(224,112,144,.16);color:#a03060;}
.recipe-body{display:none;padding:0 15px 13px;border-top:1.5px solid rgba(160,140,200,.15);}
.recipe-body.open{display:block;}
.recipe-section-title{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--soft);font-weight:700;margin:9px 0 4px;}
.ing-row{display:flex;justify-content:space-between;padding:4px 0;font-size:12px;border-top:1px solid rgba(160,140,200,.1);font-weight:600;}
.step-row{display:flex;gap:7px;padding:4px 0;border-top:1px solid rgba(160,140,200,.1);}
.step-num{width:19px;height:19px;border-radius:50%;background:linear-gradient(135deg,#c8b8f0,#b8c8f0);color:#fff;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.step-text{font-size:12px;color:var(--text);font-weight:600;flex:1;}
.recipe-action-row{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap;}
.recipe-action-btn{flex:1;min-width:110px;background:var(--glass);border:1.5px solid var(--border);border-radius:9px;padding:7px 9px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:11px;font-weight:800;color:var(--text);cursor:pointer;text-align:center;}
.recipe-action-btn.primary{background:linear-gradient(135deg,#c8b8f0,#b8c8f0);color:#fff;border-color:transparent;}
.day-row{margin:4px 13px;background:var(--card-bg);border-radius:13px;border:1.5px solid var(--border);overflow:hidden;box-shadow:var(--shadow2);}
.day-label{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:12px;font-weight:700;padding:7px 13px 5px;background:rgba(255,255,255,.2);border-bottom:1px solid rgba(160,140,200,.15);color:var(--purple);}
.meal-slots{padding:5px 13px 7px;}
.meal-slot{display:flex;align-items:center;gap:7px;padding:4px 0;border-top:1px solid rgba(160,140,200,.1);}
.meal-slot:first-child{border-top:none;}
.slot-label{font-size:10px;font-weight:800;color:var(--soft);width:52px;flex-shrink:0;}
.slot-meal-name{font-size:12px;font-weight:700;color:var(--text);}
.slot-empty{font-size:11px;color:rgba(160,140,200,.5);font-weight:600;}
.slot-add-btn{background:none;border:1px dashed rgba(160,140,200,.35);border-radius:6px;padding:2px 7px;font-size:10px;font-weight:800;color:var(--soft);cursor:pointer;}
.slot-del-btn{background:none;border:none;cursor:pointer;font-size:11px;opacity:.3;padding:1px;}
.ing-check-row{display:flex;align-items:center;gap:7px;padding:5px 0;border-top:1px solid rgba(160,140,200,.1);}
.ing-check-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--purple);}
.ing-check-label{flex:1;font-size:12px;font-weight:700;color:var(--text);}
.ing-check-cost{font-size:11px;color:var(--mint);font-weight:700;}
.tearaway-section{padding:8px 13px 4px;}
.tearaway-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:11px;font-weight:700;color:var(--soft);margin-bottom:6px;text-transform:uppercase;letter-spacing:1px;;display:flex;align-items:center;gap:5px;}
.tearaway-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;}
.tearaway-scroll .empty-state{flex:1;min-width:100%;}
.tearaway-scroll::-webkit-scrollbar{display:none;}
.tearaway-card{flex-shrink:0;width:90px;background:var(--surface);border-radius:4px;box-shadow:2px 3px 12px rgba(80,60,120,.18);overflow:hidden;position:relative;}
.tearaway-top{background:linear-gradient(135deg,#c8b8f0,#b8c8f0);padding:6px 8px 4px;text-align:center;}
.tearaway-month{font-family:'Courier New',Courier,monospace;font-size:8px;color:rgba(255,255,255,.95);letter-spacing:1px;text-transform:uppercase;}
.tearaway-day{font-family:'Courier New',Courier,monospace;font-size:22px;color:#fff;font-weight:700;line-height:1;}
.tearaway-body{padding:6px 8px;text-align:center;border-top:2px dashed rgba(160,140,200,.3);}
.tearaway-name{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:9px;font-weight:700;color:var(--text);margin-bottom:3px;line-height:1.2;}
.tearaway-countdown{font-family:'Courier New',Courier,monospace;font-size:11px;color:var(--purple);font-weight:700;}
.tearaway-days-label{font-size:7px;color:var(--soft);font-weight:700;letter-spacing:.5px;}
.cal-nav{display:flex;align-items:center;justify-content:space-between;padding:7px 13px 4px;}
.cal-nav-label{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:14px;font-weight:700;color:var(--purple);}
.cal-grid{margin:4px 13px;background:var(--card-bg);border-radius:17px;border:1.5px solid var(--border);box-shadow:var(--shadow);padding:12px;}
.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;}
.cal-dow{text-align:center;font-size:9px;font-weight:800;color:var(--soft);}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-day{min-height:38px;border-radius:8px;padding:3px;cursor:pointer;transition:background .15s;position:relative;}
.cal-day:hover{background:rgba(160,140,200,.15);}
.cal-day.today{background:rgba(160,140,200,.2);}
.cal-day.selected{background:linear-gradient(135deg,rgba(200,184,240,.4),rgba(184,200,240,.4));}
.cal-day.other-month{opacity:.3;}
.cal-day-num{font-size:11px;font-weight:800;color:var(--text);text-align:center;}
.cal-dots{display:flex;gap:2px;justify-content:center;flex-wrap:wrap;margin-top:2px;}
.cal-dot{width:5px;height:5px;border-radius:50%;}
.cal-events-panel{margin:6px 13px;background:var(--card-bg);border-radius:15px;border:1.5px solid var(--border);padding:12px 14px;box-shadow:var(--shadow2);}
.cal-events-date{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:13px;font-weight:700;color:var(--purple);margin-bottom:8px;}
.cal-event-item{padding:8px 0;border-top:1px solid rgba(160,140,200,.15);}
.cal-event-name{font-size:13px;font-weight:700;color:var(--text);}
.cal-event-meta{font-size:10px;color:var(--soft);font-weight:600;margin-top:1px;}
.cal-event-expanded{background:rgba(255,255,255,.25);border-radius:10px;padding:9px;margin-top:7px;}
.cal-event-link{font-size:11px;font-weight:700;margin-bottom:4px;color:var(--text);}
.cal-event-prog{height:5px;background:rgba(248,228,138,.25);border-radius:3px;overflow:hidden;margin-top:4px;}
.cal-event-prog-fill{height:100%;background:linear-gradient(90deg,#f8c870,#f8e88a);border-radius:3px;}
@keyframes confettiBurst{0%{transform:scale(0) rotate(0deg);opacity:1;}100%{transform:scale(2.5) rotate(360deg);opacity:0;}}
@keyframes checkBounce{0%,100%{transform:scale(1);}50%{transform:scale(1.3);}}
.confetti-particle{position:fixed;pointer-events:none;z-index:9999;font-size:18px;animation:confettiBurst .8s ease-out forwards;}
.ing-view-row{border-top:1px solid rgba(160,140,200,.1);padding:6px 0;}
.ing-view-main{display:flex;align-items:center;gap:6px;}
.ing-amount-input{width:54px;background:rgba(255,255,255,.6);border:1.5px solid rgba(160,140,200,.35);border-radius:8px;padding:4px 6px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:700;color:var(--purple);outline:none;text-align:center;}
.ing-unit-select{background:rgba(255,255,255,.6);border:1.5px solid rgba(160,140,200,.35);border-radius:8px;padding:4px 6px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:12px;font-weight:700;color:var(--purple);outline:none;appearance:none;cursor:pointer;max-width:80px;}
.ing-name-label{flex:1;font-size:13px;font-weight:700;color:var(--text);}
.ing-cost-tag{font-size:10px;color:var(--soft);font-weight:600;white-space:nowrap;}
.ing-convert-toggle{background:none;border:none;font-size:14px;cursor:pointer;opacity:.5;padding:2px;flex-shrink:0;}
.ing-conversions{background:rgba(160,140,200,.08);border-radius:8px;padding:6px 10px;margin-top:5px;font-size:11px;color:var(--soft);font-weight:700;line-height:1.8;display:none;}
.ing-conversions.open{display:block;}
.ing-conv-item{display:inline-block;margin-right:10px;color:var(--purple);}
.picnic-wrap{background:repeating-linear-gradient(45deg,rgba(180,140,100,.12) 0px,rgba(180,140,100,.12) 8px,rgba(160,120,90,.08) 8px,rgba(160,120,90,.08) 16px),linear-gradient(160deg,#3d2e1f,#2a2018);padding:14px 13px 20px;}
.diner-menu{max-width:380px;margin:0 auto;background-color:#fdf8ee;background-image:repeating-linear-gradient(0deg,transparent,transparent 4px,rgba(80,60,40,.02) 4px,rgba(80,60,40,.02) 5px);border-radius:2px;box-shadow:0 2px 0 #1a1208,0 8px 32px rgba(0,0,0,.45),inset 0 0 0 3px #5a4030,inset 0 0 0 5px #8a6848;overflow:hidden;position:relative;}
.diner-menu::after{content:'';position:absolute;inset:5px;border:1px solid rgba(160,130,80,.2);pointer-events:none;border-radius:1px;}
.diner-menu-header{background:linear-gradient(180deg,#a88050,#8a6840);padding:18px 16px 14px;text-align:center;border-bottom:3px double #5a4030;position:relative;}
.diner-menu-header::before{content:'\2726  EST. 1952  \2726';position:absolute;top:7px;left:0;right:0;font-family:'Courier New',Courier,monospace;font-size:8px;color:rgba(255,255,255,.45);letter-spacing:3px;}
.diner-title{font-family:Georgia,'Times New Roman',serif;font-size:26px;color:#fff8ee;letter-spacing:2px;text-transform:capitalize;text-shadow:1px 2px 4px rgba(40,25,10,.5);font-weight:700;font-style:italic;}
.diner-subtitle{font-family:'Courier New',Courier,monospace;font-size:10px;color:rgba(255,248,238,.75);margin-top:4px;letter-spacing:2px;text-transform:uppercase;}
.diner-week-nav{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.15);}
.diner-week-btn{background:rgba(255,248,238,.15);border:1px solid rgba(255,248,238,.35);border-radius:4px;padding:4px 12px;font-family:'Courier New',Courier,monospace;font-size:14px;color:#fff8ee;cursor:pointer;line-height:1;}
.diner-week-label{font-family:'Courier New',Courier,monospace;font-size:11px;color:rgba(255,248,238,.9);letter-spacing:1.5px;font-weight:700;}
.diner-day-section{border-bottom:1px solid rgba(160,130,80,.18);}
.diner-day-section:last-of-type{border-bottom:none;}
.diner-day-today{background:rgba(200,160,80,.06);}
.diner-day-header{background:rgba(180,140,80,.12);padding:9px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px dashed rgba(160,130,80,.25);position:relative;}
.diner-day-today .diner-day-header{background:linear-gradient(90deg,rgba(200,160,80,.18),rgba(180,140,80,.08));}
.diner-day-name{font-family:Georgia,'Times New Roman',serif;font-size:15px;color:#5a3a10;font-weight:700;letter-spacing:.5px;}
.diner-day-meta{display:flex;align-items:center;gap:8px;}
.diner-day-date{font-family:'Courier New',Courier,monospace;font-size:10px;color:#9a7a40;letter-spacing:.5px;}
.diner-today-badge{font-family:'Courier New',Courier,monospace;font-size:8px;font-weight:800;color:#8a6030;border:1.5px solid #b89060;border-radius:3px;padding:2px 6px;letter-spacing:1px;background:rgba(255,248,238,.6);}
.diner-slots{padding:6px 14px 10px;}
.diner-slot{padding:6px 0;}
.diner-slot-cat{font-family:'Courier New',Courier,monospace;font-size:9px;color:#b89060;letter-spacing:2px;text-transform:uppercase;margin-bottom:3px;display:flex;align-items:center;gap:6px;}
.diner-slot-cat::after{content:'';flex:1;border-bottom:1px solid rgba(180,140,80,.2);}
.diner-menu-item{display:flex;align-items:baseline;gap:0;padding:2px 0 4px;font-family:Georgia,'Times New Roman',serif;position:relative;}
.diner-menu-item-empty{cursor:pointer;opacity:.55;padding:4px 0;}
.diner-menu-item-empty:hover{opacity:.75;}
.diner-item-name{font-size:14px;color:#3a2a10;font-weight:600;flex-shrink:1;}
.diner-menu-item-empty .diner-item-name{font-size:12px;font-style:italic;color:#9a7a50;font-weight:400;}
.diner-item-dots{flex:1;border-bottom:1px dotted rgba(160,130,80,.35);margin:0 6px;height:1em;min-width:16px;}
.diner-item-price{font-family:'Courier New',Courier,monospace;font-size:12px;color:#7a5a20;font-weight:700;white-space:nowrap;}
.diner-item-actions{margin-left:6px;flex-shrink:0;}
.diner-add-btn{background:none;border:none;border-bottom:1px dashed rgba(160,130,80,.4);padding:0 2px;font-family:'Courier New',Courier,monospace;font-size:10px;color:#9a7a40;cursor:pointer;letter-spacing:.5px;}
.diner-del-btn{background:none;border:none;font-size:14px;color:#b89060;opacity:.45;cursor:pointer;padding:0 2px;line-height:1;}
.diner-del-btn:hover{opacity:.8;}
.diner-day-ornament{text-align:center;padding:4px 0;font-size:10px;color:rgba(160,130,80,.35);letter-spacing:6px;}
.diner-footer{background:rgba(180,140,80,.1);padding:12px 16px;text-align:center;border-top:3px double rgba(160,130,80,.35);}
.diner-footer-txt{font-family:'Courier New',Courier,monospace;font-size:10px;color:rgba(120,90,50,.7);letter-spacing:2px;}
.diner-footer-sub{font-family:Georgia,'Times New Roman',serif;font-size:11px;color:rgba(120,90,50,.5);margin-top:4px;font-style:italic;}
.ing-edit-row{display:flex;gap:5px;margin-bottom:7px;align-items:center;flex-wrap:wrap;}.ing-edit-row .finput,.ing-edit-row .fselect{margin-bottom:0;}
.routine-pills{display:flex;gap:6px;padding:10px 13px 4px;overflow-x:auto;}
.routine-pills::-webkit-scrollbar{display:none;}
.routine-pill{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;background:rgba(255,255,255,.04);border:1px solid rgba(196,181,253,.2);border-radius:20px;padding:7px 14px;font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:12px;font-weight:700;color:var(--soft);cursor:pointer;transition:all .18s;white-space:nowrap;}
.routine-pill.active{background:linear-gradient(135deg,rgba(124,58,237,.3),rgba(109,40,217,.2));color:var(--purple);border-color:rgba(196,181,253,.4);}
.routine-section{display:none;padding-bottom:20px;}
.routine-section.active{display:block;}
.skincare-sub-pills{display:flex;gap:6px;padding:6px 13px 4px;}
.skincare-pill{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:1;background:rgba(255,255,255,.04);border:1px solid rgba(196,181,253,.15);border-radius:10px;padding:6px 10px;font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:11px;font-weight:700;color:var(--soft);cursor:pointer;text-align:center;transition:all .18s;}
.skincare-pill.active{background:rgba(196,181,253,.15);color:var(--purple);border-color:rgba(196,181,253,.35);}
.skincare-sub{display:none;}.skincare-sub.active{display:block;}
.body-sub-pills{display:flex;gap:6px;padding:6px 13px 4px;}
.body-sub{display:none;}.body-sub.active{display:block;}
.routine-card{margin:6px 13px;background:var(--card-bg);border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow2);overflow:hidden;}
.routine-step{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid rgba(196,181,253,.08);}
.routine-step-check{width:22px;height:22px;border-radius:50%;border:2px solid rgba(196,181,253,.3);background:rgba(255,255,255,.03);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;}
.routine-step-check.done{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed;}
.routine-step-check.done::after{content:"¹3";color:#fff;font-size:11px;font-weight:800;}
.routine-step-info{flex:1;}
.routine-step-name{font-size:13px;font-weight:700;color:var(--text);}
.routine-step-name.done{text-decoration:line-through;opacity:.4;}
.routine-step-product{font-size:10px;color:var(--soft);font-weight:600;margin-top:1px;}
.routine-step-note{font-size:10px;color:var(--peach);font-weight:600;margin-top:1px;}
.routine-step-actions{display:flex;align-items:center;gap:6px;}
.timer-btn{background:rgba(196,181,253,.1);border:1px solid rgba(196,181,253,.2);border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700;color:var(--purple);cursor:pointer;}
.timer-btn.running{background:rgba(251,146,60,.15);border-color:rgba(251,146,60,.3);color:var(--peach);}
.low-btn{background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.2);border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700;color:var(--gold);cursor:pointer;}
.gym-today{margin:6px 13px;background:linear-gradient(135deg,rgba(124,58,237,.2),rgba(109,40,217,.12));border:1px solid rgba(196,181,253,.25);border-radius:14px;padding:14px 15px;box-shadow:0 4px 20px rgba(109,40,217,.2);}
.gym-today-label{font-size:9px;font-weight:700;color:var(--soft);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:4px;}
.gym-today-title{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:18px;font-weight:800;color:var(--purple);margin-bottom:2px;}
.gym-today-note{font-size:11px;color:var(--soft);font-weight:600;margin-bottom:12px;font-style:italic;}
.gym-exercise{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid rgba(196,181,253,.08);}
.gym-ex-check{width:22px;height:22px;border-radius:6px;border:2px solid rgba(196,181,253,.3);background:rgba(255,255,255,.03);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:all .2s;}
.gym-ex-check.done{background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed;}
.gym-ex-check.done::after{content:"¹3";color:#fff;font-size:11px;font-weight:800;}
.gym-ex-info{flex:1;}
.gym-ex-name{font-size:13px;font-weight:700;color:var(--text);}
.gym-ex-reps{font-size:11px;color:var(--soft);font-weight:600;margin-top:2px;}
.gym-ex-weight{display:flex;align-items:center;gap:6px;margin-top:5px;}
.gym-weight-input{width:70px;background:rgba(255,255,255,.06);border:1px solid rgba(196,181,253,.2);border-radius:7px;padding:4px 8px;font-size:12px;font-weight:700;color:var(--purple);outline:none;text-align:center;}
.gym-weight-last{font-size:10px;color:var(--mint);font-weight:700;}
.gym-week-day{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:10px 13px;margin:0 13px 6px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;}
.gym-week-day.today{border-color:rgba(196,181,253,.4);background:rgba(196,181,253,.06);}
.gym-day-label{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:13px;font-weight:700;color:var(--text);}
.gym-day-sub{font-size:10px;color:var(--soft);font-weight:600;margin-top:1px;}
.gym-day-emoji{font-size:18px;}
.night-step{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid rgba(196,181,253,.08);}
.night-recur-badge{font-size:9px;border-radius:4px;padding:2px 6px;font-weight:800;background:rgba(196,181,253,.12);color:var(--soft);}
.body-log-card{margin:6px 13px;background:var(--card-bg);border-radius:14px;border:1px solid var(--border);padding:14px 15px;box-shadow:var(--shadow2);}
.body-log-row{display:flex;gap:8px;margin-bottom:8px;}
.body-log-input{flex:1;background:var(--input-bg);border:1px solid rgba(196,181,253,.2);border-radius:10px;padding:9px 12px;font-size:13px;font-weight:700;color:var(--text);outline:none;}
.body-chart-wrap{margin:6px 13px;background:var(--card-bg);border-radius:14px;border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow2);}
.body-chart-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;cursor:pointer;}
.body-chart-title{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:13px;font-weight:700;color:var(--text);}
.body-chart-body{padding:0 14px 14px;display:none;}
.body-chart-body.open{display:block;}
.chart-filter-pills{display:flex;gap:5px;margin-bottom:10px;}
.chart-filter-pill{background:rgba(255,255,255,.04);border:1px solid rgba(196,181,253,.15);border-radius:8px;padding:4px 10px;font-size:10px;font-weight:700;color:var(--soft);cursor:pointer;}
.chart-filter-pill.active{background:rgba(196,181,253,.15);color:var(--purple);}
.measure-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 13px;}
.measure-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:12px 13px;box-shadow:var(--shadow2);}
.measure-label{font-size:9px;font-weight:700;color:var(--soft);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px;}
.measure-val{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:22px;font-weight:800;color:var(--purple);}
.measure-unit{font-size:11px;color:var(--soft);}
.measure-change{font-size:10px;font-weight:700;margin-top:3px;}
.measure-log-btn{font-size:10px;background:rgba(196,181,253,.1);border:1px solid rgba(196,181,253,.2);border-radius:6px;padding:3px 8px;color:var(--soft);cursor:pointer;margin-top:5px;font-weight:700;display:block;width:100%;text-align:center;}
.routine-done-banner{margin:10px 13px;background:linear-gradient(135deg,rgba(52,211,153,.15),rgba(52,211,153,.08));border:1px solid rgba(52,211,153,.3);border-radius:12px;padding:12px 14px;text-align:center;font-size:13px;font-weight:700;color:var(--mint);}
.streak-banner{margin:6px 13px;background:var(--card-bg);border-radius:14px;border:1px solid var(--border);padding:12px 14px;display:flex;align-items:center;justify-content:space-between;}
.streak-val{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:28px;font-weight:800;color:var(--gold);}
.routine-add-btn{display:flex;align-items:center;justify-content:center;gap:4px;background:rgba(255,255,255,.03);border:1px dashed rgba(196,181,253,.2);border-radius:10px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--soft);cursor:pointer;width:calc(100% - 26px);margin:4px 13px;transition:all .15s;}
.day-toggle-btn{background:rgba(255,255,255,.04);border:1px solid rgba(196,181,253,.2);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;color:var(--soft);cursor:pointer;transition:all .15s;}
.day-toggle-btn.active{background:rgba(124,58,237,.25);border-color:rgba(196,181,253,.5);color:var(--purple);}
.gym-edit-row{display:flex;align-items:center;gap:6px;}


.ptr-indicator{position:fixed;top:0;left:0;right:0;z-index:9998;display:flex;align-items:flex-end;justify-content:center;height:0;overflow:hidden;opacity:0;pointer-events:none;background:rgba(124,58,237,.15);transition:height .2s,opacity .2s;backdrop-filter:blur(10px);padding-top:var(--safe-top);box-sizing:border-box;}
.ptr-indicator.visible{height:calc(56px + var(--safe-top));opacity:1;}
.ptr-indicator-inner{font-size:13px;font-weight:700;color:var(--purple);display:flex;align-items:center;gap:8px;}
.ptr-spinner{animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.date-card-moon{font-size:20px;margin-top:4px;cursor:pointer;line-height:1;}
.gym-day-edit-btn{background:rgba(196,181,253,.08);border:1px solid rgba(196,181,253,.15);border-radius:6px;padding:3px 8px;font-size:10px;font-weight:700;color:var(--soft);cursor:pointer;}


.paycheck-hero-row{display:flex;gap:8px;margin-top:10px;}
.header-hero-card{margin-top:10px;background:linear-gradient(135deg,rgba(124,58,237,.2),rgba(109,40,217,.12));border:1px solid rgba(196,181,253,.18);border-radius:16px;padding:13px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 6px 24px rgba(109,40,217,.2);}
.header-hero-left{display:flex;flex-direction:column;gap:2px;}
.header-hero-date{display:flex;align-items:baseline;gap:6px;}
.header-hero-month{font-size:10px;font-weight:700;color:rgba(196,181,253,.4);letter-spacing:1.5px;text-transform:uppercase;}
.header-hero-day{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:22px;font-weight:800;color:var(--purple);line-height:1;letter-spacing:-0.5px;}
.header-hero-weekday{font-size:9px;font-weight:600;color:rgba(196,181,253,.3);letter-spacing:.5px;text-transform:uppercase;}
.header-hero-label{font-size:8px;font-weight:800;color:rgba(196,181,253,.35);letter-spacing:2px;text-transform:uppercase;margin-top:4px;}
.header-hero-amount{display:flex;align-items:baseline;gap:2px;}
.header-hero-dollar{font-size:14px;font-weight:300;color:var(--purple);opacity:.5;align-self:flex-start;margin-top:4px;}
.header-hero-amount span:last-child{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:30px;font-weight:800;color:var(--purple);letter-spacing:-1px;line-height:1;}
.header-hero-right{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;}
.header-paycheck-row{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:0 2px;}
.paycheck-card{flex:1;background:linear-gradient(135deg,rgba(124,58,237,.22),rgba(109,40,217,.14));border:1px solid rgba(196,181,253,.18);border-radius:16px;padding:13px 14px 11px;box-shadow:0 8px 28px rgba(109,40,217,.22);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-width:0;gap:4px;}
.date-card{flex:1;background:rgba(196,181,253,.06);border:1px solid rgba(196,181,253,.15);border-radius:16px;padding:12px 14px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-shadow:0 4px 16px rgba(0,0,0,.15);min-width:0;cursor:pointer;}
.date-card-left{display:flex;flex-direction:column;align-items:flex-start;gap:0px;}
.date-card-month{font-size:10px;font-weight:700;color:rgba(196,181,253,.45);letter-spacing:1.5px;text-transform:uppercase;}
.date-card-day{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:38px;font-weight:800;color:var(--purple);line-height:1;letter-spacing:-1px;}
.date-card-weekday{font-size:9px;font-weight:600;color:rgba(196,181,253,.3);letter-spacing:.5px;text-transform:uppercase;margin-top:1px;}
.date-card-right{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;}
.date-card-moon{font-size:18px;line-height:1;cursor:pointer;}
.date-card-tap{font-size:7px;color:rgba(196,181,253,.2);letter-spacing:.5px;text-align:center;margin-top:2px;}
.date-weather{display:flex;align-items:center;gap:4px;margin-top:6px;justify-content:center;}
.outfit-tip-overlay{position:fixed;inset:0;background:rgba(80,40,100,.45);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:400;display:none;align-items:flex-end;}
.outfit-tip-overlay.open{display:flex;}
.outfit-tip-panel{background:linear-gradient(165deg,#fff5fb 0%,#f8f0ff 45%,#f0ecff 100%);border-radius:28px 28px 0 0;padding:0 0 calc(28px + var(--safe-bottom));width:100%;border-top:2px solid rgba(244,114,182,.35);box-shadow:0 -8px 40px rgba(192,96,160,.2);animation:slideUp .25s ease;text-align:center;overflow:hidden;max-height:min(88vh,calc(var(--app-height,100vh) * 0.88));overflow-y:auto;-webkit-overflow-scrolling:touch;}
[data-theme="dark"] .outfit-tip-panel{background:linear-gradient(165deg,#2a1a2e 0%,#221a30 50%,#1e1a2e 100%);border-top-color:rgba(244,114,182,.25);}
.outfit-tip-hero{background:linear-gradient(135deg,rgba(244,114,182,.22),rgba(196,181,253,.28));padding:20px 20px 16px;border-bottom:1px dashed rgba(244,114,182,.2);position:relative;}
.outfit-tip-hero::before{content:'\2728';position:absolute;top:10px;left:16px;font-size:14px;opacity:.5;}
.outfit-tip-hero::after{content:'\2728';position:absolute;top:14px;right:18px;font-size:11px;opacity:.35;}
.outfit-tip-kicker{font-family:'Courier New',Courier,monospace;font-size:9px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:var(--pink);margin-bottom:6px;}
.outfit-tip-temp{display:inline-flex;align-items:baseline;gap:2px;background:rgba(255,255,255,.55);border:1.5px solid rgba(244,114,182,.25);border-radius:20px;padding:4px 12px;margin-top:8px;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;}
[data-theme="dark"] .outfit-tip-temp{background:rgba(255,255,255,.06);}
.outfit-tip-temp-val{font-size:22px;font-weight:800;color:var(--purple);letter-spacing:-.5px;}
.outfit-tip-temp-unit{font-size:12px;font-weight:700;color:var(--soft);}
.outfit-tip-body{padding:16px 18px 4px;text-align:left;}
.outfit-tip-emoji{font-size:52px;margin-bottom:8px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 4px 12px rgba(244,114,182,.2));}
.outfit-tip-text{font-family:-apple-system,"SF Pro Rounded","Helvetica Neue",sans-serif;font-size:19px;font-weight:800;color:var(--purple);margin-bottom:10px;line-height:1.25;text-align:center;}
.outfit-tip-detail{font-size:13px;color:var(--text-soft);font-weight:600;line-height:1.55;}
.outfit-tip-card{background:rgba(255,255,255,.65);border:1.5px solid rgba(196,181,253,.25);border-radius:16px;padding:12px 14px;margin-bottom:10px;box-shadow:0 2px 12px rgba(160,140,200,.08);}
[data-theme="dark"] .outfit-tip-card{background:rgba(255,255,255,.05);border-color:rgba(196,181,253,.15);}
.outfit-tip-card-label{font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--pink);margin-bottom:5px;}
.outfit-tip-forecast{font-size:12px;color:var(--soft);font-weight:600;line-height:1.5;font-style:italic;}
.outfit-tip-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}
.outfit-tip-stat{flex:1;min-width:calc(50% - 6px);background:rgba(196,181,253,.12);border-radius:12px;padding:8px 10px;text-align:center;}
.outfit-tip-stat-val{font-size:14px;font-weight:800;color:var(--purple);}
.outfit-tip-stat-lbl{font-size:9px;font-weight:700;color:var(--soft);margin-top:2px;letter-spacing:.3px;}
.outfit-tip-btn{margin:12px 18px 0;width:calc(100% - 36px);background:linear-gradient(135deg,#f472b6,#c084fc);border:none;border-radius:16px;padding:13px;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:14px;font-weight:800;color:#fff;cursor:pointer;box-shadow:0 4px 16px rgba(244,114,182,.35);}
.outfit-tip-btn:active{transform:scale(.98);opacity:.92;}
.sign-wrap{top:var(--safe-top);}
.ios-install-hint{display:none;align-items:flex-start;gap:10px;background:rgba(124,58,237,.12);border:1.5px solid rgba(196,181,253,.22);border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:12px;color:var(--soft);line-height:1.55;font-weight:600;}
.ios-install-hint strong{color:var(--purple);font-weight:800;}
.standalone .ios-install-hint{display:none!important;}
@media (max-width:768px){
.finput,.fselect,.ftextarea,.search-input,input[type="text"],input[type="number"],input[type="date"],input[type="time"],select,textarea{font-size:16px!important;}
#paycheckInput{font-size:16px!important;}
.ing-amount-input,.ing-unit-select{font-size:16px!important;}
}
.cal-weather-icon{font-size:10px;display:block;text-align:center;margin-top:2px;}

.bal-row .lbl-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block;}
.r-bills .lbl-dot{background:var(--pink);}.r-debt .lbl-dot{background:var(--rose);}.r-savings .lbl-dot{background:var(--gold);}
.r-groceries .lbl-dot{background:var(--mint);}.r-shopping .lbl-dot{background:var(--blue);}.r-spent .lbl-dot{background:var(--peach);}.r-total .lbl-dot{background:var(--purple);}
.check-box.checked,.routine-step-check.done,.gym-ex-check.done{animation:checkBounce .35s ease;}
.date-card-hint{font-size:8px;color:var(--villa-pink);font-weight:800;letter-spacing:1.2px;text-transform:uppercase;margin-top:3px;opacity:.85;}
.sign-panel{border-top:3px solid rgba(244,114,182,.35);box-shadow:0 8px 32px rgba(100,80,180,.18),0 0 24px var(--villa-glow);}
.sign-marquee{overflow:hidden;background:linear-gradient(90deg,var(--villa-soft),rgba(196,181,253,.12),var(--villa-soft));padding:7px 0;border-bottom:1px dashed rgba(244,114,182,.2);}
.sign-marquee-track{display:flex;width:max-content;animation:signMarquee 22s linear infinite;}
.sign-marquee-text{font-family:'Courier New',Courier,monospace;font-size:9px;font-weight:800;letter-spacing:2.5px;color:var(--villa-pink);text-transform:uppercase;white-space:nowrap;padding:0 24px;}
@keyframes signMarquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
.tearaway-card{width:96px;background:#faf8ff;border-radius:3px 3px 2px 2px;box-shadow:0 4px 16px rgba(80,60,120,.22),0 0 0 4px #fff,0 0 0 5px rgba(196,181,253,.35);transform:rotate(-2deg);transition:transform .2s;}
.tearaway-card:nth-child(even){transform:rotate(1.5deg);}
.tearaway-card:hover{transform:rotate(0deg) scale(1.04);}
[data-theme="dark"] .tearaway-card{background:#2a2438;box-shadow:0 4px 16px rgba(0,0,0,.35),0 0 0 4px #1e1a2e,0 0 0 5px rgba(196,181,253,.2);}
.tearaway-top{background:linear-gradient(135deg,#f9a8d4,#c4b5fd);padding:8px 8px 5px;}
.tearaway-pin{position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:14px;height:14px;background:radial-gradient(circle at 35% 35%,#fbbf24,#d97706);border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.25);z-index:2;}
.tearaway-body{padding:7px 8px 8px;border-top:2px dashed rgba(196,181,253,.35);background:var(--surface);}
.tearaway-countdown{font-size:10px;color:var(--villa-pink);font-weight:800;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;letter-spacing:.3px;}
.tearaway-days-label{font-size:7px;color:var(--soft);font-weight:700;letter-spacing:.8px;text-transform:uppercase;}
.tearaway-villa{font-size:6px;color:rgba(244,114,182,.6);letter-spacing:1px;margin-top:2px;font-weight:800;text-transform:uppercase;}
.empty-state{text-align:center;padding:20px 14px;margin:4px 0;}
.empty-state-emoji{font-size:36px;margin-bottom:8px;line-height:1;filter:drop-shadow(0 3px 8px var(--villa-glow));}
.empty-state-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:13px;font-weight:800;color:var(--purple);margin-bottom:4px;}
.empty-state-hint{font-size:11px;color:var(--soft);font-weight:600;line-height:1.45;opacity:.85;}
.goal-hearts{display:flex;gap:3px;margin:5px 0 4px;}
.goal-heart{font-size:11px;opacity:.2;transition:opacity .3s,transform .2s;}
.goal-heart.filled{opacity:1;transform:scale(1.05);}
.goal-milestone{font-size:9px;font-weight:800;color:var(--villa-pink);letter-spacing:.5px;text-transform:uppercase;margin-top:2px;}
.prog-bar.goal-hearts-bar{height:8px;background:rgba(244,114,182,.15);border-radius:6px;}
.prog-fill.goal-hearts-fill{background:linear-gradient(90deg,var(--villa-pink),var(--villa-lavender));}
.shop-receipt-strip{margin-top:10px;padding:10px 12px;background:var(--receipt-bg);border:1.5px dashed var(--receipt-border);border-radius:4px;text-align:center;position:relative;}
.shop-receipt-strip::before{content:'\2726';position:absolute;top:4px;left:8px;font-size:8px;opacity:.35;color:var(--purple);}
.shop-receipt-strip::after{content:'\2726';position:absolute;top:4px;right:8px;font-size:8px;opacity:.35;color:var(--purple);}
.shop-receipt-kicker{font-family:'Courier New',Courier,monospace;font-size:8px;color:var(--receipt-ink-faint);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px;}
.shop-receipt-total{font-family:'Courier New',Courier,monospace;font-size:18px;font-weight:800;color:var(--purple);}
.shop-receipt-sub{font-size:9px;color:var(--receipt-ink-soft);font-weight:700;margin-top:3px;}
.confirm-box{background:linear-gradient(165deg,var(--card-bg),rgba(244,114,182,.06));border:2px solid rgba(244,114,182,.25);position:relative;overflow:hidden;}
.confirm-box::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--villa-pink),var(--villa-lavender),var(--villa-pink));}
.confirm-kicker{font-family:'Courier New',Courier,monospace;font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--villa-pink);margin-bottom:6px;}
.confirm-box .btn-cancel{color:var(--purple);}
.confirm-box .btn-danger{background:linear-gradient(135deg,rgba(244,114,182,.25),rgba(192,96,160,.2));border-color:rgba(244,114,182,.4);}
.routine-card{background:linear-gradient(180deg,rgba(244,114,182,.04),var(--card-bg));border:1px solid rgba(196,181,253,.2);box-shadow:0 4px 20px rgba(109,40,217,.1);}
.routine-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,transparent,var(--villa-lavender),var(--villa-pink),transparent);opacity:.5;}
.routine-step{background:rgba(255,255,255,.02);}
.routine-step-check.done::after{content:'\2713';color:#fff;font-size:11px;font-weight:800;}
.gym-ex-check.done::after{content:'\2713';color:#fff;font-size:11px;font-weight:800;}
.undo-toast{position:fixed;bottom:calc(28px + var(--safe-bottom));left:50%;transform:translateX(-50%) rotate(-1deg);background:var(--sticky-bg);border:1.5px solid var(--sticky-border);border-radius:4px 16px 16px 4px;padding:12px 16px;font-family:Georgia,'Times New Roman',serif;font-size:13px;font-weight:700;color:var(--sticky-ink);z-index:9999;display:flex;align-items:center;gap:12px;box-shadow:3px 4px 16px rgba(180,160,60,.22);max-width:calc(100vw - 24px);animation:stickyPop .25s ease;}
.undo-toast::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#e8c840;border-radius:4px 0 0 4px;}
.undo-toast-btn{background:rgba(196,181,253,.25);border:1px solid rgba(160,140,220,.35);border-radius:6px;padding:3px 10px;font-family:-apple-system,'SF Pro Text','Helvetica Neue',sans-serif;font-size:11px;font-weight:800;color:var(--purple);cursor:pointer;flex-shrink:0;}
@keyframes stickyPop{from{opacity:0;transform:translateX(-50%) rotate(-1deg) translateY(12px);}to{opacity:1;transform:translateX(-50%) rotate(-1deg) translateY(0);}}
.onboard-step-villa .onboard-card{background:linear-gradient(165deg,rgba(244,114,182,.12),var(--glass2),rgba(196,181,253,.1));border-color:rgba(244,114,182,.3);}
.onboard-step-villa .onboard-title{background:linear-gradient(135deg,var(--villa-pink),var(--villa-lavender));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.settings-section-hdr{font-family:'Courier New',Courier,monospace;font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--villa-pink);padding:14px 0 6px;display:flex;align-items:center;gap:6px;}
.settings-section-hdr:first-child{padding-top:0;}
.settings-item-label{display:flex;align-items:center;gap:5px;}
.payday-celebration-overlay{display:none;position:fixed;inset:0;background:rgba(80,40,100,.5);backdrop-filter:blur(10px);z-index:450;align-items:flex-end;pointer-events:none;}
.payday-celebration-overlay.open{display:flex;pointer-events:auto;}
.payday-celebration-panel{background:linear-gradient(165deg,#fff5fb,#f8f0ff 50%,#f0ecff);border-radius:28px 28px 0 0;padding:28px 24px calc(32px + var(--safe-bottom));width:100%;border-top:2px solid rgba(244,114,182,.4);text-align:center;animation:slideUp .28s ease;}
[data-theme="dark"] .payday-celebration-panel{background:linear-gradient(165deg,#2a1a2e,#221a30,#1e1a2e);}
.payday-celebration-emoji{font-size:56px;margin-bottom:10px;animation:checkBounce .6s ease;}
.payday-celebration-title{font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:24px;font-weight:800;color:var(--purple);margin-bottom:6px;}
.payday-celebration-sub{font-size:14px;color:var(--soft);font-weight:600;line-height:1.5;margin-bottom:18px;}
.payday-celebration-amt{font-family:'Courier New',Courier,monospace;font-size:32px;font-weight:800;color:var(--villa-pink);margin-bottom:16px;}
.payday-celebration-btn{width:100%;background:linear-gradient(135deg,#f472b6,#c084fc);border:none;border-radius:16px;padding:14px;font-family:-apple-system,'SF Pro Rounded','Helvetica Neue',sans-serif;font-size:14px;font-weight:800;color:#fff;cursor:pointer;box-shadow:0 4px 16px rgba(244,114,182,.35);}
.help-section{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(196,181,253,.1);}
.help-section:last-child{border-bottom:none;margin-bottom:0;}
.help-heading{font-size:13px;font-weight:800;color:var(--purple);letter-spacing:.5px;margin-bottom:6px;display:flex;align-items:center;}
.help-text{font-size:12px;color:var(--soft);line-height:1.6;margin:0 0 6px;font-weight:500;}
.help-text b{color:var(--text);}
.auth-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(150deg,var(--bg-grad-1),var(--bg-grad-3));}
.auth-card{background:var(--glass2);border:1.5px solid var(--border);border-radius:28px;padding:28px 22px;width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center;}
.auth-error{font-size:12px;color:var(--pink);font-weight:700;margin-bottom:10px;text-align:left;}
.activity-hint{font-size:11px;color:var(--soft);font-weight:600;margin:-4px 0 12px;}
.activity-log-list{display:flex;flex-direction:column;gap:10px;max-height:70vh;overflow:auto;}
.activity-row{background:var(--section-bg);border:1px solid var(--border);border-radius:12px;padding:10px 12px;text-align:left;}
.activity-when{font-size:10px;color:var(--soft);font-weight:700;margin-bottom:4px;}
.activity-who{font-size:12px;font-weight:700;color:var(--purple);word-break:break-all;}
.activity-action{font-size:13px;font-weight:800;color:var(--text);margin-top:2px;}
.activity-detail{font-size:11px;color:var(--soft);margin-top:4px;word-break:break-word;}
.activity-empty{font-size:13px;color:var(--soft);font-weight:600;padding:16px 0;text-align:center;}
.auth-expired-hint{font-size:11px;color:var(--soft);font-weight:600;line-height:1.4;margin:12px 0 0;text-align:center;}
.admin-users-sub{font-size:12px;color:var(--soft);font-weight:600;line-height:1.4;margin:-4px 0 12px;text-align:left;}
.admin-invite-row{display:flex;gap:8px;align-items:stretch;margin-bottom:4px;}
.admin-users-list-hdr{font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--soft);margin:16px 0 8px;text-align:left;}
.admin-users-list{display:flex;flex-direction:column;gap:8px;max-height:min(70vh,520px);overflow:auto;text-align:left;}
.admin-user-row{background:var(--section-bg);border:1px solid var(--border);border-radius:12px;padding:10px 12px;}
.admin-user-email{font-size:13px;font-weight:700;color:var(--text);word-break:break-all;}
.admin-user-meta{font-size:10px;color:var(--soft);font-weight:600;margin-top:2px;}
.admin-user-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.admin-user-actions .settings-btn-sm{font-size:10px;}
.admin-user-actions .settings-btn-sm.danger{color:var(--pink);}
.admin-invite-ok{color:var(--mint)!important;}
