@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)}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{--color-primary: #FF7043;--color-bg-light: #FFFBF0;--color-text-main: #333333;--color-text-sub: #666666;--header-height: 60px;--footer-height: 80px}body,html{margin:0;padding:0;width:100%;height:100%;font-family:Helvetica Neue,Arial,sans-serif;background-color:#f0f0f0;color:var(--color-text-main)}*{box-sizing:border-box}.app-container{display:flex;flex-direction:column;min-height:100vh;width:100%;max-width:480px;margin:0 auto;background:#fff;position:relative;box-shadow:0 0 30px #00000026;padding-bottom:80px}@media(min-width:500px){body{background-color:#e0e0e0;display:flex;align-items:center;justify-content:center;min-height:100vh}.app-container{height:95vh;border-radius:24px;overflow:hidden;margin:2.5vh auto;border:8px solid #333}}.header{padding:16px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:absolute;top:0;width:100%;max-width:100%;z-index:100;border-bottom:1px solid rgba(0,0,0,.05)}.status-bar{display:flex;justify-content:space-between;font-size:14px;font-weight:700;color:var(--color-text-sub)}.notice-area{margin-top:60px;padding:0 12px}.main-content{flex:1;display:flex;flex-direction:column;position:relative;align-items:center;justify-content:flex-start;padding-top:40px}.center-content{padding-bottom:100px}.character-wrapper.main-display{width:300px;height:400px;max-height:55vh;margin-top:10px;display:flex;align-items:center;justify-content:center}.character-wrapper.main-display .character-image{object-fit:contain;object-position:bottom center}.chat-panel{position:fixed;bottom:-100%;left:0;width:100%;height:80vh;background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -10px 40px #0003;transition:bottom .4s cubic-bezier(.19,1,.22,1);z-index:50;display:flex;flex-direction:column;padding-bottom:90px}.chat-panel.open{bottom:0}.chat-header{padding:12px;text-align:center;color:#888;font-size:.8rem;border-bottom:1px solid #f0f0f0;cursor:pointer}.chat-area{flex:1;padding:20px 12px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.chat-spacer{height:0}.chat-character-area{width:100%;padding:10px 20px;display:flex;align-items:center;gap:15px;background:#fff;border-bottom:1px solid #f8f8f8;flex-shrink:0}.chat-character-area .character-container{width:60px;height:60px;border-radius:50%;border:3px solid #FF7043;background:#fff;overflow:hidden;position:relative;box-shadow:0 4px 8px #0000001a}.chat-character-area .character-container img{width:100%;height:100%;object-fit:cover;transform:scale(1.4) translateY(10%)}.chat-character-area .character-wrapper{width:100%;height:100%;display:block}.chat-header-bubble{background:#fff9c4;padding:10px 14px;border-radius:12px;border:1px solid #FFF59D;color:#555;font-size:.8rem;font-weight:700;position:relative;max-width:220px;line-height:1.4;box-shadow:0 2px 4px #0000000d}.chat-header-bubble:after{content:"";position:absolute;top:50%;left:-8px;transform:translateY(-50%);border-width:8px 8px 8px 0;border-style:solid;border-color:transparent #FFF9C4 transparent transparent}.chat-bubble{max-width:80%;padding:12px 18px;border-radius:18px;font-size:15px;line-height:1.5;box-shadow:0 2px 5px #0000000d}.chat-bubble.pai{align-self:flex-start;background:#f0f0f0;border-bottom-left-radius:4px;color:var(--color-text-main)}.chat-bubble.user{align-self:flex-end;background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.input-area{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;height:80px;padding:16px 20px;background:#fff;display:flex;gap:12px;align-items:center;box-shadow:0 -5px 20px #00000008;z-index:999;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.action-btn{width:44px;height:44px;border-radius:50%;border:none;background:#f5f5f5;color:var(--color-text-sub);display:flex;align-items:center;justify-content:center;transition:all .2s;cursor:pointer}.input-field{flex:1}.input-field input{width:100%;padding:12px 16px;border-radius:24px;border:2px solid #F5F5F5;background:#f9f9f9;font-size:16px;outline:none}.send-btn{width:48px;height:48px;border-radius:50%;background:var(--color-primary);border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #ff70434d;cursor:pointer}.mic-btn{width:48px;height:48px;border-radius:50%;background:#a5d6a7;color:#fff;border:none;box-shadow:0 4px 12px #a5d6a780;display:flex;align-items:center;justify-content:center;cursor:pointer}.mic-btn:active{transform:translateY(2px);box-shadow:0 2px 6px #a5d6a780}.mic-btn.recording{background:#ff5252;box-shadow:0 4px 12px #ff525280;animation:pulse-recording 1.5s infinite}@keyframes pulse-recording{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.setup-screen{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:#fff;gap:20px;text-align:center}.input-group{display:flex;gap:10px;width:100%;max-width:400px}.input-group input{flex:1;padding:12px;border:2px solid #EEE;border-radius:8px;font-size:16px}.input-group button{padding:12px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-weight:700}.camera-tooltip{position:absolute;top:-40px;left:20px;background:#ff7043;color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;box-shadow:0 4px 10px #ff704366;pointer-events:none;animation:bounce 2s infinite;z-index:70}.camera-tooltip:after{content:"";position:absolute;bottom:-6px;left:14px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #FF7043}.app-icon-btn.large{width:auto;height:auto;background:transparent;box-shadow:none;border-radius:0;gap:6px}.app-icon-btn.large:hover{transform:translateY(-2px);background:transparent;box-shadow:none}.icon-circle{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px #0000001a;transition:all .2s}.app-icon-btn.large:hover .icon-circle{box-shadow:0 6px 14px #00000026;transform:scale(1.05)}.mobile-only{display:none}.desktop-only{display:flex}.menu-btn{background:none;border:none;padding:4px;cursor:pointer;margin-right:8px}.menu-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0006;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.menu-drawer{position:fixed;top:0;left:0;width:85%;max-width:320px;height:100%;background:#fff;z-index:201;box-shadow:2px 0 20px #0000001a;display:flex;flex-direction:column;padding:20px}.menu-close-btn{align-self:flex-end;padding:8px;cursor:pointer;background:#f5f5f5;border-radius:50%;display:flex;align-items:center;justify-content:center}.menu-content{flex:1;display:flex;flex-direction:column;align-items:center;margin-top:20px;overflow-y:auto}.menu-level-badge{margin-top:10px;background:#ff7043;color:#fff;padding:4px 12px;border-radius:12px;font-weight:700;font-size:.9rem;box-shadow:0 2px 4px #ff70434d}.menu-character-area{display:flex;flex-direction:column;align-items:center;width:100%;height:auto;margin-bottom:25px}.menu-character-area .character-container{width:120px;height:120px;border-radius:50%;background:#fff;border:4px solid #FFEDCC;overflow:hidden;box-shadow:0 4px 15px #ff704326;margin-bottom:8px}.menu-character-area .character-image{width:100%;height:100%;object-fit:cover;transform:scale(1.4) translateY(10%)}.menu-title{font-size:1.1rem;color:#333;margin:0 0 20px;border-bottom:2px solid #FF7043;padding-bottom:5px;width:100%;text-align:center}.menu-actions{display:flex;flex-direction:column;gap:16px;width:100%;padding:0 10px}.menu-action-btn{width:100%;padding:16px 20px;border-radius:30px;border:none;background:#fff;grid-template-columns:1fr;font-family:inherit;cursor:pointer;transition:all .1s;display:flex;align-items:center;justify-content:center;position:relative;top:0}.menu-action-btn:active{top:4px}.menu-action-label{font-size:1.2rem;font-weight:800;color:#fff;letter-spacing:1px;text-shadow:1px 1px 0 rgba(0,0,0,.1)}.menu-action-btn:nth-child(1){background:#f48fb1}.menu-action-btn:nth-child(1):active{background:#f06292;transform:scale(.98)}.menu-action-btn:nth-child(2){background:#81d4fa}.menu-action-btn:nth-child(2):active{background:#4fc3f7;transform:scale(.98)}.menu-action-btn:nth-child(3){background:#a5d6a7}.menu-action-btn:nth-child(3):active{background:#9ccc65;transform:scale(.98)}.menu-logout-btn{margin-top:30px;background:none;border:1px solid #ddd;padding:10px 20px;border-radius:20px;color:#666;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:8px}.top-page{width:100%;padding-bottom:80px;background-color:#fffde7;font-family:"M PLUS Rounded 1c",Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;color:#555}.top-hero{background:#fff;color:#555;padding:60px 20px 40px;border-radius:0 0 30px 30px;text-align:center;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000000d;border-bottom:none}.top-hero h2{font-size:3.2rem;font-weight:900;line-height:1;margin-bottom:10px;font-family:Outfit,sans-serif;letter-spacing:-2px;color:#ff8a80;text-shadow:2px 2px 0 #FFF9C4}.top-hero p{font-size:.9rem;font-weight:700;opacity:1;color:#555;margin-bottom:30px;background:#b3e5fc;display:inline-block;padding:6px 16px;border-radius:20px;box-shadow:none;border:none}.news-ticker-container{background:#ffecb3;color:#e65100;padding:8px 0;overflow:hidden;white-space:nowrap;position:absolute;bottom:0;left:0;width:100%;border-top:none;font-weight:700;font-size:.85rem;display:flex}.news-ticker-wrapper{display:inline-block;padding-left:100%;animation:ticker 20s linear infinite}.news-ticker-content{display:inline-block;padding-right:50px}@keyframes ticker{0%{transform:translateZ(0)}to{transform:translate3d(-100%,0,0)}}.top-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:30px 20px 20px}.nav-item{display:flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:30px;cursor:pointer;transition:transform .2s;box-shadow:0 4px 6px #0000000d;background:#fff;border:1px solid #eee}.nav-item:active{transform:scale(.95)}.nav-label{font-size:.9rem;font-weight:700;color:#555;letter-spacing:1px}.nav-item:nth-child(1){background:#ffecb3;border:none}.nav-item:nth-child(1) .nav-label{color:#8d6e63}.nav-item:nth-child(2){background:#f8bbd0;border:none}.nav-item:nth-child(2) .nav-label{color:#880e4f}.nav-item:nth-child(3){background:#b3e5fc;border:none}.nav-item:nth-child(3) .nav-label{color:#01579b}.nav-item:nth-child(4){background:#c8e6c9;border:none}.nav-item:nth-child(4) .nav-label{color:#33691e}.nav-icon{display:none}.nav-label{font-size:.95rem;font-weight:700;color:#555}.top-section{padding:0 20px;margin-bottom:50px}.section-header{margin-bottom:25px;border-left:none;padding-left:0;text-align:center}.section-header h3{font-size:1.4rem;font-weight:900;color:#7986cb;display:inline-block;background:#e8eaf6;padding:8px 24px;border-radius:30px;box-shadow:none;font-family:Outfit,sans-serif;letter-spacing:1px;border:none}.section-subtitle{display:block;font-size:.8rem;font-weight:700;margin-top:10px;color:#9fa8da}.news-list{list-style:none;padding:0;margin:0;background:#fffc;border-radius:20px;overflow:hidden;box-shadow:0 4px 15px #00000008;border:none}.news-list li{padding:15px;border-bottom:1px dashed #E0E0E0;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.news-list li:last-child{border-bottom:none}.news-date{font-family:Outfit,monospace;font-size:.85rem;color:#999;font-weight:700}.news-tag{font-size:.7rem;padding:4px 12px;border-radius:12px;color:#fff;font-weight:700;border:none;box-shadow:0 2px 5px #0000001a}.news-tag.event{background:#ffcc80}.news-tag.shop{background:#f48fb1;color:#fff}.news-tag.info{background:#81d4fa}.news-text{font-size:.95rem;color:#000;width:100%;margin-top:5px;font-weight:500}.shop-grid{display:grid;grid-template-columns:1fr;gap:25px}.shop-card{background:#fff;border:none;border-radius:24px;overflow:hidden;box-shadow:0 8px 20px #0000000d;transition:transform .2s}.shop-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000014}.shop-image-placeholder{width:100%;height:180px;background:#f3e5f5;display:flex;align-items:center;justify-content:center;color:#ab47bc;font-weight:900;font-size:1.2rem;border-bottom:none;letter-spacing:1px}.shop-info{padding:24px}.shop-category{font-size:.75rem;color:#fff;font-weight:700;display:inline-block;margin-bottom:8px;background:#a5d6a7;padding:4px 10px;border-radius:20px;border:none}.shop-name{font-size:1.3rem;font-weight:900;margin:0 0 10px;color:#555;line-height:1.3}.shop-desc{font-size:.9rem;color:#888;line-height:1.6;margin:0 0 15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shop-tags{display:flex;flex-wrap:wrap;gap:8px}.shop-tag{font-size:.75rem;color:#7986cb;background:#e8eaf6;padding:4px 10px;border-radius:12px;border:none;font-weight:700}.footer-copyright{text-align:center;font-size:.8rem;color:#aaa;font-weight:700;padding:40px 0;letter-spacing:1px}.recommendations-container{padding:16px;background:linear-gradient(135deg,#fff5e6,#ffe0b2);border-radius:20px;box-shadow:0 4px 12px #00000014;margin:8px}.reco-title{font-size:1.3rem;margin-bottom:16px;color:#333;text-align:center;font-weight:700}.reco-magazine-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.reco-magazine-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 12px #0000001a;transition:transform .2s,box-shadow .2s;cursor:pointer;min-width:280px;width:280px;flex:0 0 auto;scroll-snap-align:center}.reco-magazine-card:hover{box-shadow:0 8px 20px #00000026}.reco-image{width:100%;height:140px;overflow:hidden}.reco-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.reco-magazine-card:hover .reco-image img{transform:scale(1.05)}.reco-content{padding:16px}.reco-category{display:inline-block;padding:4px 12px;background:#ff7043;color:#fff;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase;margin-bottom:8px}.reco-content h4{margin:8px 0 6px;font-size:1.1rem;color:#222;font-weight:700}.reco-content p{margin:0;font-size:.9rem;color:#555;line-height:1.5}@media(max-width:600px){.recommendations-container{padding:10px;margin:4px;border-radius:16px}.reco-title{font-size:1.1rem;margin-bottom:8px}.reco-magazine-grid{gap:12px}.reco-magazine-card{min-width:260px;width:260px}.reco-image{height:120px}.reco-content{padding:10px}.reco-content h4{font-size:1rem}}.calendar-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.calendar-container{width:95%;max-width:420px;background:#fffde7;border-radius:24px;height:85vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 30px #0000001a}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-bottom:2px solid #F0F4C3}.calendar-header h2{font-size:1.2rem;font-weight:800;margin:0;color:#555;flex:1;text-align:center}.month-nav{display:flex;align-items:center;justify-content:center;flex:1;gap:10px}.month-nav button,.close-btn{background:none;border:none;cursor:pointer;color:#888;padding:4px}.view-tabs{display:flex;background:#fff;border-bottom:1px solid #EEE;padding:0 10px}.view-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px;background:none;border:none;font-weight:700;color:#aaa;border-bottom:3px solid transparent;cursor:pointer;font-size:.9rem}.view-tabs button.active{color:#ff7043;border-bottom-color:#ff7043}.calendar-content{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:0;position:relative}.calendar-grid-header{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;color:#888;font-size:.8rem;padding:10px 16px 5px;background:transparent;margin-bottom:0;flex-shrink:0}.calendar-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:0 10px 10px;overflow-y:auto;min-height:0}.calendar-day{min-height:55px;background:#fff;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:4px 2px;cursor:pointer;font-size:.75rem;position:relative;box-shadow:0 1px 3px #0000000d;border:1px solid transparent;transition:all .2s}.calendar-day:hover:not(.empty){transform:translateY(-1px);box-shadow:0 2px 5px #0000001a}.calendar-day.empty{background:transparent;cursor:default;box-shadow:none;min-height:0}.calendar-day.selected{border-color:#ff7043;background:#fff3e0}.calendar-day.has-data{font-weight:700}.day-number{font-size:.8rem;color:#444;margin-bottom:2px;font-weight:500}.day-dots{display:flex;gap:2px;margin-bottom:1px;justify-content:center;flex-wrap:wrap;max-width:100%}.dot{width:4px;height:4px;border-radius:50%}.fixed-dot{background:#ffb74d}.expense-dot{background:#ef5350}.income-dot{background:#29b6f6}.day-amount{font-size:.65rem;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;line-height:1.1}.day-amount{font-size:.55rem;color:#666;letter-spacing:-.5px;margin-top:auto;width:100%;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-details{flex:0 0 45%;background:#fff;border-radius:24px 24px 0 0;padding:20px;box-shadow:0 -5px 25px #0000000d;overflow-y:auto;margin-top:0;z-index:10}.receipt-details h3{margin:0 0 16px;font-size:1rem;color:#333;border-bottom:2px solid #FFECB3;padding-bottom:8px}.receipt-item{display:flex;align-items:flex-start;padding:10px 0;border-bottom:1px dashed #EEE;gap:12px}.receipt-item.income-item{background:#f1f8e9;padding:10px;margin:0 -10px;border-radius:8px}.receipt-item.fixed-cost-item{background:#e1f5fe;padding:10px;margin:0 -10px;border-radius:8px}.receipt-time{font-size:.75rem;color:#999;min-width:40px}.receipt-info{flex:1}.receipt-info h4{margin:0 0 4px;font-size:.95rem;color:#333}.receipt-badge{font-size:.7rem;background:#eee;padding:2px 6px;border-radius:4px;color:#666}.receipt-badge.fixed{background:#81d4fa;color:#fff}.plus-amount{color:#4caf50;font-weight:700}.no-data{color:#999;text-align:center;padding:20px;font-size:.9rem}.report-view{flex:1;overflow-y:auto;padding:20px}.report-summary-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:20px}.summary-card{background:#fff;padding:12px 8px;border-radius:12px;text-align:center;box-shadow:0 2px 5px #0000000d}.summary-card span{display:block;font-size:.75rem;color:#888;margin-bottom:4px}.summary-card h4{margin:0;font-size:.9rem;color:#333}.summary-card.income h4{color:#4caf50}.summary-card.expense h4{color:#f44336}.summary-card.balance h4{color:#333}.chart-section{background:#fff;padding:16px;border-radius:16px;margin-bottom:20px}.chart-section h4,.budget-section h4{margin:0 0 16px;font-size:1rem;color:#555;text-align:center}.budget-item{margin-bottom:12px}.budget-header{display:flex;justify-content:space-between;font-size:.85rem;color:#666;margin-bottom:4px}.budget-bar-bg{height:10px;background:#eee;border-radius:5px;overflow:hidden}.budget-bar-fill{height:100%;background:#4db6ac;border-radius:5px}.budget-bar-fill.danger{background:#ef5350}.add-transaction-form{flex:1;overflow-y:auto;padding:20px}.add-transaction-form h3{margin:0 0 20px;text-align:center;color:#555}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.85rem;color:#888;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px;border-radius:8px;border:1px solid #DDD;font-size:1rem}.type-toggle{display:flex;gap:10px}.type-toggle button{flex:1;padding:10px;border:1px solid #DDD;background:#fff;border-radius:8px;font-weight:700;color:#aaa;cursor:pointer}.type-toggle button.active.expense{background:#f48fb1;color:#fff;border-color:#f48fb1}.type-toggle button.active.income{background:#a5d6a7;color:#fff;border-color:#a5d6a7}.save-btn{width:100%;padding:14px;background:#ff7043;color:#fff;border:none;border-radius:30px;font-weight:700;font-size:1rem;cursor:pointer;box-shadow:0 4px 10px #ff70434d;margin-top:10px}.budget-editor{flex:1;overflow-y:auto;padding:20px}.budget-editor h3{margin:0 0 20px;text-align:center;color:#555}.budget-list{margin-bottom:20px}.budget-input-group{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.budget-input-group label{margin:0;flex:1;font-size:.95rem;font-weight:700;color:#555}.budget-input-group input{width:60%;text-align:right}.text-btn{background:#fff3e0;color:#ff7043;border:none;padding:8px 16px;border-radius:20px;font-size:.85rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.text-btn:active{transform:scale(.95);background:#ffe0b2}.no-data-report{text-align:center;color:#999;margin-top:40px;line-height:1.6}
