@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg:#ecdcc0;--surface:#f7efdb;--surface-2:#faf3e2;--teal:#1f5a52;--teal-deep:#143f39;--teal-soft:#e2ede9;--amber:#e8a838;--amber-soft:#f6e2b5;--good:#2f7a4d;--good-soft:#d9ebdd;--warn:#c68716;--bad:#b84a3a;--bad-soft:#f0ccc4;--ink:#1a1f1b;--ink-2:#4a4538;--ink-3:#8a7f6a;--hair:#1a1f1b1a;--f-display:"Outfit", "Inter", -apple-system, "Segoe UI", sans-serif;--f-body:"Inter", -apple-system, "Segoe UI", sans-serif;--f-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:22px;--r-pill:999px}*{box-sizing:border-box}html,body{color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;background:#e5d5b7;margin:0}:root{--color-traffic-green:#4caf50;--color-traffic-green-inner:#4caf50f2;--color-traffic-green-outer:#4caf5099;--color-traffic-green-shadow:#4caf504d;--color-traffic-yellow:#ffc107;--color-traffic-yellow-inner:#ffc107f2;--color-traffic-yellow-outer:#ffc10799;--color-traffic-yellow-shadow:#ffc1074d;--color-traffic-red:#e85d5d;--color-traffic-red-inner:#e85d5df2;--color-traffic-red-outer:#e85d5d99;--color-traffic-red-shadow:#e85d5d4d;--color-budget-needs:#5b8c5a;--color-budget-wants:#e8a838;--color-budget-debt:#e85d5d;--color-budget-savings:#4a90c4;--color-cal-payday:#4caf50;--color-cal-bill:#e85d5d;--color-cal-today-bg:#4caf501f;--color-cal-today-border:#4caf5066;--color-money-in:#43a047;--color-money-out:#c62828}:root,:root[data-theme=lagoon-light],:root[data-theme=savanna-light],:root[data-theme=midnight-dark],:root[data-theme=savanna-dark]{--color-primary:var(--teal);--color-on-primary:var(--surface);--color-bg:var(--bg);--color-accent:var(--amber);--color-danger:var(--bad);--color-success:var(--good);--color-text:var(--ink);--color-surface:var(--surface-2);--color-surface-hover:var(--surface);--color-card:var(--surface);--color-card-border:var(--hair);--color-link:var(--teal);--color-border:var(--hair);--color-header:var(--teal-deep);--color-header-text:var(--surface)}*{margin:0;padding:0;font-family:inherit}:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.skip-link{z-index:99999;background:var(--color-text);color:var(--color-bg);border-radius:0 0 8px 8px;padding:12px 24px;font-size:.95rem;font-weight:700;text-decoration:none;transition:top .2s;position:absolute;top:-100px;left:16px}.skip-link:focus{top:0}html{scroll-behavior:smooth}body{-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;width:100%;height:100%;line-height:1.7;transition:background-color .3s,color .3s}h1,h2,h3,h4{letter-spacing:-.025em;line-height:1.2}#root{width:100%;height:100%}.chat-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);overscroll-behavior:contain;background:#00000059;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.chat-container{background:var(--color-card);border:1px solid var(--color-card-border);flex-direction:column;width:100%;max-width:500px;height:100dvh;display:flex;overflow:hidden}@media (width>=600px){.chat-overlay{align-items:center;padding:24px}.chat-container{border-radius:16px;height:auto;max-height:min(800px,90dvh);box-shadow:0 12px 40px #0003}}.hero-circle-btn:active>div:first-child{transform:scale(.95)!important;box-shadow:0 2px 8px #0000004d,inset 0 2px 8px #00000040!important}.mascot-anim-idle{animation:3s ease-in-out infinite mascot-idle-breathe}@keyframes mascot-idle-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(1.02)}}.mascot-anim-waving{animation:1.2s ease-in-out infinite mascot-waving-rock}@keyframes mascot-waving-rock{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(3deg)scale(1.03)}75%{transform:rotate(-3deg)scale(1.03)}}.mascot-anim-listening{animation:2s ease-in-out infinite mascot-listening-tilt}@keyframes mascot-listening-tilt{0%,to{transform:rotate(0)}50%{transform:rotate(5deg)translate(2px)}}.mascot-anim-thinking{animation:2.5s ease-in-out infinite mascot-thinking-sway}@keyframes mascot-thinking-sway{0%,to{transform:rotate(0)translateY(0)}25%{transform:rotate(2deg)translateY(-2px)}75%{transform:rotate(-2deg)translateY(-2px)}}.mascot-anim-celebrating{animation:.6s ease-in-out infinite mascot-celebrating-bounce}@keyframes mascot-celebrating-bounce{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-10px)scale(1.08)}60%{transform:translateY(-5px)scale(1.04)}}.mascot-anim-sleeping{animation:4s ease-in-out infinite mascot-sleeping-bob}@keyframes mascot-sleeping-bob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(2px)scale(.98)}}.mascot-zzz-overlay{pointer-events:none;flex-direction:column;align-items:flex-end;display:flex;position:absolute;top:0;right:-4px}.mascot-zzz-overlay span{color:var(--color-primary,#d4a843);font-weight:700;line-height:1}.mascot-zzz-overlay span:first-child{font-size:.5em;animation:2.5s ease-in-out infinite mascot-zzz-float}.mascot-zzz-overlay span:nth-child(2){font-size:.65em;animation:2.5s ease-in-out .4s infinite mascot-zzz-float}.mascot-zzz-overlay span:nth-child(3){font-size:.8em;animation:2.5s ease-in-out .8s infinite mascot-zzz-float}@keyframes mascot-zzz-float{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}.mascot-anim-concerned{animation:.15s ease-in-out infinite mascot-concerned-tremble}@keyframes mascot-concerned-tremble{0%,to{transform:translate(0)}25%{transform:translate(-1.5px)rotate(-.5deg)}75%{transform:translate(1.5px)rotate(.5deg)}}.mascot-anim-proud{animation:3s ease-in-out infinite mascot-proud-puff}@keyframes mascot-proud-puff{0%,to{transform:scale(1)translateY(0)}30%{transform:scale(1.06)translateY(-3px)}60%{transform:scale(1.03)translateY(-1px)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}@keyframes fabSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes flash-update{0%{box-shadow:0 0 0 3px var(--color-traffic-green-shadow), 0 12px 40px #00000026;background-color:var(--color-cal-today-bg)}to{background-color:var(--color-surface);box-shadow:0 12px 40px #00000026}}.card-flash-update{animation:7s ease-out forwards flash-update}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-slide-up{animation:.6s cubic-bezier(.16,1,.3,1) forwards fadeSlideUp}.footer{text-align:center;color:var(--color-text);border-top:1px solid var(--color-border);opacity:.6;margin-top:32px;padding:48px 16px;font-size:.85rem}.mobile-only{display:none}.desktop-only{display:block}.responsive-grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=768px){.mobile-only{display:block}.desktop-only{display:none}.responsive-grid-2{grid-template-columns:1fr}}@media (width<=640px){.insight-card-header{padding:14px 16px 12px!important}.insight-card-content{padding:16px!important}.insight-card-action{padding:0 16px 16px!important}}.calendar-grid{background-color:var(--color-border);border:1px solid var(--color-border);border-radius:8px;grid-template-columns:repeat(7,1fr);gap:2px;display:grid;overflow:hidden}.agenda-list{flex-direction:column;gap:16px;display:flex}.agenda-day{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:16px}.agenda-day-header{border-bottom:1px solid var(--color-border);color:var(--color-text);margin-bottom:8px;padding-bottom:8px;font-weight:700}.profile-container{background-color:var(--color-border);min-height:calc(100vh - 50px);display:flex}.profile-sidebar{border-right:1px solid var(--color-border);background-color:var(--color-bg);flex-shrink:0;width:220px;height:calc(100vh - 50px);padding:24px 0;position:sticky;top:50px;overflow-y:auto}.profile-nav-button{cursor:pointer;text-align:left;border:none;align-items:center;gap:10px;width:100%;padding:10px 20px;font-family:inherit;font-size:.88rem;display:flex}.profile-main{flex:1;max-width:100%;padding:40px 48px;overflow-y:auto}@media (width<=768px){.profile-container{flex-direction:column}.profile-sidebar{border-right:none;border-bottom:1px solid var(--color-border);white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex-direction:row;align-items:center;width:100%;height:auto;padding:8px 16px;display:flex;position:relative;top:0;overflow-x:auto}.profile-sidebar::-webkit-scrollbar{display:none}.profile-nav-button{border-bottom:2px solid #0000;border-radius:16px;width:auto;padding:8px 12px;border-left:none!important}.profile-nav-label{font-size:.8rem}.profile-main{padding:24px 16px}}.glass-overlay{-webkit-backdrop-filter:blur(4px);z-index:9999;background-color:#00000059;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.glass-container{background-color:var(--color-card);-webkit-backdrop-filter:blur(82px);border:1px solid var(--color-card-border);border-radius:16px;flex-direction:column;width:100%;max-width:700px;height:100%;max-height:900px;display:flex;overflow:hidden;box-shadow:0 12px 40px #0003}@media (width<=640px){.glass-overlay{align-items:flex-end;padding:0}.glass-container{border-bottom:none;border-left:none;border-right:none;border-radius:24px 24px 0 0;height:92vh;max-height:92vh}}.mic-button{background-color:var(--color-text);width:48px;height:48px;color:var(--color-bg);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.3rem;transition:background-color .2s,transform .15s;display:flex}.mic-button:hover{transform:scale(1.05)}.mic-button:active{transform:scale(.95)}.mic-button.recording{background-color:var(--color-danger);animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #d9404080}50%{box-shadow:0 0 0 14px #d9404000}}.recording-status{color:var(--color-danger);flex:1;align-items:center;gap:8px;padding:0 12px;font-size:.9rem;font-weight:600;display:flex}.recording-dot{background-color:var(--color-danger);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite recording-blink}@keyframes recording-blink{0%,to{opacity:1}50%{opacity:.3}}.tts-button{border:1px solid var(--color-card-border);background-color:var(--color-surface-hover);-webkit-backdrop-filter:blur(6px);width:44px;height:44px;color:var(--color-text);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:8px;margin-left:12px;font-size:1.2rem;transition:all .2s;display:inline-flex;box-shadow:0 4px 12px #00000026}.tts-button:hover{background-color:var(--color-surface-hover);transform:scale(1.1)translateY(-1px);box-shadow:0 6px 12px #0003}.tts-button.speaking{background-color:var(--color-surface-hover);animation:1.5s ease-in-out infinite tts-glow}@keyframes tts-glow{0%,to{box-shadow:0 0 0 0 var(--color-traffic-green-shadow)}50%{box-shadow:0 0 0 8px #0000}}.turn-counter{background-color:var(--color-surface);color:var(--color-text);letter-spacing:.03em;opacity:.7;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;padding:4px 12px;font-size:.72rem;font-weight:700;display:flex}.turn-counter.final-turn{color:var(--color-danger);opacity:1;background-color:#d940401f}.session-complete{text-align:center;color:var(--color-text);background-color:var(--color-surface);border-top:1px solid var(--color-border);opacity:.7;justify-content:center;align-items:center;padding:16px;font-size:.9rem;font-weight:600;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{body{background-color:var(--color-surface)!important;color:var(--color-text)!important}.no-print{display:none!important}.print-only{display:inline-block!important}@page{size:landscape;margin:1cm}html,body{height:100%!important;overflow:hidden!important}}@keyframes upoor-pulse{0%,80%,to{opacity:.3}40%{opacity:1}}@keyframes pulseOpacity{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.spinner{animation:1.5s ease-in-out infinite pulseOpacity;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
