@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500&family=Caveat:wght@400;500&display=swap";:root{--bg-cream:#fff8f2;--bg-warm:#fbf3ec;--bg-input:#fff5ef;--pink-soft:#f2d5ce;--pink-muted:#e8c4c4;--pink-accent:#d4a0a0;--green-deep:#3b5b4e;--green-muted:#5a7d6d;--green-soft:#8baf9e;--green-faint:#3b5b4e14;--green-border:#3b5b4e1f;--text-main:#3d4a44;--text-light:#6b7d74;--text-faint:#9baba2;--bubble-aelion:#fff5ef;--bubble-aelion-border:#f2d5ce99;--bubble-corveil:#eef4f0;--bubble-corveil-border:#3b5b4e26;--bubble-aa:#fde8d8;--bubble-aa-border:#f0cdb880;--bubble-system:#f4f0ee;--shadow-soft:0 2px 12px #5c4b4b0d;--shadow-bubble:0 6px 16px #5c4b4b2e, 0 2px 4px #5c4b4b1a;--radius-bubble:20px;--radius-card:16px;--font-body:"Noto Sans SC", -apple-system, BlinkMacSystemFont, sans-serif;--font-handwrite:"Caveat", cursive;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-body);color:var(--text-main);background-color:var(--bg-cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:repeating-linear-gradient(0deg,#0000,#0000 28px,#f2d5ce21 28px 29px),repeating-linear-gradient(90deg,#0000,#0000 28px,#f2d5ce21 28px 29px),repeating-linear-gradient(0deg,#0000,#0000 56px,#3b5b4e0a 56px 57px),repeating-linear-gradient(90deg,#0000,#0000 56px,#3b5b4e0a 56px 57px);background-size:29px 29px,29px 29px,57px 57px,57px 57px;font-weight:300}::-webkit-scrollbar{display:none}input,textarea{font-family:var(--font-body);color:var(--text-main);background:0 0;border:none;outline:none;font-weight:300}button{font-family:var(--font-body);cursor:pointer;color:var(--text-main);background:0 0;border:none}.app{flex-direction:column;max-width:430px;height:100%;margin:0 auto;display:flex;position:relative;overflow:hidden}.app.chat-view{background:url(/icons/chat-bg.jpg) 50%/cover}.page-enter{animation:.25s page-in}@keyframes page-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.page-header{padding:calc(var(--safe-top) + 10px) 16px 10px;z-index:10;flex-shrink:0;align-items:center;gap:12px;display:flex}.back-btn{background:var(--green-faint);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:background .2s;display:flex}.back-btn:active{background:var(--green-border)}.back-btn svg{width:18px;height:18px;color:var(--green-deep)}.page-title{font-family:var(--font-handwrite);color:var(--green-deep);font-size:20px}.home-screen{padding:calc(var(--safe-top) + 16px) 24px calc(var(--safe-bottom) + 16px);background:url(/icons/wallpaper.jpg) 50%/cover no-repeat;flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.home-status{color:var(--text-main);letter-spacing:.3px;z-index:1;-webkit-backdrop-filter:blur(16px);background:#fff8f299;border-radius:20px;align-items:center;gap:4px;margin-bottom:8px;padding:5px 14px;font-size:10px;display:flex;position:relative}.home-status .dot{background:var(--green-soft);border-radius:50%;width:5px;height:5px;animation:3s ease-in-out infinite pulse-dot;display:inline-block}.home-status .dot.offline{background:var(--text-faint);animation:none}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.home-center{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;padding-bottom:8px;display:flex}.home-greeting-glass{-webkit-backdrop-filter:blur(24px);background:#fff8f299;border:1px solid #fff6;border-radius:22px;flex-direction:column;align-items:center;width:100%;max-width:300px;padding:18px 28px 16px;display:flex}.widget-clock{color:var(--green-deep);letter-spacing:4px;font-family:Noto Serif SC,Noto Sans SC,serif;font-size:48px;font-weight:300;line-height:1}.widget-greeting-row{align-items:baseline;gap:6px;margin-top:4px;display:flex}.home-greeting{color:var(--green-deep);letter-spacing:1px;font-family:Noto Serif SC,Noto Sans SC,serif;font-size:14px;font-weight:400}.widget-dot{color:var(--text-faint);font-size:12px}.home-date{color:var(--text-light);letter-spacing:.5px;font-size:12px}.widget-agents{border-top:1px solid #3b5b4e14;flex-direction:column;gap:10px;width:100%;margin-top:14px;padding-top:12px;display:flex}.widget-agent-row{align-items:center;gap:10px;display:flex}.widget-agent-icon{object-fit:cover;border-radius:8px;width:28px;height:28px}.widget-agent-info{flex-direction:column;gap:1px;display:flex}.widget-agent-name{color:var(--text-main);letter-spacing:.3px;font-size:13px;font-weight:400}.widget-agent-state{color:var(--text-faint);letter-spacing:.2px;font-size:11px}.app-grid{grid-template-columns:repeat(3,1fr);gap:20px 24px;width:100%;max-width:340px;padding:8px 0 20px;display:grid}.app-icon{flex-direction:column;align-items:center;gap:8px;padding:4px;transition:transform .15s;display:flex;position:relative}.app-icon:active{transform:scale(.92)}.app-icon-face{border-radius:18px;justify-content:center;align-items:center;width:72px;height:72px;font-size:28px;transition:box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 10px #5c4b4b14}.app-icon-img{object-fit:cover;border-radius:18px;width:100%;height:100%}.app-icon-emoji{font-size:26px}.app-icon-emoji.hidden,.hidden{display:none}.app-icon.cabin .app-icon-face{background:linear-gradient(135deg,#fff5ef,#fde8d8)}.app-icon.aelion .app-icon-face{background:linear-gradient(135deg,#ffe8e0,#f2d5ce)}.app-icon.corveil .app-icon-face{background:linear-gradient(135deg,#e8f4ed,#d4e5db)}.app-icon.diary .app-icon-face{background:linear-gradient(135deg,#f4f0ee,#e8e4e0)}.app-icon.settings .app-icon-face{background:linear-gradient(135deg,#eef4f0,#e0ebe5)}.app-icon-label{color:var(--text-main);letter-spacing:.3px;text-shadow:0 0 8px #fff8f2e6;font-size:11px}.app-badge{background:var(--pink-muted);border:2px solid var(--bg-cream);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;right:calc(50% - 34px)}.home-bear{opacity:.25;padding-bottom:4px;font-size:28px;animation:3s ease-in-out infinite bear-breathe}.chat-header{padding:calc(var(--safe-top) + 6px) 12px 0;z-index:10;flex-shrink:0;align-items:center;gap:6px;display:flex}.chat-header .back-btn{width:28px;height:28px}.chat-header .back-btn svg{width:16px;height:16px}.chat-title{color:var(--green-deep);padding:6px 4px;font-size:16px;font-weight:600}.channel-tabs{gap:4px;padding:6px 0;display:flex;overflow-x:auto}.channel-tab{color:var(--text-light);white-space:nowrap;letter-spacing:.3px;background:0 0;border-radius:18px;padding:6px 16px;font-size:13px;font-weight:400;transition:all .3s;position:relative}.channel-tab.active{background:var(--green-deep);color:#f2e8e4;box-shadow:var(--shadow-soft);font-weight:400}.channel-tab .unread-dot{background:var(--pink-muted);border-radius:50%;width:5px;height:5px;position:absolute;top:5px;right:7px}.messages-area{scroll-behavior:smooth;flex-direction:column;flex:1;gap:1px;padding:8px 16px;display:flex;overflow:hidden auto}.message{flex-direction:column;max-width:82%;animation:.35s ease-out msg-in;display:flex}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message.from-aa{align-self:flex-end}.message.from-aelion,.message.from-corveil{align-self:flex-start}.message-meta{align-items:baseline;gap:6px;margin-bottom:1px;padding:0 12px;display:flex}.message.from-aa .message-meta{justify-content:flex-end}.message-sender{color:var(--text-faint);letter-spacing:.3px;font-size:11px}.bubble{border-radius:var(--radius-bubble);letter-spacing:.2px;box-shadow:var(--shadow-bubble);word-break:break-word;padding:12px 16px;font-size:13.5px;line-height:1.6;position:relative}.bubble>*{z-index:1;position:relative}.message.from-aelion .bubble{color:#4a3535;letter-spacing:.3px;border:2px solid #fff0eb99;border-top-left-radius:6px;font-family:Noto Serif SC,Noto Sans SC,serif;font-weight:300;position:relative}.message.from-aelion .bubble.bv0{background:url(/icons/bubble-aelion.jpg) 50%/180px}.message.from-aelion .bubble.bv1{background:url(/icons/bubble-aelion-2.jpg) 50%/180px}.message.from-aelion .bubble.bv2{background:url(/icons/bubble-aelion-3.jpg) 50%/180px}.message.from-aelion .bubble:before{content:"";border-radius:inherit;pointer-events:none;background:#f2d5ce59;position:absolute;inset:0}.message.from-corveil .bubble{color:var(--green-deep);letter-spacing:.5px;background:url(/icons/bubble-corveil.jpg) 50%/180px;border:2px solid #3b5b4e26;border-top-left-radius:6px;font-family:Noto Sans SC,-apple-system,sans-serif;font-weight:300;position:relative}.message.from-corveil .bubble:before{content:"";border-radius:inherit;pointer-events:none;background:#c8e6d740;position:absolute;inset:0}.message.from-corveil .message-sender{color:var(--green-muted)}.message.from-corveil .thinking-toggle{color:var(--text-faint)}.message.from-corveil .thinking-content{color:var(--text-light);background:#3b5b4e0f;border-color:#3b5b4e1f}.message.from-aa .bubble{color:#4a3545;background:url(/icons/bubble-aa.jpg) 50%/220px;border:2px solid #dcc8e666;border-top-right-radius:6px;position:relative}.message.from-aa .bubble:before{content:"";border-radius:inherit;pointer-events:none;background:#f0e1f033;position:absolute;inset:0}.message-time{color:var(--text-faint);font-size:10px}.menu-overlay{z-index:90;position:fixed;inset:0}.bubble-menu{z-index:91;-webkit-backdrop-filter:blur(16px);background:#fff8f2f2;border-radius:14px;gap:2px;margin-top:4px;padding:4px;display:flex;position:absolute;box-shadow:0 4px 20px #3b5b4e26}.message.from-aa .bubble-menu{right:0}.bubble-menu button{color:var(--green-deep);border-radius:10px;padding:8px 14px;font-size:13px;transition:background .15s}.bubble-menu button:active{background:#3b5b4e14}.system-message{align-self:center;max-width:85%;animation:.35s ease-out msg-in}.system-bubble{background:var(--bubble-system);color:var(--text-light);text-align:center;border-radius:12px;padding:8px 16px;font-size:12px;line-height:1.6}.life-reminder{align-self:center;max-width:75%;animation:.35s ease-out msg-in}.reminder-card{border:1px solid var(--bubble-aelion-border);text-align:center;box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#fff8f2 0%,#fde8d8 100%);border-radius:14px;padding:14px 18px}.reminder-icon{margin-bottom:4px;font-size:22px}.reminder-text{color:var(--text-main);font-size:13px;line-height:1.5}.reminder-time{color:var(--text-faint);margin-top:4px;font-size:10px}.thinking-toggle{color:var(--text-faint);cursor:pointer;align-items:center;gap:4px;margin-top:2px;padding:4px 0;font-size:11px;display:inline-flex}.thinking-toggle svg{width:12px;height:12px;transition:transform .2s}.thinking-toggle.open svg{transform:rotate(90deg)}.thinking-content{color:var(--text-light);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--green-border);background:#3b5b4e0a;border-radius:10px;margin-top:6px;padding:10px 14px;font-size:12.5px;font-style:italic;line-height:1.6}.time-divider{text-align:center;color:var(--text-faint);letter-spacing:.5px;padding:12px 0 8px;font-size:11px}.input-area{padding:10px 12px calc(var(--safe-bottom) + 12px);background:0 0;border-top:none;flex-shrink:0}.input-row{background:url(/icons/input-box.png) 50%/100% 100% no-repeat;border:none;border-radius:0;align-items:center;gap:8px;padding:12px 14px 14px 28px;display:flex}.input-row textarea{resize:none;background:0 0;flex:1;max-height:120px;padding:6px 0;font-size:13.5px;line-height:1.5}.input-row textarea::placeholder{color:var(--text-faint)}.send-btn{background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:68px;height:64px;margin-bottom:-14px;margin-right:-18px;transition:transform .15s;display:flex;overflow:visible}.send-btn:active{transform:scale(.85)rotate(-38deg)}.send-btn-img{object-fit:contain;filter:drop-shadow(0 2px 4px #5c4b4b2e);width:130%;height:130%;transform:rotate(-32deg)}.sleeping-bear{bottom:calc(var(--safe-bottom) + 70px);opacity:.3;pointer-events:none;z-index:5;font-size:24px;animation:3s ease-in-out infinite bear-breathe;position:fixed;right:16px}@keyframes bear-breathe{0%,to{transform:translateY(0)rotate(-5deg)}50%{transform:translateY(-3px)rotate(0)}}.fireplace-glow{pointer-events:none;background:radial-gradient(#8baf9e26 0%,#0000 70%);width:200px;height:80px;animation:4s ease-in-out infinite glow-flicker;position:absolute;top:0;left:50%;transform:translate(-50%)}@keyframes glow-flicker{0%,to{opacity:.6}50%{opacity:1}}.diary-page{padding:8px 20px calc(var(--safe-bottom) + 20px);flex:1;overflow-y:auto}.diary-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.diary-empty-icon{opacity:.5;margin-bottom:16px;font-size:40px}.diary-empty-text{color:var(--text-light);margin-bottom:8px;font-size:16px}.diary-empty-hint{color:var(--text-faint);font-size:12px;line-height:1.6}.diary-entry{border-bottom:1px solid var(--green-border);padding:16px 0}.diary-entry:last-child{border-bottom:none}.diary-entry-meta{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.diary-entry-sender{letter-spacing:.3px;font-size:12px;font-weight:400}.diary-entry.from-aelion .diary-entry-sender{color:var(--pink-accent)}.diary-entry.from-corveil .diary-entry-sender{color:var(--green-muted)}.diary-entry-time{color:var(--text-faint);font-size:11px}.diary-entry-text{color:var(--text-main);font-size:13.5px;font-style:italic;line-height:1.7}.diary-entry.from-aelion .diary-entry-text{font-family:Noto Serif SC,Noto Sans SC,serif}.diary-entry.from-corveil .diary-entry-text{font-family:Noto Sans SC,-apple-system,sans-serif}.settings-page{padding:4px 20px calc(var(--safe-bottom) + 20px);flex:1;overflow-y:auto}.settings-section{margin-bottom:24px}.settings-section-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-size:12px}.setting-row{background:var(--bg-input);border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 16px;display:flex}.setting-label{color:var(--text-main);font-size:14px}.setting-value{color:var(--text-light);align-items:center;gap:6px;font-size:13px;display:flex}.soul-edit-btn{background:var(--green-deep);color:#f2e8e4;font-size:12px;font-family:var(--font-body);cursor:pointer;border:none;border-radius:6px;padding:4px 12px}.soul-edit-btn[data-editing]{background:var(--pink-soft);color:var(--text-main)}.soul-editor{border:1px solid var(--green-border);background:var(--bg-cream);width:100%;min-height:240px;color:var(--text-main);font-size:13px;font-family:var(--font-body);resize:vertical;border-radius:10px;padding:12px;line-height:1.6}.memory-tabs{flex-shrink:0;gap:6px;padding:4px 20px 12px;display:flex}.memory-tab{color:var(--text-light);letter-spacing:.3px;background:0 0;border-radius:18px;padding:7px 20px;font-size:13px;font-weight:400;transition:all .3s}.memory-tab.active{background:var(--green-deep);color:#f2e8e4;box-shadow:var(--shadow-soft)}.memory-page{padding:0 20px calc(var(--safe-bottom) + 20px);flex:1;overflow-y:auto}.memory-list{width:100%;margin-top:4px}.memory-empty{color:var(--text-faint);padding:4px 0;font-size:12px}.memory-entry{border-bottom:1px solid var(--green-border)}.memory-entry:last-child{border-bottom:none}.memory-entry-header{cursor:pointer;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.memory-entry-date{color:var(--text-light);font-variant-numeric:tabular-nums;font-size:13px}.memory-entry-actions{align-items:center;gap:8px;display:flex}.memory-chevron{width:14px;height:14px;color:var(--text-faint);transition:transform .2s}.memory-chevron.open{transform:rotate(90deg)}.memory-entry-content{color:var(--text-light);white-space:pre-wrap;padding:0 0 12px;font-size:12.5px;line-height:1.7}.memory-editor{min-height:160px;margin-bottom:8px}.danger-btn{background:var(--pink-soft);color:var(--text-main);font-size:12px;font-family:var(--font-body);cursor:pointer;border:none;border-radius:8px;padding:6px 14px}.toggle{background:var(--pink-soft);cursor:pointer;border-radius:12px;width:44px;height:24px;transition:background .2s;position:relative}.toggle.on{background:var(--green-deep)}.toggle:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000001a}.toggle.on:after{transform:translate(20px)}
