/* A consistent calendar scale and matching landscape banners. */
.cal-page{--cal-type-small:14px;--cal-type-body:16px;--cal-type-title:28px}.cal-heading{grid-template-columns:minmax(0,1fr) 300px;padding:10px 0 28px;gap:32px}.cal-heading h1{font-size:clamp(34px,3.7vw,48px);line-height:1.18;letter-spacing:-.8px;margin:12px 0 16px}.cal-heading>div>p{max-width:680px;font-size:16px;line-height:1.8}.cal-summary{padding:20px}.cal-summary>strong{font-size:48px}.cal-summary>p{font-size:20px;margin-bottom:12px}.cal-summary>div{font-size:14px;padding-top:12px}.cal-overline{font-size:12px;line-height:1.8;letter-spacing:1px}.cal-controls{gap:18px;padding:20px;align-items:end}.cal-controls label,.cal-event-filters>label{font-size:14px}.cal-controls select,.cal-event-filters select{font-size:15px;min-height:46px}.cal-controls p{font-size:14px}.cal-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:24px 0}.cal-tabs button{justify-content:center;font-size:15px;min-height:50px;padding:13px 12px}.cal-section-title h2{font-size:28px;line-height:1.35}.cal-section-title p{font-size:15px;line-height:1.75}.cal-banner-grid,.cal-upcoming-grid{display:grid;grid-template-columns:1fr;gap:22px}.cal-banner,.cal-banner.cal-banner-future{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;min-height:315px}.cal-banner-visual{position:relative;min-height:300px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,var(--cal-wash),transparent),var(--cal-deep);border-right:1px solid var(--cal-line)}.cal-banner .cal-banner-art{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border:0;position:absolute;inset:0}.cal-banner-preview .cal-banner-art{object-fit:contain;transform:scale(1.12)}.cal-banner-preview>span{position:absolute;left:16px;bottom:14px;background:var(--cal-deep);border:1px solid var(--cal-line);border-radius:7px;color:var(--cal-title);padding:6px 10px;font-size:12px;line-height:1.5}.cal-banner-announced{flex-direction:column;gap:12px;background:radial-gradient(circle at 65% 20%,#af554a35,transparent 70%),var(--cal-deep)}.cal-banner-announced>span{font:400 80px/1 Georgia,serif;color:var(--cal-accent)}.cal-banner-announced>strong{font:400 35px/1.3 Georgia,serif;letter-spacing:.14em;color:var(--cal-title)}.cal-banner-announced>small{font-size:15px;color:var(--cal-copy)}.cal-banner-copy{padding:24px}.cal-card-kicker{font-size:13px;gap:8px}.cal-banner h3{font-size:29px;line-height:1.25;margin:13px 0 7px}.cal-wish-name,.cal-featured{font-size:14px;line-height:1.65;margin:5px 0 10px}.cal-banner .cal-timer{padding:13px 16px;margin:14px 0}.cal-banner .cal-timer>p{font-size:13px;margin-bottom:8px}.cal-clock b{font-size:27px}.cal-clock small{font-size:12px}.cal-banner .cal-clock{gap:16px}.cal-banner .cal-date-count{font-size:22px}.cal-banner .cal-time-unknown{font-size:15px}.cal-dates dt,.cal-dates dd{font-size:14px;line-height:1.65}.cal-dates{margin:12px 0}.cal-schedule-note{font-size:14px;line-height:1.75;margin:10px 0}.cal-source-link{font-size:14px}.cal-event{padding:23px;display:flex;flex-direction:column}.cal-event h3{font-size:23px;line-height:1.35}.cal-event-description{font-size:15px;line-height:1.8}.cal-event-rewards{margin:16px 0}.cal-event .cal-timer{margin-top:auto}.cal-event-rewards .cal-currency strong{font-size:23px}.cal-event .cal-dates{margin-top:16px}.cal-status-filters button{font-size:14px}.cal-reward-strip{padding:20px 24px}.cal-reward-strip>div:first-child strong{font-size:30px}.cal-patch h2{font-size:32px}.cal-source-note p{font-size:14px;line-height:1.8}
/* Personal patch budget */
.pp-planner{padding-bottom:25px}.pp-heading{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:14px 0 24px}.pp-heading h2{font:400 clamp(30px,3.3vw,42px)/1.22 Georgia,serif;letter-spacing:-.5px;color:var(--cal-title);margin:11px 0 15px}.pp-heading p{font-size:16px;line-height:1.8;max-width:650px;margin:0}.pp-period{border:1px solid var(--cal-line);border-radius:13px;padding:19px 22px;background:var(--cal-bg);max-width:340px;min-width:260px}.pp-period>span{font-size:13px;color:var(--cal-accent);display:block;margin-bottom:8px}.pp-period strong{font-size:16px;line-height:1.6;color:var(--cal-title);display:block}.pp-period small{font-size:13px;line-height:1.7;display:block;margin-top:7px}.pp-toolbar{display:flex;gap:15px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:17px;border:1px solid var(--cal-line);border-radius:12px;background:var(--cal-bg)}.pp-toolbar button{font-size:14px;min-height:41px;border:1px solid var(--cal-line);background:var(--cal-deep);color:var(--cal-title);border-radius:8px;padding:9px 12px;font-weight:550}.pp-scope{display:flex;gap:5px}.pp-scope button[aria-pressed="true"]{background:#7d3049;border-color:#bd8297;color:#fff0e5}.pp-presets{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.pp-presets>span{font-size:13px;color:var(--cal-accent);margin-right:4px}.pp-presets .pp-clear{border-color:transparent;background:transparent;color:var(--cal-copy)}.pp-scope-note{font-size:14px;line-height:1.8;margin:13px 0 26px}.pp-workspace{display:grid;grid-template-columns:minmax(0,1fr) 335px;align-items:start;gap:25px}.pp-sources{min-width:0}.pp-source-group{margin-bottom:30px}.pp-source-group>h3{font-size:21px;color:var(--cal-title);line-height:1.4;margin:0 0 14px;font-weight:550}.pp-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.pp-source{min-width:0;border:1px solid var(--cal-line);border-radius:14px;background:var(--cal-bg);padding:19px;transition:border-color .2s,background .2s}.pp-source.is-enabled{border-color:var(--cal-accent);background:linear-gradient(145deg,var(--cal-wash),transparent 75%),var(--cal-bg)}.pp-source-choice{display:grid;grid-template-columns:32px minmax(0,1fr) 21px;gap:11px;cursor:pointer;align-items:start}.pp-source-choice strong{display:block;font-size:16px;line-height:1.5;color:var(--cal-title);font-weight:650}.pp-source-choice small{display:block;font-size:14px;line-height:1.7;margin-top:6px;color:var(--cal-copy)}.pp-source-choice input{width:20px;height:20px;margin:4px 0;accent-color:#a2516e;cursor:pointer}.pp-source-icon{display:grid;place-items:center;width:32px;height:34px;color:var(--cal-accent);border:1px solid var(--cal-line);border-radius:9px;background:var(--cal-wash)}.pp-source-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.pp-source-amount{display:flex;gap:7px 13px;flex-wrap:wrap;margin:17px 0 8px;padding-top:13px;border-top:1px solid var(--cal-line)}.pp-money{display:inline-flex;gap:5px;align-items:center;flex-wrap:wrap;color:var(--cal-title);font-size:13px;line-height:1.5}.pp-money img{object-fit:contain;flex-shrink:0}.pp-money b{font-size:18px;font-variant-numeric:tabular-nums}.pp-zero{font-size:14px;color:var(--cal-copy)}.pp-fields{border:0;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pp-fields p{grid-column:1/-1;font-size:13px;line-height:1.75;margin:0;color:var(--cal-copy)}.pp-field{display:flex;flex-direction:column;gap:8px;min-width:0}.pp-field>span{font-size:13px;line-height:1.6;min-height:21px}.pp-field input{width:100%;min-width:0;min-height:43px;padding:10px 11px;font-size:16px;color:var(--cal-title);background:var(--cal-deep);border:1px solid var(--cal-line);border-radius:8px;font-variant-numeric:tabular-nums}.pp-field input:focus-visible{outline:2px solid var(--cal-accent);outline-offset:2px}.pp-fields:disabled input{opacity:.5}.pp-source-link{display:inline-block;font-size:13px;color:var(--cal-accent);text-underline-offset:4px;margin-top:12px}.pp-event-options{grid-column:1/-1;border:1px solid var(--cal-line);border-radius:9px;overflow:hidden}.pp-event-options summary{padding:10px 12px;font-size:14px;cursor:pointer;color:var(--cal-title)}.pp-event-options summary>span{float:right;color:var(--cal-accent)}.pp-event-options>div{padding:0 12px}.pp-event-options label{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;padding:12px 0;border-top:1px solid var(--cal-line);font-size:13px;line-height:1.7;cursor:pointer}.pp-event-options input{accent-color:#a2516e;width:17px;height:17px;margin-top:3px}.pp-event-options b{font-variant-numeric:tabular-nums;color:var(--cal-title)}.pp-summary{position:sticky;top:108px;padding:25px;border:1px solid var(--cal-accent);border-radius:16px;background:radial-gradient(ellipse at top right,var(--cal-wash),transparent 70%),var(--cal-bg);scroll-margin-top:120px}.pp-summary h3{font:400 26px/1.3 Georgia,serif;color:var(--cal-title);margin:12px 0 24px}.pp-grand-wish{display:grid;grid-template-columns:58px auto;gap:0 13px;align-items:center;justify-content:start}.pp-grand-wish>img{grid-row:1/3;width:58px;height:58px;object-fit:contain}.pp-grand-wish strong{font:400 56px/1 Georgia,serif;color:var(--cal-title);font-variant-numeric:tabular-nums}.pp-grand-wish>span{font-size:15px;margin-top:5px}.pp-remainder{font-size:14px;line-height:1.7;margin:17px 0 23px}.pp-remainder b{color:var(--cal-title)}.pp-summary-money{margin:0;padding:15px 0;border-top:1px solid var(--cal-line);border-bottom:1px solid var(--cal-line)}.pp-summary-money>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}.pp-summary-money dt{display:flex;align-items:center;gap:8px;font-size:14px}.pp-summary-money img{object-fit:contain;flex-shrink:0}.pp-summary-money dd{margin:0;font-size:18px;color:var(--cal-title);font-weight:650;font-variant-numeric:tabular-nums}.pp-summary-explain,.pp-local-note{font-size:13px;line-height:1.8;margin:15px 0}.pp-plan-meta{display:flex;flex-wrap:wrap;gap:7px}.pp-plan-meta>span{padding:6px 8px;border-radius:6px;border:1px solid var(--cal-line);font-size:12px;color:var(--cal-title)}.pp-summary .button{background:var(--cal-raised);color:var(--cal-title);border:1px solid var(--cal-line);font-size:14px;width:100%;justify-content:center;margin-top:5px}.pp-calculation{border:1px solid var(--cal-line);border-radius:15px;background:var(--cal-bg);overflow:hidden;margin:8px 0 22px;scroll-margin-top:115px}.pp-ledger-heading{padding:22px 25px}.pp-ledger-heading h3{font-size:24px;font-weight:550;margin:0 0 8px;line-height:1.4;color:var(--cal-title)}.pp-ledger-heading p{font-size:14px;line-height:1.7;margin:0}.pp-ledger{list-style:none;padding:0;margin:0}.pp-ledger>li{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 25px;border-top:1px solid var(--cal-line)}.pp-ledger li>span:first-child{max-width:55%}.pp-ledger strong{font-size:16px;line-height:1.6;color:var(--cal-title);display:block}.pp-ledger small{display:block;font-size:13px;line-height:1.8;margin-top:3px}.pp-ledger li>span:last-child{display:flex;flex-wrap:wrap;gap:8px 15px;justify-content:flex-end}.pp-ledger-total{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--cal-raised);padding:23px 25px;border-top:2px solid var(--cal-accent)}.pp-ledger-total>strong{color:var(--cal-title);font-size:17px}.pp-ledger-total>span{display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end}.pp-ledger-total .pp-money b{font-size:23px}.pp-assumptions{font-size:14px;line-height:1.85;margin:0}.pp-mobile-total{display:none}
@media(max-width:1100px){.pp-workspace{grid-template-columns:minmax(0,1fr) 300px;gap:20px}.pp-source-grid{grid-template-columns:1fr}.pp-summary{padding:21px}.pp-source-choice small{max-width:90%}}
@media(max-width:800px){.cal-heading{grid-template-columns:1fr 240px;gap:20px}.cal-heading h1{font-size:36px}.cal-banner,.cal-banner.cal-banner-future{grid-template-columns:1fr}.cal-banner-visual{min-height:0;aspect-ratio:2.1/1;border-right:0;border-bottom:1px solid var(--cal-line)}.cal-banner .cal-banner-art{position:absolute}.cal-banner-preview .cal-banner-art{transform:none}.cal-banner-announced{min-height:190px;gap:8px}.cal-banner-announced>span{font-size:50px}.cal-banner-announced>strong{font-size:28px}.cal-banner-copy{padding:22px}.cal-banner h3{font-size:27px}.pp-heading{display:block}.pp-period{margin-top:20px;max-width:none;min-width:0;padding:16px 19px}.pp-workspace{grid-template-columns:1fr}.pp-summary{position:static;order:-1}.pp-grand-wish{float:left;margin-right:22px;min-height:104px}.pp-remainder{margin-top:20px}.pp-summary-money{clear:both}.pp-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pp-source-choice small{max-width:none}.pp-local-note{margin-bottom:10px}.pp-calculation,.pp-summary{scroll-margin-top:165px}}
@media(max-width:600px){.cal-heading{grid-template-columns:1fr;padding-bottom:22px}.cal-heading h1{font-size:35px}.cal-heading>div>p{font-size:15px}.cal-summary{display:none}.cal-controls{gap:15px;padding:17px}.cal-controls select{font-size:14px}.cal-controls label{min-width:0}.cal-controls p{font-size:13px}.cal-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cal-tabs button{font-size:14px;padding:12px 8px;min-height:47px;gap:7px}.cal-tabs svg{width:17px;height:17px}.cal-section-title h2{font-size:25px}.cal-section-title p{font-size:14px}.cal-banner-copy{padding:19px}.cal-banner h3{font-size:26px}.cal-card-kicker{font-size:12px}.cal-banner .cal-clock{gap:14px}.cal-clock b{font-size:26px}.cal-event h3{font-size:23px}.cal-event-description{font-size:15px}.cal-banner-grid,.cal-upcoming-grid{gap:18px}.pp-heading h2{font-size:31px}.pp-heading p{font-size:15px}.pp-heading{padding-top:3px}.pp-period strong{font-size:15px}.pp-toolbar{padding:14px;gap:14px}.pp-scope{width:100%}.pp-scope button{flex:1}.pp-presets>span{width:100%;margin-bottom:3px}.pp-presets button{font-size:13px;min-height:41px;padding:9px 10px}.pp-scope-note{font-size:14px}.pp-source-grid{grid-template-columns:1fr}.pp-source{padding:18px}.pp-source-group>h3{font-size:21px}.pp-source-choice strong{font-size:17px}.pp-source-choice small{font-size:14px}.pp-summary{padding:22px}.pp-summary h3{font-size:25px;margin-bottom:20px}.pp-grand-wish strong{font-size:48px}.pp-grand-wish{float:none;margin:0;min-height:0}.pp-remainder{margin:16px 0}.pp-summary-money{margin-top:20px}.pp-ledger-heading{padding:21px 19px}.pp-ledger-heading h3{font-size:23px}.pp-ledger>li{align-items:start;gap:12px;padding:17px 19px}.pp-ledger strong{font-size:15px}.pp-ledger small{font-size:12px}.pp-ledger li>span:last-child{max-width:48%}.pp-ledger .pp-money{font-size:12px;justify-content:flex-end}.pp-ledger .pp-money b{font-size:16px}.pp-ledger-total{align-items:start;padding:20px 19px}.pp-ledger-total>strong{font-size:15px;max-width:40%}.pp-ledger-total>span{max-width:55%}.pp-ledger-total .pp-money{justify-content:flex-end}.pp-ledger-total .pp-money b{font-size:21px}.pp-planner{padding-bottom:110px}.pp-mobile-total{display:flex;align-items:center;gap:10px;position:fixed;bottom:12px;left:12px;right:12px;z-index:30;border:1px solid var(--cal-accent);background:var(--cal-bg);color:var(--cal-title);padding:12px 14px;border-radius:13px;box-shadow:0 8px 30px #0004}.pp-mobile-total>img{width:32px;height:32px;object-fit:contain;flex-shrink:0}.pp-mobile-total>span{min-width:0;flex:1}.pp-mobile-total strong{display:block;font-size:17px;line-height:1.5}.pp-mobile-total small{display:block;font-size:12px;line-height:1.6;color:var(--cal-copy)}.pp-mobile-total button{background:var(--cal-raised);border:1px solid var(--cal-line);color:var(--cal-title);border-radius:8px;min-width:38px;height:38px;font-size:22px}.pp-assumptions{font-size:14px}.pp-source-grid,.pp-workspace{min-width:0}}
@media(prefers-reduced-motion:reduce){.pp-source{transition:none}}

.pp-source:not(.is-enabled) .pp-fields{display:none}.pp-excluded{width:100%;font-size:12px;line-height:1.7;color:var(--cal-copy)}.pp-fields{min-width:0}

.pp-cycle{display:block;width:fit-content;font-size:12px;line-height:1.65;color:var(--cal-accent);border:1px solid var(--cal-line);border-radius:5px;padding:3px 6px;margin-top:9px}.pp-full-plan-strip>div:nth-child(2)>p{font-size:12px;line-height:1.7;margin:7px 0 0;max-width:240px}.pp-full-plan-strip strong small{font-size:14px;font-family:inherit;font-weight:500;line-height:1.5}

#cal-content{scroll-margin-top:105px}@media(max-width:600px){#cal-content{scroll-margin-top:165px}}
