:root{--brand-accent: #eb0a1e;--brand-accent-dark: #111}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{font-family:PingFang SC,Microsoft YaHei,Arial,sans-serif;color:#16304f;background:#fff}.boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff}.boot img{width:76px;height:76px;object-fit:contain}.boot i{position:relative;width:88px;height:3px;margin-top:28px;overflow:hidden;background:#e6eaf0}.boot i:after{content:"";position:absolute;left:0;top:0;width:40%;height:100%;background:var(--brand-accent-dark);animation:boot-bar 1s ease-in-out infinite}@keyframes boot-bar{0%{transform:translate(-120%)}to{transform:translate(280%)}}.puzzle-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a8c;-webkit-tap-highlight-color:transparent}.puzzle-panel{width:min(100%,332px);padding:12px;border-radius:4px;background:#fff}.puzzle-board{position:relative;width:300px;height:160px;margin:0 auto;overflow:hidden;background:#dbe3ee;touch-action:none}.puzzle-board-canvas,.puzzle-piece{display:block}.puzzle-board-canvas{width:300px;height:160px}.puzzle-piece{position:absolute;width:64px;height:64px;pointer-events:none;filter:drop-shadow(0 3px 6px rgba(0,0,0,.35))}.puzzle-refresh{position:absolute;top:8px;right:8px;z-index:2;width:26px;height:26px;border:0;background:#00000059;color:#fff}.geetest{position:relative;width:300px;height:42px;margin:12px auto 4px;border:1px solid #e4e7eb;border-radius:2px;background:#f7f9fa;-webkit-user-select:none;user-select:none;touch-action:none}.geetest.bad{animation:geetest-shake .35s;border-color:#f57a7a}.geetest.ok{border-color:#5eb94e;background:#eefff0}.geetest-fill{position:absolute;left:0;top:0;bottom:0;z-index:0;background:#d1e9fe;pointer-events:none}.geetest.ok .geetest-fill{background:#d2f4d3}.geetest.bad .geetest-fill{background:#ffd8d8}.geetest-text{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center;color:#889;font-size:14px;pointer-events:none}.geetest.ok .geetest-text{color:#3d9b34}.geetest-handle{position:absolute;top:-1px;left:0;z-index:2;display:flex;align-items:center;justify-content:center;width:44px;height:42px;border:1px solid #1991fa;background:#fff;box-shadow:0 0 3px #0003;cursor:grab;touch-action:none}.geetest-handle:active{cursor:grabbing}.geetest-handle:before,.geetest-handle:after{content:"";width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid #1991fa}.geetest-handle:after{margin-left:2px}@keyframes geetest-shake{20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}.recall-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;padding:24px;background:#00000073}.recall-dialog{position:relative;max-width:340px;margin:48px auto 0;padding:22px 18px;border-radius:12px;background:#fff}.recall-close{position:absolute;top:8px;right:8px;border:0;background:transparent;font-size:24px}.recall-dialog label{display:block;margin-bottom:12px}.recall-dialog input{width:100%;height:42px;padding:0 12px;border:1px solid #e6e6e6;border-radius:8px}.recall-tip{min-height:18px;text-align:center;font-size:13px;color:var(--brand-accent-dark)}.recall-submit{width:100%;height:44px;border:0;border-radius:8px;background:var(--brand-accent-dark);color:#fff;font-weight:700}.owner-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;overflow:auto;padding-bottom:96px;background:#f3f5f8}.owner-head{position:sticky;top:0;display:flex;align-items:center;justify-content:center;height:48px;background:#fff;border-bottom:1px solid #eee}.owner-head button{position:absolute;left:12px;border:0;background:transparent}.owner-banner{margin:16px;padding:22px 18px;border-radius:12px;background:var(--brand-accent-dark);color:#fff}.owner-banner strong{display:block;font-size:26px}.owner-card{margin:12px 16px 0;padding:8px 16px;border-radius:12px;background:#fff}.owner-line{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #eef0f3;font-size:14px}.owner-line:first-of-type{border-top:0}.owner-line span{color:#8b93a1}.owner-submit{position:fixed;left:16px;right:16px;bottom:16px;height:46px;border:0;border-radius:23px;background:var(--brand-accent-dark);color:#fff;font-size:16px}.owner-popup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a73}.owner-popup>div{width:min(100%,320px);padding:24px;border-radius:16px;background:#fff;text-align:center}.owner-popup button{width:100%;height:44px;margin-top:16px;border:0;border-radius:22px;background:var(--brand-accent-dark);color:#fff}.uni-chat{display:flex;flex-direction:column;height:100vh;height:100dvh;background:#f5f6fa}.uni-chat header{position:relative;display:flex;align-items:center;justify-content:center;min-height:52px;padding:8px 72px;background:#fff;border-bottom:1px solid #eee}.uni-chat header>button{position:absolute;left:12px;padding:0 14px;height:32px;border:1px solid var(--brand-accent-dark);border-radius:16px;background:#fff;color:var(--brand-accent-dark)}.uni-chat-title{display:flex;align-items:center;gap:8px;font-weight:600}.uni-chat-tip{margin:12px;color:#c2410c;text-align:center}.uni-chat-list{flex:1;overflow:auto;padding:12px}.uni-chat-list article{display:flex;flex-direction:column;max-width:78%;margin-bottom:14px}.uni-chat-list article.mine{margin-left:auto;align-items:flex-end}.uni-who{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.uni-face{display:flex;align-items:center;justify-content:center;width:32px;height:32px;overflow:hidden;border-radius:50%;background:#eee}.uni-bubble{padding:8px 10px;border-radius:10px;background:#fff;white-space:pre-wrap;word-break:break-word}.uni-chat-list article.mine .uni-bubble{background:#e7eef8}.uni-bubble img{max-width:160px;border-radius:8px}.uni-chat form{display:flex;gap:8px;padding:10px;background:#fff;border-top:1px solid #eee}.uni-chat form input[type=text]{flex:1;height:36px;padding:0 10px;border:1px solid #ddd;border-radius:8px}.uni-chat form button[type=submit]{border:0;padding:0 14px;border-radius:8px;background:var(--brand-accent-dark);color:#fff}
