/* Qingyu Chat native mobile design system / 1.0.12
   Reference language: conversational density, edge-to-edge system surfaces,
   tactile actions. This is an original palette and layout, not a brand clone. */
:root{--qy-blue:#3865eb;--qy-ink:#131924;--qy-muted:#7f8a9a;--qy-line:#e9edf3;--qy-surface:#f6f8fb;--qy-card:#fff}
@media(max-width:760px){
 html,body,#root,.app-root{height:100%;height:100dvh;overscroll-behavior:none}
 body{background:#fff!important;color:var(--qy-ink);-webkit-tap-highlight-color:transparent}
 button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
 .shell{height:100dvh!important;overflow:hidden;background:#fff!important}
 .side{background:#fff!important;height:100%!important;padding-bottom:calc(63px + env(safe-area-inset-bottom))!important;overflow:hidden}
 .side-top{padding:calc(12px + env(safe-area-inset-top)) 20px 0!important;background:#fff!important;border:0!important}
 .side-heading{height:50px!important;min-height:50px!important;align-items:center}
 .side-title{font-size:27px!important;font-weight:760!important;line-height:1.1;letter-spacing:-1.05px!important;color:#121923!important}
 .side-heading .icon-btn.primary{background:#2e5ae8!important;border-radius:12px!important;width:35px!important;height:35px!important;box-shadow:none!important}
 .searchbox{margin:7px 0 12px!important}
 .searchbox input{height:37px!important;padding-left:38px!important;border:0!important;background:#f1f3f7!important;border-radius:11px!important;color:#202b3c!important;font-size:13px!important;box-shadow:none!important}
 .searchbox input:focus{background:#f7f8fc!important;box-shadow:0 0 0 1.5px #a9baff!important}
 .tabs{gap:21px!important;height:37px!important;padding-left:0!important}
 .tab{font-size:12.6px!important;color:#8994a5!important;font-weight:550!important;padding:8px 0 12px!important;height:37px!important}
 .tab.active{color:#111c30!important;font-weight:750!important}
 .tab.active:after{width:22px!important;height:2.5px!important;bottom:0!important;background:var(--qy-blue)!important}
 .conversation-list,.contacts-list{background:#fff!important;padding-bottom:7px!important;scrollbar-width:none}
 .conversation{height:72px!important;min-height:72px!important;padding:9px 19px!important;gap:12px!important;background:#fff!important;transition:background-color .12s!important}
 .conversation:active,.contact-item:active{background:#f5f7fc!important}
 .conversation:after{left:79px!important;right:19px!important;background:#eef1f5!important;transform:scaleY(.7)!important}
 .conversation .avatar.m{width:47px!important;height:47px!important;border-radius:15px!important;box-shadow:none!important;border:0!important}
 .avatar-initials{font-size:15px!important;font-weight:730!important;color:#395caa!important}
 .conv-top{margin-bottom:6px!important}
 .conv-name{color:#172031!important;font-size:14.8px!important;font-weight:680!important;letter-spacing:-.23px!important}
 .conv-time{font-size:10.5px!important;color:#a4acb9!important;font-weight:450!important}
 .preview-text{font-size:12.5px!important;color:#8793a3!important;letter-spacing:0!important}
 .unread{background:#f15a72!important;min-width:18px!important;height:18px!important;line-height:18px!important;border-radius:10px!important;font-size:10px!important}
 .mobile-bar{height:calc(60px + env(safe-area-inset-bottom))!important;bottom:0!important;border-radius:0!important;border-top:1px solid #e9edf2!important;box-shadow:0 -1px 9px #16294405!important;background:rgba(252,253,255,.96)!important;backdrop-filter:blur(20px) saturate(1.3)!important;-webkit-backdrop-filter:blur(20px) saturate(1.3)!important;padding:5px 12px calc(4px + env(safe-area-inset-bottom))!important}
 .mobile-bar button{font-size:10px!important;color:#929ba9!important;font-weight:550!important;gap:3px!important;min-height:48px!important}
 .mobile-bar button.active{color:var(--qy-blue)!important;font-weight:670!important}
 .mobile-nav-symbol{width:35px!important;height:27px!important;border-radius:0!important;background:transparent!important}
 .mobile-nav-symbol .ico{width:21px!important;height:21px!important;stroke-width:1.85!important}
 .mobile-bar button.active .ico{stroke-width:2.25!important}
 .mobile-quick-row{height:57px!important;padding:0 20px!important;font-size:13.4px!important;color:#273141!important}
 .mobile-quick-icon{width:35px!important;height:35px!important;border-radius:12px!important;background:#edf1ff!important;color:#5674e2!important}
 .mobile-quick-icon.lilac{background:#f1eeff!important;color:#8573d4!important}
 .contact-item{height:65px!important;min-height:65px!important;padding:9px 19px!important}
 .contact-item .avatar.s{width:42px!important;height:42px!important;border-radius:13px!important}
 .contact-item .contact-name{font-size:14px!important;font-weight:650!important;color:#222d3e!important}
 .shell.has-chat .content{animation:qy-page-enter .20s cubic-bezier(.16,.75,.25,1)}
 .chat-header{height:calc(53px + env(safe-area-inset-top))!important;padding:env(safe-area-inset-top) 9px 0 9px!important;background:#fff!important;border-bottom:1px solid var(--qy-line)!important}
 .chat-title{top:calc(env(safe-area-inset-top) + 12px)!important;font-size:15.2px!important;font-weight:680!important;color:#1b2637!important}
 .chat-actions .icon-btn,.mobile-back{color:#313c4f!important}
 .chat-area{background:#f4f6fa!important;padding:14px 14px 10px!important}
 .chat-area .date-divider{background:transparent!important;border:0!important;color:#a0aaba!important;padding:0!important;margin:5px auto 23px!important;font-size:10.5px!important}
 .message-line{gap:8px!important;margin-bottom:16px!important}
 .message-line>.avatar{border-radius:11px!important;width:32px!important;height:32px!important}
 .msg-content{max-width:79%!important}
 .message-line.out .msg-content{max-width:77%!important}
 .bubble:not(.business-bubble){font-size:14px!important;line-height:1.48!important;font-weight:450!important;letter-spacing:0!important;padding:9px 12px!important;border:0!important;border-radius:15px 15px 15px 5px!important;box-shadow:0 1px 1px #19305708!important}
 .out .bubble:not(.business-bubble){background:#dce7ff!important;color:#23416f!important;border-radius:15px 15px 5px 15px!important;box-shadow:none!important}
 .in .bubble:not(.business-bubble){background:#fff!important;color:#273345!important}
 .msg-meta{font-size:10px!important;color:#9ca8b8!important;margin-top:4px!important}
 .composer-wrap{background:#fff!important;border-top:1px solid #e8ebf1!important;padding:7px 11px calc(7px + env(safe-area-inset-bottom))!important}
 .composer textarea{height:38px!important;min-height:38px!important;border-radius:12px!important;background:#f2f4f8!important;border:1px solid transparent!important;padding:10px 12px!important;font-size:14px!important;color:#243246!important}
 .composer textarea:focus{background:#f7f9fc!important;border-color:#adc1f5!important;box-shadow:none!important}
 .composer-actions{height:38px!important;min-height:38px!important;gap:0!important}
 .composer-tools .icon-btn,.chat-more{width:32px!important;height:37px!important;color:#465b7e!important}
 .composer-tools .ico{width:19px!important;height:19px!important}
 .send-btn{width:33px!important;height:33px!important;background:var(--qy-blue)!important;border-radius:10px!important;box-shadow:none!important}
 .chat-attachment-tray{display:flex!important;width:100%!important;gap:20px!important;padding:14px 4px 6px!important;border-top:1px solid #e8edf4!important;margin-top:9px!important;animation:qy-tray-in .16s ease both}
 .chat-attachment-tray .tray-icon{border-radius:13px!important;width:45px!important;height:45px!important}
 .business-bubble{background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
 .wallet-chat-card{width:min(235px,70vw)!important;max-width:100%;box-shadow:none!important;border-radius:11px!important;overflow:hidden!important}
 .wallet-chat-card.red{background:#e66b40!important}
 .wallet-chat-card.transfer{background:#dc913e!important}
 .business-card-main{min-height:75px!important;padding:12px!important;gap:10px!important}
 .business-card-icon{width:35px!important;height:35px!important;flex-basis:35px!important;border-radius:10px!important}
 .business-card-icon .ico{width:23px!important;height:23px!important}
 .business-card-copy b{font-size:13.5px!important;color:#fff!important}
 .business-card-copy small{color:#fffa!important;font-size:11px!important}
 .business-card-foot{padding:7px 12px!important;background:#fff!important;color:#9c9090!important;border:1px solid #eee7e3!important;border-top:0!important;font-size:10px!important}
 .mobile-page-title{padding:calc(20px + env(safe-area-inset-top)) 20px 14px!important;font-size:27px!important;letter-spacing:-1px!important;color:#141c2a!important}
 .screen-page,.shell.has-page .content{background:#f7f8fa!important}
 .mobile-identity{background:#fff!important;min-height:90px!important;margin:8px 0!important;width:100%!important;padding:13px 20px!important}
 .mobile-section-label{padding:20px 20px 9px!important;color:#8792a3!important;font-size:10.5px!important}
 .mobile-action-group{margin:0!important;border:0!important;border-top:1px solid #eff1f4!important;border-bottom:1px solid #eff1f4!important;border-radius:0!important}
 .mobile-action-row{min-height:60px!important;padding:10px 20px!important;background:#fff!important}
 .mobile-action-icon{width:33px!important;height:33px!important;border-radius:11px!important}
 .mobile-action-copy b{font-size:13.3px!important;color:#253249!important}
 .modal{border-radius:19px 19px 0 0!important;padding:22px 19px calc(25px + env(safe-area-inset-bottom))!important;box-shadow:0 -8px 30px #101d3822!important}
 .overlay{backdrop-filter:blur(4px)!important}
 .toast-region{z-index:180!important}
}
@media(max-width:350px){.conversation{padding-left:13px!important;padding-right:13px!important}.conversation:after{left:73px!important}.composer-wrap{padding-left:8px!important;padding-right:8px!important}}
@keyframes qy-page-enter{from{opacity:.75;transform:translateX(10px)}to{opacity:1;transform:none}}
@keyframes qy-tray-in{from{opacity:.4;transform:translateY(-5px)}to{opacity:1;transform:none}}
/* In-app wallet: continuous mobile navigation instead of a separate website. */
.iw-view{flex:1;min-height:0;display:flex;flex-direction:column}
.inapp-wallet{z-index:85}.iw-screen{height:100%;height:100dvh}
.iw-security{padding:0 0 calc(28px + env(safe-area-inset-bottom))!important;background:#f7f8fb}
.iw-security-intro{background:linear-gradient(122deg,#1a3468,#355fbe);padding:29px 23px;color:#fff;display:flex;gap:13px;align-items:center}
.iw-security-intro>.iw-icon{width:37px;height:37px;color:#dbe6ff}
.iw-security-intro b{font-size:18px}.iw-security-intro p{color:#d9e4fb;margin:5px 0 0;font-size:11.5px}
.iw-security-group{background:#fff;margin-top:12px;padding:0 20px 20px}
.iw-security-row{display:flex;width:100%;align-items:center;gap:10px;min-height:57px;border:0;border-bottom:1px solid #edf0f5;background:#fff;text-align:left;font-size:13.5px;color:#23324c}
.iw-security-row>b{margin-left:auto;font-size:12px;font-weight:550;color:#8c99af}.iw-security-row>b.iw-enabled{color:#3461cb}.iw-security-row>.iw-icon{color:#adb6c4;width:15px}
.iw-security-sub{color:#8290a7;font-size:11.5px;line-height:1.75;margin:14px 0 17px}
.iw-security-group form{display:block}.iw-toggle-line{display:flex;justify-content:space-between;align-items:center;padding:8px 0 18px;font-size:13px;color:#23324c}
.iw-toggle-line input{appearance:none;width:43px;height:26px;border:0;border-radius:15px;background:#cbd3e1;position:relative;cursor:pointer;transition:background .16s}.iw-toggle-line input:before{content:'';position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;left:3px;top:3px;box-shadow:0 1px 3px #0003;transition:transform .16s}.iw-toggle-line input:checked{background:#3c67ed}.iw-toggle-line input:checked:before{transform:translateX(17px)}
.iw-limit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:5px 0 22px}.iw-limit-grid label{display:grid;gap:9px;font-size:11.5px;color:#7d8ca4}.iw-limit-grid input{width:100%;height:42px;background:#f5f7fb;border:1px solid #e9edf5;border-radius:8px;font-size:14px;padding:0 10px;outline:0;color:#253854}.iw-limit-grid input:focus{border-color:#8ba6fa;background:#fff}
.iw-security-group .iw-primary{width:100%;height:43px;border-radius:10px!important}
.iw-success{flex:1;display:flex;flex-direction:column;align-items:center;padding:11vh 22px 30px;text-align:center;background:#fff}
.iw-success-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#e9f0ff;color:#3468d9}.iw-success-icon .iw-icon{width:33px;height:33px}.iw-success h2{font-size:20px;color:#172945;margin:24px 0 8px}.iw-success strong{font-size:37px;color:#162643;font-variant-numeric:tabular-nums}.iw-success p{font-size:12px;color:#8a96a6;margin:13px 0 36px}.iw-success button{width:min(260px,100%);height:44px;margin:6px auto}
.iw-login-confirm{position:fixed;inset:0;z-index:104;background:#10182888;display:grid;place-items:center;padding:20px;backdrop-filter:blur(4px)}.iw-login-confirm>form{width:min(370px,100%);background:#fff;padding:25px 22px;border-radius:16px}.iw-login-confirm h3{margin:0;font-size:18px}.iw-login-confirm p{color:#7e8a9e;font-size:12px;line-height:1.7}.iw-login-confirm input{width:100%;height:46px;border:1px solid #dde5f1;border-radius:10px;padding:0 12px;margin:14px 0;font-size:16px;color:#203048}
.payment-pin-layer{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-end;justify-content:center;background:#0d172957;backdrop-filter:blur(3px);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.payment-pin-sheet{width:min(100%,480px);background:#f7f9fc;border-radius:18px 18px 0 0;padding:0 18px calc(12px + env(safe-area-inset-bottom));color:#1d2b45;box-shadow:0 -12px 50px #081d3838;animation:pin-slide .23s cubic-bezier(.2,.8,.2,1) both}
.payment-pin-header{height:50px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#75829b}.payment-pin-header button{background:none;border:0;color:#53647f;font-size:26px;width:40px;height:40px}.payment-pin-shield svg{height:23px;width:23px;color:#4a6fce}
.payment-pin-sheet h2{font-size:19px;font-weight:720;text-align:center;margin:8px 0}.payment-pin-sheet p{text-align:center;color:#8090a7;font-size:12px;line-height:1.6;margin:7px auto 19px}
.payment-pin-dots{display:grid;grid-template-columns:repeat(6,1fr);margin:0 auto 22px;border:1px solid #dae2ed;border-radius:12px;overflow:hidden;background:#fff;max-width:330px;height:49px}.payment-pin-dots i{display:grid;place-items:center;border-right:1px solid #e9edf4}.payment-pin-dots i:last-child{border:0}.payment-pin-dots i.filled:before{content:'';width:9px;height:9px;background:#243750;border-radius:50%}
.payment-pin-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:350px;margin:auto}.payment-pin-board button,.payment-pin-board span{height:51px;border-radius:9px}.payment-pin-board button{border:1px solid #e5eaf2;background:#fff;color:#1e2d43;font-size:22px;font-weight:520;cursor:pointer;box-shadow:0 1px 1px #13294508}.payment-pin-board button:active{background:#e7effe;transform:scale(.975)}.payment-pin-board button svg{width:23px;height:23px}.payment-pin-board button[data-key="del"]{display:grid;place-items:center}.payment-pin-foot{text-align:center;color:#96a3b5;font-size:10px;margin-top:15px}
@keyframes pin-slide{from{transform:translateY(35px);opacity:.65}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.payment-pin-sheet,.shell.has-chat .content,.chat-attachment-tray{animation:none!important}}

/* Payment code: never let intrinsic SVG size overlap numeric caption. */
.iw-bar-button>.wallet-bar{display:block!important;width:100%!important;height:100%!important;max-height:65px!important;overflow:visible}
.iw-vertical-inside>.wallet-bar{display:block;width:100%!important;height:76px!important}
.iw-code-numbers{position:relative;clear:both;margin-top:12px!important;margin-bottom:20px!important}
.iw-scan-camera{display:block;width:100%;margin:12px auto 8px;border:1px solid #e4eafa;border-radius:12px;background:#0d1a32;aspect-ratio:4/3;object-fit:cover}
.iw-camera-note{font-size:11px!important;color:#72819a;line-height:1.6;margin:8px 0 14px}
.iw-camera-button{width:100%;padding:11px;border:1px solid #ccd9f3;border-radius:9px;background:#edf3ff;color:#2859ba;font-size:13px;cursor:pointer}

.iw-scan-camera[hidden]{display:none!important}
