:root{--bg-0: #07080c;--bg-1: #0c0f16;--bg-2: #121724;--glass-1: rgba(255, 255, 255, .04);--glass-2: rgba(255, 255, 255, .065);--glass-3: rgba(255, 255, 255, .095);--glass-hairline: rgba(255, 255, 255, .09);--glass-edge: rgba(255, 255, 255, .16);--glass-scrim: rgba(255, 255, 255, .03);--text: #eef2f8;--text-2: #b6bfcc;--text-3: #828c9c;--text-4: #5d6675;--accent: #5b8dff;--accent-hi: #78a2ff;--accent-lo: #4873d6;--accent-soft: rgba(91, 141, 255, .15);--accent-ring: rgba(91, 141, 255, .28);--online: #38d99a;--online-soft: rgba(56, 217, 154, .16);--danger: #f2574f;--danger-hi: #ff6a62;--danger-soft: rgba(242, 87, 79, .15);--warning: #efb354;--r-xs: 8px;--r-sm: 10px;--r: 14px;--r-lg: 20px;--r-xl: 26px;--r-pill: 999px;--elev-1: 0 1px 2px rgba(0, 0, 0, .35);--elev-2: 0 8px 22px -10px rgba(0, 0, 0, .55), 0 2px 6px rgba(0, 0, 0, .35);--elev-3: 0 22px 52px -14px rgba(0, 0, 0, .68), 0 8px 20px -10px rgba(0, 0, 0, .5);--elev-4: 0 36px 90px -18px rgba(0, 0, 0, .78), 0 12px 30px -12px rgba(0, 0, 0, .55);--blur: blur(42px);--blur-lg: blur(64px);--ease: cubic-bezier(.22, .61, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1)}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;color:var(--text);font-family:Inter,Segoe UI Variable,Segoe UI,system-ui,-apple-system,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--bg-0)}body{background:radial-gradient(1200px 800px at 12% -8%,rgba(61,110,200,.22),transparent 60%),radial-gradient(1000px 760px at 92% 108%,rgba(45,178,150,.14),transparent 62%),radial-gradient(760px 620px at 78% 12%,rgba(96,120,170,.12),transparent 60%),linear-gradient(158deg,#0a0d14,#0c1018 46%,#080a10);background-attachment:fixed}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(2px 2px at 22% 30%,rgba(255,255,255,.1),transparent),radial-gradient(2px 2px at 70% 64%,rgba(255,255,255,.07),transparent),radial-gradient(1.5px 1.5px at 44% 82%,rgba(255,255,255,.08),transparent);opacity:.5;z-index:0}#app{position:relative;height:100%;z-index:1}::selection{background:var(--accent-ring);color:#fff;text-shadow:none}input,textarea,select{caret-color:var(--accent)}a{text-underline-offset:3px}:focus-visible{outline:none;box-shadow:none}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#ffffff47;background-clip:padding-box}.muted{color:var(--text-3)}.sub-title{margin:22px 0 12px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.icon{display:inline-block;flex:0 0 auto;vertical-align:middle;color:currentColor}button .icon,.icon-btn .icon,.visitor-item .icon{position:relative;top:-1px}button{font-family:inherit;font-size:14px;font-weight:500;letter-spacing:.005em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;color:var(--text);background:var(--glass-2);border:1px solid var(--glass-hairline);border-radius:var(--r-sm);box-shadow:inset 0 1px 0 var(--glass-edge),var(--elev-1);transition:background .16s var(--ease),border-color .16s var(--ease),transform .12s var(--ease),box-shadow .16s var(--ease)}button:hover{background:var(--glass-3);transform:translateY(-2px);box-shadow:inset 0 1px 0 var(--glass-edge),var(--elev-2)}button:active{transform:translateY(0) scale(.985);background:var(--glass-scrim);transition-duration:.06s}button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:inset 0 1px 0 var(--glass-edge)}button:not(.ghost){color:#fff;background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 52%,var(--accent-lo) 100%);border-color:#78a2ff59;box-shadow:var(--elev-1),inset 0 1px #ffffff47}button:not(.ghost):hover{background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 60%,var(--accent-lo) 100%);border-color:#78a2ff8c}button:not(.ghost):active{background:var(--accent-lo)}button.ghost{background:var(--glass-1);border-color:var(--glass-hairline);box-shadow:inset 0 1px 0 var(--glass-edge)}button.ghost:hover{background:var(--glass-2)}button.btn-danger,.btn-danger{color:#fff;background:linear-gradient(180deg,var(--danger-hi) 0%,var(--danger) 60%,#d83f38 100%);border-color:#ff6a6266;box-shadow:0 10px 26px -10px var(--danger-soft),inset 0 1px #ffffff38}button.btn-danger:hover{background:linear-gradient(180deg,var(--danger-hi) 0%,var(--danger) 60%,#d83f38 100%)}.ghost.compact{padding:8px 12px;font-size:13px}.icon-btn{padding:9px;width:38px;height:38px}input,textarea,select{width:100%;color:var(--text);font-size:14px;font-family:inherit;background:#ffffff0b;border:1px solid var(--glass-hairline);border-radius:var(--r-sm);padding:11px 13px;outline:none;box-shadow:inset 0 1px 1px #00000040;transition:border-color .16s var(--ease),box-shadow .16s var(--ease),background .16s}input::placeholder,textarea::placeholder{color:var(--text-4)}input:hover,textarea:hover,select:hover{border-color:#ffffff2e;background:#ffffff0f}input:focus,textarea:focus,select:focus{border-color:var(--accent);background:#5b8dff0f}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:none;padding-right:36px}.select-wrap{position:relative}.select-wrap .icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.input-icon{position:relative;display:flex;align-items:center}.input-glyph{position:absolute;left:13px;top:50%;transform:translateY(-50%);display:flex;color:var(--text-4);pointer-events:none;transition:color .16s var(--ease)}.input-icon input{padding-left:41px}.input-icon input:focus~.input-glyph{color:var(--accent-hi)}.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:28px 20px}.login-card{width:100%;max-width:410px;padding:42px 38px 36px;border-radius:var(--r-lg);background:var(--glass-2);-webkit-backdrop-filter:var(--blur) saturate(170%);backdrop-filter:var(--blur) saturate(170%);border:1px solid var(--glass-hairline);box-shadow:var(--elev-4),inset 0 1px 0 var(--glass-edge);animation:rise-in .5s var(--ease-out)}.login-emblem{width:56px;height:56px;display:flex;align-items:center;justify-content:center;margin-bottom:26px;border-radius:var(--r);color:var(--accent-hi);background:var(--accent-soft);border:1px solid var(--accent-ring);box-shadow:0 8px 24px -8px var(--accent-ring),inset 0 1px 0 var(--glass-edge)}.login-card h1{margin:0;font-size:34px;line-height:1.1;font-weight:900;letter-spacing:-.035em;color:var(--text)}.login-card .login-sub{margin:10px 0 32px;color:var(--text-3);font-size:15px}.field{margin-bottom:18px}.field label{display:block;margin-bottom:8px;font-size:13px;font-weight:500;color:var(--text-2)}.login-card button[type=button],.login-card #lg-btn{width:100%;margin-top:12px;padding:13px;font-size:15px}.error-text{margin:14px 0 0;min-height:20px;font-size:13px;font-weight:500;color:var(--danger-hi);display:flex;align-items:center;gap:7px}.m-app{height:100%;display:flex;flex-direction:column;background:var(--glass-1);-webkit-backdrop-filter:var(--blur) saturate(160%);backdrop-filter:var(--blur) saturate(160%)}.m-page{height:100%;flex:1;display:flex;flex-direction:column;min-height:0}.m-page[hidden]{display:none}.m-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--glass-hairline);background:var(--glass-scrim)}.m-header .brand{display:inline-flex;align-items:center;gap:10px;font-size:17px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.m-header .brand .icon{color:var(--accent-hi)}.m-header .title{flex:1;text-align:center;font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar{display:flex;gap:8px}.visitor-list{flex:1;overflow-y:auto;padding:6px}.visitor-item{padding:6px 12px;margin-bottom:2px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),transform .12s}.visitor-item:hover{background:var(--glass-2);border-color:var(--glass-hairline)}.visitor-item:active{transform:scale(.992)}.visitor-item.active{background:var(--accent-soft);border-color:var(--accent-ring);box-shadow:inset 0 1px 0 var(--glass-edge)}.visitor-item .row1{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.visitor-item .row1:last-child{margin-bottom:0}.visitor-item .name{display:inline-flex;align-items:center;min-width:0;font-weight:600;font-size:14.5px;color:var(--text)}.visitor-item .time{flex:0 0 auto;font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-3)}.visitor-item .right-col{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.visitor-item .disconnect-tag{font-size:10.5px;line-height:1;font-weight:600;letter-spacing:.2px;color:var(--text-3);padding:3px 6px;border-radius:6px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);white-space:nowrap}.visitor-item .preview{min-width:0;flex:1;font-size:13px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{flex:0 0 auto;min-width:19px;height:19px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;background:linear-gradient(180deg,var(--danger-hi),var(--danger));border-radius:var(--r-pill);box-shadow:0 4px 12px -4px var(--danger-soft)}.status-dot{display:inline-block;width:8px;height:8px;flex:0 0 auto;margin-right:8px;border-radius:50%}.status-dot.active{background:var(--online);box-shadow:0 0 0 3px var(--online-soft),0 0 9px var(--online)}.status-dot.closed,.visitor-item.is-disconnected .status-dot{background:var(--text-4);box-shadow:0 0 0 3px #ffffff08}.chat-body{flex:1;overflow-y:auto;padding:14px 14px 10px;display:flex;flex-direction:column;gap:5px}.msg{display:flex;max-width:76%}.msg.in{align-self:flex-start}.msg.out{align-self:flex-end}.bubble{padding:9px 14px;border-radius:var(--r);line-height:1.5;font-size:14.5px;word-break:break-word;white-space:pre-wrap}.msg.in .bubble{color:var(--text);background:var(--glass-2);border:1px solid var(--glass-hairline);border-bottom-left-radius:var(--r-xs);box-shadow:inset 0 1px 0 var(--glass-edge),var(--elev-1)}.msg.out .bubble{color:#fff;background:linear-gradient(165deg,var(--accent-hi) 0%,var(--accent) 55%,var(--accent-lo) 100%);border:1px solid rgba(120,162,255,.32);border-bottom-right-radius:var(--r-xs);box-shadow:0 8px 22px -10px var(--accent-ring),inset 0 1px #ffffff3d}.time-divider{display:flex;justify-content:center;margin:8px 0 3px}.time-divider span{font-size:11px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text-3);background:var(--glass-2);border:1px solid var(--glass-hairline);border-radius:var(--r-pill);padding:3px 11px;line-height:1.3}.msg.pending .bubble{opacity:.62}.msg.send-failed .bubble{border:1px solid var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.fail-tip{margin-top:4px;font-size:11px;font-weight:600;text-align:right;color:var(--danger-hi)}.chat-input{position:relative;flex:0 0 auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--glass-hairline);background:var(--glass-scrim)}.input-bar{display:flex;align-items:center;gap:8px}.input-row{display:flex;align-items:flex-end;gap:10px}.input-row textarea{flex:1;resize:none;height:58px;max-height:140px;padding:8px 13px;line-height:1.45}.input-row #send-btn{height:58px;padding:0 20px}@media (max-width: 859px){.chat-input{padding:8px 12px 10px;gap:8px}.input-row{gap:8px}.input-row textarea{height:44px;padding:6px 12px}.input-row #send-btn{height:44px;padding:0 16px}}#btn-emoji.active{color:var(--accent-hi);background:var(--accent-soft);border-color:var(--accent-ring)}.emoji-panel{position:absolute;left:16px;right:16px;bottom:calc(100% - 2px);z-index:40;display:flex;flex-direction:column;padding:12px;border-radius:var(--r);background:linear-gradient(180deg,#ffffff0f,#ffffff05),#121724;-webkit-backdrop-filter:var(--blur-lg) saturate(180%);backdrop-filter:var(--blur-lg) saturate(180%);border:1px solid var(--glass-hairline);box-shadow:var(--elev-3),inset 0 1px 0 var(--glass-edge);opacity:0;transform:translateY(12px) scale(.98);transform-origin:bottom center;pointer-events:none;transition:opacity .22s var(--ease),transform .26s var(--ease-out)}.emoji-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.emoji-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--glass-hairline);scrollbar-width:none}.emoji-tabs::-webkit-scrollbar{display:none}button.emoji-tab{flex:0 0 auto;padding:6px 14px;font-size:13px;font-weight:500;color:var(--text-2);background:transparent;border:1px solid transparent;border-radius:var(--r-pill);box-shadow:none;transform:none}button.emoji-tab:hover{background:var(--glass-2);transform:none;box-shadow:none}button.emoji-tab.active{color:var(--accent-hi);background:var(--accent-soft);border-color:transparent}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:208px;overflow-y:auto}button.emoji-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;padding:0;font-size:18px;line-height:1;color:var(--text);background:transparent;border:1px solid transparent;border-radius:var(--r-xs);box-shadow:none;transform:none}button.emoji-cell:hover{z-index:2;background:var(--glass-2);border-color:transparent;transform:scale(1.1);box-shadow:none}button.emoji-cell:active{background:var(--glass-3);transform:scale(.94)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:22px;background:#05070b8c;-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);animation:fade-in .2s var(--ease)}.modal{width:100%;max-width:470px;padding:28px;border-radius:var(--r-lg);background:var(--glass-3);-webkit-backdrop-filter:var(--blur-lg) saturate(180%);backdrop-filter:var(--blur-lg) saturate(180%);border:1px solid var(--glass-hairline);box-shadow:var(--elev-4),inset 0 1px 0 var(--glass-edge);animation:pop-in .26s var(--ease-out)}.modal h3{margin:0 0 6px;font-size:21px;font-weight:800;letter-spacing:-.025em;color:var(--text)}.modal .modal-lead{margin:0 0 22px;color:var(--text-3);font-size:14px}.modal .actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.modal.wide{max-width:540px;display:flex;flex-direction:column;max-height:88vh}.modal.wide .item-list{flex:1;overflow-y:auto;min-height:70px;padding:8px;margin-bottom:14px;border-radius:var(--r-sm);background:#0000002e;border:1px solid var(--glass-hairline)}.pick-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:var(--r-xs);border:1px solid transparent;cursor:pointer;transition:background .14s var(--ease),border-color .14s}.pick-item:hover{background:var(--accent-soft);border-color:var(--accent-ring)}.pick-title{font-size:14px;font-weight:500;color:var(--text)}.pick-del{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;font-size:12px;font-weight:500;color:var(--danger-hi);cursor:pointer}.add-form{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.rule-item{padding:13px 14px;margin-bottom:8px;border-radius:var(--r-xs);background:#ffffff09;border:1px solid var(--glass-hairline)}.rule-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.rule-kw{font-size:14px;font-weight:700;color:var(--text)}.rule-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer}.rule-toggle input{width:auto;accent-color:var(--accent)}.rule-reply{font-size:13px;line-height:1.55;color:var(--text-2);word-break:break-word}.rule-actions{margin-top:9px;text-align:right}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.switch-row select{width:130px}.confirm-dialog{width:auto;max-width:360px;padding:30px 30px 26px;text-align:center}.confirm-dialog h3{margin:0 0 12px;font-size:19px;text-align:center}.confirm-dialog .confirm-msg{margin:0 0 24px;font-size:14px;line-height:1.65;text-align:center;color:var(--text-2)}.confirm-dialog .actions{justify-content:center;margin-top:0}.visitor-root{position:relative;min-height:100%;display:flex;align-items:center;justify-content:center;padding:28px 20px}.visitor-card{width:100%;max-width:430px;padding:40px 34px 34px;text-align:center;border-radius:var(--r-lg);background:var(--glass-2);-webkit-backdrop-filter:var(--blur) saturate(170%);backdrop-filter:var(--blur) saturate(170%);border:1px solid var(--glass-hairline);box-shadow:var(--elev-4),inset 0 1px 0 var(--glass-edge);animation:rise-in .5s var(--ease-out)}.visitor-card h2{margin:0 0 8px;font-size:27px;font-weight:900;letter-spacing:-.03em}.visitor-card .muted{margin:0 0 8px}.qr-box{width:248px;height:248px;margin:22px auto;padding:16px;display:flex;align-items:center;justify-content:center;border-radius:20px;background:linear-gradient(180deg,#fff,#f4f7fc);border:1px solid rgba(255,255,255,.85);box-shadow:0 20px 44px -16px #0a16308c,0 2px 8px -2px #0a16302e,inset 0 1px #fffffff2}.qr-box img{max-width:100%;max-height:100%}.qr-scan{position:relative;overflow:hidden;isolation:isolate}.qr-scan-img{width:100%;height:100%;object-fit:contain;border-radius:8px}.scan-corner{position:absolute;width:22px;height:22px;z-index:3;opacity:0;border:0 solid var(--accent);pointer-events:none;transition:opacity .4s ease}.qr-scan.is-ready .scan-corner{opacity:1}.scan-corner.tl{top:8px;left:8px;border-top-width:2.5px;border-left-width:2.5px;border-top-left-radius:7px}.scan-corner.tr{top:8px;right:8px;border-top-width:2.5px;border-right-width:2.5px;border-top-right-radius:7px}.scan-corner.bl{bottom:8px;left:8px;border-bottom-width:2.5px;border-left-width:2.5px;border-bottom-left-radius:7px}.scan-corner.br{bottom:8px;right:8px;border-bottom-width:2.5px;border-right-width:2.5px;border-bottom-right-radius:7px}.scan-line{position:absolute;top:16px;left:16px;right:16px;height:2px;z-index:2;border-radius:2px;opacity:0;pointer-events:none;background:linear-gradient(90deg,transparent,var(--accent-hi) 28%,#b9d2ff 50%,var(--accent-hi) 72%,transparent);box-shadow:0 0 10px 1px var(--accent-ring),0 0 22px 3px #5b8dff59}.qr-scan.is-ready .scan-line{opacity:1;animation:scan-sweep 2.4s var(--ease) infinite}.qr-scan.is-ready:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:4;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px var(--accent-ring);animation:ring-pulse 2.4s ease-in-out infinite}@keyframes scan-sweep{0%{transform:translateY(0)}50%{transform:translateY(214px)}to{transform:translateY(0)}}@keyframes ring-pulse{0%,to{opacity:.3}50%{opacity:.9}}.qr-status{margin:10px 0 6px;font-size:14px;font-weight:500;color:var(--text-2)}.visitor-root .visitor-card{transition:opacity .4s ease,transform .4s ease}.visitor-root.is-connected .visitor-card{opacity:0;transform:scale(.96) translateY(-8px);pointer-events:none}.connection-done{position:absolute;left:20px;right:20px;top:50%;display:flex;flex-direction:column;align-items:center;text-align:center;visibility:hidden;opacity:0;transform:translateY(-50%) scale(.95)}.visitor-root.is-connected .connection-done{visibility:visible;animation:done-in .55s var(--ease-out) .1s forwards}.hud{position:relative;width:132px;height:132px;margin-bottom:26px}.hud-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.hud-ring.r-outer{border:1.5px dashed rgba(120,162,255,.55);animation:hud-spin 9s linear infinite}.hud-ring.r-mid{top:14px;right:14px;bottom:14px;left:14px;border:1px solid rgba(120,162,255,.22);border-top-color:var(--accent-hi);border-right-color:var(--accent-hi);animation:hud-spin 4s linear infinite reverse}.hud-core{position:absolute;top:30px;right:30px;bottom:30px;left:30px;display:flex;align-items:center;justify-content:center;color:#fff;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--accent-hi),var(--accent) 78%);box-shadow:inset 0 1px #ffffff40,0 0 26px 5px #5b8dff73,0 12px 28px -8px #5b8dff8c}.done-title{margin:0 0 8px;font-size:24px;font-weight:800;letter-spacing:.02em;color:#dce6ff;text-shadow:0 0 18px rgba(120,162,255,.55)}.done-sub{margin:0 0 6px;font-size:14px;color:var(--text-2)}.done-hint{margin:0;font-size:12.5px;color:var(--text-3)}@keyframes hud-spin{to{transform:rotate(360deg)}}@keyframes done-in{to{opacity:1;transform:translateY(-50%) scale(1)}}.qr-entry-modal{max-width:520px;overflow-y:auto}.qr-entry{padding:20px 0}.qr-entry+.qr-entry{border-top:1px solid var(--glass-hairline)}.qr-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.qr-entry-title{font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.qr-frame{width:208px;height:208px;margin:0 auto 14px;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border-radius:var(--r);background:linear-gradient(180deg,#fff,#eef2f8);border:1px solid rgba(255,255,255,.6);box-shadow:0 16px 36px -14px #0000008c}.qr-frame img{width:100%;height:100%;object-fit:contain;border-radius:6px}.qr-link-row{display:flex;align-items:center;gap:10px}.qr-link{flex:1;min-width:0;font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qr-copy,.qr-refresh{flex:none;padding:7px 12px;font-size:13px;border-radius:var(--r-sm)}.qr-copy[disabled]{opacity:.45;cursor:not-allowed}.qr-copy.copied{color:var(--online);border-color:#38d99a66}.qr-hint{margin:10px 0 0;font-size:12.5px;color:var(--text-4);text-align:center}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 860px){#app{display:flex;align-items:center;justify-content:center;padding:32px}.m-app{flex-direction:row;width:100%;max-width:1080px;height:88vh;max-height:840px;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--glass-hairline);box-shadow:var(--elev-4),inset 0 1px 0 var(--glass-edge)}.m-page{display:flex!important;position:relative;height:100%}#page-list{flex:0 0 340px;width:340px;border-right:1px solid var(--glass-hairline)}#page-chat{flex:1}#btn-back{display:none}.emoji-panel{left:50%;right:auto;width:430px;transform:translate(-50%) translateY(12px) scale(.98)}.emoji-panel.open{transform:translate(-50%) translateY(0) scale(1)}}@media (max-width: 859px){.m-app{border-radius:0}.login-card,.visitor-card{padding:34px 26px 30px}}@media (max-width: 360px){.m-header{padding:12px 14px}.msg{max-width:86%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
