:root{font-family:ui-rounded,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-synthesis:none;color:#3e433d;background:#faf7ef;--ink:#36493e;--muted:#718078;--cream:#fffaf1;--green:#35866a;--mint:#e2f2e8;--pink:#ffe9e8;--lilac:#f1ebfc;--shadow:0 12px 28px rgba(68,96,64,.085)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100dvh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6eac91;outline-offset:2px}a{color:var(--green)}h1,h2,h3,p{margin:0}small{font-size:.78rem}.app-shell{max-width:1100px;margin:auto;padding:25px 24px 110px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:12px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{width:47px;height:47px;border-radius:16px;object-fit:cover;box-shadow:var(--shadow)}.brand-title{font-size:1.55rem;font-weight:900;color:var(--ink);line-height:1}.brand-subtitle{font-size:.8rem;color:#899086;font-weight:800}.top-actions{display:flex;align-items:center;gap:10px}.cloud-pill{border:1px solid #e3e9df;padding:7px 10px;background:white;border-radius:99px;font-size:.75rem;font-weight:800;color:#607e73}.cloud-pill.online{background:#e1f4e8;color:#337557}.icon-button{border:0;background:white;width:43px;height:43px;border-radius:15px;box-shadow:var(--shadow);font-size:20px}.tabs{display:flex;gap:5px;justify-content:center;background:#ffffffbb;border:1px solid #eeeee8;border-radius:25px;padding:6px;max-width:760px;margin:0 auto 24px}.tab{background:transparent;color:#778579;border:0;border-radius:20px;padding:12px 13px;display:flex;align-items:center;gap:7px;font-size:.87rem;font-weight:900}.tab.active{color:#226c50;background:var(--mint);box-shadow:0 3px 12px rgba(49,136,102,.08)}.tab-icon{font-size:1.15rem}.page-title{font-size:1.65rem;font-weight:900;color:var(--ink);letter-spacing:-.03em}.page-subtitle{color:var(--muted);margin-top:4px;font-size:.95rem}.section-head{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:28px 0 12px}.section-title{font-size:1.12rem;color:#425747;font-weight:900}.grid-main{display:grid;grid-template-columns:1.17fr .83fr;gap:18px}.stack{display:flex;flex-direction:column;gap:16px}.card{background:rgba(255,255,255,.94);border:1px solid #f0efe9;border-radius:25px;box-shadow:var(--shadow);padding:21px}.card.softgreen{background:#e9f5ed;border-color:#e4f1e6}.card.softpink{background:#fff0ed;border-color:#ffeee7}.card.softlilac{background:#f3edff;border-color:#eee4fa}.card-title{color:#55665a;font-weight:900;font-size:.93rem}.large-number{font-size:2.15rem;line-height:1.17;font-weight:900;color:var(--ink);letter-spacing:-.045em;margin:5px 0}.minor{font-size:.84rem;color:#86948a;font-weight:700}.positive{color:#2f8b66}.negative{color:#c76b68}.stat-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.stat-icon{font-size:1.3rem;margin-bottom:8px}.hero{position:relative;overflow:hidden;border-radius:29px;height:395px;background:#67c3b4;box-shadow:var(--shadow)}.hero img{width:100%;height:100%;object-fit:cover;object-position:center 60%;animation:soft-breathe 7s ease-in-out infinite alternate}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(17,63,47,.05),transparent 42%,rgba(23,65,37,.16));pointer-events:none}.hero-text{position:absolute;top:20px;left:20px;max-width:64%;z-index:1}.hero-chip{display:inline-block;background:#fff9e9ef;color:#4f6651;border:2px solid #fffaf0;border-radius:18px 18px 18px 5px;padding:12px 15px;box-shadow:0 7px 25px #4f714533;font-size:.93rem;font-weight:900;line-height:1.35}.hero .hello{position:absolute;bottom:18px;left:20px;right:20px;z-index:1;color:white;text-shadow:0 2px 9px #28634a88;font-weight:900;font-size:1.65rem}.sparkle{position:absolute;z-index:2;pointer-events:none;animation:twinkle 2.5s ease-in-out infinite alternate;font-size:1.3rem}.sparkle.a{top:44%;left:12%}.sparkle.b{top:58%;right:12%;animation-delay:1.3s}.sparkle.c{bottom:14%;right:24%;animation-delay:.7s}.hero-hint{margin-top:8px;font-size:.74rem;color:#8b988b;text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#3f9777;color:white;border:0;border-radius:16px;padding:12px 17px;font-size:.9rem;font-weight:900;white-space:nowrap;box-shadow:0 4px 15px #40957320}.btn:hover{filter:brightness(.98)}.btn.secondary{background:#e6f3eb;color:#367e60;box-shadow:none}.btn.pink{background:#ffebea;color:#a46066;box-shadow:none}.btn.ghost{background:white;border:1px solid #e5ebe5;color:#607e6d;box-shadow:none}.btn.tiny{font-size:.78rem;padding:9px 12px;border-radius:12px}.btn.full{width:100%}.actions-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.item-list{display:flex;flex-direction:column;gap:9px}.list-item{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid #eff1eb;border-radius:18px;padding:13px 14px;min-width:0}.item-icon{height:42px;width:42px;flex:0 0 42px;background:#f0f7ee;border-radius:14px;display:grid;place-items:center;font-size:1.3rem}.item-body{flex:1;min-width:0}.item-name{font-size:.93rem;font-weight:900;color:#495a4e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-desc{font-size:.76rem;font-weight:700;color:#89958a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-amount{font-size:.93rem;font-weight:900;white-space:nowrap}.item-actions{display:flex;gap:4px}.mini-icon{border:0;background:#f5f7f1;color:#6c8272;border-radius:10px;width:32px;height:32px;font-size:14px}.progress{width:100%;height:11px;background:#e9ede7;border-radius:100px;overflow:hidden;margin:12px 0 7px}.progress-fill{height:100%;background:linear-gradient(90deg,#83c9a1,#409c79);border-radius:100px;transition:width .6s ease}.goal-card{background:white;padding:18px;border:1px solid #f0eee9;border-radius:22px;box-shadow:var(--shadow)}.goal-header{display:flex;justify-content:space-between;gap:8px;align-items:center}.goal-emoji{font-size:2rem;line-height:1}.goal-name{font-weight:900;font-size:1.02rem;color:var(--ink)}.goal-numbers{font-size:.84rem;font-weight:800;color:#76867a}.goal-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.empty{background:#ffffffbd;border:2px dashed #d9e7dd;border-radius:23px;padding:28px 18px;text-align:center}.empty-emoji{font-size:2.2rem;margin-bottom:8px}.empty h3{font-size:1.08rem;color:var(--ink);margin-bottom:6px}.empty p{font-size:.86rem;color:#7c8b7c;margin-bottom:14px}.budget-number{font-size:1.95rem;font-weight:900;color:#3f7c60}.budget-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.budget-tile{padding:12px;background:#fbfbf8;border-radius:16px}.budget-tile small{color:#839084;font-weight:800}.budget-tile strong{display:block;font-size:1.05rem;margin-top:2px;color:#526957}.chart-row{display:flex;gap:11px;align-items:center;margin:12px 0}.chart-label{font-size:.86rem;font-weight:900;min-width:105px;max-width:35%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-track{flex:1;background:#eaf1eb;height:13px;border-radius:50px;overflow:hidden}.chart-fill{height:100%;background:#89c5a1;border-radius:50px}.chart-value{font-weight:900;font-size:.86rem;color:#63796a;min-width:75px;text-align:right}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:.82rem;font-weight:900;color:#667666}.field input,.field select,.field textarea{width:100%;border:1.5px solid #e3eae2;border-radius:15px;padding:12px 13px;background:#fffcf7;color:#3e5145;min-height:47px;font-weight:800;outline-offset:1px}.field textarea{resize:vertical;min-height:85px}.note{padding:12px 14px;border-radius:15px;background:#f1f7f0;color:#68806c;font-size:.83rem;line-height:1.4;font-weight:700}.note.warn{background:#fff1e4;color:#937253}.segmented{display:flex;gap:5px;background:#f2f5ef;padding:5px;border-radius:15px}.segmented button{flex:1;background:transparent;border:0;border-radius:11px;padding:10px 5px;color:#859083;font-weight:900;font-size:.83rem}.segmented button.active{background:white;color:#2c8661;box-shadow:0 3px 8px #42674717}.bottom-nav{display:none}.modal-backdrop{position:fixed;z-index:50;inset:0;background:#273d32a8;display:flex;justify-content:center;align-items:center;padding:15px;backdrop-filter:blur(6px)}.modal-panel{width:min(100%,540px);max-height:calc(100dvh - 34px);overflow-y:auto;background:#fffdf8;border-radius:27px;padding:25px;box-shadow:0 24px 70px #1a372c4d}.modal-title{font-size:1.45rem;font-weight:900;color:var(--ink);margin-bottom:6px}.modal-subtitle{font-size:.85rem;color:var(--muted);margin-bottom:19px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:19px}.modal-close{float:right;border:0;background:#f2f4ef;border-radius:12px;font-size:17px;padding:6px 10px}.toast{position:fixed;z-index:100;bottom:100px;left:50%;transform:translate(-50%,12px);background:#3b765b;color:white;border-radius:15px;padding:12px 19px;box-shadow:var(--shadow);font-weight:900;opacity:0;pointer-events:none;transition:.2s;text-align:center;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}.onboard{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:22px;background:radial-gradient(at 20% 15%,#d8f8e6,transparent 43%),radial-gradient(at 85% 90%,#fbe5e5,transparent 40%),#faf7ef}.onboard-card{width:min(100%,480px);background:#fffaf5;padding:23px;border-radius:32px;box-shadow:0 25px 70px #50725b20;text-align:center}.onboard-art{height:260px;overflow:hidden;border-radius:24px;margin-bottom:15px;position:relative}.onboard-art img{height:100%;width:100%;object-fit:cover;object-position:center 55%}.onboard-title{font-size:1.85rem;font-weight:900;color:var(--ink)}.onboard-desc{color:#78867a;line-height:1.45;font-weight:700;margin:10px 0 18px}.onboard-card input{width:100%;border:2px solid #e0eee2;border-radius:17px;background:#fff;padding:14px 16px;text-align:center;font-size:1.1rem;font-weight:900;margin-bottom:12px}.foot-disclaimer{color:#93a096;font-weight:700;font-size:.73rem;margin-top:19px;line-height:1.5}.data-note{font-size:.78rem;color:#8d998d;margin:10px 0}.grow{flex:1}.account-total{background:#ecf7ec;border-radius:17px;padding:13px;font-weight:900}.muted-divider{height:1px;background:#e9ede8;margin:14px 0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cloud-banner{background:#fff0e4;border-radius:19px;padding:15px;color:#7d6c5d;font-size:.88rem;font-weight:700}.nowrap{white-space:nowrap}.banner-soft{background:#e6f4e9;color:#4e7862}.sr-only{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.confetti-layer{position:fixed;z-index:90;inset:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;width:10px;height:15px;border-radius:3px;animation:confetti-fall 2.3s ease-in forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}100%{transform:translateY(65vh) rotate(700deg);opacity:0}}@keyframes soft-breathe{from{transform:scale(1.002)}to{transform:scale(1.04)}}@keyframes twinkle{0%{opacity:.35;transform:translateY(0) rotate(-10deg)}100%{opacity:1;transform:translateY(-11px) rotate(10deg)}}@media(max-width:770px){.app-shell{padding:17px 14px 105px}.tabs{display:none}.brand-icon{height:42px;width:42px}.brand-title{font-size:1.32rem}.topbar{margin-bottom:16px}.grid-main{grid-template-columns:1fr}.hero{height:350px}.hero .hello{font-size:1.45rem}.cloud-pill{font-size:.66rem;padding:7px 9px}.card{padding:18px}.bottom-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fffdf8ed;box-shadow:0 -3px 30px #647e5b22;backdrop-filter:blur(16px);padding:9px 6px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #e9eee5}.bottom-nav button{background:transparent;border:0;color:#9baba0;display:flex;flex-direction:column;gap:2px;align-items:center;font-size:.63rem;font-weight:900;min-width:0}.bottom-nav button .emoji{font-size:1.34rem}.bottom-nav button.active{color:#368262}.settings-grid{grid-template-columns:1fr}.page-title{font-size:1.46rem}}@media(max-width:420px){.form-grid{grid-template-columns:1fr}.hero{height:310px}.hero-text{max-width:75%}.hero-chip{font-size:.8rem}.stat-row{gap:9px}.large-number{font-size:1.78rem}.card{padding:15px}.goal-card{padding:15px}.top-actions{gap:5px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* Rupert Animation Pack 1 — all artwork based on the original supplied teddy */
.hero-world,.hero-atmosphere{position:absolute;inset:0;pointer-events:none}
.hero-world{z-index:0;overflow:hidden}
.hero-world img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;user-select:none;-webkit-user-drag:none;max-width:none}
.hero-meadow{animation:none!important;transform:none!important}
.rupert-character{position:absolute;inset:0;will-change:transform;transform-origin:52% 69%;animation:rupert-breath 5.4s ease-in-out infinite}
.hero-world .rupert-body,.hero-world .rupert-paw,.hero-world .rupert-eyelids{animation:none;transform:none}
.hero-world .rupert-paw{transform-origin:56% 60%;will-change:transform}
.hero-world .rupert-eyelids{opacity:0;animation:rupert-blink 6.8s steps(1,end) infinite;pointer-events:none}
.hero-atmosphere{z-index:1;transition:background 1s}
.hero-night .hero-atmosphere{background:linear-gradient(180deg,rgba(21,49,82,.36),rgba(10,43,52,.04) 55%,rgba(20,40,67,.19))}
.hero-evening .hero-atmosphere{background:linear-gradient(160deg,rgba(255,175,110,.19),transparent 65%)}
.hero-morning .hero-atmosphere{background:linear-gradient(160deg,rgba(255,238,189,.16),transparent 65%)}
.hero:after{z-index:2}
.hero-text{z-index:7}
.hero-chip{display:block;transition:transform .25s ease}
.hero-chip.speech-pop{animation:rupert-speech .55s cubic-bezier(.17,.67,.3,1.25)}
.hero .hello{z-index:7;pointer-events:none;bottom:18px}
.rupert-tap{position:absolute;z-index:5;inset:21% 11% 10% 12%;background:transparent;border:0;border-radius:35%;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.rupert-tap:focus-visible{outline:3px solid white;outline-offset:-4px}
.hero-tap-hint{position:absolute;z-index:7;right:14px;bottom:17px;background:#fff9e5ec;color:#447b61;font-size:.68rem;font-weight:900;padding:7px 10px;border-radius:999px;pointer-events:none;box-shadow:0 2px 12px #234e3c22}
.scene-flower{position:absolute;z-index:3;bottom:10%;font-size:1.55rem;opacity:.9;pointer-events:none;transform-origin:50% 100%;animation:flower-sway 4.6s ease-in-out infinite alternate}
.flower-one{left:4%}.flower-two{right:7%;animation-delay:1s}
.sparkle{z-index:3;animation:twinkle 2.5s ease-in-out infinite alternate}
.hero.rupert-waving .rupert-paw{animation:rupert-wave 1.8s ease-in-out 1}
.hero.rupert-celebrating .rupert-paw{animation:rupert-wave 1.5s ease-in-out 1}
.hero.rupert-celebrating .rupert-character{animation:rupert-hop 1.5s ease-in-out 1}
@keyframes rupert-breath{0%,100%{transform:translateY(0px) rotate(-.18deg) scale(1)}50%{transform:translateY(-4px) rotate(.18deg) scale(1.007)}}
@keyframes rupert-blink{0%,7%,9%,10%,13%,94%,100%{opacity:0}8%,11%{opacity:1}}
@keyframes rupert-wave{0%,100%{transform:rotate(0)}20%{transform:rotate(-10deg)}42%{transform:rotate(8deg)}60%{transform:rotate(-13deg)}78%{transform:rotate(7deg)}}
@keyframes rupert-hop{0%,100%{transform:translateY(0) scale(1)}26%{transform:translateY(-13px) scale(1.015)}49%{transform:translateY(0) scale(.997)}72%{transform:translateY(-8px) scale(1.01)}}
@keyframes rupert-speech{0%{transform:scale(.95) translateY(5px);opacity:.45}65%{transform:scale(1.035) translateY(-2px)}100%{transform:scale(1) translateY(0);opacity:1}}
@keyframes flower-sway{from{transform:rotate(-8deg)}to{transform:rotate(7deg)}}
.rupert-motion-off .rupert-character,.rupert-motion-off .hero-world img,.rupert-motion-off .scene-flower,.rupert-motion-off .sparkle,.rupert-motion-off .hero-chip,.rupert-motion-off .rupert-paw{animation:none!important;transition:none!important}
@media(max-width:440px){.hero-tap-hint{font-size:.59rem;right:8px;bottom:12px}.hero .hello{bottom:41px}.hero-text{max-width:80%}.hero-chip{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.hero-tap-hint{opacity:.8}}

.hero-night .hero-world .rupert-eyelids{animation:rupert-sleepy-blink 12s ease-in-out infinite}
@keyframes rupert-sleepy-blink{0%,9%,35%,47%,100%{opacity:0}12%,30%,42%{opacity:1}}

.rupert-mini-reaction{position:fixed;z-index:75;bottom:calc(91px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;max-width:min(90vw,390px);min-width:210px;padding:10px 14px 10px 9px;border-radius:20px;background:#fffaf0;border:2px solid #dfeee2;box-shadow:0 12px 35px #344a3440;color:#52715b;font-size:.82rem;font-weight:900;line-height:1.35;animation:mini-buddy-pop .5s cubic-bezier(.2,1.2,.42,1)}
.rupert-mini-reaction img{width:46px;height:46px;border-radius:15px;object-fit:cover;flex-shrink:0;animation:mini-buddy-bounce 1.3s ease-in-out 2}
@keyframes mini-buddy-pop{from{opacity:0;transform:translate(-50%,20px) scale(.88)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes mini-buddy-bounce{0%,100%{transform:rotate(0)}45%{transform:rotate(-11deg)}}
.rupert-motion-off .rupert-mini-reaction,.rupert-motion-off .rupert-mini-reaction img{animation:none!important}
@media(prefers-reduced-motion:reduce){.rupert-mini-reaction,.rupert-mini-reaction img{animation:none!important}}

/* Rupert 1.2 – Fixkosten auf einen Blick, auch auf kleinen iPhones */
.fixed-summary{background:linear-gradient(140deg,#f4eefa,#fff8ed 85%);border:1px solid #f1e3ec;border-radius:20px;padding:17px;margin:7px 0 15px;color:#4d5b50}
.fixed-summary-head{display:flex;align-items:start;justify-content:space-between;gap:12px}
.fixed-summary-title{font-size:.87rem;font-weight:900;color:#667563}
.fixed-summary-amount{font-weight:950;letter-spacing:-.04em;font-size:clamp(1.5rem,6vw,2.05rem);color:#405f4e;margin-top:3px;overflow-wrap:anywhere}
.fixed-summary-bear{font-size:2rem;line-height:1;opacity:.9}
.fixed-summary-breakdown{display:flex;gap:10px 20px;flex-wrap:wrap;font-size:.8rem;color:#687b6f;margin-top:12px;font-weight:750}
.fixed-summary-breakdown strong{color:#425c4b}
.fixed-summary-help{font-size:.77rem;color:#809084;font-weight:700;line-height:1.38;margin-top:9px}
.fixed-summary-actions{margin-top:12px}
.fixed-summary-actions button{white-space:normal;text-align:center}
.home-fixed{margin-top:0}
@media(max-width:420px){.fixed-summary{padding:14px}.fixed-summary-breakdown{flex-direction:column;gap:5px}}

/* Version 1.5: Five matching full-character poses instead of a rotating cut-out arm. */
.hero-world .rupert-pose{animation:none!important;transform:none!important;image-rendering:auto;}
.hero.rupert-waving .rupert-pose,.hero.rupert-celebrating .rupert-pose{animation:none!important;}

/* Soft eyelid movement using a full Rupert pose (never an overlaid detached limb). */
.hero-world .rupert-blink-frame{z-index:2;opacity:0;transform:none!important;animation:rupert-blink-pose 7s steps(1,end) infinite!important;pointer-events:none}
@keyframes rupert-blink-pose{0%,93%,96%,100%{opacity:0}94%,95%{opacity:1}}
.hero.rupert-waving .rupert-blink-frame,.hero.rupert-celebrating .rupert-blink-frame,.rupert-motion-off .rupert-blink-frame{opacity:0!important;animation:none!important}
@media(prefers-reduced-motion:reduce){.hero-world .rupert-blink-frame{opacity:0!important;animation:none!important}}
