:root{--font:"Elms Sans",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--body-bg:rgba(23,174,226,.13);--ink:#102d4b;--muted:#6c7a88;--calendar:#1f83bb;--calendar-2:#15699e;--calendar-line:rgba(255,255,255,.14);--green:#16c86a;--green2:#64f08e;--blue:#17aee2;--card:#fff;--shadow:0 24px 62px rgba(16,45,75,.14);--soft-shadow:0 12px 30px rgba(16,45,75,.10);font-family:var(--font);font-size:17px;color-scheme:light}body.dark{--body-bg:#07111d;--ink:#f7fbff;--muted:rgba(235,246,255,.72);--card:#0f1722;--shadow:0 26px 70px rgba(0,0,0,.28);--soft-shadow:0 16px 34px rgba(0,0,0,.22);color-scheme:dark}*{box-sizing:border-box}body,html{height:100%}body{margin:0;min-height:100vh;background:var(--body-bg);color:var(--ink);display:grid;place-items:center;padding:18px;transition:background .25s,color .25s;font-family:var(--font)}button,input,select,textarea{font:inherit;border:none}button{cursor:pointer}a{text-decoration:none}.stage{display:grid;grid-template-columns:minmax(330px,420px) minmax(280px,410px);grid-gap:34px;gap:34px;align-items:start;width:min(100%,940px)}.stage.centered{align-items:center}.stage.single{grid-template-columns:minmax(330px,420px)}.phone,.stage.single{width:min(100%,420px)}.phone{position:relative;height:min(840px,calc(100vh - 36px));min-height:705px;background:var(--card);border-radius:31px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(16,45,75,.08);display:flex;flex-direction:column}body.dark .phone{background:#07111d;border-color:rgba(255,255,255,.1)}.phone.padded{padding:12px 12px 74px}.topbar{height:64px;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;padding:0 12px;flex:0 0 auto;transition:height .36s cubic-bezier(.2,.8,.2,1),padding .36s ease,opacity .28s ease}.brandWrap{grid-column:2;display:flex;align-items:center;justify-content:center;height:100%;min-width:0}.brandLogoFull{display:block;width:120px;height:auto;object-fit:contain}.brandText{font-weight:860;font-size:1.35rem;letter-spacing:-.04em;color:var(--calendar);line-height:1}.brandText b{color:var(--green)}.menuBtn{grid-column:3;width:40px;height:40px;border-radius:14px;background:rgba(16,45,75,.045);color:#102d4b;display:grid;place-items:center;justify-self:end}.menuBtn svg,.navBtn svg{stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.menuBtn svg{width:20px;height:20px}body.dark .menuBtn{color:#fff;background:rgba(255,255,255,.08)}.settingsMenu{position:absolute;top:60px;right:12px;width:238px;padding:12px;border-radius:20px;background:rgba(255,255,255,.97);box-shadow:0 20px 50px rgba(7,30,56,.2);border:1px solid rgba(16,45,75,.1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:20;display:none}.settingsMenu.open{display:block}.menuLabel{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:850;color:#748193;margin:6px 4px 7px}body.dark .settingsMenu{background:rgba(15,23,34,.97);border-color:rgba(255,255,255,.12)}body.dark .menuLabel{color:rgba(255,255,255,.65)}.themeToggle{height:40px;width:100%;border-radius:14px;background:#f7fbff;border:1px solid #dce7f1;padding:4px;display:flex;gap:4px;cursor:pointer}.themeToggle span{flex:1 1;border-radius:10px;display:grid;place-items:center;color:rgba(16,45,75,.55);font-size:.85rem}body.dark .themeToggle .moon,body:not(.dark) .themeToggle .sun{background:#102d4b;color:#fff}body.dark .themeToggle{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.limitInputWrap{display:flex;align-items:center;gap:6px;border:1px solid #dce7f1;border-radius:15px;padding:9px 11px;background:#f8fbfe;color:#17324f;font-weight:850}.limitInputWrap input{border:0;background:transparent;outline:0;width:100%;font-weight:850;color:inherit}body.dark .limitInputWrap{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff}.nav{position:absolute;left:12px;right:12px;bottom:10px;height:60px;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:20px;z-index:10}body.dark .nav{background:rgba(10,18,30,.9)}.navBtn{background:transparent;border-radius:14px;color:#102d4b;font-size:.65rem;font-weight:740;display:grid;place-items:center;grid-gap:2px;gap:2px;padding:4px}.navBtn svg{width:26px;height:26px}.navBtn.active{color:#0b6fa5}body.dark .navBtn{color:rgba(255,255,255,.72)}body.dark .navBtn.active{color:var(--blue)}.navBadge{position:relative}.navBadge:after{content:attr(data-count);position:absolute;top:-2px;right:4px;background:var(--green);color:#07391f;font-size:.5rem;font-weight:860;min-width:16px;height:16px;border-radius:999px;display:grid;place-items:center;padding:0 4px}.navBadge[data-count=""]:after{display:none}.pageContent{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 12px 80px;display:flex;flex-direction:column;gap:11px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.pageContent::-webkit-scrollbar{display:none}.notes{background:rgba(255,255,255,.72);border-radius:34px;padding:30px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:#172235}.notes .noteLabel{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;font-weight:850;color:#697384;margin-bottom:10px}.notes h2{font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:.98;margin:0 0 14px;letter-spacing:-.06em}.notes p{line-height:1.58;color:#526373;font-weight:500;font-size:.91rem;margin:0 0 10px}.notes p:last-child{margin:0}.notes .actions{display:flex;gap:10px;margin-top:14px}.notes .actions button{border:0;border-radius:999px;padding:12px 16px;background:#e7eef5;color:#22324b;font-weight:760}.notes .actions .primary{background:#102d4b;color:#fff}.calendarPanel{margin:0 12px;padding:14px 12px 12px;flex:0 0 306px;background:linear-gradient(180deg,var(--calendar),var(--calendar-2));border:1px solid rgba(255,255,255,.12);border-radius:24px;box-shadow:var(--soft-shadow);color:#fff;overflow:hidden;max-height:306px;transition:max-height .46s cubic-bezier(.22,1,.36,1),opacity .32s ease,transform .38s ease,margin .38s ease,padding .38s ease}.monthRow{justify-content:space-between;margin:0 0 11px;gap:8px}.monthNav,.monthRow{display:flex;align-items:center}.monthNav{gap:7px}.monthRow h1{margin:0;font-size:1.02rem;font-weight:780;min-width:143px;text-align:center}.monthBtn{border:1px solid rgba(255,255,255,.16);width:31px;height:31px;border-radius:11px;background:rgba(255,255,255,.09);color:#fff;font-weight:760;font-size:1.2rem;display:grid;place-items:center}.switch{background:rgba(255,255,255,.08);border-radius:12px;padding:3px;display:flex;gap:2px}.switch button{border:0;background:transparent;font-size:.57rem;font-weight:760;letter-spacing:.08em;color:rgba(255,255,255,.55);padding:5px 7px;border-radius:9px;text-transform:uppercase}.switch .on{background:rgba(255,255,255,.18);color:#fff}.calGrid,.week{display:grid;grid-template-columns:repeat(7,1fr)}.week{border-top:1px solid var(--calendar-line);border-bottom:1px solid var(--calendar-line)}.week span{text-align:center;color:rgba(255,255,255,.55);font-size:.57rem;font-weight:720;padding:7px 0}.calGrid{height:226px}.day{position:relative;border:0;border-right:1px solid var(--calendar-line);border-bottom:1px solid var(--calendar-line);background:transparent;padding:5px;color:rgba(255,255,255,.9);text-align:left;font-size:.64rem;font-weight:650}.day:nth-child(7n){border-right:0}.day.empty{color:rgba(255,255,255,.22)}.day.today span{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,.24)}.badges{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);display:flex;gap:3px}.badge{display:grid;place-items:center;min-width:16px;height:16px;border-radius:999px;color:#082039;font-size:.53rem;font-weight:850;padding:0 5px;font-style:normal}.birthday{background:linear-gradient(135deg,#8bd6ff,#3da2ff)}.holiday{background:linear-gradient(135deg,#d9ff4e,#49f187)}.custom{background:linear-gradient(135deg,#cbc4ff,#9c90ff)}.purchasedBadge{background:linear-gradient(135deg,#64f08e,#16c86a)!important;color:#07391f}.calendarPanel.listMode .week{display:none}.calendarPanel.listMode .calGrid{display:block;height:251px;overflow:auto;border-top:1px solid var(--calendar-line);padding-top:8px}.agendaList{display:grid;grid-gap:8px;gap:8px}.agendaDay{border:1px solid rgba(255,255,255,.12);border-radius:17px;background:rgba(255,255,255,.065);overflow:hidden}.agendaDate{width:100%;border:0;background:transparent;color:#fff;display:grid;grid-template-columns:48px 1fr auto;grid-gap:9px;gap:9px;align-items:center;text-align:left;padding:10px}.agendaDate strong{display:block;font-size:1.04rem;line-height:1;font-weight:820}.agendaDate span,.agendaMeta{font-size:.62rem;color:rgba(255,255,255,.65)}.agendaTotal{font-size:.78rem;font-weight:850;color:#fff;background:rgba(255,255,255,.11);border-radius:999px;padding:6px 8px}.agendaPeople{display:grid;grid-gap:4px;gap:4px;padding:0 10px 10px}.agendaPerson{display:grid;grid-template-columns:22px 1fr;grid-gap:7px;gap:7px;align-items:start;padding:7px 6px;border-top:1px solid rgba(255,255,255,.075);color:#fff;border-radius:14px}.agendaPerson.locked{background:linear-gradient(135deg,rgba(84,245,138,.13),rgba(255,255,255,.03))}.agendaPerson.disabled{opacity:.48;filter:grayscale(.55)}.miniDot{width:20px;height:20px;border-radius:8px;display:grid;place-items:center;font-size:.58rem;font-weight:850;color:#09223d}.agendaInfo small{display:block;color:rgba(255,255,255,.58);font-size:.62rem}.agendaInfo strong{font-size:.75rem}.agendaControls{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 72px;grid-gap:6px;gap:6px;align-items:center;padding-left:28px}.agendaControls .amountCtl{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.18)}.agendaControls .amt{color:#fff}.agendaControls .miniIcon,.agendaControls .rowIcon{background:rgba(255,255,255,.12);color:#fff}.emptyAgenda{padding:18px 8px;text-align:center;color:rgba(255,255,255,.66);font-size:.82rem}.budgetShell{margin:10px 12px 0;flex:0 0 auto;transition:max-height .43s cubic-bezier(.22,1,.36,1),opacity .32s ease,transform .38s ease,margin .38s ease;overflow:hidden;max-height:120px}.budgetPanel{position:relative;isolation:isolate;min-height:clamp(50px,6.2vh,62px);height:auto;padding:clamp(6px,1.6vw,9px) clamp(36px,10vw,50px);border-radius:999px;overflow:hidden;background:linear-gradient(180deg,var(--calendar),var(--calendar-2));box-shadow:var(--soft-shadow);touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;display:grid;align-items:center}.budgetPanel:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(100,240,142,.74),rgba(22,200,106,.44));transform:scaleX(var(--budget-fill,.24));transform-origin:left center;transition:transform .08s linear}.budgetArrow{position:absolute;top:50%;transform:translateY(-50%);width:clamp(26px,7vw,32px);height:clamp(36px,7.5vh,44px);border-radius:999px;display:grid;place-items:center;color:rgba(255,255,255,.78);font-size:1.7rem;background:rgba(255,255,255,.08);pointer-events:none}.budgetArrow.left{left:9px}.budgetArrow.right{right:9px}.budgetCenter{text-align:center}.label{font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.6);font-weight:820}.total{font-size:clamp(1.28rem,6.8vw,1.65rem);display:flex;align-items:center;justify-content:center;line-height:1}.total,.total button{font-weight:820;color:#fff}.total button{background:transparent;padding:0 4px;border-radius:12px}.budgetSummary{margin:7px 4px 0;color:#5f7083;font-size:clamp(.67rem,2.7vw,.74rem);text-align:center;font-weight:760}body.dark .budgetSummary{color:rgba(255,255,255,.72)}.listPanel{margin:9px 12px 0;padding:14px 10px 10px;min-height:0;flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;background:var(--card);border-radius:25px;box-shadow:var(--soft-shadow);border:1px solid rgba(16,45,75,.06);transition:flex-basis .56s cubic-bezier(.22,1,.36,1),margin .38s ease,border-radius .38s ease,box-shadow .38s ease,transform .42s cubic-bezier(.22,1,.36,1)}.listHead{display:grid;grid-template-columns:1fr 44px;grid-gap:6px;gap:6px;align-items:center;padding:0 5px 8px;flex:0 0 auto}.listHead .label{color:#7c8795}.listHead h2{margin:2px 0 0;font-size:1.02rem;font-weight:800;color:var(--ink)}.expandBtn{width:38px;height:38px;border:1px solid rgba(16,45,75,.1);border-radius:14px;background:rgba(23,174,226,.1);color:#102d4b;display:grid;place-items:center;justify-self:end;transition:transform .24s ease,background .2s ease}.expandBtn svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}body.dark .expandBtn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:#fff}.giftList{display:grid;grid-gap:7px;gap:7px;overflow:auto;padding:0 2px 82px;align-content:start;flex:1 1 auto;scrollbar-width:none}.giftList::-webkit-scrollbar{display:none}.gift{display:grid;grid-template-columns:30px 1fr 128px 76px;grid-gap:7px;gap:7px;align-items:center;border-top:1px solid rgba(16,45,75,.08);padding:8px 4px 0;border-radius:16px}.gift.locked{background:linear-gradient(135deg,rgba(84,245,138,.18),rgba(31,131,187,.09))}.gift.disabled{opacity:.42;filter:grayscale(.65)}.dot{width:28px;height:28px;border-radius:10px;display:grid;place-items:center;color:#0a2440;font-size:.72rem;font-weight:850}.gift strong{font-size:.76rem;color:var(--ink)}.gift small{font-size:.63rem;color:#758294}.amountGroup{display:grid;grid-template-columns:24px 1fr;grid-gap:4px;gap:4px;align-items:center}.miniIcon,.rowIcon{border:0;background:rgba(16,45,75,.055);display:grid;place-items:center;color:#102d4b;padding:0}.miniIcon{width:24px;height:34px;border-radius:9px}.miniIcon svg,.rowIcon svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2.15;stroke-linecap:round;stroke-linejoin:round}.miniIcon.locked{color:var(--green);background:rgba(22,200,106,.14)}.rowActions{display:flex;gap:4px;justify-content:flex-end}.rowIcon{width:34px;height:34px;border-radius:12px;text-decoration:none}.rowIcon.shop{color:#0b6fa5}.rowIcon.disabledActive{color:#8996a4}.amountCtl{--fill:.5;position:relative;isolation:isolate;display:grid;grid-template-columns:28px 1fr 28px;align-items:center;min-height:34px;border:1px solid #dfeaf3;border-radius:999px;overflow:hidden;background:#f5f9fc;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.amountCtl:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(100,240,142,.55),rgba(22,200,106,.32));transform:scaleX(var(--fill));transform-origin:left}.amountCtl button{width:28px;height:34px;border:0;background:transparent;color:#216c9e;font-weight:900;pointer-events:none}.amountCtl button:last-child{color:#16855a}.amt{font-size:.75rem;font-weight:860;min-width:48px;text-align:center;color:#14283d;pointer-events:none}body.dark .miniIcon,body.dark .rowIcon{color:rgba(255,255,255,.88)}body.dark .rowIcon.shop{color:var(--blue)}body.dark .amountCtl{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18)}body.dark .amt{color:#fff}.phone.occasionsExpanded .topbar{height:0;padding:0;opacity:0;pointer-events:none;overflow:hidden}.phone.occasionsExpanded .calendarPanel{max-height:0;opacity:0;transform:translateY(-10px);padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-width:0}.phone.occasionsExpanded .budgetShell{max-height:0;opacity:0;transform:translateY(-8px);margin-top:0;margin-bottom:0}.phone.occasionsExpanded .listPanel{margin-top:12px;flex:1 1 100%;border-radius:28px;box-shadow:0 22px 58px rgba(16,45,75,.18);animation:listBloom .56s cubic-bezier(.22,1,.36,1)}.phone.occasionsExpanded .expandBtn{transform:rotate(180deg);background:rgba(16,45,75,.08)}@keyframes listBloom{0%{transform:translateY(18px);border-radius:34px}55%{transform:translateY(-2px);border-radius:22px}to{transform:translateY(0);border-radius:28px}}.valueEditorOverlay{position:absolute;inset:0;z-index:18;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(1,12,24,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,background .22s ease,-webkit-backdrop-filter .22s ease;transition:opacity .22s ease,background .22s ease,backdrop-filter .22s ease;transition:opacity .22s ease,background .22s ease,backdrop-filter .22s ease,-webkit-backdrop-filter .22s ease}.valueEditorOverlay.open{opacity:1;visibility:visible;pointer-events:auto;background:rgba(1,12,24,.46);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.valueEditor{width:min(100%,330px);border-radius:30px;background:#fff;box-shadow:0 28px 72px rgba(0,10,26,.36);padding:20px;transform:translateY(16px) scale(.94);opacity:0;transition:transform .28s cubic-bezier(.2,1.1,.25,1),opacity .22s ease}.valueEditorOverlay.open .valueEditor{transform:translateY(0) scale(1);opacity:1}body.dark .valueEditor{background:#0f1722;color:#fff}.valueEditorLabel{margin:0 0 10px;text-align:center;text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;font-weight:850;color:#748193}body.dark .valueEditorLabel{color:rgba(255,255,255,.62)}.valueEditorInputWrap{display:flex;align-items:center;justify-content:center;gap:6px;border-radius:24px;background:linear-gradient(180deg,var(--calendar),var(--calendar-2));padding:18px 16px;color:#fff}.valueEditorDollar{font-size:2.2rem;font-weight:820;line-height:1}.valueEditorInput{width:100%;min-width:0;border:0;background:transparent;color:#fff;outline:0;text-align:center;font-size:clamp(2.35rem,14vw,4rem);font-weight:860;letter-spacing:-.07em;line-height:1}.valueEditorHint{margin:10px 0 0;text-align:center;color:#748193;font-size:.78rem;font-weight:650}body.dark .valueEditorHint{color:rgba(255,255,255,.58)}.valueEditorActions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:16px}.valueEditorActions button{border:0;border-radius:999px;min-height:44px;font-weight:820}.valueCancel{background:#edf3f8;color:#30465e}.valueSave{background:var(--green);color:#07391f}body.dark .valueCancel{background:rgba(255,255,255,.1);color:#fff}.modalOverlay{position:absolute;inset:0;background:rgba(1,12,24,0);display:flex;align-items:center;justify-content:center;padding:22px;z-index:12;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease,background .32s ease,-webkit-backdrop-filter .32s ease;transition:opacity .32s ease,background .32s ease,backdrop-filter .32s ease;transition:opacity .32s ease,background .32s ease,backdrop-filter .32s ease,-webkit-backdrop-filter .32s ease}.modalOverlay.open{opacity:1;visibility:visible;pointer-events:auto;background:rgba(1,12,24,.48);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{width:100%;max-width:360px;max-height:100%;overflow:auto;background:#fff;border-radius:28px;box-shadow:0 26px 70px rgba(0,10,26,.38);padding:18px;transform:translateY(18px) scale(.92);opacity:0;-webkit-clip-path:circle(0 at 50% 52%);clip-path:circle(0 at 50% 52%);transition:transform .46s cubic-bezier(.2,1.15,.24,1),opacity .25s ease,-webkit-clip-path .52s cubic-bezier(.16,1,.3,1);transition:transform .46s cubic-bezier(.2,1.15,.24,1),opacity .25s ease,clip-path .52s cubic-bezier(.16,1,.3,1);transition:transform .46s cubic-bezier(.2,1.15,.24,1),opacity .25s ease,clip-path .52s cubic-bezier(.16,1,.3,1),-webkit-clip-path .52s cubic-bezier(.16,1,.3,1)}.modalOverlay.open .modal{transform:translateY(0) scale(1);opacity:1;-webkit-clip-path:circle(140% at 50% 50%);clip-path:circle(140% at 50% 50%)}body.dark .modal{background:#0f1722;color:#fff}.modalHead{display:flex;justify-content:space-between}.modal h3{margin:2px 0 3px;color:#111f31}body.dark .modal h3{color:#fff}.modal p{margin:0;color:#6b7b8b;font-size:.84rem}.closeModal{border:0;background:#eef4fa;color:#1f5e94;border-radius:999px;width:34px;height:34px;flex:0 0 auto}.modalList{display:grid;grid-gap:9px;gap:9px;margin-top:16px}.modalItem{display:grid;grid-template-columns:34px 1fr;grid-gap:8px;gap:8px;align-items:center;padding:10px;border-radius:16px;background:#f5f8fb}.modalItem.disabled{opacity:.48;filter:grayscale(.55)}.modalControls{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 76px;grid-gap:7px;gap:7px;align-items:center;padding-left:42px}.modalTotal{margin-top:14px;padding:12px 14px;border-radius:16px;background:linear-gradient(135deg,#eaffef,#edf5ff);font-weight:850;display:flex;justify-content:space-between;color:#17643f}body.dark .modalItem{background:rgba(255,255,255,.08)}body.dark .modalTotal{background:rgba(22,200,106,.14);color:var(--green2)}.sheetOverlay{position:absolute;inset:0;background:rgba(1,12,24,0);z-index:14;pointer-events:none;transition:background .32s}.sheetOverlay.dim{background:rgba(1,12,24,.4);pointer-events:auto}.bottomSheet{position:absolute;bottom:0;left:0;right:0;background:var(--card);border-radius:28px 28px 0 0;padding:20px 20px 28px;box-shadow:0 -20px 50px rgba(16,45,75,.15);z-index:15;transform:translateY(105%);visibility:hidden;transition:transform .36s cubic-bezier(.22,1,.36,1),visibility 0s .36s;max-height:88%;overflow-y:auto;scrollbar-width:none}.bottomSheet::-webkit-scrollbar{display:none}.bottomSheet.open{transform:translateY(0);visibility:visible;transition:transform .36s cubic-bezier(.22,1,.36,1)}body.dark .bottomSheet{background:#0f1722}.sheetHandle{width:40px;height:4px;background:rgba(16,45,75,.14);border-radius:999px;margin:0 auto 16px}body.dark .sheetHandle{background:rgba(255,255,255,.2)}.sheetTitle{font-size:1.02rem;font-weight:820;color:var(--ink);margin:0 0 14px}.periodToggle{display:flex;gap:4px;background:rgba(16,45,75,.06);border-radius:14px;padding:4px;margin-top:12px}body.dark .periodToggle{background:rgba(255,255,255,.08)}.periodBtn{flex:1 1;background:transparent;border-radius:10px;padding:7px 4px;font-size:.72rem;font-weight:760;color:var(--muted);transition:background .18s,color .18s}.periodBtn.active{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(16,45,75,.12);font-weight:820}body.dark .periodBtn.active{background:#1a2535}.periodNav{display:flex;align-items:center;justify-content:space-between;padding:2px 0}.periodNav h2{margin:0;font-size:1.06rem;font-weight:820;color:var(--ink)}.periodNavBtn{width:36px;height:36px;border:1px solid rgba(16,45,75,.12);border-radius:12px;background:rgba(16,45,75,.04);color:var(--ink);display:grid;place-items:center;font-size:1.1rem;font-weight:700}body.dark .periodNavBtn{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#fff}.summaryRow{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.summaryCard{background:var(--card);border-radius:18px;padding:11px 8px;box-shadow:var(--soft-shadow);border:1px solid rgba(16,45,75,.06);text-align:center}body.dark .summaryCard{border-color:rgba(255,255,255,.08)}.sLabel{font-size:.58rem;letter-spacing:.09em;text-transform:uppercase;font-weight:820;color:var(--muted);margin-bottom:4px}.sAmount{font-size:1.18rem;font-weight:860;color:var(--ink);line-height:1}.sAmount.green{color:var(--green)}.sAmount.amber{color:#f59e0b}.sAmount.red{color:#ef4444}.progressSection{background:linear-gradient(180deg,var(--calendar),var(--calendar-2));border-radius:20px;padding:14px 16px;color:#fff}.progressTop{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.progressTopLabel{font-size:.72rem;color:rgba(255,255,255,.72);font-weight:700}.healthBadge{font-size:.64rem;font-weight:820;padding:4px 10px;border-radius:999px}.health-good{background:rgba(100,240,142,.25);color:#64f08e}.health-warn{background:rgba(251,191,36,.25);color:#fbbf24}.health-over{background:rgba(239,68,68,.25);color:#fca5a5}.progressBar{height:7px;background:rgba(255,255,255,.2);border-radius:999px;overflow:hidden;margin-bottom:8px}.progressFill{height:100%;background:linear-gradient(90deg,var(--green2),var(--green));border-radius:999px;transition:width .6s cubic-bezier(.22,1,.36,1)}.progressBottom{display:flex;justify-content:space-between}.progressBottom small{font-size:.67rem;color:rgba(255,255,255,.65)}.breakdownCard,.chartCard,.drillCard{background:var(--card);border-radius:20px;padding:14px;box-shadow:var(--soft-shadow);border:1px solid rgba(16,45,75,.06)}body.dark .breakdownCard,body.dark .chartCard,body.dark .drillCard{border-color:rgba(255,255,255,.08)}.chartHeader,.drillHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.chartTitle,.drillTitle{font-size:.9rem;font-weight:820;color:var(--ink)}.chartLegend{display:flex;gap:10px}.legendItem{display:flex;align-items:center;gap:4px;font-size:.62rem;color:var(--muted)}.legendDot{width:8px;height:8px;border-radius:3px}.legendDot.planned{background:rgba(31,131,187,.5)}.legendDot.actual{background:var(--green)}.barChartWrap{width:100%}.barPlanned{fill:rgba(31,131,187,.28);cursor:pointer;transition:fill .18s}.barPlanned.cur,.barPlanned:hover{fill:rgba(31,131,187,.85)}.barActual{fill:rgba(22,200,106,.75);pointer-events:none}.barActual.cur{fill:#16c86a}.chartLabel{fill:#6c7a88;font-size:9px}body.dark .barPlanned{fill:rgba(31,131,187,.4)}body.dark .barPlanned.cur{fill:rgba(31,131,187,.9)}body.dark .chartLabel{fill:rgba(235,246,255,.6)}.drillCount{font-size:.68rem;color:var(--muted)}.drillItem{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid rgba(16,45,75,.06);cursor:pointer;border-radius:8px;transition:background .14s;background:transparent;width:100%;text-align:left}body.dark .drillItem{border-color:rgba(255,255,255,.07)}.drillItem:first-child{border-top:none}.drillItem:hover{background:rgba(16,45,75,.03)}body.dark .drillItem:hover{background:rgba(255,255,255,.04)}.drillDot{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font-size:.7rem;font-weight:850;color:#09223d;flex:0 0 auto}.drillInfo{flex:1 1;min-width:0}.drillName{font-size:.82rem;font-weight:780;color:var(--ink)}.drillMeta{font-size:.64rem;color:var(--muted)}.drillRight{text-align:right;white-space:nowrap}.drillPlanned{font-size:.84rem;font-weight:820;color:var(--ink)}.drillActual{font-size:.64rem;color:var(--muted)}.drillActual.spent{color:var(--green)}.breakdownTabs{display:flex;gap:6px;margin-bottom:12px}.bTab{background:rgba(16,45,75,.06);border-radius:999px;padding:6px 12px;font-size:.68rem;font-weight:760;color:var(--muted);transition:background .18s,color .18s}body.dark .bTab{background:rgba(255,255,255,.08)}.bTab.active{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}.bRow{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid rgba(16,45,75,.06)}body.dark .bRow{border-color:rgba(255,255,255,.07)}.bRow:first-child{border-top:none}.bLabel{flex:1 1;font-size:.79rem;font-weight:700;color:var(--ink)}.bBarWrap{flex:0 0 88px;height:6px;background:rgba(16,45,75,.08);border-radius:999px;overflow:hidden}body.dark .bBarWrap{background:rgba(255,255,255,.1)}.bBarFill{height:100%;background:linear-gradient(90deg,var(--blue),var(--calendar));border-radius:999px}.bAmt{font-size:.8rem;font-weight:820;color:var(--ink);min-width:36px;text-align:right}.insightCard{background:linear-gradient(135deg,rgba(23,174,226,.09),rgba(22,200,106,.07));border-radius:20px;padding:14px;border:1px solid rgba(23,174,226,.18);margin-bottom:6px}body.dark .insightCard{background:rgba(23,174,226,.08);border-color:rgba(23,174,226,.22)}.insightEmoji{font-size:1.3rem;margin-bottom:5px}.insightTitle{margin:0 0 4px;font-size:.88rem;font-weight:820;color:var(--ink)}.insightText{margin:0;font-size:.76rem;color:var(--muted);line-height:1.52}.alertCard{background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.22);border-radius:16px;padding:11px 13px;display:flex;gap:9px;align-items:flex-start}.alertCard p{margin:0;flex:1 1;font-size:.76rem;color:var(--ink);line-height:1.45}.alertDismiss{border:0;background:rgba(239,68,68,.12);color:#dc2626;border-radius:999px;width:26px;height:26px;font-weight:850;flex:0 0 auto}.searchBar{padding:0 12px 10px;display:flex;gap:8px}.searchWrap{flex:1 1;display:flex;align-items:center;gap:8px;background:rgba(16,45,75,.06);border-radius:14px;padding:9px 12px}body.dark .searchWrap{background:rgba(255,255,255,.08)}.searchWrap svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;flex:0 0 auto}.searchInput{flex:1 1;background:transparent;outline:none;color:var(--ink);font-size:.86rem;min-width:0}.searchInput::placeholder{color:var(--muted)}.filterBtn{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff;display:grid;place-items:center;flex:0 0 auto}.filterBtn svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.chipsRow{display:flex;gap:7px;padding:0 12px 12px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:0 0 auto}.chipsRow::-webkit-scrollbar{display:none}.chip{white-space:nowrap;border-radius:999px;padding:6px 13px;font-size:.72rem;font-weight:760;display:flex;align-items:center;gap:5px;flex:0 0 auto;background:rgba(16,45,75,.06);color:var(--ink);transition:background .18s,color .18s}body.dark .chip{background:rgba(255,255,255,.08);color:rgba(255,255,255,.8)}.chip.active{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}.chipDot{width:10px;height:10px;border-radius:50%}.sectionHead{display:flex;align-items:center;justify-content:space-between;padding:4px 12px 8px}.sectionTitle{font-size:.9rem;font-weight:820;color:var(--ink)}.seeAll{font-size:.72rem;font-weight:760;color:var(--calendar);background:transparent}.hScroll{display:flex;gap:10px;padding:0 12px 14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.hScroll::-webkit-scrollbar{display:none}.featCard{flex:0 0 160px;border-radius:18px;overflow:hidden;background:var(--card);box-shadow:var(--soft-shadow);border:1px solid rgba(16,45,75,.06);display:flex;flex-direction:column}body.dark .featCard{border-color:rgba(255,255,255,.08)}.featImg{height:100px;position:relative;display:flex;align-items:flex-end;padding:8px}.retailerBadge{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:.55rem;padding:3px 7px}.budgetBadge,.retailerBadge{font-weight:820;border-radius:999px}.budgetBadge{font-size:.6rem;padding:3px 8px;white-space:nowrap}.budget-under{background:rgba(22,200,106,.25);color:#0d7a42}.budget-at{background:rgba(23,174,226,.2);color:#0b6fa5}.budget-over{background:rgba(239,68,68,.2);color:#dc2626}body.dark .budget-under{color:#64f08e}body.dark .budget-at{color:var(--blue)}body.dark .budget-over{color:#fca5a5}.featBody{padding:8px 10px 10px;display:flex;flex-direction:column;gap:4px;flex:1 1}.featTitle,.productTitle{font-size:.76rem;font-weight:760;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}.featPrice{font-size:.88rem;font-weight:860;color:var(--ink)}.featActions,.productActions{display:flex;gap:5px;margin-top:4px}.saveBtn{width:30px;height:30px;border-radius:10px;background:rgba(16,45,75,.06);color:var(--muted);display:grid;place-items:center;flex:0 0 auto;transition:background .18s,color .18s}.saveBtn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.saveBtn.saved{background:rgba(239,68,68,.12);color:#ef4444}.saveBtn.saved svg{fill:#ef4444}body.dark .saveBtn{background:rgba(255,255,255,.08)}.addBtn{flex:1 1;border-radius:10px;background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff;font-size:.7rem;font-weight:820;padding:6px 8px;text-align:center;transition:opacity .18s}.addBtn.added{background:linear-gradient(135deg,var(--green),#12a358);opacity:.85}.buyBtn{flex:1 1;border-radius:10px;background:rgba(22,200,106,.14);color:#0d7a42;font-size:.7rem;font-weight:820;padding:6px 8px;text-align:center}body.dark .buyBtn{color:var(--green2)}.productGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;padding:0 12px 12px}.productCard{border-radius:18px;overflow:hidden;background:var(--card);box-shadow:var(--soft-shadow);border:1px solid rgba(16,45,75,.06);display:flex;flex-direction:column}body.dark .productCard{border-color:rgba(255,255,255,.08)}.productImg{height:110px;position:relative;display:flex;align-items:flex-end;padding:8px}.productBody{padding:9px 10px 10px;display:flex;flex-direction:column;gap:5px;flex:1 1}.productMeta{display:flex;align-items:center;justify-content:space-between;gap:4px}.productPrice{font-size:.92rem;font-weight:860;color:var(--ink)}.stars{font-size:.6rem;color:#f59e0b;letter-spacing:.5px}.cartPanel{position:absolute;bottom:74px;left:0;right:0;background:var(--card);border-top:1px solid rgba(16,45,75,.08);padding:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;box-shadow:0 -8px 24px rgba(16,45,75,.08);transform:translateY(130%);transition:transform .32s cubic-bezier(.22,1,.36,1);z-index:9}body.dark .cartPanel{background:#0f1722;border-color:rgba(255,255,255,.1)}.cartPanel.visible{transform:translateY(0)}.cartInfo{flex:1 1}.cartLabel{font-size:.66rem;color:var(--muted);font-weight:700}.cartTotal{font-size:1rem;font-weight:860;color:var(--ink)}.cartCount{background:rgba(16,45,75,.08);border-radius:999px;padding:5px 12px;font-size:.76rem;font-weight:820;color:var(--ink)}body.dark .cartCount{background:rgba(255,255,255,.1);color:#fff}.viewCartBtn{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff;border-radius:14px;padding:10px 18px;font-size:.82rem;font-weight:820}.filterGroup{margin-bottom:14px}.filterGroupLabel{font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;font-weight:820;color:var(--muted);margin-bottom:8px}.filterChips{display:flex;flex-wrap:wrap;gap:6px}.fChip{border-radius:999px;padding:6px 13px;font-size:.74rem;font-weight:760;background:rgba(16,45,75,.06);color:var(--ink);transition:background .18s,color .18s}body.dark .fChip{background:rgba(255,255,255,.08);color:rgba(255,255,255,.8)}.applyBtn,.fChip.on,.primaryCta{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}.applyBtn,.primaryCta{width:100%;border-radius:999px;padding:13px;font-size:.88rem;font-weight:820;margin-top:10px;text-align:center;display:block}.primaryCta:disabled{opacity:.5;cursor:default}.secondaryCta{width:100%;border-radius:999px;padding:13px;background:rgba(16,45,75,.07);color:var(--ink);font-size:.88rem;font-weight:820;margin-top:8px;text-align:center;display:block}body.dark .secondaryCta{background:rgba(255,255,255,.1);color:#fff}.dangerCta{width:100%;border-radius:999px;padding:13px;background:#dc2626;color:#fff;font-size:.88rem;font-weight:820;margin-top:10px}.dangerCta:disabled{opacity:.4;cursor:default}.confirmProductRow{display:flex;gap:12px;align-items:center;margin-bottom:14px}.confirmArt{width:64px;height:64px;border-radius:16px;flex:0 0 auto;display:grid;place-items:center;color:#fff;font-weight:850;font-size:.62rem;text-align:center;padding:4px}.confirmInfo{flex:1 1;min-width:0}.confirmTitle{font-size:.88rem;font-weight:800;color:var(--ink)}.confirmMeta{font-size:.7rem;color:var(--muted);margin-top:2px}.receiptRows{background:rgba(16,45,75,.04);border-radius:16px;padding:4px 14px;margin-bottom:6px}body.dark .receiptRows{background:rgba(255,255,255,.06)}.receiptRow{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid rgba(16,45,75,.06);font-size:.8rem;color:var(--ink)}.receiptRow:first-child{border-top:none}.receiptRow.totalRow{font-weight:860}.receiptRow small{color:var(--muted)}body.dark .receiptRow{border-color:rgba(255,255,255,.07)}.fitNote{font-size:.72rem;margin:8px 2px 0;color:var(--muted);line-height:1.45}.searchRow{display:flex;gap:8px;padding:0 12px 10px}.addFriendBtn{width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff;display:grid;place-items:center;flex:0 0 auto;font-size:1.5rem;line-height:1}.filterTabs{display:flex;gap:6px;padding:0 12px 12px;overflow-x:auto;scrollbar-width:none;flex:0 0 auto}.filterTabs::-webkit-scrollbar{display:none}.filterTab{white-space:nowrap;border-radius:999px;padding:6px 13px;font-size:.72rem;font-weight:760;background:rgba(16,45,75,.06);color:var(--ink);flex:0 0 auto;transition:background .18s,color .18s}body.dark .filterTab{background:rgba(255,255,255,.08);color:rgba(255,255,255,.8)}.filterTab.active{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}.importCta{background:linear-gradient(135deg,rgba(23,174,226,.1),rgba(22,200,106,.08));border-radius:20px;padding:14px;border:1px solid rgba(23,174,226,.18);display:flex;gap:12px;align-items:center;cursor:pointer;transition:opacity .18s;text-align:left;width:100%}.importCta:active{opacity:.8}body.dark .importCta{background:rgba(23,174,226,.08);border-color:rgba(23,174,226,.22)}.importIcon{font-size:1.8rem;flex:0 0 auto}.importTitle{font-size:.86rem;font-weight:820;color:var(--ink);margin:0 0 3px}.importSub{font-size:.72rem;color:var(--muted);margin:0}.importArrow{margin-left:auto;color:var(--muted);font-size:1.1rem}.friendList{display:flex;flex-direction:column;gap:8px}.friendCard{background:var(--card);border-radius:20px;padding:14px;box-shadow:var(--soft-shadow);border:1px solid rgba(16,45,75,.06);overflow:hidden}body.dark .friendCard{border-color:rgba(255,255,255,.08)}.friendCard.inactive{opacity:.55}.friendRow{display:flex;align-items:center;gap:12px;cursor:pointer;width:100%;background:transparent;text-align:left;padding:0}.avatar{width:44px;height:44px;border-radius:16px;display:grid;place-items:center;font-size:1.08rem;font-weight:860;color:#09223d;flex:0 0 auto}.friendInfo{flex:1 1;min-width:0}.friendName{font-size:.9rem;font-weight:820;color:var(--ink)}.friendMeta{font-size:.68rem;color:var(--muted);margin-top:2px}.friendRight{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}.occasionBadge{font-size:.62rem;font-weight:820;padding:3px 9px;border-radius:999px;background:rgba(31,131,187,.12);color:var(--calendar)}.activeDot{width:8px;height:8px;border-radius:50%;background:var(--green)}.activeDot.off{background:rgba(16,45,75,.2)}body.dark .activeDot.off{background:rgba(255,255,255,.2)}.chevron{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .28s cubic-bezier(.22,1,.36,1);flex:0 0 auto}.friendDetail{overflow:hidden;max-height:0;transition:max-height .42s cubic-bezier(.22,1,.36,1),padding .32s ease}.friendDetail.open{max-height:640px;padding-top:14px}.detailDivider{height:1px;background:rgba(16,45,75,.08);margin-bottom:14px}body.dark .detailDivider{background:rgba(255,255,255,.08)}.detailSection{margin-bottom:14px}.detailLabel{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:820;color:var(--muted);margin-bottom:7px}.detailGrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:7px;gap:7px}.detailItem{background:rgba(16,45,75,.04);border-radius:12px;padding:9px 10px}body.dark .detailItem{background:rgba(255,255,255,.06)}.detailKey{font-size:.62rem;color:var(--muted);margin-bottom:2px}.detailVal{font-size:.8rem;font-weight:780;color:var(--ink)}.interestChips{display:flex;flex-wrap:wrap;gap:5px}.interestChip{font-size:.68rem;font-weight:760;padding:4px 10px;border-radius:999px;background:rgba(16,45,75,.06);color:var(--ink)}body.dark .interestChip{background:rgba(255,255,255,.08);color:rgba(255,255,255,.85)}.detailActions{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-gap:7px;gap:7px;margin-top:8px}.detailBtn{border-radius:12px;padding:9px 6px;font-size:.7rem;font-weight:820;text-align:center;background:rgba(16,45,75,.06);color:var(--ink)}.detailBtn.primary{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}body.dark .detailBtn{background:rgba(255,255,255,.08);color:rgba(255,255,255,.85)}body.dark .detailBtn.primary{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}.detailBtn.danger{background:rgba(239,68,68,.1);color:#dc2626}.toggleActiveRow{display:flex;align-items:center;justify-content:space-between;background:rgba(16,45,75,.04);border-radius:14px;padding:10px 12px;margin-bottom:10px;gap:10px}body.dark .toggleActiveRow{background:rgba(255,255,255,.06)}.toggleLabel{font-size:.8rem;font-weight:760;color:var(--ink)}.toggleSub{font-size:.64rem;color:var(--muted);margin-top:1px}.wishlistNote{background:linear-gradient(135deg,rgba(22,200,106,.1),rgba(23,174,226,.06));border:1px solid rgba(22,200,106,.2);border-radius:14px;padding:10px 12px;font-size:.76rem;color:var(--ink);line-height:1.5}.historyRow{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid rgba(16,45,75,.06)}.historyRow:first-child{border-top:none}body.dark .historyRow{border-color:rgba(255,255,255,.07)}.historyArt{width:32px;height:32px;border-radius:10px;flex:0 0 auto}.historyInfo{flex:1 1;min-width:0}.historyTitle{font-size:.76rem;font-weight:760;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.historyMeta{font-size:.62rem;color:var(--muted)}.historyRight{text-align:right;flex:0 0 auto}.historyPrice{font-size:.78rem;font-weight:820;color:var(--ink)}.buyAgain{font-size:.62rem;font-weight:800;color:var(--calendar);background:transparent;padding:2px 0}.toggle{width:44px;height:24px;border-radius:999px;background:#dce7f1;position:relative;transition:background .2s;flex:0 0 auto;cursor:pointer;border:0;padding:0}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.22);transition:transform .22s cubic-bezier(.22,1,.36,1)}.toggle.on{background:var(--green)}.toggle.on:after{transform:translateX(20px)}body.dark .toggle{background:rgba(255,255,255,.18)}body.dark .toggle.on{background:var(--green)}.formField{margin-bottom:12px}.formLabel{font-size:.68rem;font-weight:820;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;display:block}.formInput{width:100%;background:rgba(16,45,75,.05);border-radius:14px;padding:11px 14px;font-size:.9rem;color:var(--ink);outline:none;transition:background .18s}body.dark .formInput{background:rgba(255,255,255,.08);color:#fff}.formInput:focus{background:rgba(23,174,226,.1);outline:2px solid rgba(23,174,226,.3)}.formSelect{width:100%;background:rgba(16,45,75,.05);border-radius:14px;padding:11px 14px;font-size:.9rem;color:var(--ink);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}body.dark .formSelect{background:rgba(255,255,255,.08);color:#fff}.formError{margin:4px 2px 0;font-size:.74rem;color:#dc2626;font-weight:650}.formHint{margin:4px 2px 0;font-size:.72rem;color:var(--muted)}.modalActions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;margin-top:16px}.modalCancel{border-radius:999px;padding:12px;background:rgba(16,45,75,.08);color:var(--ink);font-weight:820;font-size:.88rem}body.dark .modalCancel{background:rgba(255,255,255,.1);color:#fff}.modalSave{border-radius:999px;padding:12px;background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff;font-weight:820;font-size:.88rem}.modalSave:disabled{opacity:.5;cursor:default}.emptyState{padding:40px 20px;text-align:center;color:var(--muted)}.emptyIcon{font-size:2.5rem;margin-bottom:10px}.emptyArt{width:76px;height:76px;margin:0 auto 12px;border-radius:26px;background:linear-gradient(135deg,rgba(23,174,226,.16),rgba(22,200,106,.14));display:grid;place-items:center;font-size:2rem}.emptyTitle{font-weight:820;font-size:.95rem;color:var(--ink);margin:0 0 6px}.emptyText{font-size:.8rem;line-height:1.5;margin:0}.emptyCta{display:inline-block;margin-top:14px;padding:10px 20px;background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}.emptyCta,.retryBtn{border-radius:999px;font-size:.78rem;font-weight:820}.retryBtn{margin-top:12px;padding:9px 18px;background:rgba(239,68,68,.1);color:#dc2626}.skeleton{position:relative;overflow:hidden;background:rgba(16,45,75,.07);border-radius:14px}body.dark .skeleton{background:rgba(255,255,255,.08)}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shimmer 1.4s infinite}body.dark .skeleton:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent)}@keyframes shimmer{to{transform:translateX(100%)}}.profileCard{background:linear-gradient(180deg,var(--calendar),var(--calendar-2));border-radius:22px;padding:18px;color:#fff;display:flex;align-items:center;gap:14px;margin-top:12px;flex-shrink:0}.profileAvatar{width:52px;height:52px;border-radius:18px;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:1.3rem;font-weight:860;color:#fff;flex:0 0 auto}.profileName{font-size:1.05rem;font-weight:820}.profileEmail{font-size:.72rem;color:rgba(255,255,255,.72);margin-top:2px;word-break:break-all}.profileEdit{margin-left:auto;width:36px;height:36px;background:rgba(255,255,255,.16);border-radius:12px;display:grid;place-items:center;flex:0 0 auto}.profileEdit svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.settingsSection{background:var(--card);border-radius:20px;padding:0;box-shadow:var(--soft-shadow);border:1px solid rgba(16,45,75,.06);overflow:hidden;flex-shrink:0}body.dark .settingsSection{border-color:rgba(255,255,255,.08)}.settingsSectionTitle{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;font-weight:820;color:var(--muted);padding:12px 14px 4px}.settingRow{display:flex;align-items:center;padding:13px 14px;border-top:1px solid rgba(16,45,75,.06);gap:10px;transition:background .14s;min-height:44px;width:100%;background:transparent;text-align:left}body.dark .settingRow{border-color:rgba(255,255,255,.07)}.settingsSectionTitle+.settingRow,.themeRow+.settingRow{border-top:none}.settingIcon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto}.settingIcon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-blue{background:rgba(23,174,226,.12);color:var(--calendar)}.icon-green{background:rgba(22,200,106,.12);color:var(--green)}.icon-orange{background:rgba(245,158,11,.12);color:#f59e0b}.icon-purple{background:rgba(139,92,246,.12);color:#7c3aed}.icon-red{background:rgba(239,68,68,.1);color:#dc2626}.icon-muted{background:rgba(16,45,75,.07);color:var(--muted)}body.dark .icon-muted{background:rgba(255,255,255,.09)}.settingLabel{flex:1 1;min-width:0}.settingName{font-size:.86rem;font-weight:760;color:var(--ink);overflow-wrap:break-word}.settingSub{font-size:.68rem;color:var(--muted);margin-top:1px;overflow-wrap:break-word}.settingControl{flex:0 0 auto;display:flex;align-items:center;gap:8px}.settingValue{font-size:.82rem;color:var(--muted);font-weight:700}.settingArrow{color:var(--muted);font-size:1rem;opacity:.6}.themeRow{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:12px 14px}.themeOpt{border-radius:14px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.72rem;font-weight:760;color:var(--muted);background:rgba(16,45,75,.05);transition:background .18s,color .18s;border:1.5px solid transparent}body.dark .themeOpt{background:rgba(255,255,255,.07)}.themeOpt.active{background:rgba(23,174,226,.12);color:var(--calendar);border-color:rgba(23,174,226,.3)}body.dark .themeOpt.active{background:rgba(23,174,226,.15)}.themeIcon{font-size:1.4rem}.budgetInput{width:80px;background:rgba(16,45,75,.06);border-radius:10px;padding:6px 10px;font-size:.88rem;font-weight:820;color:var(--ink);outline:none;text-align:right;transition:background .18s}body.dark .budgetInput{background:rgba(255,255,255,.1);color:#fff}.budgetInput:focus{background:rgba(23,174,226,.1);outline:2px solid rgba(23,174,226,.3)}.settingSelect{background:rgba(16,45,75,.06);border-radius:10px;padding:6px 10px;font-size:.82rem;font-weight:760;color:var(--ink);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}body.dark .settingSelect{background:rgba(255,255,255,.1);color:#fff}.connectedBadge{font-size:.64rem;font-weight:820;padding:3px 9px;border-radius:999px;background:rgba(22,200,106,.15);color:#0d7a42}body.dark .connectedBadge{color:var(--green2)}.connectBtn{background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff}.connectBtn,.disconnectBtn{font-size:.74rem;font-weight:820;padding:5px 12px;border-radius:999px}.disconnectBtn{background:rgba(239,68,68,.1);color:#dc2626}.dangerRow{cursor:pointer}.dangerRow .settingName{color:#dc2626}body.dark .dangerRow .settingName{color:#f87171}.appVersion{text-align:center;font-size:.68rem;color:var(--muted);padding:8px 0 4px;flex-shrink:0}.comingSoonTag{font-size:.6rem;font-weight:820;padding:3px 8px;border-radius:999px;background:rgba(139,92,246,.12);color:#7c3aed}.authWrap{flex:1 1;display:flex;flex-direction:column;justify-content:center;padding:24px 22px 40px;overflow-y:auto}.authHero{text-align:center;margin-bottom:26px}.authLogo{width:150px;margin:0 auto 14px;display:block}.authTitle{font-size:1.5rem;font-weight:860;letter-spacing:-.04em;color:var(--ink);margin:0 0 6px}.authSub{font-size:.84rem;color:var(--muted);margin:0;line-height:1.5}.googleBtn{width:100%;border-radius:999px;padding:12px;background:var(--card);border:1.5px solid rgba(16,45,75,.14);color:var(--ink);font-size:.86rem;font-weight:780;display:flex;align-items:center;justify-content:center;gap:9px;margin-top:8px}body.dark .googleBtn{border-color:rgba(255,255,255,.18);color:#fff;background:rgba(255,255,255,.05)}.authDivider{display:flex;align-items:center;gap:10px;margin:16px 0;color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.authDivider:after,.authDivider:before{content:"";flex:1 1;height:1px;background:rgba(16,45,75,.1)}body.dark .authDivider:after,body.dark .authDivider:before{background:rgba(255,255,255,.12)}.authFootnote{text-align:center;margin-top:18px;font-size:.8rem;color:var(--muted)}.authFootnote a,.linkBtn{color:var(--calendar);font-weight:800;background:transparent;padding:0;font-size:inherit}.successCard{background:linear-gradient(135deg,rgba(22,200,106,.12),rgba(23,174,226,.08));border:1px solid rgba(22,200,106,.25);border-radius:16px;padding:13px 15px;font-size:.8rem;color:var(--ink);line-height:1.5;margin-bottom:12px}.onbHeader{padding:16px 20px 6px;flex:0 0 auto}.progressDots{display:flex;gap:6px;justify-content:center;margin-bottom:4px}.pDot{width:8px;height:8px;border-radius:999px;background:rgba(16,45,75,.14);transition:all .25s;border:0;padding:0}body.dark .pDot{background:rgba(255,255,255,.18)}.pDot.active{width:22px;background:linear-gradient(90deg,var(--calendar),var(--blue))}.pDot.done{background:var(--green)}.onbBody{flex:1 1 auto;min-height:0;overflow-y:auto;padding:8px 20px 20px;scrollbar-width:none}.onbBody::-webkit-scrollbar{display:none}.onbTitle{font-size:1.35rem;font-weight:860;letter-spacing:-.03em;color:var(--ink);margin:10px 0 4px}.onbSub{font-size:.82rem;color:var(--muted);margin:0 0 18px;line-height:1.5}.onbFooter{flex:0 0 auto;padding:12px 20px 22px;display:flex;gap:10px;border-top:1px solid rgba(16,45,75,.06)}body.dark .onbFooter{border-color:rgba(255,255,255,.08)}.onbBack{flex:0 0 auto;border-radius:999px;padding:13px 20px;background:rgba(16,45,75,.07);color:var(--ink);font-weight:820;font-size:.88rem}body.dark .onbBack{background:rgba(255,255,255,.1);color:#fff}.onbNext{flex:1 1;border-radius:999px;padding:13px;background:linear-gradient(135deg,var(--calendar),var(--calendar-2));color:#fff;font-weight:820;font-size:.88rem}.onbNext:disabled{opacity:.45;cursor:default}.onbSkip{background:transparent;color:var(--muted);font-size:.8rem;font-weight:760;width:100%;padding:10px;margin-top:2px}.avatarPickRow{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.avatarPick{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;font-size:1.1rem;font-weight:860;color:#09223d;border:2.5px solid transparent;padding:0}.avatarPick.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--card)}.importOption{width:100%;display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid rgba(16,45,75,.08);border-radius:18px;padding:14px;margin-bottom:9px;box-shadow:var(--soft-shadow);text-align:left;transition:transform .15s}.importOption:active{transform:scale(.985)}body.dark .importOption{border-color:rgba(255,255,255,.1)}.importOptIcon{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;font-size:1.35rem;flex:0 0 auto}.importOptTitle{font-size:.88rem;font-weight:820;color:var(--ink)}.importOptSub{font-size:.7rem;color:var(--muted);margin-top:1px}.contactRow{display:flex;align-items:center;gap:11px;padding:9px 4px;border-top:1px solid rgba(16,45,75,.06)}.contactRow:first-child{border-top:none}body.dark .contactRow{border-color:rgba(255,255,255,.08)}.contactCheck{width:22px;height:22px;border-radius:8px;border:2px solid rgba(16,45,75,.25);background:transparent;flex:0 0 auto;display:grid;place-items:center;color:#fff;font-size:.72rem;font-weight:900;padding:0}.contactCheck.on{background:var(--green);border-color:var(--green)}body.dark .contactCheck{border-color:rgba(255,255,255,.3)}body.dark .contactCheck.on{border-color:var(--green)}.occGroupTitle{font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;font-weight:850;color:var(--muted);margin:16px 2px 8px}.occRow{display:flex;align-items:center;gap:10px;padding:9px 4px;border-top:1px solid rgba(16,45,75,.06)}.occRow:first-child{border-top:none}body.dark .occRow{border-color:rgba(255,255,255,.08)}.occEmoji{width:34px;height:34px;border-radius:11px;background:rgba(23,174,226,.1);display:grid;place-items:center;font-size:1.05rem;flex:0 0 auto}.occInfo{flex:1 1;min-width:0}.occName{font-size:.82rem;font-weight:780;color:var(--ink)}.occDate{font-size:.66rem;color:var(--muted)}.occBudgetInput{width:64px;background:rgba(16,45,75,.06);border-radius:10px;padding:5px 8px;font-size:.8rem;font-weight:820;color:var(--ink);outline:none;text-align:right}body.dark .occBudgetInput{background:rgba(255,255,255,.1);color:#fff}.bdayCard{background:var(--card);border:1px solid rgba(16,45,75,.08);border-radius:18px;padding:13px;margin-bottom:9px;box-shadow:var(--soft-shadow)}body.dark .bdayCard{border-color:rgba(255,255,255,.1)}.bdayHead{display:flex;align-items:center;gap:10px;margin-bottom:10px}.bdayInputs{display:grid;grid-template-columns:1fr 76px 84px;grid-gap:7px;gap:7px}.bdaySelect{background:rgba(16,45,75,.05);border-radius:12px;padding:9px 10px;font-size:.8rem;color:var(--ink);outline:none;width:100%}body.dark .bdaySelect{background:rgba(255,255,255,.08);color:#fff}.addOccBtn{font-size:.7rem;font-weight:800;color:var(--calendar);background:transparent;padding:6px 0 0}.summaryStat{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid rgba(16,45,75,.08);border-radius:18px;padding:15px;margin-bottom:9px;box-shadow:var(--soft-shadow)}body.dark .summaryStat{border-color:rgba(255,255,255,.1)}.summaryNum{font-size:1.5rem;font-weight:860;color:var(--calendar);min-width:56px;text-align:center}.summaryLabel{font-size:.82rem;font-weight:740;color:var(--ink)}.summarySubLabel{font-size:.68rem;color:var(--muted);margin-top:1px}.confettiWrap{text-align:center;font-size:2.6rem;margin:8px 0 2px}.inviteCard{width:min(100%,420px);background:var(--card);border-radius:28px;box-shadow:var(--shadow);padding:28px 24px;border:1px solid rgba(16,45,75,.08)}body.dark .inviteCard{border-color:rgba(255,255,255,.1)}.inviteHero{text-align:center;margin-bottom:20px}.inviteEmoji{font-size:2.6rem;margin-bottom:8px}.inviteTitle{font-size:1.3rem;font-weight:860;letter-spacing:-.03em;color:var(--ink);margin:0 0 6px}.inviteText{font-size:.84rem;color:var(--muted);line-height:1.55;margin:0}.inviteMsg{background:rgba(23,174,226,.08);border:1px solid rgba(23,174,226,.16);border-radius:16px;padding:13px 15px;font-size:.82rem;color:var(--ink);line-height:1.55;margin-bottom:16px;font-style:italic}.shareRow{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:8px;gap:8px;margin-top:12px}.shareBtn{border-radius:14px;padding:11px 6px;background:rgba(16,45,75,.06);color:var(--ink);font-size:.72rem;font-weight:800;display:flex;flex-direction:column;gap:4px;align-items:center}body.dark .shareBtn{background:rgba(255,255,255,.08);color:#fff}.shareBtn span{font-size:1.15rem}.inviteLinkBox{display:flex;gap:7px;align-items:center;background:rgba(16,45,75,.05);border-radius:13px;padding:9px 12px;margin-top:12px;font-size:.7rem;color:var(--muted);overflow:hidden}body.dark .inviteLinkBox{background:rgba(255,255,255,.07)}.inviteLinkBox code{flex:1 1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,monospace}.toast{position:absolute;left:50%;bottom:86px;transform:translate(-50%,20px);background:#102d4b;color:#fff;font-size:.78rem;font-weight:750;padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.22,1,.36,1);z-index:30;white-space:nowrap;box-shadow:0 12px 30px rgba(0,0,0,.25)}.toast.show{opacity:1;transform:translate(-50%)}body.dark .toast{background:#f7fbff;color:#102d4b}@media(max-width:820px){body{padding:0}.stage{display:block}.phone,.stage,.stage.single{width:100%}.phone{height:100vh;height:100dvh;min-height:680px;border-radius:0;border:0}.notes{display:none}}@media(max-width:380px){.brandLogoFull{width:104px}.gift{grid-template-columns:28px 1fr 118px 68px;gap:5px}.rowIcon{width:30px}.amountCtl{grid-template-columns:25px 1fr 25px}.calendarPanel{flex-basis:294px}.calGrid{height:214px}.summaryCard{padding:10px 5px}.sAmount{font-size:1.05rem}.productGrid{gap:8px}.productImg{height:90px}}