:root{--o:#f4a024;--bg:#faf6f1;--w:#fff;--g:#999;--b:#eee;--d:#333}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{font-family:-apple-system,system-ui,sans-serif;background:var(--bg);height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
.header{background:var(--w);padding:14px 16px;text-align:center;border-bottom:1px solid var(--b);position:relative;flex-shrink:0;z-index:5}
.header h1{font-size:17px;color:var(--d)}
.header .sub{font-size:11px;color:var(--g);margin-top:2px}
.gear{position:absolute;right:14px;top:14px;cursor:pointer;font-size:18px}
.page{display:none;flex:1;flex-direction:column;overflow:hidden}
.page.active{display:flex}
.nav{display:flex;background:var(--w);border-top:1px solid var(--b);flex-shrink:0}
.nav-item{flex:1;text-align:center;padding:8px 0 6px;cursor:pointer;font-size:11px;color:var(--g);transition:.2s}
.nav-item .icon{font-size:20px;display:block;margin-bottom:2px}
.nav-item.active{color:var(--o)}
.chat{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}
.msg-wrap{display:flex;flex-direction:column;max-width:82%}
.msg-wrap.user{align-self:flex-end}
.msg-wrap.bot{align-self:flex-start}
.msg{padding:11px 15px;border-radius:18px;font-size:14px;line-height:1.6;word-break:break-word;white-space:pre-wrap}
.msg-wrap.user .msg{background:var(--o);color:var(--w);border-bottom-right-radius:4px}
.msg-wrap.bot .msg{background:var(--w);color:var(--d);border-bottom-left-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.msg img.chat-img{max-width:200px;max-height:200px;border-radius:10px;margin-top:6px}
.thinking-block{background:#f5f3ef;border-radius:12px;padding:10px 14px;margin-bottom:6px;cursor:pointer;border:1px solid #e8e4dc}
.thinking-header{font-size:12px;color:#888;display:flex;align-items:center;gap:4px}
.thinking-header .arrow{transition:transform .2s;display:inline-block}
.thinking-block.expanded .arrow{transform:rotate(90deg)}
.thinking-content{display:none;margin-top:8px;font-size:12px;line-height:1.6;color:#666;white-space:pre-wrap;max-height:300px;overflow-y:auto}
.thinking-block.expanded .thinking-content{display:block}
.input-area{padding:10px 14px;background:var(--w);border-top:1px solid var(--b);display:flex;gap:8px;flex-shrink:0;align-items:flex-end}
.input-area .img-btn{background:none;border:none;font-size:22px;cursor:pointer;padding:4px;flex-shrink:0;height:42px;display:flex;align-items:center}
.input-area textarea{flex:1;border:1px solid #ddd;border-radius:20px;padding:10px 14px;font-size:14px;resize:none;height:42px;max-height:100px;font-family:inherit;outline:none}
.input-area textarea:focus{border-color:var(--o)}
.input-area .send-btn{background:var(--o);color:var(--w);border:none;border-radius:50%;width:42px;height:42px;font-size:18px;cursor:pointer;flex-shrink:0}
.input-area .send-btn:disabled{background:#ccc}
.img-preview{padding:6px 14px;background:var(--w);border-top:1px solid #f5f5f5;display:none;align-items:center;gap:8px;flex-shrink:0}
.img-preview img{height:50px;border-radius:8px}
.img-preview .remove{background:none;border:none;font-size:16px;color:var(--g);cursor:pointer}
.img-preview.show{display:flex}
.chat-tools{display:flex;gap:8px;padding:6px 14px;background:var(--w);border-top:1px solid #f5f5f5;flex-shrink:0}
.chat-tools button{background:none;border:1px solid #e0e0e0;border-radius:14px;padding:3px 10px;font-size:11px;color:#888;cursor:pointer}
.typing{align-self:flex-start;color:var(--g);font-size:12px;padding:6px 14px}
.welcome{text-align:center;color:var(--g);font-size:13px;margin-top:30vh}
.msg-menu{display:none;position:fixed;background:var(--w);border-radius:12px;box-shadow:0 4px 20px rgba(0,0,0,.15);padding:6px 0;z-index:30;min-width:130px}
.msg-menu.show{display:block}
.msg-menu-item{padding:10px 16px;font-size:13px;color:var(--d);cursor:pointer;display:flex;align-items:center;gap:8px}
.msg-menu-item:active{background:#f5f5f5}
.msg-menu-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:29}
.msg-menu-overlay.show{display:block}
.diary-page{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch}
.diary-write{background:var(--w);border-radius:14px;padding:16px;margin-bottom:16px;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.diary-write h3{font-size:14px;color:var(--d);margin-bottom:10px}
.diary-write textarea{width:100%;border:1px solid #e8e8e8;border-radius:10px;padding:10px;font-size:13px;height:80px;resize:vertical;outline:none;font-family:inherit}
.diary-write textarea:focus{border-color:var(--o)}
.mood-picker{display:flex;gap:8px;margin:10px 0;flex-wrap:wrap}
.mood-picker span{font-size:22px;cursor:pointer;opacity:.4;transition:.2s}
.mood-picker span.picked{opacity:1;transform:scale(1.2)}
.diary-write button{background:var(--o);color:var(--w);border:none;border-radius:10px;padding:8px 20px;font-size:13px;cursor:pointer;margin-top:4px}
.diary-entry{background:var(--w);border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.diary-entry .meta{display:flex;justify-content:space-between;font-size:11px;color:var(--g);margin-bottom:6px}
.diary-entry .body{font-size:13px;line-height:1.7;color:#444;white-space:pre-wrap}
.author-tag{display:inline-block;font-size:10px;padding:2px 8px;border-radius:10px;color:var(--w)}
.tag-minmin{background:#f4a024}
.tag-xiaoke{background:#7eb8da}
.diary-empty{text-align:center;color:var(--g);font-size:13px;padding:40px 0}
.whisper-page{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;align-items:center;-webkit-overflow-scrolling:touch}
.whisper-card{background:var(--w);border-radius:18px;padding:30px 24px;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.06);width:100%;max-width:340px;margin-top:20px}
.whisper-card .emoji{font-size:40px;margin-bottom:12px}
.whisper-card .text{font-size:15px;line-height:1.8;color:#444;min-height:60px;white-space:pre-wrap}
.whisper-card .from{font-size:11px;color:var(--g);margin-top:12px}
.whisper-btn{background:var(--o);color:var(--w);border:none;border-radius:24px;padding:12px 32px;font-size:14px;cursor:pointer;margin-top:20px;box-shadow:0 2px 8px rgba(244,160,36,.3)}
.whisper-count{font-size:11px;color:var(--g);margin-top:10px}
.whisper-write{background:var(--w);border-radius:14px;padding:16px;width:100%;max-width:340px;margin-top:20px;box-shadow:0 1px 4px rgba(0,0,0,.05)}
.whisper-write h3{font-size:13px;color:var(--d);margin-bottom:8px}
.whisper-write textarea{width:100%;border:1px solid #e8e8e8;border-radius:10px;padding:10px;font-size:13px;height:60px;resize:none;outline:none;font-family:inherit}
.whisper-write button{background:var(--o);color:var(--w);border:none;border-radius:10px;padding:8px 20px;font-size:13px;cursor:pointer;margin-top:8px}
.overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);z-index:20;justify-content:center;align-items:center}
.overlay.show{display:flex}
.modal{background:var(--w);border-radius:16px;padding:20px;width:92%;max-width:420px;max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.modal h2{font-size:15px;margin-bottom:14px;color:var(--d)}
.modal label{font-size:12px;color:#666;display:block;margin-bottom:3px;margin-top:10px}
.modal input,.modal textarea{width:100%;padding:9px;border:1px solid #ddd;border-radius:8px;font-size:13px;outline:none;font-family:inherit}
.modal input:focus,.modal textarea:focus{border-color:var(--o)}
.btn-row{display:flex;gap:8px;margin-top:16px}
.btn-row button{flex:1;padding:9px;border-radius:8px;font-size:13px;cursor:pointer;border:none}
.btn-save{background:var(--o);color:var(--w)}
.btn-cancel{background:#eee;color:var(--d)}
.sg{background:#f8f8f8;border-radius:10px;padding:12px;margin-top:12px}
.sg h3{font-size:13px;color:#555;margin-bottom:10px}
.sr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.sr .lb{font-size:12px;color:#666;flex-shrink:0}
.sr .vl{font-size:12px;color:var(--o);min-width:36px;text-align:right;margin:0 6px}
.sr input[type=range]{flex:1;margin:0 6px;accent-color:var(--o)}
.sr input[type=number]{width:80px;text-align:center;padding:6px}
.tg{position:relative;width:44px;height:24px;flex-shrink:0}
.tg input{opacity:0;width:0;height:0}
.tg .sl{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ccc;border-radius:24px;transition:.3s}
.tg .sl:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background:white;border-radius:50%;transition:.3s}
.tg input:checked+.sl{background:var(--o)}
.tg input:checked+.sl:before{transform:translateX(20px)}
.data-btns{display:flex;gap:8px;margin-top:12px}
.data-btns button{flex:1;padding:8px;border-radius:8px;font-size:12px;cursor:pointer;border:1px solid #ddd;background:var(--w);color:var(--d)}
.mem-item{background:#fef9f0;border:1px solid #f4e0b8;border-radius:8px;padding:9px;margin-bottom:7px;font-size:12px;line-height:1.5}
.mem-item .mem-id{font-size:10px;color:var(--g);margin-bottom:3px}
.mem-item .mem-actions{margin-top:5px;display:flex;gap:8px}
.mem-item .mem-actions button{background:none;border:none;font-size:11px;color:var(--o);cursor:pointer;padding:0}

