:root{--green:#08b86f;--green-dark:#07955c;--ink:#16201c;--muted:#78827e;--line:#e8ecea;--soft:#f4f7f5;--white:#fff;--coral:#ff806e;--shadow:0 18px 50px rgba(31,60,47,.12)}
*{box-sizing:border-box}body{margin:0;background:#e8efeb;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif}.hidden{display:none!important}button,input{font:inherit}button{cursor:pointer}.app-shell{width:100%;max-width:460px;min-height:100dvh;margin:auto;background:var(--white);position:relative;overflow:hidden;box-shadow:var(--shadow)}.screen{min-height:100dvh}.login-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px 26px;background:linear-gradient(155deg,#ecfff6 0%,#fff 48%)}.brand-mark{width:84px;height:84px;border-radius:28px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:48px;font-weight:900;box-shadow:0 18px 40px rgba(8,184,111,.28)}.login-screen h1{font-size:38px;margin:18px 0 4px}.login-screen>p{color:var(--muted);margin:0 0 34px}.login-card{width:100%;background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow)}.login-card label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}.phone-field{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:14px;padding:0 14px;margin-bottom:16px}.phone-field:focus-within{border-color:var(--green)}.phone-field span{padding-right:12px;border-right:1px solid var(--line)}.phone-field input{border:0;outline:0;padding:15px;width:100%;background:transparent}.primary-btn{width:100%;border:0;border-radius:14px;padding:15px;background:var(--green);color:#fff;font-weight:800}.primary-btn:hover{background:var(--green-dark)}.login-card small{display:block;text-align:center;color:var(--muted);margin-top:14px}
#main-app{padding:0 20px 88px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:26px 0 16px}.eyebrow{color:var(--muted);font-size:13px}.topbar h1{margin:2px 0 0;font-size:30px}.icon-btn{border:0;background:var(--soft);border-radius:14px;width:44px;height:44px;font-size:26px;color:var(--ink)}.search{background:var(--soft);height:46px;border-radius:14px;display:flex;align-items:center;padding:0 14px;color:var(--muted)}.search input{border:0;outline:0;background:transparent;width:100%;padding:0 10px}.story-row{display:flex;gap:15px;overflow:auto;padding:20px 2px 8px;scrollbar-width:none}.story{text-align:center;min-width:58px;font-size:12px}.story .avatar{margin:auto auto 6px;border:3px solid #fff;outline:2px solid var(--green)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 9px}.section-heading h2{font-size:17px;margin:0}.section-heading span{font-size:12px;color:var(--green)}.conversation{display:flex;align-items:center;gap:13px;padding:13px 2px;border-bottom:1px solid var(--line)}.conversation-main{min-width:0;flex:1}.conversation-title{display:flex;justify-content:space-between;align-items:center}.conversation-title h3{margin:0;font-size:16px}.conversation-title time{font-size:11px;color:var(--muted)}.conversation-copy{display:flex;justify-content:space-between;align-items:center;margin-top:5px}.conversation-copy p{margin:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.badge{display:grid;place-items:center;background:var(--green);color:#fff;border-radius:20px;min-width:20px;height:20px;font-size:11px;padding:0 6px}.avatar{width:50px;height:50px;border-radius:18px;background:#dde9e3;display:grid;place-items:center;font-weight:800;color:#365045;flex:none}.avatar.coral,.coral{background:#ffe0dc;color:#a84336}.avatar.blue,.blue{background:#dceaff;color:#3969a6}.avatar.gold,.gold{background:#fff0c9;color:#956c12}.avatar.violet,.violet{background:#eadfff;color:#6d4ba5}.avatar.green,.green{background:#d9f5e8;color:#25805b}.avatar.xl{width:88px;height:88px;border-radius:30px;font-size:28px}
.view{display:none}.view.active{display:block}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:18px 0}.quick-actions button{border:1px solid var(--line);background:#fff;border-radius:16px;padding:15px 4px;color:var(--ink)}.quick-actions b{display:grid;place-items:center;margin:auto auto 8px;width:38px;height:38px;border-radius:13px;background:#e1f8ed;color:var(--green);font-size:20px}.quick-actions span{font-size:11px}.friend{display:flex;align-items:center;gap:12px;padding:11px 2px}.friend-info{flex:1}.friend h3,.friend p{margin:0}.friend h3{font-size:15px}.friend p{color:var(--muted);font-size:12px;margin-top:3px}.friend>button{border:0;background:#e1f8ed;color:var(--green-dark);border-radius:10px;padding:8px 12px;font-weight:700;font-size:12px}.profile-hero{text-align:center;padding-top:16px}.profile-hero .avatar{margin:auto}.profile-hero h2{margin:14px 0 5px}.profile-hero p{margin:0;color:var(--muted)}.outline-btn{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 18px;margin-top:18px}.settings-card{margin-top:24px;border:1px solid var(--line);border-radius:18px;overflow:hidden}.settings-card button{width:100%;display:flex;justify-content:space-between;padding:17px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.settings-card button:last-child{border:0}.logout-btn{width:100%;margin-top:14px;padding:15px;border:0;border-radius:14px;background:#fff1ef;color:#d65548;font-weight:700}.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:76px;padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.bottom-nav button{position:relative;border:0;background:transparent;color:#929a96;font-size:11px}.bottom-nav button span{display:block;font-size:21px;margin-bottom:3px}.bottom-nav button.active{color:var(--green);font-weight:800}.bottom-nav i{position:absolute;top:8px;margin-left:3px;background:var(--coral);color:#fff;font-style:normal;border-radius:10px;padding:1px 5px}
.chat-room{display:flex;flex-direction:column;background:#f5f8f6}.chat-header{height:78px;background:#fff;display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.chat-header .icon-btn{background:transparent}.room-person{flex:1}.room-person h2{font-size:16px;margin:0}.room-person span{color:var(--muted);font-size:11px}.room-person i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:4px}.messages{flex:1;overflow:auto;padding:20px 16px}.date-chip{width:max-content;margin:0 auto 18px;background:#e5ebe8;color:#6b7771;padding:5px 10px;border-radius:10px;font-size:11px}.message-row{display:flex;align-items:flex-end;gap:7px;margin:10px 0}.message-row.mine{justify-content:flex-end}.bubble{max-width:75%;padding:11px 14px;border-radius:17px 17px 17px 4px;background:#fff;box-shadow:0 3px 12px rgba(30,60,45,.05);font-size:14px;line-height:1.45}.mine .bubble{background:var(--green);color:#fff;border-radius:17px 17px 4px 17px}.message-meta{font-size:9px;color:#8a948f}.composer{display:flex;gap:9px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}.composer button{border:0;background:var(--soft);border-radius:50%;width:42px;height:42px;font-size:20px}.composer input{flex:1;border:0;outline:0;background:var(--soft);border-radius:21px;padding:0 16px;min-width:0}.composer .send-btn{background:var(--green);color:#fff}
dialog{width:min(410px,calc(100% - 34px));border:0;border-radius:24px;padding:20px;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(12,28,20,.42);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.dialog-head button{border:0;background:transparent;font-size:28px}.dialog-head+p{color:var(--muted);font-size:13px}#dialog-friends button{width:100%;display:flex;align-items:center;gap:12px;border:0;background:#fff;padding:10px 0;text-align:left}#dialog-friends button strong{display:block}#dialog-friends button small{color:var(--muted)}
@media(min-width:700px){body{padding:24px}.app-shell,.screen{min-height:calc(100dvh - 48px);height:calc(100dvh - 48px)}.app-shell{border-radius:32px}.bottom-nav{position:absolute}}
@media(max-width:360px){.quick-actions span{font-size:10px}.topbar{padding-top:18px}}
