:root{--primary: #d63384;--primary-light: #f8d7ea;--primary-dark: #a61e61;--accent: #ff6b9d;--gold: #d4a574;--gold-light: #f5e6d3;--dark: #1a1a2e;--text: #2d2d44;--text-light: #6c6c8a;--cream: #faf8f5;--white: #ffffff;--rose: #e8d5d8;--lavender: #e6e0f3;--shadow: 0 2px 20px rgba(214, 51, 132, .08);--transition: all .4s cubic-bezier(.25, .46, .45, .94)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden;font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--primary-light);color:var(--primary-dark)}.app{display:flex;flex-direction:column;height:100%;max-width:600px;margin:0 auto;background:var(--cream);position:relative;user-select:none;-webkit-user-select:none}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:var(--dark);flex-shrink:0;z-index:10;position:relative;overflow:hidden}.chat-header:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 50%,rgba(214,51,132,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(212,165,116,.1) 0%,transparent 50%);pointer-events:none}.header-left{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.header-avatar{width:48px;height:48px;border-radius:18%;object-fit:cover}.header-name{font-family:"Noto Serif SC",serif;font-size:16px;font-weight:600;color:var(--white);letter-spacing:2px}.header-right{display:flex;align-items:center;position:relative;z-index:1}.online-dot{width:8px;height:8px;border-radius:50%;background:#4cd964;display:inline-block;box-shadow:0 0 6px #4cd96480}.typing-text{font-size:13px;color:gold;font-family:"Noto Serif SC",serif;letter-spacing:1px;animation:typing-fade 1.5s ease-in-out infinite}@keyframes typing-fade{0%,to{opacity:1}50%{opacity:.3}}.chat-messages{flex:1;overflow-y:auto;scrollbar-width:none;padding:20px 16px;display:flex;flex-direction:column;gap:16px;-webkit-overflow-scrolling:touch;background:var(--cream);position:relative}.chat-messages:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 10% 20%,rgba(214,51,132,.03) 0%,transparent 40%),radial-gradient(circle at 90% 80%,rgba(212,165,116,.03) 0%,transparent 40%),radial-gradient(circle at 50% 50%,rgba(230,224,243,.05) 0%,transparent 50%);pointer-events:none;z-index:0}.chat-messages>*{position:relative;z-index:1}.chat-messages::-webkit-scrollbar{display:none}.message-row{display:flex;align-items:flex-start;gap:10px;max-width:100%}.message-row-self{justify-content:flex-end}.message-row-other{justify-content:flex-start}.message-avatar{width:42px;height:42px;border-radius:18%;object-fit:cover;flex-shrink:0}.message-bubble{max-width:72%;padding:7px 12px;font-size:16px;line-height:1.8;word-break:break-word;white-space:pre-wrap;letter-spacing:.5px;user-select:auto;-webkit-user-select:auto;font-family:"Noto Serif SC",Noto Sans SC,sans-serif;position:relative}.bubble-self{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:var(--white);border-radius:12px 12px 0}.bubble-other{background:var(--white);color:var(--text);border-radius:12px 12px 12px 0;border:1px solid rgba(232,213,216,.6)}.message-system{align-self:center;background:var(--lavender);color:var(--text-light);font-size:13px;padding:10px 22px;border:1px solid rgba(230,224,243,.5);text-align:center;letter-spacing:.5px}.time-card{align-self:center;color:var(--primary);font-size:11px;font-weight:600;padding:4px 12px;text-align:center;letter-spacing:.5px;-webkit-user-select:none;user-select:none;background:var(--white);border:1px solid var(--rose)}.chat-input-area{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;background:var(--white);border-top:1px solid var(--rose);flex-shrink:0}.chat-input{flex:1;min-height:42px;max-height:100px;padding:10px 18px;border:1px solid var(--rose);border-radius:21px;font-size:15px;font-family:inherit;color:var(--text);background:var(--cream);outline:none;line-height:1.4;overflow-y:auto;transition:var(--transition);user-select:auto;-webkit-user-select:auto;word-break:break-word;white-space:pre-wrap;cursor:text}.chat-input:focus{border-color:var(--primary);background:var(--white);box-shadow:0 0 0 3px var(--primary-light)}.chat-input span[data-emoji]{display:inline-block;vertical-align:middle}.emoji-button{width:42px;height:42px;border:none;border-radius:50%;background:transparent;color:var(--text-light);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:var(--transition);-webkit-tap-highlight-color:transparent;outline:none}.emoji-button svg{width:26px;height:26px}.emoji-button:hover{background:var(--cream);color:var(--primary)}.emoji-button.active{color:var(--primary);background:var(--primary-light)}.emoji-panel-wrapper{height:0;overflow:hidden;flex-shrink:0;transition:height .3s cubic-bezier(.4,0,.2,1);background:var(--white)}.emoji-panel{height:100%;overflow-y:auto;padding:12px 8px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;justify-items:center;align-items:center}.emoji-panel-item{width:32px;height:32px;background-size:auto;border-radius:8px;cursor:pointer;transition:background-color .15s;-webkit-tap-highlight-color:transparent}.emoji-panel-item:hover{background-color:var(--primary-light)}.emoji-panel-item:active{background-color:var(--rose)}.emoji-panel::-webkit-scrollbar{width:4px}.emoji-panel::-webkit-scrollbar-thumb{background:var(--rose);border-radius:2px}.send-button{height:42px;padding:0 20px;border:none;border-radius:21px;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:var(--white);font-size:14px;font-family:"Noto Serif SC",serif;font-weight:600;cursor:pointer;flex-shrink:0;transition:var(--transition);letter-spacing:2px;box-shadow:0 2px 12px #d6338440;-webkit-tap-highlight-color:transparent;outline:none}.send-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #d6338459}.send-button:active:not(:disabled){transform:translateY(0)}.send-button:disabled{background:var(--rose);box-shadow:none;cursor:not-allowed}@media(max-width:600px){.app{max-width:100%}.message-bubble{max-width:78%}.chat-header{padding:18px 20px}.header-name{font-size:18px;letter-spacing:3px}}@media(max-width:480px){.message-bubble{max-width:82%;padding:7px 12px;font-size:15px}.rp-envelope{width:260px!important;padding:24px 16px!important}.rp-detail-amount{font-size:52px!important}.tf-card{width:180px!important}.tf-card-amount{font-size:22px!important}.tf-detail{width:280px!important;padding:28px 20px!important}.tf-detail-amount{font-size:44px!important}.loc-card{width:180px!important}}.rp-card{width:200px;background:linear-gradient(180deg,#ee0a0b,#c90809);border-radius:8px;padding:14px 16px 12px;cursor:pointer;position:relative;transition:all .3s ease;box-shadow:0 2px 12px #ee0a0b40;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.rp-card:active{transform:scale(.97)}.rp-card-opened{background:linear-gradient(180deg,#f5e0e0,#ebd0d0);box-shadow:0 1px 4px #00000014}.rp-card-header{display:flex;align-items:center;gap:6px;margin-bottom:10px}.rp-card-avatar{width:20px;height:20px;border-radius:4px;object-fit:cover}.rp-card-name{font-size:12px;color:#ffffffe6;flex:1}.rp-card-opened .rp-card-name{color:#999}.rp-card-received{font-size:10px;color:#999;background:#0000000f;padding:1px 6px;border-radius:3px}.rp-card-blessing{font-size:14px;color:gold;text-align:center;font-weight:600;margin-bottom:10px;line-height:1.4}.rp-card-opened .rp-card-blessing{color:#666;font-weight:400}.rp-card-seal-wrap{display:flex;justify-content:center;margin-bottom:6px}.rp-card-seal{width:36px;height:36px;border:2px solid #ffd700;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:gold;font-weight:700;font-family:"Noto Serif SC",serif;background:#ffd7001a}.rp-card-label{text-align:center;font-size:10px;color:#fff9;letter-spacing:1px}.rp-card-opened .rp-card-label{color:#bbb}.rp-card-amount{text-align:center;font-size:20px;font-weight:700;color:#333;margin:4px 0}.rp-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:2000;animation:rp-overlay-in .3s ease}@keyframes rp-overlay-in{0%{opacity:0}to{opacity:1}}.rp-overlay-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3}.rp-overlay-content{position:relative;z-index:1;animation:rp-content-in .3s ease-out}@keyframes rp-content-in{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.rp-envelope{width:280px;background:linear-gradient(180deg,#ee0a0b,#c90809);border-radius:16px;padding:36px 24px 28px;text-align:center;cursor:pointer;position:relative;overflow:hidden;box-shadow:0 4px 20px #ee0a0b4d}.rp-envelope-avatar-wrap{margin-bottom:10px}.rp-envelope-avatar{width:48px;height:48px;border-radius:8px;object-fit:cover;border:2px solid rgba(255,255,255,.3)}.rp-envelope-sender{font-size:14px;color:#ffffffd9;margin-bottom:16px}.rp-envelope-blessing{font-size:18px;color:gold;font-weight:700;margin-bottom:20px;line-height:1.5;font-family:"Noto Serif SC",serif}.rp-envelope-seal-wrap{display:flex;justify-content:center;margin-bottom:16px}.rp-envelope-seal{width:56px;height:56px;border:3px solid #ffd700;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;color:gold;font-weight:700;font-family:"Noto Serif SC",serif;background:#ffd7001f}.rp-envelope-hint{font-size:12px;color:#ffffff80}.rp-detail{width:280px;background:linear-gradient(180deg,#ee0a0b,#c90809);border-radius:16px;padding:40px 24px 28px;text-align:center;cursor:pointer;animation:rp-detail-pop .3s ease-out;position:relative;overflow:hidden}@keyframes rp-detail-pop{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.rp-detail-amount{font-size:60px;font-weight:700;color:gold;display:inline;position:relative;z-index:1}.rp-detail-amount-unit{font-size:24px;color:gold;display:inline;margin-left:4px;position:relative;z-index:1}.rp-detail-label{font-size:14px;color:#ffffffb3;margin:8px 0 24px;position:relative;z-index:1}.rp-detail-sender-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px;position:relative;z-index:1}.rp-detail-sender-avatar{width:24px;height:24px;border-radius:4px;object-fit:cover}.rp-detail-sender-row span{font-size:13px;color:#fffc}.rp-detail-blessing{font-size:14px;color:#ffd700b3;margin-bottom:20px;position:relative;z-index:1;font-family:"Noto Serif SC",serif}.rp-detail-close-hint{font-size:12px;color:#ffffff59;position:relative;z-index:1}.tf-card{width:200px;background:#fff;border-radius:8px;padding:14px 16px 12px;cursor:pointer;position:relative;transition:all .3s ease;box-shadow:0 1px 4px #0000001a;user-select:none;-webkit-user-select:none;border:1px solid #e8e8e8;-webkit-tap-highlight-color:transparent}.tf-card:active{transform:scale(.97)}.tf-card-claimed{opacity:.7;border-color:#ddd}.tf-card-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}.tf-card-avatar{width:24px;height:24px;border-radius:4px;object-fit:cover}.tf-card-info{display:flex;flex-direction:column;gap:1px}.tf-card-name{font-size:12px;color:#333;font-weight:500}.tf-card-action{font-size:10px;color:#999}.tf-card-amount{font-size:26px;font-weight:600;color:#1a1a1a;margin-bottom:12px;letter-spacing:-.5px}.tf-card-claimed .tf-card-amount{color:#888}.tf-card-btn{display:block;width:100%;padding:8px 0;border:none;border-radius:6px;background:#07c160;color:#fff;font-size:14px;font-weight:500;text-align:center;cursor:pointer;transition:background .2s}.tf-card-btn:hover{background:#06ad56}.tf-card-btn-claimed{background:#e5e5e5;color:#999;cursor:default}.tf-detail{width:300px;background:#fff;border-radius:16px;padding:40px 24px 28px;text-align:center;animation:rp-detail-pop .5s cubic-bezier(.34,1.56,.64,1);position:relative}.tf-detail-check{width:56px;height:56px;border-radius:50%;background:#07c160;color:#fff;font-size:30px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;animation:tf-check-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes tf-check-pop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.tf-detail-amount{font-size:48px;font-weight:700;color:#1a1a1a;margin-bottom:4px}.tf-detail-label{font-size:14px;color:#888;margin-bottom:24px}.tf-detail-label-tf{font-size:14px;color:#888;margin-bottom:20px}.tf-detail-sender-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.tf-detail-note{font-size:13px;color:#999;margin-bottom:24px;padding:0 8px;word-break:break-word}.tf-detail-claim-btn{display:block;width:100%;padding:14px 0;border:none;border-radius:8px;background:#07c160;color:#fff;font-size:17px;font-weight:500;cursor:pointer;transition:background .2s;margin-bottom:12px}.tf-detail-claim-btn:hover{background:#06ad56}.tf-detail-claim-btn:active{transform:scale(.98)}.tf-detail-close-hint{font-size:12px;color:#bbb}.loc-card{width:200px;background:#fff;border-radius:8px;cursor:pointer;overflow:hidden;box-shadow:0 1px 4px #0000001a;border:1px solid #e8e8e8;transition:all .2s;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.loc-card:active{transform:scale(.97)}.loc-card-map{height:110px;position:relative;display:flex;align-items:center;justify-content:center;background-color:#cde8b3;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='120'%3E%3Cpath d='M0 35 Q40 30 90 40 T200 35' stroke='%23fff' stroke-width='2.5' fill='none' opacity='0.5'/%3E%3Cpath d='M0 85 Q70 90 130 80 T200 85' stroke='%23fff' stroke-width='2' fill='none' opacity='0.4'/%3E%3Cpath d='M50 0 Q45 35 55 75 T50 120' stroke='%23fff' stroke-width='2.5' fill='none' opacity='0.5'/%3E%3Cpath d='M150 0 Q155 50 145 90 T150 120' stroke='%23fff' stroke-width='2' fill='none' opacity='0.4'/%3E%3Crect x='15' y='8' r='2' width='18' height='14' fill='%23b8d4a3' rx='2'/%3E%3Crect x='130' y='45' width='22' height='12' fill='%23b8d4a3' rx='2'/%3E%3Crect x='25' y='75' width='14' height='10' fill='%23b8d4a3' rx='2'/%3E%3Crect x='160' y='18' width='16' height='12' fill='%23b8d4a3' rx='2'/%3E%3Crect x='80' y='95' width='12' height='10' fill='%23b8d4a3' rx='2'/%3E%3C/svg%3E");background-size:cover;background-position:center}.loc-card-pin{font-size:30px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:loc-pin-bounce 1.5s ease-in-out infinite}@keyframes loc-pin-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.loc-card-label{padding:10px 12px;font-size:13px;color:#333;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.didi-confirm{width:300px;background:#fff;border-radius:16px;padding:28px 24px 24px;animation:rp-detail-pop .3s ease-out;position:relative}.didi-confirm-header{text-align:center;font-size:18px;font-weight:600;color:#1a1a1a;margin-bottom:20px;font-family:"Noto Serif SC",serif}.didi-confirm-route{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin-bottom:20px;padding:16px;background:#f5f5f5;border-radius:12px}.didi-confirm-route-item{display:flex;align-items:center;gap:10px}.didi-confirm-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.didi-confirm-dot-from{background:#07c160}.didi-confirm-dot-to{background:#ee0a0b}.didi-confirm-route-line{width:2px;height:20px;background:#ccc;margin-left:4px}.didi-confirm-location{font-size:15px;color:#333;line-height:1.4}.didi-confirm-detail{margin-bottom:16px}.didi-confirm-detail-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;color:#666}.didi-confirm-detail-row .didi-confirm-price{font-size:18px;font-weight:700;color:#ff6b35}.didi-confirm-countdown{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:20px;padding:8px 16px;background:#fff3e0;border-radius:8px;font-size:14px;color:#e65100}.didi-confirm-countdown-num{font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}.didi-confirm-countdown-label{font-size:13px;opacity:.8}.didi-confirm-buttons{display:flex;gap:12px}.didi-confirm-btn{flex:1;padding:12px 0;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;font-family:"Noto Serif SC",serif}.didi-confirm-btn:active{transform:scale(.97)}.didi-confirm-btn-cancel{background:#f5f5f5;color:#666}.didi-confirm-btn-cancel:hover{background:#ebebeb}.didi-confirm-btn-confirm{background:linear-gradient(135deg,#07c160,#06ad56);color:#fff;box-shadow:0 2px 12px #07c1604d}.didi-confirm-btn-confirm:hover{box-shadow:0 4px 16px #07c16066}@media(max-width:480px){.didi-confirm{width:280px;padding:24px 20px 20px}.didi-confirm-header,.didi-confirm-price{font-size:16px}}.password-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--dark);z-index:9999;overflow:hidden}.password-overlay:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 50%,rgba(214,51,132,.15) 0%,transparent 50%),radial-gradient(circle at 80% 80%,rgba(212,165,116,.1) 0%,transparent 50%),radial-gradient(circle at 40% 20%,rgba(231,224,243,.1) 0%,transparent 50%);pointer-events:none}.password-modal{background:var(--white);padding:60px 48px 48px;width:380px;text-align:center;position:relative;animation:passwordFadeIn .8s cubic-bezier(.25,.46,.45,.94)}.password-modal:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--primary),var(--gold),var(--primary))}@keyframes passwordFadeIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.password-modal-icon{font-size:56px;margin-bottom:20px;display:block}.password-modal-title{font-family:"Noto Serif SC",serif;font-size:28px;font-weight:700;color:var(--text);margin-bottom:12px;letter-spacing:4px}.password-modal-subtitle{font-size:14px;color:var(--text-light);margin-bottom:40px;letter-spacing:2px}.password-input{width:100%;padding:16px 18px;border:1px solid var(--rose);font-size:16px;outline:none;transition:var(--transition);text-align:center;letter-spacing:4px;font-family:"Noto Serif SC",serif;color:var(--text);background:var(--cream)}.password-input:focus{border-color:var(--primary);background:var(--white);box-shadow:0 0 0 3px var(--primary-light)}.password-input::placeholder{color:var(--text-light);letter-spacing:2px;font-family:Noto Sans SC,sans-serif}.password-error{color:#d63031;font-size:13px;margin-top:16px;letter-spacing:2px;animation:shake .4s cubic-bezier(.25,.46,.45,.94);border:1px solid #d63031;padding:8px 16px;display:inline-block}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.password-submit{display:inline-block;padding:16px 56px;margin-top:28px;background:transparent;color:var(--primary);text-decoration:none;border:1px solid var(--primary);font-family:"Noto Serif SC",serif;font-size:14px;font-weight:600;letter-spacing:4px;cursor:pointer;transition:var(--transition);position:relative;overflow:hidden}.password-submit:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--primary);transition:var(--transition);z-index:-1}.password-submit:hover:before{left:0}.password-submit:hover{color:var(--white);border-color:var(--primary)}.password-submit:active{transform:scale(.97)}
