@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;500;700&family=Zen+Maru+Gothic:wght@400;700&display=swap";:root{--color-bg: #E3F2FD;--color-surface: #FFFFFF;--color-primary: #FF7043;--color-secondary: #4FC3F7;--color-text-main: #263238;--color-text-sub: #546E7A;--radius-lg: 24px;--shadow-soft: 0 10px 30px rgba(0, 0, 0, .05)}*{box-sizing:border-box}body{margin:0;font-family:Zen Maru Gothic,Outfit,sans-serif;background-color:var(--color-bg);color:var(--color-text-main);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}.character-float{animation:float 6s ease-in-out infinite}@keyframes float{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(2deg)}to{transform:translateY(0) rotate(0)}}:root{--primary: #FF7043;--primary-light: #FF8A65;--secondary: #42A5F5;--accent: #FFD54F;--bg-gradient: linear-gradient(135deg, #FFF5F2 0%, #FFFBF0 100%);--glass: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .3);--text-main: #2C3E50;--text-sub: #7F8C8D;--shadow: 0 8px 32px 0 rgba(31, 38, 135, .1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;width:100%;height:100%;font-family:Outfit,"M PLUS Rounded 1c",sans-serif;color:var(--text-main);background:#f0f2f5}.app-container{width:100%;max-width:480px;margin:0 auto;height:100vh;position:relative;background:var(--bg-gradient);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 40px #0000001a}@media(min-width:500px){.app-container{height:95vh;margin:2.5vh auto;border-radius:40px;border:12px solid #1a1a1a}}.glass{background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--shadow)}.header{height:70px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;z-index:100;border-radius:0 0 20px 20px}.brand{font-weight:900;font-size:1.2rem;letter-spacing:-.5px;color:var(--primary)}.menu-btn{background:none;border:none;color:var(--text-main);cursor:pointer}.lv-badge{background:var(--primary);color:#fff;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:700}.main-content{flex:1;padding:20px;overflow-y:auto}.dashboard{display:flex;flex-direction:column;gap:25px}.character-display{display:flex;flex-direction:column;align-items:center;position:relative;gap:15px}.dashboard-character{width:180px;height:180px}.onboarding-character,.login-character,.menu-character-sticker,.dashboard-character{display:flex;align-items:center;justify-content:center}.character-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;overflow:hidden;border:4px solid white;box-shadow:0 8px 24px #0000001a;position:relative}.character-image{width:100%;height:100%;object-fit:cover}.character-float{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.greeting-bubble{margin-top:-10px;background:#fff;padding:16px 24px;border-radius:20px;box-shadow:0 4px 20px #0000000f;font-size:.95rem;max-width:90%;text-align:center;position:relative;font-weight:600;border:1px solid #FFF5F2;transition:transform .2s;max-height:250px;overflow-y:auto;scrollbar-width:none}.greeting-bubble::-webkit-scrollbar{display:none}.greeting-bubble:active{transform:scale(.98)}.greeting-bubble p{margin:0;line-height:1.5}.greeting-bubble:after{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid white}.thinking-dots{display:flex;gap:6px;padding:5px 0}.thinking-dots span{color:var(--primary);font-size:10px;animation:thinking-bounce 1.4s infinite ease-in-out}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-bounce{0%,80%,to{transform:translateY(0);opacity:.3}40%{transform:translateY(-4px);opacity:1}}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:15px}.action-card{padding:20px;border-radius:24px;border:none;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;box-shadow:0 10px 20px #0000000d}.action-card.kakeibo{background:#ffedcc;color:#e67e22}.action-card.calendar{background:#d1f2eb;color:#16a085}.icon-box{width:60px;height:60px;border-radius:18px;background:#ffffff80;display:flex;align-items:center;justify-content:center}.action-card span{font-weight:800;font-size:.9rem}.stats-summary{padding:24px;border-radius:28px;display:flex;align-items:center;justify-content:space-between}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-item .label{font-size:.75rem;color:var(--text-sub);text-transform:uppercase;letter-spacing:1px}.stat-item .value{font-size:1.4rem;font-weight:900;color:var(--text-main)}.stat-divider{width:1px;height:40px;background:var(--glass-border)}.chat-panel{position:fixed;bottom:-100%;left:0;width:100%;height:75vh;z-index:500;border-radius:30px 30px 0 0;transition:bottom .5s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column}.chat-panel.open{bottom:0}.chat-nav{padding:15px;text-align:center;cursor:pointer}.pull-bar{width:40px;height:5px;background:#ddd;border-radius:3px;margin:0 auto 10px}.chat-nav span{font-size:.8rem;color:#aaa}.chat-area{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:15px}.chat-bubble{max-width:85%;padding:14px 18px;border-radius:20px;font-size:.95rem;line-height:1.5}.chat-bubble.pai{align-self:flex-start;background:#fff;border-bottom-left-radius:5px;box-shadow:0 4px 10px #00000008}.chat-bubble.user{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:5px;box-shadow:0 4px 12px #ff70434d}.footer-input{height:90px;padding:0 20px;display:flex;align-items:center;gap:12px;z-index:600;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom)}.footer-actions{display:flex;gap:8px}.circ-btn{width:48px;height:48px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.circ-btn.camera{background:#eceff1;color:#546e7a}.circ-btn.history{background:#e8f5e9;color:#43a047}.circ-btn.send{background:var(--primary);color:#fff;box-shadow:0 4px 12px #ff70434d}.circ-btn:active{transform:scale(.9)}.input-box{flex:1;background:#f8f9f9;border-radius:25px;display:flex;align-items:center;padding:0 15px;overflow:hidden;border:1px solid #EEE}.input-box input{flex:1;height:48px;border:none;background:none;font-size:1rem;outline:none}.mic-btn-small{background:none;border:none;padding:8px;color:#999;cursor:pointer}.mic-btn-small .recording{color:#ff5252;animation:pulse 1.5s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.setup-screen{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-gradient);padding:30px}.login-card{padding:40px 30px;border-radius:35px;text-align:center;width:100%;max-width:340px}.login-card h1{font-size:2rem;font-weight:900;margin:20px 0 10px;color:var(--primary)}.login-actions{margin-top:30px;display:flex;flex-direction:column;gap:12px}.login-btn{padding:16px;border-radius:18px;border:none;font-weight:800;font-size:1rem;cursor:pointer}.login-btn.google{background:#4285f4;color:#fff}.login-btn.guest{background:#eee;color:#666}.onboarding-form{width:100%;max-width:300px;display:flex;flex-direction:column;gap:15px;margin-top:30px}.onboarding-form input{padding:18px;border-radius:20px;border:2px solid white;background:#ffffff80;font-size:1.1rem;text-align:center;outline:none;box-shadow:var(--shadow)}.onboarding-form button{padding:16px;border-radius:20px;border:none;background:var(--primary);color:#fff;font-weight:800;font-size:1rem;box-shadow:0 8px 16px #ff70434d}.onboarding-character,.login-character{width:160px;height:160px;margin:0 auto 20px}.login-character .character-container{width:100%;height:100%}.menu-drawer{position:fixed;top:0;left:0;width:85%;max-width:320px;height:100%;z-index:1000;display:flex;flex-direction:column;background:#fff}.menu-header{height:60px;padding:0 20px;display:flex;align-items:center;justify-content:flex-end;position:relative;z-index:10}.menu-header svg{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));cursor:pointer}.menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000004d;z-index:999}.menu-profile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 0 30px;position:relative;margin-top:-60px}.header-right{display:flex;align-items:center;gap:12px}.icon-btn-ghost{background:none;border:none;color:var(--text-sub);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px;transition:color .2s}.icon-btn-ghost:active{color:var(--primary)}.profile-header-bg{position:absolute;top:0;left:0;width:100%;height:160px;background:linear-gradient(135deg,var(--primary) 0%,#FFAB91 100%);border-radius:0 0 30px 30px}.menu-profile h3{margin:5px 0 0;font-size:1.4rem;font-weight:900;z-index:2;color:var(--text-main)}.user-title{font-size:.85rem;font-weight:700;color:var(--primary);background:#fff5f2;padding:4px 12px;border-radius:20px;z-index:2}.menu-character-sticker{width:110px;height:110px;margin-bottom:10px;position:relative;z-index:5}.menu-character-sticker .character-container{width:100%;height:100%}.menu-links{display:flex;flex-direction:column;gap:12px;padding:20px}.menu-links button{padding:18px;border-radius:24px;border:none;background:#f8f9f9;display:flex;align-items:center;gap:16px;transition:all .2s;cursor:pointer;text-align:left}.menu-links button:active{transform:scale(.97);background:#f0f0f0}.menu-icon{color:var(--primary);background:#fff;padding:10px;width:44px;height:44px;border-radius:14px;box-shadow:0 4px 10px #0000000d}.btn-text{display:flex;flex-direction:column;gap:2px}.main-label{font-size:1rem;font-weight:800;color:var(--text-main)}.sub-label{font-size:.75rem;color:var(--text-sub)}.save-link{background:#fff9f2!important;border:1px dashed var(--primary)!important}.logout-link{margin-top:20px;background:none!important;border:1px solid #FADBD8!important;justify-content:center!important}.text-red{color:#e74c3c}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-100%)}}.calendar-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center}.calendar-container{width:100%;height:100%;max-width:480px;background:#fffbf5;display:flex;flex-direction:column;position:relative;overflow:hidden}@media(min-width:500px){.calendar-container{height:90vh;border-radius:30px;box-shadow:0 20px 50px #0003}}.calendar-header{padding:20px;display:flex;align-items:center;gap:15px;background:#fff;border-bottom:1px solid #F0E0D0}.close-btn{background:none;border:none;color:#666;cursor:pointer}.month-nav{flex:1;display:flex;align-items:center;justify-content:center;gap:20px}.month-nav h2{font-size:1.1rem;margin:0;font-weight:800;color:#444}.month-nav button{background:#f8f9f9;border:none;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#666}.view-tabs{display:flex;padding:10px 20px;background:#fff;gap:8px}.view-tabs button{flex:1;padding:10px;border-radius:12px;border:none;background:#f5f5f5;color:#888;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .2s}.view-tabs button.active{background:#ff7043;color:#fff}.calendar-content{flex:1;overflow-y:auto;padding:15px}.calendar-grid-header{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:.75rem;font-weight:700;color:#aaa;margin-bottom:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;background:#eee;border:4px solid #EEE;border-radius:16px}.calendar-day{aspect-ratio:1;background:#fff;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:6px 2px;position:relative;font-size:.8rem}.calendar-day.empty{background:#f8f9f9}.calendar-day.selected{background:#fff3e0;border:2px solid #FFCC80}.day-number{font-weight:700;color:#555}.day-dots{display:flex;gap:2px}.dot{width:4px;height:4px;border-radius:50%}.fixed-dot{background:#ffb74d}.income-dot{background:#4fc3f7}.expense-dot{background:#ff7043}.day-amount{font-size:.6rem;font-weight:800;opacity:.8}.receipt-details{margin-top:25px;background:#fff;border-radius:20px;padding:20px}.receipt-details h3{font-size:.95rem;margin:0 0 15px;color:#333}.receipt-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fbfbfc;border-radius:14px;margin-bottom:10px}.receipt-badge{padding:2px 8px;border-radius:8px;font-size:.7rem;font-weight:700;background:#e0e0e0;color:#666}.receipt-badge.fixed{background:#ffe0b2;color:#e65100}.receipt-info{flex:1}.receipt-info h4{margin:0;font-size:.85rem;color:#444}.receipt-info span{font-weight:800;color:#333}.report-view{padding:20px 5px}.report-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:25px}.summary-card{padding:15px 10px;border-radius:18px;background:#fff;text-align:center;box-shadow:0 4px 10px #00000008}.summary-card span{font-size:.7rem;color:#888;font-weight:700}.summary-card h4{margin:5px 0 0;font-size:.9rem;font-weight:800}.summary-card.income h4{color:#29b6f6}.summary-card.expense h4{color:#ff7043}.chart-section{background:#fff;border-radius:20px;padding:20px;margin-bottom:25px}.budget-section{background:#fff;border-radius:20px;padding:20px}.budget-item{margin-bottom:15px}.budget-header{display:flex;justify-content:space-between;font-size:.8rem;font-weight:700;margin-bottom:6px}.budget-bar-bg{height:8px;background:#f0f0f0;border-radius:4px;overflow:hidden}.budget-bar-fill{height:100%;background:#81c784}.budget-bar-fill.danger{background:#ff7043}.form-group{margin-bottom:15px}.form-group label{display:block;font-size:.8rem;font-weight:800;color:#666;margin-bottom:8px}.type-toggle{display:flex;background:#f5f5f5;padding:4px;border-radius:12px}.type-toggle button{flex:1;padding:10px;border:none;background:none;border-radius:10px;font-weight:700;color:#888}.type-toggle button.active.expense{background:#ff7043;color:#fff}.type-toggle button.active.income{background:#42a5f5;color:#fff}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border-radius:12px;border:1px solid #DDD;font-family:inherit;font-size:.95rem}.save-btn{width:100%;padding:16px;background:#ff7043;color:#fff;border:none;border-radius:18px;font-weight:800;margin-top:20px;box-shadow:0 4px 12px #ff70434d}.text-btn{background:none;border:none;color:#888;font-size:.8rem;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.camera-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:9999;display:flex;flex-direction:column}.camera-modal-container{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.camera-video-preview{width:100%;height:100%;object-fit:cover}.camera-guide-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}.guide-frame{width:75%;height:65%;border:2px solid rgba(255,255,255,.3);position:relative;border-radius:12px;background:#0000001a}.corner{position:absolute;width:30px;height:30px;border:4px solid var(--primary)}.top-left{top:-4px;left:-4px;border-right:0;border-bottom:0;border-radius:12px 0 0}.top-right{top:-4px;right:-4px;border-left:0;border-bottom:0;border-radius:0 12px 0 0}.bottom-left{bottom:-4px;left:-4px;border-right:0;border-top:0;border-radius:0 0 0 12px}.bottom-right{bottom:-4px;right:-4px;border-left:0;border-top:0;border-radius:0 0 12px}.guide-text{position:absolute;bottom:-40px;left:0;width:100%;text-align:center;color:#fff;font-weight:600;text-shadow:0 2px 4px rgba(0,0,0,.5);font-size:.9rem}.camera-controls{position:absolute;bottom:0;left:0;width:100%;padding:40px 20px;display:flex;justify-content:space-around;align-items:center;background:linear-gradient(to top,rgba(0,0,0,.7),transparent)}.capture-btn-outer{width:80px;height:80px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;box-shadow:0 0 20px #0000004d}.capture-btn-inner{width:66px;height:66px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .1s}.capture-btn-outer:active .capture-btn-inner{transform:scale(.9)}.ctrl-btn.secondary{width:50px;height:50px;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.camera-error{padding:40px;text-align:center;color:#fff}.close-btn-error{margin-top:20px;padding:10px 24px;background:var(--primary);border:none;border-radius:30px;color:#fff;font-weight:600}.pai-hint-float{position:absolute;top:60px;left:20px;right:20px;background:#ffffffe6;padding:10px 20px;border-radius:20px;font-size:.85rem;font-weight:700;color:var(--text-main);text-align:center;box-shadow:0 4px 12px #0003;animation:float 3s infinite ease-in-out}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}
