/* huoma_member.css — cs.dlj2.sbs 会员端活码组件样式（v9.99 起新增样式外部化） */



/* ===== 地区面板：已选列表（限高 10 条，超出滚动） ===== */

#hmAreaList{max-height:322px;overflow-y:auto;}

.hm-area-row{display:flex;justify-content:space-between;align-items:center;padding:7px 9px;border-radius:6px;cursor:pointer;font-size:13px;color:#344054;}

.hm-area-row.on{background:#ecf5ff;font-weight:700;}

.hm-area-row.sub{padding-left:20px;}

.hm-area-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:104px;}

.hm-area-name.flex1{flex:1;min-width:0;}

.hm-area-side{display:flex;align-items:center;flex-shrink:0;margin-left:auto;padding-left:6px;}

.hm-area-cnt{font-size:11px;color:#98a2b3;}

.hm-area-cnt.hm-area-zero{color:#f79009;font-weight:700}

.hm-area-row.on .hm-area-cnt{color:#48d2e9;}

.hm-area-expbtn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:5px;color:#48d2e9;font-size:15px;line-height:1;cursor:pointer;user-select:none;border-radius:3px;transition:background .12s,color .12s;}

.hm-area-expbtn i{font-size:15px;}

.hm-area-expbtn:hover{background:#eaf6ff;color:#3ba4ec;}



/* ===== 省市级弹窗：复选框（选中绿底 #33cabb + 白色勾，半选白色横线） ===== */

input[type=checkbox].hmCk{-webkit-appearance:none;appearance:none;width:15px;height:15px;margin:0;cursor:pointer;flex:none;border:1px solid #c9cdd4;border-radius:3px;background:#fff;position:relative;transition:background .12s,border-color .12s;}

input[type=checkbox].hmCk:hover{border-color:#33cabb;}

input[type=checkbox].hmCk:checked,input[type=checkbox].hmCk:indeterminate{background:#33cabb;border-color:#33cabb;}

input[type=checkbox].hmCk:checked::after{content:'';position:absolute;left:50%;top:50%;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:translate(-50%,-50%) rotate(45deg);}

input[type=checkbox].hmCk:indeterminate::after{content:'';position:absolute;left:50%;top:50%;width:8px;height:0;border-top:2px solid #fff;transform:translate(-50%,-50%);}



/* ===== 省市级弹窗：行 ===== */

.hm-dlg-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;cursor:pointer;font-size:13px;color:#344054;}

.hm-dlg-row.prv{gap:7px;padding:7px 8px;}

.hm-dlg-row.on{background:#ecf5ff;color:#48d2e9;font-weight:700;}

.hm-dlg-row.hm-dlg-allrow{color:#7a5af8;background:#f8f6ff;margin-bottom:4px;}



/* ================= v9.100 内联/样式块外部化 ================= */

/* ---- 工具类（原 style 属性迁移，全局） ---- */

.hm-lb{font-weight:normal;margin-right:14px}

.hm-tac{text-align:center}

.hm-helpdot{width:18px;height:18px;line-height:16px;text-align:center;border:1px solid #c0c4cc;border-radius:50%;color:#909399;font-size:12px;font-weight:bold;cursor:help;user-select:none;transition:all .15s;display:block}

.hm-poptitle{font-weight:bold;color:#303133;font-size:14px;margin-bottom:6px;}

.hm-fwn{font-weight:normal}

.hm-mb12{margin-bottom:12px}

.hm-c-green{color:#33cabb}

.hm-c-warn{color:#e6a23c}

.hm-helpwrap{position:relative;display:inline-flex;align-items:center;margin-left:8px;vertical-align:middle}

.hm-mt8{margin-top:8px}

.hm-lb2{font-weight:normal;color:#333}

.hm-input-plain{background:#f5f6f8;border:0}

.hm-lb3{font-weight:normal;color:#333;display:block;margin-bottom:4px}

.hm-c-danger{color:#e5484d}

/* v19c10clean: .hm-c-blue 已删（全站 0 引用） */

.hm-rq{color:#f56c6c;margin-right:3px;font-size:17px;font-weight:bold;line-height:1;vertical-align:-1px}

.hm-cell-url{max-width:220px;word-break:break-all;text-align:left}

.hm-link15{color:#48d2e9;font-size:15px;text-decoration:none}

.hm-tip8{color:#999;font-size:12px;margin-top:8px;}

.hm-row12{display:flex;gap:12px;align-items:flex-start}

.hm-sidepanel{width:168px;flex-shrink:0;border:1px solid #ebeef5;border-radius:8px;background:#fff;padding:10px 8px;}

.hm-paneltitle{font-weight:700;font-size:13px;color:#101828;padding:2px 8px 8px;}

.hm-paneladd{color:#48d2e9;font-size:13px;cursor:pointer;padding:8px;display:flex;align-items:center;gap:5px;user-select:none}

.hm-flex1{flex:1;min-width:0}

.hm-warn6{color:#e6a23c;font-size:12px;margin-top:6px;}

.hm-c-red{color:#e54d42}

.hm-tip4{color:#999;font-size:12px;margin-top:4px}

.hm-minw110{min-width:110px}

.hm-w150b{width:150px;font-weight:bold;font-size:14px}

.hm-noud{text-decoration:none}

.hm-mb20{margin-bottom:20px;}

.hm-headrow{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}

.hm-bg-blue{background:#48d2e9}

.hm-title18{font-size:18px;font-weight:700;margin-left:10px;}

.hm-sub8{font-size:13px;color:#98a2b3;margin-top:8px;}

.hm-tac-gray{text-align:center;color:#98a2b3;}

.hm-row8{display:flex;align-items:center;gap:8px}

.hm-maxw220{max-width:220px}

.hm-link13{color:#48d2e9;font-size:13px;white-space:nowrap}

.hm-domrow{display:flex;max-width:520px;align-items:center}

.hm-dom-l{flex:11;min-width:0;border-radius:4px 0 0 4px;border-right:0}

.hm-dom-r{flex:9;min-width:0;border-radius:0 4px 4px 0;}

.hm-helpwrap2{position:relative;flex:0 0 auto;display:inline-flex;align-items:center;margin-left:8px}

.hm-gray6{color:#909399;font-size:12px;margin-top:6px;}

.hm-link4{color:#48d2e9;margin-left:4px}

.hm-wrap6{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px;}

.hm-gray12n{color:#999;font-size:12px;font-weight:normal}

.hm-btn-blue-auto{margin-left:auto;background:#48d2e9;border:0}

.hm-pill{display:inline-block;background:#e8f4fd;color:#48d2e9;font-size:13px;padding:4px 12px;border-radius:3px;margin-bottom:8px;}

.hm-tagrow{gap:12px;width:100%;position:relative}

.hm-optcell{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}

.hm-vline{width:1px;height:22px;background:#dcdfe6;flex-shrink:0}

.hm-optrow{flex:1 1 0;min-width:0;display:flex;gap:8px;align-items:center}

.hm-inp32{flex:1;min-width:0;height:32px;border:1px solid #d0d5dd;border-radius:6px;padding:0 10px;font-size:13px;outline:none}

.hm-btn32{height:32px;min-width:110px;padding:0 24px;border:1px solid #ffcda6;border-radius:3px;background:#fff3ea;color:#ff6200;font-size:13px;cursor:pointer;white-space:nowrap;flex-shrink:0}

.hm-btn32:hover{border-color:#ff6200;background:#ffe9d6;color:#e05500}

.hm-noticewrap{margin-top:12px;border:1px solid #fde2cf;background:#fffaf5;border-radius:8px;padding:14px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}

.hm-fileinp{flex:1;min-width:200px}

.hm-strong14{font-weight:700;font-size:14px;color:#101828}

.hm-sub17{color:#98a2b3;font-size:12px;margin-top:4px;line-height:1.7}

.hm-defbox{width:74px;height:74px;border:1px dashed #f79009;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;color:#c0c4cc;font-size:12px;overflow:hidden;flex-shrink:0}

.hm-noshrink{flex-shrink:0}

.hm-btn34{height:34px;padding:0 18px;border:1px solid #b8d6f5;border-radius:3px;background:#ecf5ff;color:#48d2e9;font-size:13px;cursor:pointer}

.hm-dlgbox{max-width:560px;width:92%;padding:0}

.hm-dlghead{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid #f0f2f5}

.hm-dlgtitle{font-weight:700;font-size:15px;color:#101828}

.hm-dlgsub{font-weight:400;font-size:12px;color:#98a2b3;margin-left:8px}

.hm-dlgx{cursor:pointer;color:#98a2b3;font-size:20px;line-height:1}

.hm-dlgmain{display:flex;min-height:280px}

.hm-dlgprovs{width:132px;border-right:1px solid #f0f2f5;overflow-y:auto;max-height:320px;padding:8px 6px}

.hm-dlgcities{flex:1;overflow-y:auto;max-height:320px;padding:10px 14px}

.hm-dlgfoot{border-top:1px solid #f0f2f5;padding:10px 18px 14px}

.hm-dlgbtns{text-align:right;display:flex;gap:10px;justify-content:flex-end}

.hm-btn-plain{height:34px;padding:0 22px;border:1px solid #d0d5dd;border-radius:3px;background:#fff;color:#344054;font-size:13px;cursor:pointer}

.hm-btn-primary{height:34px;padding:0 22px;border:1px solid #48d2e9;border-radius:3px;background:#48d2e9;color:#fff;font-size:13px;cursor:pointer}

.hm-graybox{background:#f8f9fb;border:1px solid #eee;border-radius:8px;padding:14px 16px;}

.hm-mt10{margin-top:10px}

.hm-mb6{margin-bottom:6px}

.hm-maxw80{max-width:80px}

.hm-linkbox{background:#fff;border-radius:12px;max-width:560px;margin:6vh auto;max-height:86vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.2);}

.hm-linkhead{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f0f0;}

.hm-fs16{font-size:16px}

.hm-linkx{cursor:pointer;font-size:24px;color:#999;line-height:1}

.hm-linkbody{padding:18px 20px 4px;}

.hm-linklbl{margin-bottom:12px;font-size:14px;color:#333}

.hm-areabox{margin-bottom:12px;position:relative}

.hm-inp120{width:120px;background:#f5f6f8;border:0}

.hm-linkfoot{display:flex;justify-content:flex-end;gap:10px;padding:12px 0 16px;}

.hm-btn-ghost{min-width:88px;color:#48d2e9;border:1px solid #48d2e9;background:#fff}

.hm-btn-solid{min-width:88px;background:#48d2e9;border:0}

.hm-optitem-none{padding:7px 12px;font-size:13px;color:#999}

.hm-gray10c{color:#999;font-size:12px;text-align:center;margin-top:10px;}

.hm-qrbtm{border-top:1px solid #f0f2f5;margin-top:14px;padding-top:14px;text-align:center}

.hm-qrcopy{display:flex;justify-content:center;align-items:center;gap:10px;margin:0 0 12px;}

/* 预览底部三按钮一行（美化/下载/编辑）：等分自适应、整体收窄，窄栏不溢出不换行 */

.hm-qrbtm .hm-qrcopy{display:flex;flex-wrap:nowrap;justify-content:center;gap:4px;padding:0 4px;}

.hm-qrbtm .hm-qrcopy>.btn{flex:1 1 0;max-width:none;min-width:0;width:auto;padding:4px 2px;font-size:13px;font-weight:bold!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.hm-va14{vertical-align:middle;margin-left:6px;font-size:14px}

.hm-gray0{color:#999;font-size:12px;margin-top:0;text-align:left;line-height:1.7;}

.hm-qrcard-t{color:#555;font-size:14px;font-weight:bold;margin-bottom:2px;}

.hm-qrcard-d{line-height:2;color:#555;}

.hm-qrcard-w{color:#ff6a00;font-size:14px;font-weight:bold;margin-bottom:40px;}

.hm-empty-tip{color:#98a2b3;font-size:12px;padding:6px 8px;line-height:1.6}

.hm-imgfull{width:100%;height:100%;object-fit:contain}

.hm-gray12{color:#909399;font-size:12px}

.hm-badge{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;background:#f56c6c;border-radius:50%;color:#fff;font-size:12px;font-weight:bold;flex-shrink:0}

.hm-bluebox{margin-bottom:14px;padding:10px;background:#f0f5ff;border-radius:3px;color:#1a4480;font-size:13px;line-height:1.8}

.hm-errbox{background:#fef3f2;border:1px solid #fecdca;border-radius:3px;padding:12px 18px;color:#b42318;font-size:13px;margin-bottom:20px;}

.hm-errlink{color:#b42318;font-weight:700;text-decoration:underline;}

.hm-bg-orange{background:#f79009}

.hm-bg-pinkred{background:#fff7f7}

.hm-breakall{word-break:break-all}

.hm-break-mb{word-break:break-all;margin:0 0 12px;}

.hm-mt30{margin-top:30px}

.hm-helpdot:hover{border-color:#48d2e9;color:#48d2e9}

.hm-optitem{padding:7px 12px;cursor:pointer;font-size:13px;color:#333;}

.hm-optitem.on{background:#eaf6ff;font-weight:700;}



/* ---- 统计页（v17g 全局化） ---- */

.hm-tag{display:inline-block;font-size:12px;padding:2px 10px;border-radius:3px;color:#fff;}

.hm-stat{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px;}

.hm-stat-box{flex:1;min-width:150px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:18px 20px;}

.hm-stat-box .t{font-size:13px;color:#667085;margin-bottom:8px;}

.hm-stat-box .n{font-size:26px;font-weight:700;color:#101828;line-height:1.2;}

.hm-stat-box .n small{font-size:13px;color:#98a2b3;font-weight:400;margin-left:4px;}

.hm-chart{display:flex;align-items:flex-end;gap:10px;height:180px;padding:14px 4px 0;}

.hm-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}

.hm-bar .v{font-size:12px;color:#475467;margin-bottom:4px;}

.hm-bar .b{width:100%;max-width:46px;background:linear-gradient(180deg,#5aa9f8,#48d2e9);border-radius:4px 4px 0 0;min-height:2px;}

.hm-bar .l{font-size:12px;color:#98a2b3;margin-top:8px;}

.hm-bar.we .b{background:linear-gradient(180deg,#ffd08a,#f79009);}

.hm-zero{padding:60px 0;text-align:center;color:#98a2b3;font-size:14px;}

.hm-ua{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom;color:#667085;}





/* ---- 渠道码（v17g 全局化） ---- */

.hint-block{font-size:12px;color:#888;margin-top:6px;}



/* ---- 列表（v17g 全局化） ---- */

.hm-banner{background:linear-gradient(135deg,#e8f0fe 0%,#f0f7ff 100%);border:1px solid #d2e3fc;border-radius:3px;padding:14px 20px;color:#1a4480;font-size:13px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}

.hm-banner-text i{margin-right:6px;color:#48d2e9;font-size:16px;vertical-align:-2px;}

.hm-banner-link{color:#48d2e9;font-weight:700;margin-left:6px;}

.hm-banner-link:hover{text-decoration:underline;}



.hm-section-title:before{content:"";display:inline-block;width:4px;height:16px;background:#48d2e9;border-radius:2px;margin-right:8px;}

.hm-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:18px 20px 18px 23px;margin-bottom:20px;transition:all .2s;}

.hm-card:hover{border-color:#a4d7fb;box-shadow:0 6px 16px rgba(72,176,247,.08);}

.hm-card-head{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:12px;}

.hm-card-icon{width:50px;height:50px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}





.hm-card-info{flex:1;min-width:150px;}

.hm-card-title{font-size:15px;font-weight:700;color:#101828;margin-bottom:8px;text-align:left;}

.hm-card-count{color:#98a2b3;font-weight:normal;font-size:13px;margin-left:2px;}

.hm-card-tags{display:flex;flex-wrap:wrap;gap:6px;}

.hm-card-tags span{font-size:11px;padding:3px 9px;border-radius:3px;font-weight:700;line-height:1.4;}

.hm-card-desc{font-size:13px;color:#475467;line-height:1.7;margin-bottom:0;min-height:48px;text-align:left;padding-left:64px;}

.hm-card{position:relative;}.hm-card-btn{display:block;position:absolute;top:26px;right:21px;width:150px;text-align:center;background:#48d2e9;color:#fff;padding:9px 0;border-radius:5px;font-size:14px;font-weight:700;transition:background .2s;}

.hm-card-btn:hover{background:#2f8fd6;color:#fff;text-decoration:none;}

.hm-type-hero{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:22px 24px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}

.hm-type-hero-main{display:flex;align-items:flex-start;gap:16px;flex:1;min-width:0;}

.hm-type-hero-icon{width:64px;height:64px;border-radius:14px;}

.hm-type-hero-icon svg{width:34px;height:34px;}

.hm-type-hero-title{font-size:18px;font-weight:700;color:#101828;margin-bottom:8px;text-align:left;}

.hm-type-hero-desc{font-size:13px;color:#475467;line-height:1.7;margin-top:8px;text-align:left;}

.hm-type-hero-side{display:flex;align-items:center;gap:28px;flex-wrap:nowrap;flex-shrink:0;}

.hm-type-stat{text-align:center;}

.hm-type-stat b{display:block;font-size:22px;font-weight:700;color:#101828;line-height:1.2;}

.hm-type-stat span{font-size:12px;color:#98a2b3;}

.hm-type-hero-btn{margin:0;flex-shrink:0;position:static;}

/* hero 按钮统一尺寸：创建/管理并排同宽同高（管理为描边款） */

.hm-type-hero-side>.hm-card-btn{display:inline-flex;align-items:center;justify-content:center;width:150px;height:40px;padding:0;box-sizing:border-box;}

.hm-type-hero-side>.hm-hero-mbtn{display:inline-flex;align-items:center;justify-content:center;width:150px;height:40px;padding:0;box-sizing:border-box;background:#fff;border:1px solid #d0d5dd;border-radius:5px;color:#475467;font-size:14px;font-weight:700;text-decoration:none;transition:background .2s,border-color .2s;}

.hm-type-hero-side>.hm-hero-mbtn:hover,.hm-type-hero-side>.hm-hero-mbtn:focus,.hm-type-hero-side>.hm-hero-mbtn:active{background:#f2f4f7;border-color:#b9c0cc;color:#475467;text-decoration:none;}

.hm-qr{width:64px;height:64px;border:1px solid #eee;padding:2px;background:#fff;}

.table th:first-child, .table td:first-child{padding-left:0;}

.hm-url{width:200px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;}

.hm-tag{display:inline-block;font-size:12px;padding:2px 10px;border-radius:3px;color:#fff;}

.hint-block{font-size:12px;color:#888;margin-top:6px;}

.hm-pv-intro-title{font-size:15px;font-weight:700;color:#101828;margin-bottom:10px;}

.hm-pv-intro-bar{background:#eef4ff;border:1px solid #dce7fb;border-radius:8px;padding:12px 14px;font-size:13px;color:#4b5b76;line-height:1.8;margin-bottom:20px;}

.hm-intro-ul{margin:0;padding:0;list-style:none}

.hm-intro-ul li{position:relative;padding-left:14px;margin-bottom:4px}

.hm-intro-ul li:last-child{margin-bottom:0}

.hm-intro-ul li:before{content:'';position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:#48d2e9}

.hm-pv-intro-bar i{color:#48d2e9;margin-right:6px;vertical-align:-2px;}

.hm-pv-label{font-size:18px;font-weight:700;color:#101828;margin-bottom:10px;}

.hm-pv-pagetag{text-align:center;color:#5b8dd9;font-size:14px;margin-bottom:12px;}

.hm-pv-side .card:last-child{margin-bottom:0}

.hm-phone{width:232px;height:440px;border:10px solid #1c1c1e;border-radius:38px;background:#fff;position:relative;margin:0 auto;box-shadow:0 12px 32px rgba(16,24,40,.14);}

.hm-phone:before{content:"";position:absolute;left:-14px;top:92px;width:4px;height:52px;background:#1c1c1e;border-radius:2px 0 0 2px;}

.hm-phone:after{content:"";position:absolute;right:-14px;top:84px;width:4px;height:64px;background:#1c1c1e;border-radius:0 2px 2px 0;box-shadow:0 78px 0 #1c1c1e;}

.hm-phone-notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:104px;height:24px;background:#1c1c1e;border-radius:0 0 15px 15px;z-index:2;}

.hm-phone-notch:after{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:38px;height:6px;border-radius:4px;background:#3a3a3c;}

.hm-phone-screen{height:100%;overflow-y:auto;padding:38px 14px 16px;text-align:center;background:#fff;border-radius:28px;display:flex;flex-direction:column;}

.hm-pv-tag{display:inline-block;background:#f0f5ff;color:#48d2e9;font-size:11px;padding:3px 10px;border-radius:20px;}

.hm-pv-name{font-size:14px;font-weight:bold;color:#222;margin-top:8px;word-break:break-all;}

.hm-pv-qr{width:80%;display:block;margin:12px auto 6px;background:#fff;}

.hm-pv-tip{color:#9ca3af;font-size:12px;margin-top:4px;line-height:1.6;}

.hm-pv-adv-title{font-size:13px;font-weight:700;color:#111;margin-top:10px;}

.hm-pv-adv-desc{color:#777;font-size:11px;line-height:1.6;margin-top:4px;}

.hm-pv-adv-btn{display:inline-block;margin-top:8px;padding:5px 12px;border:1px solid #48d2e9;color:#48d2e9;font-size:11px;border-radius:14px;}

/* ===== aifabu 对齐：卡片单选 / 开关 / 折叠 ===== */

.hm-sec{display:flex;gap:16px;flex-wrap:wrap}

.hm-opt{position:relative;display:inline-flex;align-items:center;gap:12px;min-height:56px;border:1px solid #dcdfe6;border-radius:6px;background:#fff;padding:14px 44px 14px 40px;cursor:pointer;transition:all .15s;user-select:none}

.hm-opt input{position:absolute;opacity:0;pointer-events:none}

.hm-opt .mdi{font-size:18px;color:#909399;line-height:1}

.hm-opt em{font-style:normal;font-weight:400;font-size:13px;color:#303133;line-height:1}

.hm-opt:hover{border-color:#c0c4cc}

.hm-opt.on{border-color:#48d2e9;background:#ecf5ff;box-shadow:0 1px 4px rgba(72,176,247,.18)}

.hm-opt.on .mdi, .hm-opt.on em{color:#48d2e9}

.hm-switch{position:relative;display:inline-block;width:42px;height:22px;vertical-align:middle}

.hm-switch input{opacity:0;width:0;height:0}

.hm-switch .sl{position:absolute;inset:0;background:#dcdfe6;border-radius:22px;transition:.2s;cursor:pointer}

.hm-switch .sl:before{content:'';position:absolute;width:18px;height:18px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}

.hm-switch input:checked + .sl{background:#48d2e9}

.hm-switch input:checked + .sl:before{transform:translateX(20px)}

.hm-fold-head{display:flex;align-items:center;cursor:pointer;user-select:none}

.hm-fold-head .mdi{color:#48d2e9;margin-right:6px;font-size:18px}

.hm-fold-head .fw{font-weight:700;color:#101828;font-size:18px}

.hm-fold-head .fx{color:#48d2e9;font-size:14px;margin-left:auto}

.hm-fold-head:hover .fx{font-weight:700}

.hm-form-head{font-size:18px;font-weight:700;color:#101828;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid #eef2f6;display:flex;align-items:center;gap:8px;}

.hm-qrtr .hm-qr-del{background:none;border:none;color:#f56c6c;cursor:pointer;font-size:14px;padding:0;width:30px;height:30px;margin-left:2px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}

.hm-qrtr .hm-qr-del:hover{color:#ff8989}

.hm-qrtr .hm-qr-edit{background:none;border:none;color:#909399;cursor:pointer;font-size:14px;padding:0;width:30px;height:30px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}

.hm-qrtr .hm-qr-edit:hover{color:#48d2e9}

.hm-qrnew-thumb{width:28px;height:28px;object-fit:contain;border:1px solid #ebeef5;border-radius:4px;background:#fff;margin-right:6px;flex-shrink:0;vertical-align:middle}

.hm-qrthumb-wrap{position:relative;display:inline-block;flex-shrink:0;line-height:0}

.hm-qrnew-thumb{width:28px;height:28px;object-fit:contain;border:1px solid #ebeef5;border-radius:4px;background:#fff;margin-right:6px;flex-shrink:0;vertical-align:middle;cursor:pointer;display:block}

.hm-qrthumb-big{position:fixed;left:-9999px;top:-9999px;width:180px;height:180px;padding:5px;background:#fff;border:1px solid #dcdfe6;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.18);display:none;z-index:99999;pointer-events:none;line-height:0}

.hm-qrthumb-wrap:hover .hm-qrthumb-big{display:block}

.hm-qrthumb-bigimg{width:100%;height:100%;object-fit:contain;display:block}

.hm-dlcell{display:inline-flex;align-items:center;gap:8px}

.hm-dlwrap{position:relative;display:inline-block}

.hm-dlbtn{padding:4px 10px;border:1px solid #48d2e9;border-radius:3px;background:#48d2e9;color:#fff;font-size:12px;cursor:pointer;white-space:nowrap;line-height:1.5;transition:all .15s;vertical-align:middle}

.hm-dlbtn:hover{background:#2bb8cf;border-color:#2bb8cf}

.hm-dlpop{display:none;position:fixed;left:0;top:0;padding-top:8px;width:230px;z-index:9999}

.hm-dlwrap:hover .hm-dlpop{display:block}

.hm-dlwrap.hm-pop-up .hm-dlpop{padding-top:0;padding-bottom:8px}

.hm-dlpop-card{background:#fff;border-radius:8px;box-shadow:0 8px 40px rgba(29,33,41,.18);padding:12px 14px 10px;text-align:center}

.hm-dlpop-title{font-size:13px;font-weight:bold;color:#1d2129;margin-bottom:8px}

.hm-dlpop-qr{width:170px;height:170px;object-fit:contain;display:block;margin:0 auto}

.hm-dlpop-cap{font-size:12px;color:#86909c;margin-top:6px}

.hm-dlpop-btns{margin-top:8px;display:flex;gap:8px}

.hm-dlpop-down{flex:1;background:#48d2e9;color:#fff;border:none;font-size:12px;padding:6px 0;border-radius:5px;cursor:pointer}

.hm-dlpop-down:hover{background:#6cc2ff}

.hm-dlpop-beauty{flex:1;background:#ecf5ff;color:#48d2e9;border:1px solid #b8d6f5;font-size:12px;padding:6px 0;border-radius:5px;cursor:pointer}

.hm-dlpop-beauty:hover{background:#d9ecff}

.hm-copybtn{margin-left:6px;padding:3px 10px;border:1px solid #b8d6f5;border-radius:4px;background:#ecf5ff;color:#48d2e9;font-size:12px;cursor:pointer;vertical-align:middle;white-space:nowrap;transition:all .15s}

.hm-copybtn:hover{background:#d9ecff;border-color:#8cc5f0}

.hm-qrnew-filecell{display:flex;align-items:center;gap:6px;min-width:0;padding:2px 0}

.hm-qrnew-filename{font-size:12px;color:#606266;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.hm-qrnew-link{background:none;border:none;color:#48d2e9;cursor:pointer;font-size:12px;padding:0;white-space:nowrap}

.hm-qrnew-link:hover{color:#6cc2ff}

.hm-qrtr .hm-stat{color:#909399;text-align:center;font-size:12px}

.hm-note{color:#909399;font-size:13px;background:#f4f4f5;padding:10px 14px;border-radius:6px}

.hm-switch-sm{position:relative;display:inline-block;width:34px;height:18px;vertical-align:middle}

.hm-switch-sm input{opacity:0;width:0;height:0;margin:0}

.hm-switch-sm .sl{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#dcdfe6;border-radius:18px;transition:.2s}

.hm-switch-sm .sl:before{position:absolute;content:"";height:14px;width:14px;left:2px;top:2px;background:#fff;border-radius:50%;transition:.2s}

.hm-switch-sm input:checked + .sl{background:#48d2e9}

.hm-switch-sm input:checked + .sl:before{transform:translateX(16px)}

.hm-footbar{position:fixed;left:0;right:0;bottom:0;z-index:900;display:flex;gap:14px;justify-content:flex-start;align-items:center;margin:0;padding:14px 0;background:#fff;box-shadow:0 -6px 16px rgba(16,24,40,.08);border-top:1px solid #f0f2f5}

.hm-footbar-space{height:45px}

.hm-form-head-icon{display:inline-block;width:18px;height:18px;background:linear-gradient(135deg,#07c160,#4ec587);border-radius:4px;position:relative;flex-shrink:0;}

.hm-form-head-icon:before, .hm-form-head-icon:after{content:"";position:absolute;background:rgba(255,255,255,.92);}

.hm-form-head-icon:before{left:3px;top:3px;width:5px;height:5px;border-radius:1px;}

.hm-form-head-icon:after{right:3px;bottom:3px;width:5px;height:5px;border-radius:1px;}



/* ---- entry 落地页（原 <style> 块，作用域 body.hmv-entry） ---- */

body.hmv-entry{margin:0;background:#eef1f6;font-family:"PingFang SC","Microsoft YaHei",sans-serif}

.hmv-entry .wrap{max-width:420px;margin:0 auto;padding:26px 14px}

.hmv-entry .card{background:#fff;border-radius:14px;padding:28px 16px;text-align:center}

.hmv-entry .tag{display:inline-block;background:#f0f5ff;color:#48d2e9;font-size:13px;padding:4px 12px;border-radius:20px}

.hmv-entry .qr{width:100%;max-width:300px;height:auto;display:block;margin:18px auto 6px}

.hmv-entry .tip{color:#666;font-size:14px;margin-top:10px;line-height:1.7}

.hmv-entry .name{font-size:17px;font-weight:bold;color:#222;margin-top:14px}

.hmv-entry .adv-title{font-size:18px;font-weight:700;color:#111;margin-top:16px}

.hmv-entry .adv-desc{color:#666;font-size:13px;line-height:1.7;margin-top:8px;white-space:pre-wrap}

.hmv-entry .grp-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}

.hmv-entry .grp-btn{display:block;background:#f0f5ff;color:#48d2e9;font-size:15px;font-weight:700;padding:12px 10px;border-radius:8px;text-decoration:none;border:1px solid #d2e3fc}

.hmv-entry .grp-btn:active{background:#e0ecff}

.hmv-entry .btn-contact{display:inline-block;margin-top:14px;padding:8px 18px;border:1px solid #48d2e9;color:#48d2e9;font-size:13px;border-radius:20px;text-decoration:none}

.hmv-entry .ft{color:#aaa;font-size:12px;text-align:center;margin-top:16px}

.hmv-entry .txt{color:#333;font-size:15px;line-height:1.8;text-align:left;word-break:break-all;margin-top:14px}

.hmv-entry .hm-sub12{font-size:12px;color:#999}

.hmv-entry .hm-wfull{max-width:100%}



/* ---- 帮助气泡弹层公共样式（v9.101；display:none 仍由内联控制，JS 三态钩子） ---- */

.hm-helppop{position:absolute;bottom:26px;left:-10px;z-index:100002;width:300px;background:#fff;border:1px solid #e4e7ed;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.12);padding:14px 16px;font-size:12px;color:#606266;line-height:1.8;text-align:left}



/* ---- 渠道活码列表（v9.101，v17g 全局化） ---- */

.hm-chbar{height:6px;background:#f2f4f7;border-radius:3px;margin-top:7px;overflow:hidden;min-width:90px}

.hm-chbar i{display:block;height:100%;background:linear-gradient(90deg,#7a5af8,#9b8afb);border-radius:3px}

.hm-chbar i.zero{background:#d0d5dd}

td .hm-chbar{max-width:160px}



/* ---- 渠道活码表单（v9.101，v17g 全局化） ---- */

.hm-bluebox{line-height:2}



/* ---- 地区面板：悬停「···」删除（v9.103，对齐 aifabu） ---- */

.hm-area-more{display:none;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;color:#667085;font-size:15px;line-height:1;cursor:pointer;}

.hm-area-more:hover{background:#f2f4f7;color:#344054;}

.hm-area-row:hover .hm-area-cnt{display:none;}

.hm-area-row:hover .hm-area-more{display:inline-flex;}

#hmAreaDelPop{position:fixed;display:none;z-index:1200;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 16px rgba(16,24,40,.12);padding:4px;}

.hm-area-delbtn{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:7px 14px;border-radius:6px;font-size:13px;color:#344054;cursor:pointer;white-space:nowrap;}

.hm-area-delbtn i{font-size:15px;}

.hm-area-delbtn:hover{background:#fef3f2;color:#e5484d;}



/* v9.107 帮助气泡字体统一钉死：全 18 气泡及子元素同一黑体栈（Mac=苹方/Win=雅黑/Linux=WQY），杜绝宋体衬线回落 */

[id$="HelpPop"], [id$="HelpPop"] *, .hm-poptitle{font-family:'Microsoft YaHei',Arial,sans-serif}



/* v9.109 气泡字重/字号统一钉死：说明 12px/400（防父容器粗体继承，如 hm-strong14），标题 13px/700 —— 老板拍板 */

[id$="HelpPop"]{font-weight:400}

[id$="HelpPop"] b,[id$="HelpPop"] strong{font-weight:400}

[id$="HelpPop"] .hm-poptitle{font-size:14px;font-weight:700}



/* ===== v9.112 收尾：帮助气泡/下拉/遮罩卡片（原内联长串迁移；display:none 初始态仍为行为钩子保留在元素上） ===== */

.hm-helppop-r{left:auto;right:-6px}

.hm-dropcard{position:absolute;left:0;right:0;z-index:100;background:#fff;border:1px solid #e3e8ef;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.12);max-height:240px;overflow:auto;margin-top:4px}

.hm-mask{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:9999}



/* ===== v9.113 手机端适配 ===== */

/* 表格滚动容器：超宽表格在小屏内横滚，不撑破页面（PC 不超宽无滚动条，零影响） */

.hm-twrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}

/* 气泡宽度视口保护（位置微调由 JS hmPopClamp 兜底） */

.hm-helppop{max-width:calc(100vw - 32px)}

@media (max-width:767px){

  /* 内容区左右边距收窄（39px 为 PC 对齐修正值，手机改紧凑；v17h 起唯一规则在文件尾 v17g 段） */

  /* 分组/地区面板与码池表格堆叠为上下布局 */

  #hmTagWrap,#hmAreaWrap{flex-direction:column;align-items:stretch}

  .hm-sidepanel{width:100%}

  /* 域名选择行手机全宽 */

  .hm-domrow{max-width:100%}

}



.hm-section-title{font-size:16px;font-weight:700;color:#101828;margin:24px 0 14px;padding-left:12px;display:flex;align-items:center;}

.hm-section-title:before{content:"";display:inline-block;width:4px;height:16px;background:#48d2e9;border-radius:2px;margin-right:8px;}

.hm-mt30{margin-top:30px;}

.hm-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:18px 20px 18px 23px;margin-bottom:20px;transition:all .2s;}

.hm-card:hover{border-color:#a4d7fb;box-shadow:0 6px 16px rgba(72,176,247,.08);}

.hm-card-head{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:12px;}

.hm-card-icon{width:50px;height:50px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.hm-card-icon svg{width:28px;height:28px;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.18));}

.hm-card-info{flex:1;min-width:150px;}

.hm-card-title{font-size:15px;font-weight:700;color:#101828;margin-bottom:8px;text-align:left;}

.hm-card-count{color:#98a2b3;font-weight:normal;font-size:13px;margin-left:2px;}

.hm-card-tags{display:flex;flex-wrap:wrap;gap:6px;}

.hm-card-tags span{font-size:11px;padding:3px 9px;border-radius:3px;font-weight:700;line-height:1.4;}

.hm-card-desc{font-size:13px;color:#475467;line-height:1.7;margin-bottom:0;min-height:48px;text-align:left;padding-left:64px;}

.hm-card{position:relative;}.hm-card-btn{display:block;position:absolute;top:26px;right:21px;width:150px;text-align:center;background:#48d2e9;color:#fff;padding:9px 0;border-radius:5px;font-size:14px;font-weight:700;transition:background .2s;}

.hm-card-btn:hover{background:#2f8fd6;color:#fff;text-decoration:none;}

.hm-type-hero{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:22px 24px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}

.hm-type-hero-main{display:flex;align-items:flex-start;gap:16px;flex:1;min-width:0;}

.hm-type-hero-icon{width:64px;height:64px;border-radius:14px;}

.hm-type-hero-icon svg{width:34px;height:34px;}

.hm-type-hero-title{font-size:18px;font-weight:700;color:#101828;margin-bottom:8px;text-align:left;}

.hm-type-hero-desc{font-size:13px;color:#475467;line-height:1.7;margin-top:8px;text-align:left;}

.hm-type-hero-side{display:flex;align-items:center;gap:28px;flex-wrap:nowrap;flex-shrink:0;}

.hm-type-hero-btn{margin:0;flex-shrink:0;position:static;}



/* v16m：活码首页数据统计栏（与卡片系统 cst 同款） */

.cst-row{margin:14px 0 20px;display:flex;gap:14px;flex-wrap:wrap;}

.cst-box{flex:1;min-width:150px;background:#fff;border:1px solid #eceff3;border-radius:10px;padding:14px 16px;}

.cst-num{font-size:24px;font-weight:700;color:#333;line-height:1.2;}

.cst-lab{font-size:12px;color:#999;margin-top:2px;}

/* v16o：两页边距/卡片尺寸统一（hm-mt30 两作用域同值；.hm-card padding 对齐 23px 左内边距） */

.hm-mt30{margin-top:30px;}



/* v16p：两页切换体验——滚动条槽位常驻（防一页有一页无导致内容区左右跳 15px）+ 内容区淡入（缓解整页 reload 闪烁感） */

html{scrollbar-gutter:stable;}



/* v16x：横幅功能入口（三系统统一；.hmv-*/作用域渐变版特异性更高不受影响） */

.hm-banner{background:linear-gradient(135deg,#e8f0fe 0%,#f0f7ff 100%);border:1px solid #d2e3fc;border-radius:3px;padding:14px 20px;color:#1a4480;font-size:13px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}

.hm-banner-ops{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}

.hm-banner-cap{font-weight:700;color:#333;font-size:14px;display:inline-flex;align-items:center;margin-right:2px;white-space:nowrap;}

.hm-banner-cap i{color:#48d2e9;font-size:18px;margin-right:3px;}

.hm-banner .hm-banner-text{flex:1 1 auto;margin:0 8px;}

.hm-banner .hm-banner-link{white-space:nowrap;}





/* v17d：统计栏/标题全局版（供不在 作用域内的页面使用，如生成短链卡片页；值与 版一致） */

.cst-row{margin:14px 0 20px;display:flex;gap:14px;flex-wrap:wrap;}

.cst-box{flex:1;min-width:150px;background:#fff;border:1px solid #eceff3;border-radius:10px;padding:14px 16px;}

.cst-num{font-size:24px;font-weight:700;color:#333;line-height:1.2;}

.cst-lab{font-size:12px;color:#999;margin-top:2px;}

.hm-mt30{margin-top:30px;}



/* ===== v17g 全站统一容器：所有功能页/编辑页/新生页同一套边距与栅格（替代 hmv-stat/hmv-channel/hmv-list/hm-cards 各作用域容器规则，hmv-form 死段已删） ===== */

/* v17r：右缘与左缘对称统一（容器 padding-right 39→24：内容区右缘有框架常驻15px占位，旧值下末列内容右视觉边距=24+15=39px 大于左侧24px；改24后所有页面右视觉边距=24px 与左缘一致；v17q 首末列清零规则保留不动） */

.lyear-layout-content .container-fluid{padding-left:39px;padding-right:39px;padding-bottom:40;display:flex;flex-direction:column;min-height:calc(100vh - 68px);}

/* 链只作用于 col-12 外壳行；row 本体保持 bootstrap 标准栅格（两栏 col-lg-6 不受影响） */

.lyear-layout-content .container-fluid>.row{flex:1;}

.lyear-layout-content .container-fluid>.row>.col-12{flex:1;display:flex;flex-direction:column;}

.lyear-layout-content .container-fluid>.row>.col-12>.card:last-child{flex:1;margin-bottom:0;display:flex;flex-direction:column;}

.lyear-layout-content .container-fluid>.row>.col-12>.card:last-child>.card-body{flex:1;}

@media (max-width:767px){.lyear-layout-content .container-fluid{padding-left:12px;padding-right:12px;}}

/* v17g：跳转类型选择卡（原 urls/creat 页内联，全局化一套） */

.hm-ucards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:6px 0 14px;}

.hm-ucard{position:relative;background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;padding:14px 12px;cursor:pointer;transition:all .2s;user-select:none;}

.hm-ucard:hover{border-color:#b9d9f5;box-shadow:0 4px 10px -4px rgba(72,176,247,.35);}

.hm-ucard.on{border-color:#48d2e9;background:#f4faff;box-shadow:0 4px 10px -4px rgba(72,176,247,.4);}

.hm-ucard-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;}

.hm-ucard-icon svg{width:20px;height:20px;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.18));}

.hm-ucard-name{font-size:14px;font-weight:700;color:#101828;margin-bottom:4px;}

.hm-ucard-desc{font-size:12px;color:#667085;line-height:1.6;min-height:38px;margin-top:10px;}

.hm-ucard-hd{display:flex;align-items:center;gap:10px;}

.hm-ucard-hd .hm-ucard-icon{margin-bottom:0;}

.hm-ucard-hd .hm-ucard-name{margin-bottom:0;flex:1;min-width:0;}

.hm-utick{display:none;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#48d2e9;color:#fff;font-size:15px;font-weight:bold;box-shadow:0 2px 5px rgba(72,176,247,.5);flex-shrink:0;}

.hm-ucard.on .hm-utick{display:inline-flex;}

@media (max-width:991px){.hm-ucards{grid-template-columns:repeat(2,1fr);}}

/* v17g：统计栏表格细节（原 creat/cards 页内联，全局化一套） */

.cst-tb th,.cst-tb td{white-space:nowrap;}

.cst-tb td,.cst-tb th{vertical-align:middle;}

.cst-tb th{font-size:12px;color:#999;font-weight:700;background:#f8fafc;}

.cst-tb td{font-size:13px;color:#333;}



/* v17p：活码二维码上传表格样式族（v17g 误删段，自 .bak_v16s_20260912 原样恢复；作用域 .hmv-form 仅新生/编辑页命中） */

/* ========== 活码二维码上传（新表格样式，参考站 aifabu） ========== */

.hmv-form .hm-qrnew-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}

.hmv-form .hm-qrnew-head .qrnew-title{font-weight:700;color:#101828;font-size:15px;margin:0}

.hmv-form .hm-qrnew-head .qrnew-title .rq{color:#f56c6c;margin-right:2px;font-size:17px;vertical-align:-1px}

.hmv-form .hm-qrquota{display:inline-block;color:#667085;font-size:12px;background:#edf4fe;border-radius:6px;padding:3px 10px;line-height:1.6;flex:1;min-width:260px}

.hmv-form .hm-tag-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:6px;font-size:13px;color:#475467;cursor:pointer;user-select:none}

.hmv-form .hm-tag-item:hover{background:#f5f8fd}

.hmv-form .hm-tag-item.on{background:#e8f0fe;color:#48d2e9;font-weight:700}

.hmv-form .hm-tag-item .ct{color:#98a2b3;font-size:12px;font-weight:400}

.hmv-form .hm-tag-item.on .ct{color:#48d2e9}

.hmv-form .hm-qractions{display:flex;align-items:center;gap:14px;font-size:13px;white-space:nowrap;margin-left:auto}

.hmv-form .hm-qractions a{color:#48d2e9;cursor:pointer}

.hmv-form .hm-qractions a:hover{color:#6cc2ff}

.hmv-form .hm-qractions a.danger{color:#f56c6c}

.hmv-form .hm-qractions a.danger:hover{color:#ff8989}

.hmv-form .hm-qrtable{width:100%;border-collapse:collapse;background:#fff;border:1px solid #ebeef5;border-radius:6px;font-size:12px;color:#303133;table-layout:auto}

.hmv-form .hm-qrtable thead th{background:#f5f7fa;color:#606266;font-weight:700;text-align:center;padding:8px 6px;border-bottom:1px solid #ebeef5;white-space:nowrap;vertical-align:middle}

.hmv-form .hm-qrtable tbody td{padding:4px 4px;border-bottom:1px solid #f2f2f5;vertical-align:middle;word-break:break-all;text-align:center}

.hmv-form .hm-qrtable tbody tr:last-child td{border-bottom:none}

.hmv-form .hm-qrtable tbody tr{position:relative;z-index:1}

.hmv-form .hm-qrtable tbody tr:hover{background:#fafbfc;z-index:2}

.hmv-form .hm-qrtable .hm-stat{color:#909399;text-align:center;font-size:12px}

.hmv-form .hm-qrtable .qrnew-chk{margin:0;cursor:pointer}

.hmv-form .hm-qrnew-input, .hmv-form .hm-qrnew-input-num, .hmv-form .hm-qrnew-input-date{width:100%;height:28px;border:1px solid #dcdfe6;border-radius:4px;padding:0 6px;background:#fff;color:#303133;font-size:12px;box-sizing:border-box;font-family:inherit}

.hmv-form .hm-qrnew-input-num{text-align:center}

.hmv-form .hm-qrnew-input-date{padding:0 4px;min-width:118px}

.hmv-form .hm-qrnew-input:focus, .hmv-form .hm-qrnew-input-num:focus, .hmv-form .hm-qrnew-input-date:focus{border-color:#48d2e9;outline:none;box-shadow:0 0 0 2px rgba(72,176,247,.12)}

/* v19e59: 二维码表格水平居中——文本/日期输入框文字、二维码单元格（flex）内容 */

.hmv-form .hm-qrnew-input,.hmv-form .hm-qrnew-input-date{text-align:center}

.hmv-form .hm-qrnew-input-date::-webkit-datetime-edit{display:flex;justify-content:center}

.hmv-form .hm-qrtable .hm-qrnew-filecell{justify-content:center}

.hmv-form .hm-th-help{position:relative;display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:4px;border-radius:50%;background:#c0c4cc;color:#fff;font-size:11px;font-style:normal;cursor:help;vertical-align:middle}

.hmv-form .hm-th-help:hover{background:#48d2e9}

.hmv-form .hm-th-help .hm-th-tip{position:fixed;left:-9999px;top:-9999px;width:190px;box-sizing:border-box;background:#fff;color:#606266;font-size:12px;font-weight:400;line-height:1.8;padding:8px 10px;border-radius:8px;text-align:left;display:none;z-index:100002;pointer-events:none;box-shadow:0 6px 24px rgba(0,0,0,.12);white-space:normal;border:1px solid #e4e7ed}

.hmv-form .hm-th-help:hover .hm-th-tip{display:block}

.hmv-form .hm-qrtable thead th .hm-th-help{position:relative;overflow:visible}

.hmv-form .hm-qrmodal{position:fixed;inset:0;z-index:99999}

.hmv-form .hm-qrmodal-mask{position:absolute;inset:0;background:rgba(0,0,0,.45)}

.hmv-form .hm-qrmodal-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:440px;max-width:92vw;max-height:88vh;overflow:auto;background:#fff;border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.22)}

.hmv-form .hm-qrmodal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #f0f1f5;font-size:15px;font-weight:700;color:#1d2129}

.hmv-form .hm-qrmodal-x{background:none;border:none;font-size:22px;line-height:1;color:#909399;cursor:pointer;padding:0 2px}

.hmv-form .hm-qrmodal-x:hover{color:#606266}

.hmv-form .hm-qrmodal-body{padding:18px 20px 6px}

.hmv-form .hm-qrmodal-label{font-size:13px;color:#4e5969;margin:0 0 8px;font-weight:700}

.hmv-form .hm-qrmodal-qrrow{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}

.hmv-form .hm-qrmodal-thumb{width:96px;height:96px;object-fit:contain;border:1px solid #ebeef5;border-radius:6px;background:#fff;flex-shrink:0}

.hmv-form .hm-qrmodal-qrbtns{display:flex;flex-direction:column;gap:8px}

.hmv-form .hm-qrmodal-btn{background:#f2f3f5;border:none;border-radius:6px;color:#4e5969;font-size:12px;padding:6px 12px;cursor:pointer}

.hmv-form .hm-qrmodal-btn:hover{background:#e8eaee}

.hmv-form .hm-qrmodal-name{font-size:13px;color:#1d2129;margin-bottom:4px;word-break:break-all}

.hmv-form .hm-qrmodal-tip{font-size:12px;color:#98a2b3}

.hmv-form .hm-qrmodal-input{width:100%;height:34px;border:1px solid #dcdfe6;border-radius:6px;padding:0 10px;font-size:13px;color:#303133;box-sizing:border-box;margin-bottom:16px;font-family:inherit;background:#fff}

.hmv-form .hm-qrmodal-input:focus{border-color:#48d2e9;outline:none;box-shadow:0 0 0 2px rgba(72,176,247,.12)}

.hmv-form .hm-qrmodal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid #f0f1f5}

.hmv-form .hm-qrmodal-cancel{background:#f2f3f5;border:none;border-radius:6px;color:#4e5969;font-size:13px;padding:8px 20px;cursor:pointer}

.hmv-form .hm-qrmodal-cancel:hover{background:#e8eaee}

.hmv-form .hm-qrmodal-ok{background:#48d2e9;border:none;border-radius:6px;color:#fff;font-size:13px;padding:8px 20px;cursor:pointer}

.hmv-form .hm-qrmodal-ok:hover{background:#337ecc}

.hmv-form .hm-qrempty{margin-top:8px;border:1px dashed #c0c4cc;border-radius:6px;background:#fafbfc;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:8px 16px;gap:8px;cursor:pointer;transition:all .15s;color:#606266;min-height:42px}

.hmv-form .hm-qrempty:hover{border-color:#ff6200;background:#fff3ea;color:#ff6200}

.hmv-form .hm-qrempty-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid #ff6200;color:#ff6200;font-size:16px;line-height:1;font-weight:300;flex-shrink:0}

.hmv-form .hm-qrempty:hover .hm-qrempty-icon{background:#ff6200;color:#fff;border-color:#ff6200}

.hmv-form .hm-qrempty-text{font-size:14px;font-weight:700;color:#ff6200}

.hmv-form .hm-qrempty-count{font-size:12px;color:#909399}



/* v17q：导航栏↔内容视觉间距全站统一 24px（对齐功能卡片页横幅基准；首列去左pad、末列去右pad，抵消 row 负边距，两栏间 30px gutter 保留） */

.lyear-layout-content .container-fluid>.row>[class*="col-"]:first-child{padding-left:0;}

.lyear-layout-content .container-fluid>.row>[class*="col-"]:last-child{padding-right:0;}



/* v17s：垂直堆叠页（statistics 等同一 row 内多个 100% 宽列）上下栏对齐——col-12 族必然独占一行，左右 pad 全清零，上下两栏左右缘完全对齐（两栏页 col-lg-8/4 与嵌套 row 内列不命中不受影响） */

.lyear-layout-content .container-fluid>.row>[class*="col-"][class*="-12"]{padding-left:0;padding-right:0;}



/* v17u: statistics 头部单行化——标题加粗、统计四项并入标题行（查看全部右侧）不换行；列表表格包 card-body 层对齐正常页（表格线右缩 24px 留白） */

.lyear-layout-content .hm-twrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}

.lyear-layout-content .card>.card-header.hm-stst-hd{display:block;white-space:nowrap;overflow-x:auto;}

.lyear-layout-content .card>.card-header.hm-stst-hd h4{display:inline-block;font-weight:700;margin:0 18px 0 0;vertical-align:middle;}

.lyear-layout-content .card>.card-header.hm-stst-hd .hm-stst-item{display:inline-block;white-space:nowrap;margin:0 18px 0 0;vertical-align:middle;}



/* v17w：统计徽章美化（label 灰+数字加粗+浅底胶囊，间距加大），三系统统计页统一 */

.lyear-layout-content .card>.card-header.hm-stst-hd .hm-stst-item{padding:4px 14px;margin:0 14px 0 0;background:#f2f6fc;border-radius:4px;font-size:13px;}

.lyear-layout-content .card>.card-header.hm-stst-hd .hm-stst-item em{font-style:normal;color:#8a94a6;margin-right:8px;}

.lyear-layout-content .card>.card-header.hm-stst-hd .hm-stst-item b{font-weight:700;color:#263238;}

/* v17z: card-header h4 bold + banner text key fields */

.lyear-layout-content .card>.card-header h4{font-size:18px;font-weight:700;}

.hm-banner-text b{font-weight:400;color:#1e88e5;background:#e8f4fd;padding:1px 5px;border-radius:3px;margin:0 1px;}



/* v9.137 三系统主色调作用域：短链默认#48d2e9 / 活码.sys-huoma#33cabb / 卡片.sys-card#7a5af8（仅按钮/描边/投影，图标渐变不受影响） */

body.sys-huoma .btn-primary{background:#33cabb;border-color:#33cabb;}

body.sys-huoma .btn-primary:hover,body.sys-huoma .btn-primary:focus,body.sys-huoma .btn-primary:active,body.sys-huoma .btn-primary.active{background:#2baa9d;border-color:#2baa9d;}

body.sys-huoma .btn-primary:focus,body.sys-huoma .btn-primary.focus{box-shadow:0 0 0 3px rgba(51,202,187,.22);}

body.sys-huoma .hm-card-btn{background:#33cabb;}

body.sys-huoma .hm-card-btn:hover{background:#2baa9d;}

body.sys-card .btn-primary{background:#7a5af8;border-color:#7a5af8;}

body.sys-card .btn-primary:hover,body.sys-card .btn-primary:focus,body.sys-card .btn-primary:active,body.sys-card .btn-primary.active{background:#6a48f0;border-color:#6a48f0;}

body.sys-card .btn-primary:focus,body.sys-card .btn-primary.focus{box-shadow:0 0 0 3px rgba(122,90,248,.25);}

body.sys-card .hm-card-btn{background:#7a5af8;}

body.sys-card .hm-card-btn:hover{background:#6a48f0;}

body.sys-short .btn-primary{background:#48d2e9;border-color:#48d2e9;}

body.sys-short .btn-primary:hover,body.sys-short .btn-primary:focus,body.sys-short .btn-primary:active,body.sys-short .btn-primary.active{background:#2f8fd6;border-color:#2f8fd6;}

body.sys-short .btn-primary:focus,body.sys-short .btn-primary.focus{box-shadow:0 0 0 3px rgba(72,176,247,.25);}



/* v18h 域名选择提示行图标(按系统主色) */

.hm-domtip i{font-size:15px;vertical-align:-2px;margin-right:2px;color:#48d2e9;}

body.sys-card .hm-domtip i{color:#7a5af8;}



/* v18j 短链生成页纵向呼吸感 */

body.sys-short .hm-ucards{margin:12px 0 18px;}

.hm-domtip{margin:10px 0 16px;}



/* ===== 卡片生成/编辑两栏：BS3 col-lg 断点 1200，<1200 时列在 flex 行内按内容收缩换行→预览列被挤到表单下方；统一 992 断点（<992 整列堆叠，≥992 双栏 8:4 = 左 66.7% / 右 33.3%，与活码表单页一致） ===== */

.lyear-layout-content .eq-row>.col-lg-8,.lyear-layout-content .eq-row>.col-lg-4{flex:0 0 auto;width:100%;max-width:100%;}

@media (min-width:992px){.lyear-layout-content .eq-row>.col-lg-8{flex:0 0 66.667%;width:66.667%;max-width:66.667%;}.lyear-layout-content .eq-row>.col-lg-4{flex:0 0 33.333%;width:33.333%;max-width:33.333%;}}

/* 左右两栏等高：预览列由左栏高度撑开（会员端预览为绝对定位，须靠列高决定可视区域） */

.eq-row>.col-lg-8,.eq-row>.col-lg-4{display:flex;flex-direction:column;}

.eq-row>.col-lg-8>form,.eq-row>.col-lg-8>.card,.eq-row>.col-lg-8>form>.card,.eq-row>.col-lg-4>form,.eq-row>.col-lg-4>.card{flex:1;display:flex;flex-direction:column;}

/* ===== v18r 标题前标（三系统图标+色系） ===== */

.card-header h4::before{font-family:"Material Design Icons";font-size:18px;line-height:1;vertical-align:-3px;margin-right:8px;}

body.sys-short .card-header h4::before{content:"\F339";color:#48d2e9;}

body.sys-huoma .card-header h4::before,body.hmv-form .card-header h4::before{content:"\F432";color:#33cabb;}

body.sys-card .card-header h4::before{content:"\F638";color:#7a5af8;}

/* v18r 封面占位统一站标（noimg 态显示 logo） */

.pic-thumb.noimg{background:#f2f2f2 url(/media/logo-1.webp) center/70% no-repeat;}



/* ===== v18s 资金管理页（账号充值+订单管理集合页）前标：货币图标+短链蓝 ===== */

body.sys-fund .card-header h4::before{content:"\F7B9";color:#48d2e9;}





/* ==== v19d3 member 内联样式外置汇总（按来源分区） ==== */



/* ==== from member/nav.php ==== */

/* v9.113 手机端顶栏：会员/余额信息块在内容区已有卡片承载，小屏隐藏避免横向溢出 */

    @media (max-width:767px){ .topbar-right .tb-vip-li{display:none;} }

      /* v18s3g 字重全导航统一 600（ 压制框架选中态加粗），高亮只变绿不变粗 */

      .lyear-layout-sidebar .sidebar-main .nav-drawer li a{font-weight:700}

      /* v15r 一级菜单选中项绿色高亮 */

      .lyear-layout-sidebar .nav-drawer > li.nav-item.active > a{color:#33cabb}



/* v19e11 字号回原基线（老板 100% 缩放复核，今日放大全部回退）；单点出口结构保留——列表页/后台字号如需调整只在此处定义 */



/* ===== v19e14 表单区块标题 18px 定版（cf-sec=卡片折叠标题；hm-topli=顶栏li内联外置；两端共载单点生效） ===== */

.cf-sec{font-size:18px;font-weight:700;}

.hm-topli.hm-topli{display:inline-block;vertical-align:middle;margin-left:8px;}



/* ===== v19e15 有效期自定义时间选择器：flatpickr 弹出于自定义按钮右侧（hm_form 双后台共用） ===== */

#f_expire{display:flex;flex-wrap:wrap;align-items:center;gap:10px;position:relative}

#f_expire>label,#f_expire .hm-warn6{width:100%}

#f_expire #exp_inp{width:280px;max-width:100%}



/* v19e83z113: 生成结果改正中提示浮层（z33 定版：fixed 正中+3px+2s 自动消失+点击可消），原 genmask 遮罩死规则已删；z113b 配色：错误=淡橙底橙边、成功=淡绿底绿边（老板定） */

.hm-toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:99999;font-size:14px;line-height:1.5;padding:12px 22px;border-radius:3px;box-shadow:0 8px 24px rgba(0,0,0,.12);display:none;max-width:80vw;text-align:center;}

.hm-toast-err{background:#fff7ed;border:1px solid #ff6200;color:#d95c00;}

.hm-toast-ok{background:#f0fbf4;border:1px solid #07c160;color:#059048;}

.hm-toast.on{display:block;}

@keyframes hmPvHi{0%{box-shadow:0 0 0 0 rgba(72,176,247,.38)}70%{box-shadow:0 0 0 16px rgba(72,176,247,0)}100%{box-shadow:0 0 0 0 rgba(72,176,247,0)}}

.card.hm-pv-hi{border-color:#48d2e9;animation:hmPvHi 1.5s ease-out 2}



/* v19e40: 「我的xx」徽章统一 #ff6200 三态（短链/活码/卡片全部） */

a.btn.hm-mine{background:#ff6200;border-color:#ff6200;color:#fff;}

a.btn.hm-mine:hover{background:#ff7d2e;border-color:#ff7d2e;color:#fff;}

a.btn.hm-mine:focus,a.btn.hm-mine:active,a.btn.hm-mine.active{background:#e05400;border-color:#e05400;color:#fff;}

a.btn.hm-mine.hm-mine-hm{background:#ff6200;border-color:#ff6200;color:#fff;}

a.btn.hm-mine.hm-mine-hm:hover{background:#ff7d2e;border-color:#ff7d2e;color:#fff;}

a.btn.hm-mine.hm-mine-hm:focus,a.btn.hm-mine.hm-mine-hm:active,a.btn.hm-mine.hm-mine-hm.active{background:#e05400;border-color:#e05400;color:#fff;}

a.btn.hm-mine.hm-mine-cd{background:#ff6200;border-color:#ff6200;color:#fff;}

a.btn.hm-mine.hm-mine-cd:hover{background:#ff7d2e;border-color:#ff7d2e;color:#fff;}

a.btn.hm-mine.hm-mine-cd:focus,a.btn.hm-mine.hm-mine-cd:active,a.btn.hm-mine.hm-mine-cd.active{background:#e05400;border-color:#e05400;color:#fff;}

/* v19e40: 三系统列表页统一组件（自 m_myurl.css 升级共享）：分组 chips 同栏 + 默认预览卡 */

.card-header h4.pull-left{margin:0;line-height:30px;}

.hm-urlsorts{display:inline-block;margin-left:12px;vertical-align:middle;}

.hm-urlsorts .btn{margin:2px 8px 2px 0;font-size:12px;padding:2px 10px;line-height:1.5;}

.hm-pv-empty{text-align:center;}

.hm-pvq{position:relative;width:200px;height:200px;opacity:.38;margin:0 auto 14px;}

.hm-pvq-img{width:200px;height:200px;display:block;}

.hm-pvq-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;object-fit:cover;border-radius:8px;background:#fff;padding:3px;box-sizing:border-box;}

.hm-pv-line{max-width:430px;margin:0 auto 12px;}

.hm-pv-line:last-child{margin-bottom:0;}





/* v19e35: 统计栏首列恢复左 padding，修正负 margin 突出容器，与功能入口栏/功能卡区对齐 */

.lyear-layout-content .container-fluid>.row.hm-statrow>[class*="col-"]:first-child{padding-left:15px;}



/* ===== v19e42: 列表页统计条彩盒版（v19e43 单行+压高 / v19e44 圆角3px+前标间距+数值右对齐） + 活码功能视图左栏放宽 ===== */

/* 统计盒彩盒版（仅 stats_bar.php 使用；creat 等页旧 cst-box 结构不受影响）：teal/red/green/purple 四色盒+白色圆环前标 */

/* ===== v19e43: 统计盒单行化（前标/label/数值一行）+ 盒高压缩 ===== */

.cst-rowc{margin:14px 0 20px;display:flex;gap:15px;flex-wrap:wrap;}

.cst-boxc{flex:1;min-width:200px;display:flex;align-items:center;padding:9px 30px;border-radius:3px;border:0;color:#fff;}

.cst-bico{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.18);margin-right:16px;text-align:center;}

.cst-bico:before{font-family:"Material Design Icons";font-size:16px;line-height:32px;}

.cst-bmain{min-width:0;flex:1;display:flex;align-items:center;gap:8px;white-space:nowrap;}

.cst-boxc .cst-lab{font-size:13px;color:rgba(255,255,255,.92);line-height:20px;margin:0;}

.cst-boxc .cst-num{font-size:17px;font-weight:700;color:#fff;line-height:20px;margin-left:auto;}

.cst-unit{font-size:12px;font-weight:400;margin-left:3px;color:rgba(255,255,255,.92);}

.cst-c-teal{background:#33cabb;}

.cst-c-red{background:#f56c6c;}

.cst-c-green{background:#07c160;}

.cst-c-purple{background:#7a5af8;}

.cst-c-teal .cst-bico:before{content:"\F339";}

.cst-c-red .cst-bico:before{content:"\F415";}

.cst-c-green .cst-bico:before{content:"\F208";}

.cst-c-purple .cst-bico:before{content:"\F535";}

/* v19e46: 「数据统计」标题与徽章间距收紧（仅标题后跟随的统计条生效，列表页顶部统计条不受影响）+ 功能页徽章加高（$st_big） */

.hm-section-title+.cst-rowc{margin-top:0;}

.cst-rowc.cst-big>.cst-boxc{padding-top:18px;padding-bottom:18px;}

/* 活码功能视图（huoma.php?act=func）无右栏预览，左栏放宽至 100% */

.hm-splitrow.hm-nopv>.hm-colL{flex:1 1 100%;max-width:100%;}

/* 两栏拆分容器（myurl/huoma/card_list 列表页共用）：左 60% 分组+列表，右 40% 预览图 */

.hm-splitrow{display:flex;flex-wrap:wrap;margin:0 -15px;}

.hm-splitrow>.hm-colL{flex:0 0 66.667%;max-width:66.667%;padding:0 15px;box-sizing:border-box;display:flex;flex-direction:column;}

.hm-splitrow>.hm-colR{flex:0 0 33.333%;max-width:33.333%;padding:0 15px;box-sizing:border-box;}

.hm-splitrow>.hm-colL>.card:last-child{flex:1;display:flex;flex-direction:column;margin-bottom:0;}

.hm-splitrow>.hm-colL>.card:last-child>.card-body{flex:1;}

@media (max-width:991px){.hm-splitrow>.hm-colL,.hm-splitrow>.hm-colR{flex:0 0 100%;max-width:100%;}}

/* huoma 概览页 col-12 外壳：拆分行撑满剩余高度（对齐 v17g 单卡撑满行为） */

.lyear-layout-content .container-fluid>.row>.col-12>.hm-splitrow{flex:1;}

/* v19e83z69 顶栏会员三联卡+余额卡（原内联布局迁入；色值仍在 nav.php 按项内联输出，窄屏渐进收纳旧规则沿用） */

.topbar-right .tb-vip-strip{display:flex;align-items:center;gap:10px;}

.topbar-right .tb-vip-card{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid #eceef1;border-radius:5px;padding:6px 9px;}

.topbar-right .tb-vip-ico{width:22px;height:22px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;flex:none;}

.topbar-right .tb-vip-ico i{color:#fff;font-size:13px;line-height:1;}

.topbar-right .tb-vip-name{font-size:14px;font-weight:600;color:#262a2f;flex:none;white-space:nowrap;}

.topbar-right .tb-vip-meta{font-size:12px;color:#8a9099;flex:none;white-space:nowrap;}

.topbar-right .tb-vip-btn{flex:none;display:inline-block;padding:3px 12px;border-radius:5px;border:1px solid transparent;font-size:12px;font-weight:600;line-height:1.5;text-decoration:none;}

.topbar-right .tb-vip-done{background:#f2f3f5;border-color:#e5e6eb;color:#a6a9ad;cursor:default;}

.topbar-right .tb-vip-bal{flex-direction:column;gap:0;padding:4px 12px;text-align:center;}

.topbar-right .tb-vip-bal-txt{font-size:12px;color:#8a9099;white-space:nowrap;}

.topbar-right .tb-vip-bal-txt b{color:#262a2f;font-weight:700;font-size:14px;}

.topbar-right .tb-vip-recharge{margin-top:2px;padding:2px 12px;background:rgba(72,176,247,.08);border-color:rgba(72,176,247,.35);color:#2e8fdc;}



/* v19e82 顶栏窄屏渐进收纳（防 topbar-right 头像/会员卡溢出视口）：1699 收间距 → 1599 隐到期文字+缩头像 → 1399 隐卡片名称与用户名；767 以下已有整块隐藏规则 */

@media (max-width:1699px){

  .topbar-right .tb-vip-li > div{gap:6px;}

  .topbar-right .tb-vip-li > div > div{padding:6px 7px;gap:5px;}

  .topbar-right .tb-vip-li > div > div > span:nth-child(4),

  .topbar-right .tb-vip-li > div > div > a:nth-child(4){padding:3px 8px;}

}

@media (max-width:1599px){

  .topbar-right .tb-vip-li > div > div > span:nth-child(3){display:none;}

  .topbar-right .img-avatar-48{width:38px;height:38px;}

  .topbar-right .m-r-10{margin-right:6px;}

}

@media (max-width:1399px){

  .topbar-right .tb-vip-li > div > div > span:nth-child(2){display:none;}

  .topbar-right .hm-topli:first-child > a > span{display:none;}

}



/* v19e83w：一级导航右侧统一补 > ——与 nav-item-has-subnav 展开箭头同款（直链栏目/直链一级页视觉统一，无展开态不旋转） */

.nav-drawer > li.nav-item:not(.nav-item-has-subnav) > a:after{position:absolute;right:24px;font-family:'Material Design Icons';font-size:10px;line-height:1.75;content:'\f142';}



/* ===== v19e83m24 手机端整站适配（≤767；PC 与 ≥768 零影响） =====

   ①顶栏重排：第一行 ☰+返回+头像(32px)；第二行 会员三联卡+余额 横向滑动 chips。

     （旧 v9.113「≤767 整块隐藏 tb-vip-li」被 v19e14 .hm-topli.hm-topli 同特异性后置 display:inline-block 覆盖早已失效，三联卡 452px 溢出视口——本次以更高特异性重写）

     实现：topbar-right display:contents 把 li 提升为 topbar 直接项（避开中间层 wrap 塌陷）；

     不支持 contents 的老内核回退=三联卡隐藏防溢出（顶栏单行）。 */

@media (max-width:767px){

  .lyear-layout-header .navbar .topbar{height:auto;min-height:52px;flex-wrap:wrap;padding:0 10px 2px;}

  .lyear-layout-header .navbar .topbar .topbar-left{flex:1 1 auto;min-width:0;}

  .lyear-layout-header .navbar .topbar .topbar-right .img-avatar{width:32px;height:32px;margin-right:6px;}

  .lyear-layout-header .navbar .topbar .topbar-right>li>a{padding:8px 0 8px 10px;font-size:14px;}

  /* 回退：三联卡整块隐藏（修复后的 v9.113 行为） */

  .lyear-layout-header .navbar .topbar .topbar-right .tb-vip-li{display:none;}

  /* 内容区顶部补偿：顶栏单行 */

  .lyear-layout-content{padding-top:64px;}

  @supports (display:contents){

    .lyear-layout-header .navbar .topbar .topbar-right{display:contents;}

    .lyear-layout-header .navbar .topbar .topbar-right>li{display:flex;align-items:center;}

    .lyear-layout-header .navbar .topbar .topbar-right>li.hm-topli.hm-topli{display:flex;margin-left:0;}

    .lyear-layout-header .navbar .topbar .topbar-right>li.tb-vip-li.hm-topli{display:contents;}

    .lyear-layout-header .navbar .topbar .topbar-right>li.tb-vip-li>div{flex:none;width:100%;max-width:100%;min-width:0;order:3;align-self:flex-start;text-align:left;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:3px 0 8px;scrollbar-width:none;}

    .lyear-layout-header .navbar .topbar .topbar-right>li.tb-vip-li>div::-webkit-scrollbar{display:none;}

    /* 内容区顶部补偿：顶栏两行（第一行 ~52 + chips 行 ~60） */

    .lyear-layout-content{padding-top:118px;}

  }

  /* ②负边距溢出修复：container ≤767 padding 12px，但 .row/.hm-splitrow 仍 -15px 负边距 → 视口 +6px 横向溢出（col-lg-4/6、col-12、mem-profile、cst-rowc、hm-banner 全部 w396 的根因；含嵌套 row 全局放宽） */

  .lyear-layout-content .row{margin-left:0;margin-right:0;}

  .hm-splitrow{margin-left:0;margin-right:0;}

  /* ④列表页超宽表格（活码 683px 等）外层横滚，不再被裁切；新建/编辑页多列表格同理——

     BS table width:100% 会被容器压扁成每列竖字，改 width:auto 由内容撑开+容器横滚（表头竖字挤压修复） */

  .hm-splitrow>.hm-colL .card-body{overflow-x:auto;-webkit-overflow-scrolling:touch;}

  .lyear-layout-content .card-body{overflow-x:auto;}

  .lyear-layout-content .card-body table.table{width:auto;min-width:100%;}

  /* 表单页链接表（hm-twrap 内 table.table width:100% 被 366 容器压扁成竖字）——最小宽撑开横滚 */

  .lyear-layout-content .hm-twrap table.table{width:auto;min-width:680px;}

  /* ③活码/卡片功能页 hero 兜底：统计+按钮组强制整行换行，防老内核 flex 渲染差异把主标题列挤压成竖条（老板真机截图症状） */

  .hm-type-hero-side{flex:0 0 100%;flex-wrap:wrap;}

  .hm-type-hero-main{min-width:240px;}

}



/* v19e83z32: 按钮/提示框圆角统一 3px（覆盖 bootstrap .btn 4px） */

.btn{border-radius:3px}



/* v19e83z72 移动端顶栏极简：三联卡+余额条撤出顶栏（原 2×2 占屏 1/3 且全页长驻；权益信息 index 页「我的权益」已有完整卡，开通/充值走侧边栏菜单），顶栏回归单行：汉堡+首页+头像 */

@media (max-width:767px){

  .lyear-layout-header .navbar .topbar{flex-wrap:wrap;align-items:center;padding-top:9px;padding-bottom:7px;}

  /* v19e83z70: 手机端返回钮改为「首页」直跳（JS 置换文字/行为，见 nav.php），图标隐藏、顶栏加内边距不贴顶 */

  /* v19e83z73: 顶栏单行修复——topbar-right 取消 width:100%（整行宽会把头像挤到第二行、与 ☰/首页 错位），改 auto+margin-left:auto 与左侧按钮同行右对齐 */

  .lyear-layout-header .navbar .topbar .topbar-right{display:flex;flex-wrap:nowrap;width:auto;margin-left:auto;align-items:center;}

  /* v19e83z73: 账号文本回归（v19e82 ≤1399 防溢出隐藏不适用于手机），并调到头像左侧；a 转 inline-flex 用 order 调序 */

  .lyear-layout-header .navbar .topbar .topbar-right>li.hm-topli:first-child>a{display:inline-flex;align-items:center;}

  .lyear-layout-header .navbar .topbar .topbar-right>li.hm-topli:first-child>a>span{display:inline-block;order:1;color:#262a2f;min-width:0;max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

  .lyear-layout-header .navbar .topbar .topbar-right>li.hm-topli:first-child>a>img.img-avatar{order:2;margin-left:4px;margin-right:0;}

  .lyear-layout-header .navbar .topbar .topbar-right .tb-vip-li{display:none;}

  /* 压过 m24 @supports 块的 >li.tb-vip-li.hm-topli{display:contents}(0,6,1)：双倍 hm-topli 提到 (0,7,1) */

  .lyear-layout-header .navbar .topbar .topbar-right>li.tb-vip-li.hm-topli.hm-topli{display:none;}

  .lyear-layout-header .navbar .topbar .topbar-right>li.tb-vip-li.hm-topli.hm-topli>div{display:none;}

  /* 顶栏回归单行后的内容区顶部补偿（压过 m24 的 118px 两行补偿） */

  .lyear-layout-content{padding-top:64px;}

  /* 内容区按钮触位加高（分组 chips 等 24px→30px） */

  .lyear-layout-content .btn{min-height:30px;}

  /* 我的账户 卡片 2×2 紧凑（原 col-12 全宽堆叠过高） */

  .hm-statrow>[class*="col-"]{flex:0 0 50%;max-width:50%;}

  .hm-statrow .card-body{padding:12px 10px;}

  .hm-statrow .img-avatar-48{width:34px;height:34px;}

  .hm-statrow .h3{font-size:17px;}

  .hm-statrow .h6{font-size:12px;}

  /* vip 页三选项卡横排等宽（原 inline-block 窄屏逐个换行堆叠） */

  .card .vip-tabs.vip-tabs{display:flex;gap:6px;}

  .card .vip-tabs.vip-tabs .tab-btn{flex:1 1 0;margin-right:0;padding:10px 2px;font-size:14px;text-align:center;white-space:nowrap;}

  /* v19e83z71: 移动端全页模块边距统一 12px——负外距归零（m_index .mem-profile -15px 等）、区块上下距统一、标题与卡片左缘对齐 */

  .lyear-layout-content .container-fluid{padding:14px 12px 20px;}

  .lyear-layout-content .container-fluid>.mem-profile,

  .lyear-layout-content .container-fluid>.hm-section-title,

  .lyear-layout-content .container-fluid>.cst-rowc,

  .lyear-layout-content .container-fluid>.row,

  .lyear-layout-content .container-fluid>.hm-splitrow{margin-left:0;margin-right:0;}

  .lyear-layout-content .hm-section-title{margin:18px 0 12px;padding-left:0;}

  .lyear-layout-content .container-fluid>.mem-profile{margin-bottom:0;}

}



/* v19e83z105: 三系统功能页（creat/huoma/cards 的 func 视图）功能卡列 padding 归零——与横幅/标题 12px 基准对齐（原 col 15px 内缩 39px 过大）；hm-card 自带 margin-bottom 20 卡间距不受影响 */

@media (max-width:767px){

  .ly-featrow>[class*="col-"]{padding-left:0;padding-right:0;}

}



/* v19e83z106: 功能卡按钮移至描述下方（DOM 已换位，PC 用 absolute 钉回首行右侧复原原布局）；移动端回正自然流右对齐 */

@media (max-width:767px){

  .hm-card-btn{position:static;margin:14px 0 0 auto;}

}



/* v19e83z107: 三系统分组卡重设计（标题行=图标+标题+动作钮，chips 两列等宽网格）+ 活码列表移动端行卡片化 + 活码页两卡边距对齐。

   钩子类：hm-grpcard（三页分组卡，PC 无样式零影响）、hm-list-tb（活码列表表，PC 无样式零影响）。全部规则收 ≤767。 */

@media (max-width:767px){

  /* 1) 活码页分组/列表卡与其它模块左右缘对齐：splitrow 列 15px 内缩是 27px 错位根因 */

  .lyear-layout-content .hm-splitrow>.hm-colL,

  .lyear-layout-content .hm-splitrow>.hm-colR{padding-left:0;padding-right:0;}

  /* 2) 卡头/卡体左右内边距统一 12px（对齐 vip 页 20260920z 基准） */

  .lyear-layout-content .card.card-primary>.card-header,

  .lyear-layout-content .card.card-primary>.card-body{padding-left:12px;padding-right:12px;}

  /* 3) 分组卡头：标题+动作钮一行，chips 独立成两列等宽网格 */

  .lyear-layout-content .hm-grpcard>.card-header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px;}

  .lyear-layout-content .hm-grpcard>.card-header h4.pull-left{float:none;flex:1 1 auto;}

  .lyear-layout-content .hm-grpcard>.card-header>.pull-right{float:none;margin:0;order:1;}

  .lyear-layout-content .hm-grpcard .hm-urlsorts{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:1 1 100%;margin:8px 0 0;order:2;}

  .lyear-layout-content .hm-urlsorts .btn{display:flex;align-items:center;justify-content:center;height:36px;margin:0;padding:0 10px;font-size:14px;line-height:1.2;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  /* 4) 活码列表行卡片化：9 列表格改三行式卡片（表头行隐藏；仅 .hm-list-tb 挂载） */

  .lyear-layout-content .hm-twrap table.table.hm-list-tb{display:block;width:100%;min-width:0;}

  .lyear-layout-content .hm-twrap .hm-list-tb tbody{display:block;width:100%;}

  .lyear-layout-content .hm-twrap .hm-list-tb tr:first-child{display:none;}

  .lyear-layout-content .hm-twrap .hm-list-tb tr{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;column-gap:10px;row-gap:7px;background:#fff;border:1px solid #e8ecf1;border-radius:5px;margin:0 0 10px;padding:10px 12px;}

  .lyear-layout-content .hm-twrap .hm-list-tb td{display:block;width:auto;border-top:0;padding:0;background:transparent;}

  .hm-list-tb td:nth-child(1){grid-row:1;grid-column:1;}

  .hm-list-tb td:nth-child(2){grid-row:1;grid-column:2;}

  .hm-list-tb td:nth-child(3){grid-row:1;grid-column:3;font-size:15px;font-weight:700;color:#101828;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

  .hm-list-tb td:nth-child(7){grid-row:1;grid-column:4;font-size:14px;}

  .hm-list-tb td:nth-child(4){grid-row:2;grid-column:1/3;}

  .hm-list-tb td:nth-child(5){grid-row:2;grid-column:3/5;min-width:0;display:flex;align-items:center;}

  .hm-list-tb td:nth-child(6){grid-row:3;grid-column:1/3;font-size:12px;color:#667085;}

  .hm-list-tb td:nth-child(6)::before{content:"扫码 ";color:#98a2b3;}

  .hm-list-tb td:nth-child(8){grid-row:3;grid-column:3;font-size:12px;color:#98a2b3;}

  .hm-list-tb td:nth-child(9){grid-row:3;grid-column:4;display:flex;gap:12px;justify-self:end;}

  .hm-list-tb td:nth-child(9) a{font-size:14px;}

  /* 行内元素适配：二维码 40px 加大触位、短链 url 省略+复制钮不缩、类型标不折行 */

  .hm-list-tb .hm-qrnew-thumb{width:40px;height:40px;margin-right:8px;}

  .hm-list-tb .hm-dlbtn{padding:6px 12px;font-size:13px;}

  .hm-list-tb td:nth-child(5) .hm-url{flex:1 1 auto;min-width:0;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;}

  .hm-list-tb td:nth-child(5) .hm-copybtn{flex:0 0 auto;}

  .hm-list-tb .hm-tag{white-space:nowrap;}

  /* 空态行占满整行 */

  .hm-list-tb td:only-child{grid-column:1/-1;grid-row:auto;font-weight:400;color:#98a2b3;font-size:14px;}

  /* 全选条 */

  .lyear-layout-content .hm-listbar{display:flex;align-items:center;gap:14px;margin:4px 0 0;}

}



/* v19e83z108: 功能卡描述文字与图标左缘对齐——清掉 PC 给标题让位的 64px 缩进（≤767；PC 零改动） */

@media (max-width:767px){

  .hm-card .hm-card-desc.hm-card-desc{padding-left:0;}

}



/* v19e83z109: 单个生成页重设计——跳转方式卡 2×2 横排（治名称竖字：icon 32/tick 22/卡 padding 10 后名称余量 80px+），

   兼容旧结构（member_creat 无 hm-ucard-hd：icon/name/tick/desc 直挂卡下用 order 排）；域名选择 radio 两列卡片化（dm-grid/dm-radio 钩子类 PC 无样式零影响，:has 选中高亮老内核降级无高亮）。全部收 ≤767。 */

@media (max-width:767px){

  /* z110 老板定稿：跳转方式一行一个（单列），卡宽余量大名称/描述全宽松 */

  .hm-ucards{grid-template-columns:1fr;gap:8px;margin:6px 0 12px;}

  .hm-ucard{display:flex;flex-wrap:wrap;align-items:center;padding:10px 10px 9px;}

  .hm-ucard .hm-ucard-hd{flex:0 0 100%;gap:8px;}

  .hm-ucard .hm-ucard-icon{width:32px;height:32px;margin-bottom:0;flex:none;}

  .hm-ucard .hm-ucard-icon svg{width:18px;height:18px;}

  .hm-ucard .hm-ucard-name{font-size:14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  .hm-utick{width:22px;height:22px;font-size:13px;}

  .hm-ucard>.hm-ucard-icon{order:1;margin:0;}

  .hm-ucard>.hm-ucard-name{order:2;flex:1;min-width:0;margin:0;}

  .hm-ucard>.hm-utick{order:3;}

  .hm-ucard .hm-ucard-desc{order:4;flex:0 0 100%;margin:6px 0 0;min-height:0;padding-left:0;line-height:1.5;}

  /* 域名选择两列卡片 */

  .dm-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 2px;}

  .dm-grid label.dm-radio{display:flex;align-items:center;gap:6px;margin:0;min-height:36px;padding:3px 9px;border:1px solid #e3e8ef;border-radius:3px;background:#fff;font-size:14px;font-weight:400;color:#344054;white-space:nowrap;overflow:hidden;}

  .dm-grid .dm-radio input[type="radio"]{margin:0;flex:none;accent-color:#48d2e9;}

  .dm-grid label.dm-radio:has(input:checked){border-color:#48d2e9;background:#f4faff;}

}



/* v19e83z114: 跳转方式折叠选择——PC 及所有宽度默认隐藏头部（空按钮防占位），仅 ≤767 启用折叠形态 */

.hm-usel-hd{display:none;}



/* v19e83z111: 生成表单页（act=form/custom 两栏）边距统一——fm-col 列 15px 内缩归零，生成表单卡与预览图卡左右缘同 12px 基准；member 移动端全部 .card 头/体内边距统一 12px（原 15/20px 缩进是「边距不齐」主因）。全部收 ≤767；PC 两栏原样。 */

@media (max-width:767px){

  .fm-col.fm-col{padding-left:0;padding-right:0;}

  .lyear-layout-content .card>.card-header,

  .lyear-layout-content .card>.card-body{padding-left:12px;padding-right:12px;}

  .fm-col .card{margin-left:0;margin-right:0;}

  /* z112: 套餐额度文字换行到标题下方（PC inline 原样）；跳转方式图标再调小 26px */

  .fm-col .card-header h4 .quota-tip{display:block;margin:4px 0 0;}

  .hm-ucard .hm-ucard-icon{width:22px;height:22px;border-radius:5px;}

  .hm-ucard .hm-ucard-icon svg{width:13px;height:13px;}

  /* z114/z115: 跳转方式折叠+悬浮下拉——收起一行当前值；展开 fixed 浮层覆盖不推内容（滚动/点外/选中即收）；与域名选择间距加大 */

  .hm-usel{display:block;margin:8px 0 18px;}

  .hm-usel .hm-ucards{display:none;}

  .hm-usel.open .hm-ucards{display:grid;grid-template-columns:1fr;gap:8px;}

  .hm-usel .hm-ucards.hm-float{position:fixed;z-index:9998;margin:0;background:#fff;border:1px solid #e3e8ef;border-radius:3px;box-shadow:0 12px 32px rgba(16,24,40,.18);padding:8px;max-height:66vh;overflow:auto;}

  .hm-usel-hd{display:flex;align-items:center;gap:8px;width:100%;min-height:46px;padding:9px 12px;background:#fff;border:1px solid #e3e8ef;border-radius:3px;font-size:14px;font-weight:700;color:#101828;cursor:pointer;font-family:inherit;text-align:left;}

  .hm-usel.open .hm-usel-hd{border-color:#48d2e9;}

  .hm-usel-hd .hm-usel-ico{width:26px;height:26px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex:none;}

  .hm-usel-hd .hm-usel-ico svg{width:15px;height:15px;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.18));}

  .hm-usel-hd .hm-usel-name{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  .hm-usel-hd .hm-usel-caret{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #98a2b3;flex:none;transition:transform .2s;}

  .hm-usel.open .hm-usel-caret{transform:rotate(180deg);}

}



/* v19e83z126: 移动端全站边距统一——顶层两栏列 padding 全归零（col-lg-8 右 15px / col-lg-4 左 15px 残留是「上下两卡左右不对齐」根因，fm-col 方案推广到全站顶层 row；

   嵌套 row 的 hm-statrow/ly-featrow/表单 col-md-3/9 不在作用域不受影响，PC 首尾列规则 513/514 原样）。全部收 ≤767。 */

@media (max-width:767px){

  .lyear-layout-content .container-fluid>.row>[class*="col-"]{padding-left:0;padding-right:0;}

}



/* v19e83z126: 批量生成返回结果行卡（JS 模板共用，PC/移动同构）：二维码 56px 左置、短链行=短链加粗省略+编辑钮右置淡底描边 3px、指向/时间灰字两行；失败分支红字 errmsg。 */

.hm-bres{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid #e8ecf1;border-radius:5px;background:#fff;}

.hm-bres+.hm-bres{margin-top:10px;}

.hm-bres-qr{width:56px;height:56px;flex:none;display:block;}

.hm-bres-info{flex:1;min-width:0;}

.hm-bres-link{display:flex;align-items:center;gap:8px;}

.hm-bres-short{flex:1 1 auto;min-width:0;font-size:14px;font-weight:700;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.hm-bres-edit{flex:none;display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:400;line-height:1;padding:6px 10px;border:1px solid rgba(72,176,247,.35);background:rgba(72,176,247,.1);color:#2e8fdc;border-radius:3px;text-decoration:none;}

.hm-bres-long{font-size:12px;font-weight:400;color:#667085;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.hm-bres-time{font-size:12px;font-weight:400;color:#98a2b3;margin-top:3px;}

.hm-bres-err .hm-bres-errmsg{font-size:13px;font-weight:400;color:#e54d42;}



/* 会员后台列表页：活码/卡片列表左右分屏（左列表 + 右页面样式预览），点行切换预览、点「编辑」才跳编辑页 */

.hms-empty{background:#fff;border:1px dashed #d0d5dd;border-radius:6px;padding:70px 20px;text-align:center;color:#98a2b3;font-size:14px;}

.hm-splitrow>.hm-colR>.hm-section-title{margin-top:16px;}

/* 列表行「块」式布局：图标 / 短链 / 名称 / 网址·时间 / 次数·统计 / 编辑（每块最多两行） */
.cl-list .list-group-item,.hml-list .list-group-item{cursor:pointer;position:relative;}
.cl-list .list-group-item:hover,.hml-list .list-group-item:hover{background:#f5faff;}
.cl-list .list-group-item.active,.cl-list .list-group-item.active:hover,
.hml-list .list-group-item.active,.hml-list .list-group-item.active:hover{background:#48d2e9;border-color:#48d2e9;color:#fff;}
.cl-list .list-group-item.active .btn-primary,.hml-list .list-group-item.active .btn-primary{background:#2baa9d;border-color:#2baa9d;}
.cl-list .list-group-item.active .cl-time,.hml-list .list-group-item.active .cl-time,
.cl-list .list-group-item.active .cl-blk-stat>b,.hml-list .list-group-item.active .cl-blk-stat>b{color:rgba(255,255,255,.85);}
.cl-list .cl-row,.hml-list .hml-item{display:flex;align-items:center;gap:20px;min-height:78px;padding:12px 14px 12px 32px;}
.cl-list .cl-row>.cl-blk,.hml-list .hml-item>.cl-blk,.cl-list .cl-head>.cl-blk,.hml-list .cl-head>.cl-blk{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;}
.cl-list .list-group-item input[type=checkbox],.hml-list .list-group-item input[type=checkbox]{position:absolute;left:8px;top:50%;transform:translateY(-50%);margin:0;}
.cl-blk-icon{flex:0 0 44px;position:relative;}
.cl-blk-icon>a{display:block;line-height:0;}
.cl-blk-link{flex:1 1 200px;min-width:0;}
.cl-blk-name{flex:1 1 140px;min-width:0;}
.cl-blk-url{flex:2 1 160px;min-width:0;}
.cl-blk-stat{flex:0 0 56px;align-items:flex-start;}
/* 操作列定宽：表头与行单元格同宽，其左侧各列左边界才能上下对齐 */
.cl-blk-act{flex:0 0 44px;padding-top:22px;}
.cl-blk .btn{position:static !important;transform:none !important;}
.cl-blk-act .btn{margin:0 !important;}
.cl-blk-link .btn.btn-warning{margin-left:2px;}
.cl-blk-link>b,.cl-blk-name>b,.cl-blk-url>span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;}
.cl-blk-stat>b{display:block;font-weight:400;font-size:12px;color:#86909c;line-height:1.4;}
.cl-time{font-size:12px;color:#86909c;}
.cl-l2{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.cl-l2 .hm-viptag,.cl-l2 .hm-tag{display:inline-flex;align-items:center;justify-content:center;height:24px;padding-top:0;padding-bottom:0;box-sizing:border-box;flex:0 0 auto;}
.cl-l2 .btn.btn-xs,.cl-blk-stat .btn.btn-xs,.cl-blk-act .btn.btn-xs{height:24px;padding-top:0;padding-bottom:0;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;}
.cl-blk-icon .hm-qrthumb-wrap{display:block;}
.cl-blk-icon .hm-qrnew-thumb{width:44px;height:44px;margin-right:0;padding:3px;box-sizing:border-box;display:block;}
.cl-blk-icon .hst-qw{margin-right:0;position:relative;}
.cl-blk-icon .hst-qr{width:44px;height:44px;padding:3px;}
.cl-list .cl-head,.hml-list .cl-head{display:flex;align-items:center;gap:20px;padding:10px 14px 10px 32px;background:#f7f9fb;color:#475467;font-weight:600;cursor:default;}
.cl-head>.cl-blk{flex-direction:row;padding-top:0;}
.cl-head .cl-blk{font-weight:600;}
.hml-list b{font-weight:normal;}

.list-group-item.card-item{cursor:pointer;}

.card-edit-bt{margin-left:4px;}

.hm-grptypes{padding-top:10px;padding-bottom:6px;}

.hm-grp-lab{font-size:13px;color:#667085;margin-right:10px;line-height:30px;}

.hm-phone-simple{width:232px;max-width:100%;margin:0 auto;padding:18px 12px 14px;border:1px solid #e4e7ec;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(16,24,40,.10);text-align:center;}

.hm-phone-simple .hm-pv-pic{width:80%;max-height:120px;object-fit:cover;border-radius:8px;margin:10px auto 0;display:block;}

@media (max-width:991px){.hm-splitrow>.hm-colR{margin-top:16px;}}



/* 卡片/短链列表行三段式（同管理端 a_card_list.css）：链接40% + 目标40% + 右侧次数悬浮，窄栏不溢出 */

.hm-splitrow .list-group-item .part{display:inline-block;width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;}



/* 活码列表 PC 表格：表头与单元格一律不换行，宽度不足时 hm-twrap 横向滚动 */

.lyear-layout-content .hm-list-tb th,.lyear-layout-content .hm-list-tb td{white-space:nowrap;vertical-align:middle;}



/* 我的短链列表：行悬停/选中高亮（与活码列表同方案，选中= #33cabb 淡底） */

.lyear-layout-content .list-group-item.hm-selrow{cursor:pointer;}

.lyear-layout-content .list-group-item.hm-selrow:hover{background:#f5f7f8;}

.lyear-layout-content .list-group-item.hm-selon,.lyear-layout-content .list-group-item.hm-selon:hover{background:rgba(51,202,187,.30);}



/* 预览三按钮：悬停/聚焦只变背景，字体恒白不变深色 */

.hm-qrbtm .hm-qrcopy>.btn:hover,.hm-qrbtm .hm-qrcopy>.btn:focus,.hm-qrbtm .hm-qrcopy>.btn:active{color:#fff!important;}

.hm-cpbtn{display:inline-block;width:96px;height:30px;line-height:28px;padding:0 8px;background:#f96868;border:1px solid #f96868;border-radius:4px;color:#fff;font-size:14px;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;}

.hm-cpbtn:hover,.hm-cpbtn:focus{background:#f85454;border-color:#f85454;color:#fff;}

.hm-cpbtn:disabled{opacity:.85;}



/* ===== 卡片预览 · 手机壳与聊天界面（列表右栏 + 新增/编辑页 共用一套视觉） =====

   背景：各卡片页自带的 css/pg/*.css 里也有一份同名预览样式，且生产站那些引用是无缓存戳的

   裸路径（改了浏览器 12 小时不刷新），故这里统一用 .phone-wrap / .hmlp-* 前缀提高特异性覆盖。 */



/* ---------- A. 手机外壳（精致化：金属渐变边 + 侧键 + 灵动岛） ---------- */

.phone-wrap{padding:14px 0 0;text-align:center;}

.phone-wrap .phone-clip{height:auto;overflow:visible;display:flex;justify-content:center;align-items:flex-start;}

.phone-scale{width:auto;flex:none;}

.phone-shrink{width:auto;height:auto;overflow:visible;}

.phone-shrink .phone-clip{width:auto;height:auto;transform:none;}

.phone-wrap .phone{

  width:300px;height:auto;min-height:526px;margin:0 auto;padding:9px;position:relative;border-radius:42px;

  background:linear-gradient(150deg,#5b606a 0%,#2d3138 34%,#191c21 100%);

  box-shadow:0 22px 44px rgba(16,24,40,.24),0 3px 10px rgba(16,24,40,.12),inset 0 0 0 1px rgba(255,255,255,.11);

}

.phone-wrap .phone:before{content:"";position:absolute;left:-3px;top:124px;width:3px;height:52px;border-radius:3px 0 0 3px;background:linear-gradient(#565b64,#2c3037);}

.phone-wrap .phone:after{content:"";position:absolute;right:-3px;top:152px;width:3px;height:76px;border-radius:0 3px 3px 0;background:linear-gradient(#565b64,#2c3037);}

.phone-wrap .phone-screen{

  position:relative;border-radius:34px;min-height:506px;overflow:hidden;display:flex;flex-direction:column;background:#f0f1f3;

}

.phone-wrap .notch{position:absolute;top:9px;left:50%;transform:translateX(-50%);width:86px;height:21px;border-radius:11px;background:#101216;z-index:6;}

.phone-wrap .notch:after{content:"";position:absolute;right:9px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:#2f343c;}



/* 状态栏 / 导航栏 / 时间 / 输入栏（三端共用骨架，配色各自覆盖） */

.phone-wrap .wx-status,.phone-wrap .dy-status,.phone-wrap .zh-status{

  height:42px;display:flex;justify-content:space-between;align-items:flex-end;padding:0 24px 5px;font-size:11px;font-weight:600;flex:none;

}

.phone-wrap .wx-nav,.phone-wrap .dy-nav,.phone-wrap .zh-nav{padding:7px 15px 9px;display:flex;align-items:center;flex:none;}

.phone-wrap .wx-back,.phone-wrap .dy-back,.phone-wrap .zh-back{font-size:19px;line-height:1;opacity:.92;}

.phone-wrap .wx-navuser,.phone-wrap .dy-navuser,.phone-wrap .zh-navuser{flex:1;text-align:center;margin-left:-20px;}

.phone-wrap .wx-navname,.phone-wrap .dy-navname,.phone-wrap .zh-navname{font-size:15px;font-weight:700;line-height:1.2;}

.phone-wrap .wx-navsub{font-size:10px;margin-top:1px;}

.phone-wrap .wx-dots,.phone-wrap .dy-dots,.phone-wrap .zh-dots{font-size:15px;letter-spacing:1.5px;opacity:.85;}

.phone-wrap .wx-chat,.phone-wrap .dy-chat,.phone-wrap .zh-chat{

  flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:12px;overflow:hidden;

  background-color:#f2f3f5;background-image:radial-gradient(rgba(16,24,40,.035) 1px,transparent 1px);background-size:12px 12px;

}

.phone-wrap .wx-time,.phone-wrap .dy-time,.phone-wrap .zh-time{font-size:11px;color:#a8aeb8;text-align:center;}

.phone-wrap .msg-row{display:flex;gap:9px;align-items:flex-start;}

.phone-wrap .wx-inputbar,.phone-wrap .dy-inputbar,.phone-wrap .zh-inputbar{flex:none;padding:9px 14px;display:flex;align-items:center;gap:10px;background:#fff;border-top:1px solid rgba(16,24,40,.06);}



/* 默认头像（浅灰人形；抖音另有品牌音符） */

.phone-wrap .msg-avatar,.phone-wrap .zh-avatar{

  width:38px;height:38px;border-radius:10px;flex:none;

  background:#dde2ea url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><circle cx='50' cy='35' r='17' fill='%23a8b3c1'/><path d='M17 100c0-23 15-33 33-33s33 10 33 33z' fill='%23a8b3c1'/></svg>") center/66% no-repeat;

}



/* ---------- B. 微信卡片预览 ---------- */

.phone-wrap .wx-status{background:#ededed;color:#111;}

.phone-wrap .wx-nav{background:#ededed;border-bottom:1px solid #dcdcdc;color:#111;}

.phone-wrap .wx-back,.phone-wrap .wx-navname,.phone-wrap .wx-dots{color:#111;}

.phone-wrap .wx-navsub{color:#9aa0a8;}

.phone-wrap .wx-chat{background-color:#eceef1;}

.phone-wrap .wx-bubble{

  position:relative;display:flex;gap:10px;max-width:214px;padding:12px;background:#fff;border-radius:12px;

  box-shadow:0 2px 10px rgba(16,24,40,.07),0 1px 3px rgba(16,24,40,.05);

}

.phone-wrap .wx-bubble:before{content:"";position:absolute;left:-4px;top:15px;width:9px;height:9px;background:#fff;transform:rotate(45deg);border-radius:2px;}

.phone-wrap .bub-left{flex:1;min-width:0;text-align:left;}

.phone-wrap .bub-title{font-size:14px;color:#111;font-weight:600;line-height:1.4;word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

.phone-wrap .bub-desc{font-size:12px;color:#9aa0a8;margin-top:5px;word-break:break-all;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}

.phone-wrap .bub-pic{

  width:58px;height:58px;border-radius:9px;flex:none;overflow:hidden;font-size:10px;color:#b6bcc6;

  background:linear-gradient(135deg,#eef1f5,#e1e6ed);display:flex;align-items:center;justify-content:center;

}

.phone-wrap .bub-pic img{border-radius:9px!important;}

.phone-wrap .wx-inputbar .voice,.phone-wrap .wx-inputbar .emoji{color:#8b929c;font-size:16px;}

.phone-wrap .wx-inputbar .box{flex:1;height:32px;background:#f2f4f7;border:1px solid #e6e9ef;border-radius:6px;}

.phone-wrap .wx-inputbar .plus{width:26px;height:26px;border:1px solid #cfd5de;border-radius:7px;color:#8b929c;font-size:16px;line-height:24px;text-align:center;}



/* ---------- C. 抖音卡片预览（深色导航，抖音私信） ---------- */

.phone-wrap .dy-status{background:#161823;color:#fff;}

.phone-wrap .dy-nav{background:#161823;color:#fff;}

.phone-wrap .dy-back,.phone-wrap .dy-navname,.phone-wrap .dy-dots{color:#fff;}

.phone-wrap .dy-chat{background-color:#f3f4f6;}

.phone-wrap .dy-avatar{

  width:38px;height:38px;border-radius:11px;flex:none;position:relative;

  background:linear-gradient(135deg,#ff4d6d 0%,#fe2c55 52%,#db1f45 100%);

  box-shadow:0 2px 6px rgba(254,44,85,.25);

}

.phone-wrap .dy-avatar:after{

  content:"";position:absolute;inset:0;

  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'><path d='M12 3v10.55A4 4 0 1 0 14 17V7h4V3h-6z'/></svg>") center/56% no-repeat;

}

.phone-wrap .dy-card{

  display:flex;gap:10px;max-width:226px;padding:10px;background:#fff;border-radius:12px;

  box-shadow:0 4px 14px rgba(16,24,40,.08),0 1px 3px rgba(16,24,40,.05);

}

.phone-wrap .dy-cardpic{

  width:76px;height:76px;border-radius:10px;flex:none;overflow:hidden;font-size:10px;color:#b6bcc6;

  background:linear-gradient(135deg,#eef1f5,#e1e6ed);display:flex;align-items:center;justify-content:center;

}

.phone-wrap .dy-cardpic img{border-radius:10px!important;}

.phone-wrap .dy-cardmain{flex:1;min-width:0;text-align:left;}

.phone-wrap .dy-cardtitle{font-size:14px;color:#161823;font-weight:700;line-height:1.4;word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

.phone-wrap .dy-carddesc{font-size:12px;color:#8b929c;margin-top:5px;word-break:break-all;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}

.phone-wrap .dy-cardhost{font-size:10px;color:#b0b6c0;margin-top:7px;}

.phone-wrap .dy-emo{color:#8b929c;font-size:16px;}

.phone-wrap .dy-box{flex:1;height:32px;background:#f2f4f7;border-radius:16px;font-size:12px;color:#b3b9c3;display:flex;align-items:center;padding:0 13px;}

.phone-wrap .dy-plus{width:26px;height:26px;border:1px solid #cfd5de;border-radius:50%;color:#8b929c;font-size:16px;line-height:24px;text-align:center;}



/* ---------- D. 知乎卡片预览 ---------- */

.phone-wrap .zh-status{background:#fff;color:#111;}

.phone-wrap .zh-nav{background:#fff;border-bottom:1px solid #eceef1;color:#111;}

.phone-wrap .zh-back,.phone-wrap .zh-navname,.phone-wrap .zh-dots{color:#111;}

.phone-wrap .zh-chat{background-color:#f5f7fa;}

.phone-wrap .zh-avatar{background-color:#dbe6fb;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><circle cx='50' cy='35' r='17' fill='%230084ff'/><path d='M17 100c0-23 15-33 33-33s33 10 33 33z' fill='%230084ff'/></svg>");}

.phone-wrap .zh-card{

  display:flex;gap:10px;max-width:226px;padding:12px;background:#fff;border-radius:12px;

  box-shadow:0 2px 10px rgba(16,24,40,.07),0 1px 3px rgba(16,24,40,.05);

}

.phone-wrap .zh-cardmain{flex:1;min-width:0;text-align:left;}

.phone-wrap .zh-cardtitle{font-size:14px;color:#1a1a1a;font-weight:700;line-height:1.4;word-break:break-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

.phone-wrap .zh-carddesc{font-size:12px;color:#8b929c;margin-top:5px;word-break:break-all;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}

.phone-wrap .zh-cardhost{font-size:10px;color:#b0b6c0;margin-top:7px;}

.phone-wrap .zh-cardpic{

  width:58px;height:58px;border-radius:9px;flex:none;overflow:hidden;font-size:10px;color:#b6bcc6;

  background:linear-gradient(135deg,#eef1f5,#e1e6ed);display:flex;align-items:center;justify-content:center;

}

.phone-wrap .zh-cardpic img{border-radius:9px!important;}

.phone-wrap .zh-emo{color:#8b929c;font-size:16px;}

.phone-wrap .zh-box{flex:1;height:32px;background:#f2f4f7;border-radius:6px;font-size:12px;color:#b3b9c3;display:flex;align-items:center;padding:0 13px;}

.phone-wrap .zh-send{color:#0084ff;font-size:13px;font-weight:600;}

.phone-wrap .phone-tip{color:#98a1ac;font-size:12px;margin-top:12px;line-height:1.7;}



/* ---------- E. 列表右栏：落地页样式预览（还原访客打开短链看到的页面）+ 二维码 ---------- */

.hmlp-panel{

  background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%);

  border-radius:16px;padding:18px;border:1px solid #e2e8f0;

  background-image:radial-gradient(rgba(56,189,248,.05) 1px,transparent 1px);background-size:18px 18px;

}

.hmlp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px;}

.hmlp-type{font-size:14px;font-weight:700;color:#1e293b;display:inline-flex;align-items:center;gap:8px;}

.hmlp-type::before{content:'';width:8px;height:8px;border-radius:50%;background:#48d2e9;}

.hmlp-tag{font-size:11px;color:#64748b;background:rgba(100,116,139,.08);border:1px solid rgba(100,116,139,.18);border-radius:3px;padding:2px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;}

.hmlp-summary{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:13px 14px;margin-bottom:16px;box-shadow:0 1px 2px rgba(16,24,40,.04);}

.hmlp-summary-title{font-size:13px;font-weight:700;color:#1f2937;line-height:1.4;word-break:break-all;}

.hmlp-summary-desc{font-size:12px;color:#64748b;line-height:1.5;margin-top:4px;word-break:break-all;}

.hmlp-device{text-align:center;margin-bottom:14px;}

.hmlp-device-cap{font-size:11px;color:#94a3b8;margin-top:10px;}

.hmlp-phone{width:230px;max-width:100%;margin:0 auto;padding:7px;position:relative;border-radius:32px;background:linear-gradient(150deg,#5b606a 0%,#2d3138 34%,#191c21 100%);box-shadow:0 14px 30px rgba(16,24,40,.18),0 2px 6px rgba(16,24,40,.10),inset 0 0 0 1px rgba(255,255,255,.11);}

.hmlp-phone:before{content:'';position:absolute;left:-3px;top:86px;width:3px;height:40px;border-radius:3px 0 0 3px;background:linear-gradient(#565b64,#2c3037);}

.hmlp-phone:after{content:'';position:absolute;right:-3px;top:108px;width:3px;height:56px;border-radius:0 3px 3px 0;background:linear-gradient(#565b64,#2c3037);}

.hmlp-notch{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:68px;height:18px;border-radius:9px;background:#101216;z-index:3;}

.hmlp-notch:after{content:'';position:absolute;right:7px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:#2f343c;}

.hmlp-screen{border-radius:26px;min-height:330px;padding:24px 13px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background-color:#eef0f3;background-image:radial-gradient(rgba(16,24,40,.035) 1px,transparent 1px);background-size:12px 12px;}

.hmlp-card{width:100%;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 10px rgba(16,24,40,.07),0 1px 3px rgba(16,24,40,.05);}

.hmlp-info{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;}

.hmlp-pic{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none;display:block;background:linear-gradient(135deg,#eef1f5,#e1e6ed);}

.hmlp-main{flex:1;min-width:0;}

.hmlp-title{font-size:13px;color:#1f2937;font-weight:600;line-height:1.4;word-break:break-all;text-align:left;}

.hmlp-desc{font-size:11px;color:#8b929c;line-height:1.5;margin-top:4px;word-break:break-all;text-align:left;}

.hmlp-go{margin-top:16px;display:inline-block;padding:9px 30px;font-size:13px;font-weight:700;color:#fff;letter-spacing:1px;border-radius:9px;background:linear-gradient(180deg,#12d16c,#07c160);box-shadow:0 4px 12px rgba(7,193,96,.32);}

.hmlp-host{margin-top:11px;font-size:10px;color:#a9b0ba;}

.hmlp-cap{font-size:11px;color:#98a1ac;text-align:center;margin:10px 0 0;}

.hmlp-qrbox{margin-top:14px;padding:14px 12px 12px;border-radius:12px;background:#f7f9fc;border:1px solid #e8edf5;text-align:center;}

.hmlp-qr{width:146px;display:block;margin:0 auto;border-radius:6px;}

.hmlp-qrtip{font-size:12px;color:#8b929c;margin-top:9px;}

.hmlp-share{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0;}

.hmlp-share .hmlp-qrbox{margin-top:0;}

.hmlp-actions{flex:none;display:flex;flex-direction:column;gap:6px;width:116px;}

.hmlp-actions .btn,.hmlp-actions a.btn{width:100%;justify-content:center;padding:7px 0;font-size:13px;font-weight:700!important;}

.cl-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:8px;}

.cl-head-row h4{margin:0;}

.cl-head-actions{display:flex;align-items:center;gap:10px;}

.cl-total{color:#999;font-size:13px;line-height:1;}



/* ---------- F. 卡片列表（仿活码列表 table） ---------- */

.card-list-tb{width:100%;margin:0;table-layout:auto;}

.card-list-tb th{background:#f8fafc;color:#475467;font-size:13px;font-weight:600;padding:12px 10px;border-bottom:1px solid #e2e8f0;white-space:nowrap;}

.card-list-tb td{padding:12px 10px;vertical-align:middle;font-size:13px;color:#334155;border-bottom:1px solid #f1f5f9;}

/* 卡片行缩略图 + 类型角标（气泡形，贴图标右上角） */
.cl-thumb{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:4px;background:#f1f5f9;color:#98a2b3;font-size:18px;flex:none;overflow:visible;}
.cl-thumb img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block;}
.cl-thumb.noimg{color:#c3cad4;}
.hm-corner{position:absolute;top:-7px;right:-7px;z-index:3;display:inline-block;font-size:10px;font-weight:400;line-height:1;color:#fff;padding:3px 6px;border-radius:9px 9px 9px 1px;white-space:nowrap;background:var(--hc,#5b6b7c);filter:drop-shadow(0 1px 2px rgba(15,23,42,.3));}
.hm-corner::after{content:"";position:absolute;left:2px;bottom:-4px;width:0;height:0;border-top:4px solid var(--hc,#5b6b7c);border-right:4px solid transparent;}
.cl-list b{font-weight:normal;}

.card-list-tb td .hm-tag{font-size:11px;padding:2px 7px;border-radius:3px;color:#fff;}

.card-list-tb td .hm-url{color:#64748b;font-size:12px;max-width:160px;display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

.card-list-tb td a{font-size:12px;color:#48d2e9;margin-right:8px;text-decoration:none;}

.card-list-tb td a:hover{text-decoration:underline;}

.cl-types{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:12px;}

.cl-types .btn{margin:0;}



/* 后台「我的卡片/会员卡片」切换标签（从 a_card_list.css 迁移，避免生产站裸路径缓存问题） */

.hm-mode-tabs{display:inline-flex;align-items:center;gap:8px;}

.hm-mode-tab{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:3px;font-size:13px;font-weight:400;color:#555;background:rgba(0,0,0,0.04);border:1px solid rgba(0,0,0,0.12);text-decoration:none;transition:all .15s ease;}

.hm-mode-tab i{font-size:14px;}

.hm-mode-tab.active{color:#fff;background:#337ab7;border-color:#337ab7;}

.hm-mode-tab:not(.active):hover{background:rgba(51,122,183,0.08);border-color:rgba(51,122,183,0.35);color:#337ab7;text-decoration:none;}

/* v9.254：时效徽章（临时/会员/永久/停用）会员端与后台共用 */
.hm-viptag{display:inline-block;font-size:12px;font-weight:400;line-height:1;padding:4px 8px;border-radius:3px;}
span.hm-vip-tmp,span.hm-vip-temp{background:#f0ad4e;color:#fff;}
span.hm-vip-mem{background:#337ab7;color:#fff;}
span.hm-vip-vip{background:#337ab7;color:#fff;}
span.hm-vip-perm{background:#5cb85c;color:#fff;}
.hm-vip-stop{background:#fdeaea;color:#d93636;}


/* v9.254：支付确认弹窗（来自 conn/payc.php，会员端活码升级复用，避免引入 front_extra.css 冲突） */
.pm-mask{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(17,19,24,.5);z-index:99999;display:none;align-items:center;justify-content:center;}

.pm-mask.on{display:flex;}

.pm-box{width:360px;max-width:92vw;background:#fff;border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.2);overflow:hidden;animation:pmIn .18s ease;}

@keyframes pmIn{from{transform:translateY(16px) scale(.96);opacity:0}to{transform:none;opacity:1}}

.pm-head{display:flex;align-items:center;padding:20px 20px 0;}

.pm-ico{width:36px;height:36px;border-radius:50%;background:#fef3e6;color:#ff6200;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:700;margin-right:10px;flex:none;}

.pm-title{font-size:16px;font-weight:700;color:#333;}

.pm-body{padding:16px 20px 2px;}

.pm-name{font-size:14px;font-weight:700;color:#333;margin-bottom:12px;}

.pm-price{display:flex;align-items:baseline;justify-content:space-between;background:#f7f8fa;border-radius:8px;padding:12px 14px;margin-bottom:10px;}

.pm-price .lab{font-size:13px;color:#666;}

.pm-price .val{font-size:24px;font-weight:700;color:#ff6200;}

.pm-price .val small{font-size:14px;font-weight:700;margin-right:2px;}

.pm-row{display:flex;justify-content:space-between;font-size:13px;color:#999;padding:5px 2px;}

.pm-row b{color:#333;font-weight:700;}

.pm-note{font-size:12px;color:#999;line-height:1.7;margin-top:10px;}

.pm-foot{display:flex;gap:10px;padding:18px 20px 20px;}

.pm-btn{flex:1;height:42px;border-radius:3px;font-size:15px;cursor:pointer;border:none;transition:opacity .15s;}

.pm-btn:active{opacity:.85;}

.pm-cancel{background:#f2f3f5;color:#666;}

.pm-ok{background:#07c160;color:#fff;font-weight:700;}

/* 活码列表：状态独立列 + 访问次数列 + 下载按钮实色徽章 */
.cl-blk-status{flex:0 0 66px;align-items:flex-start;}
.hml-list .cl-head,.hml-list .hml-item{gap:12px;}
.hml-list .hml-item>.cl-blk-link,.hml-list>.cl-head>.cl-blk-link{flex:2 1 200px;min-width:180px;}
.hml-list .hml-item>.cl-blk-name,.hml-list>.cl-head>.cl-blk-name{flex:1 1 140px;min-width:70px;}
.hml-list .hml-item>.cl-blk-url,.hml-list>.cl-head>.cl-blk-url{flex:1 1 160px;min-width:112px;}
.hml-list .hml-item>.cl-blk-status,.hml-list>.cl-head>.cl-blk-status{flex:0 0 62px;}
.hml-list .hml-item>.cl-blk-stat,.hml-list>.cl-head>.cl-blk-stat{flex:0 0 56px;}
.hm-stbadge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:3px;font-size:12px;font-weight:400;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;box-sizing:border-box;}
.hm-stbadge.hm-st-on{background:rgba(7,193,96,.12);border:1px solid rgba(7,193,96,.35);color:#07c160;}
.hm-stbadge.hm-st-off{background:rgba(229,72,77,.10);border:1px solid rgba(229,72,77,.35);color:#e5484d;}
.hml-item .hm-dlbtn{height:24px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;}
.hml-list .list-group-item.active .hm-stbadge{background:rgba(255,255,255,.92);border-color:rgba(255,255,255,.45);}
.hml-list .list-group-item.active .hm-stbadge.hm-st-on{color:#0e9484;}
.hml-list .list-group-item.active .hm-stbadge.hm-st-off{color:#c5303a;}
.hml-list .list-group-item.active .hm-dlbtn{background:#fff;border-color:#fff;color:#0e9484;}

/* 活码列表「状态」徽章与「访问次数」列底部按钮贴同一条底线（访问次数列 = 计数行 + 按钮行，高约 46px） */
.hml-list .hml-item>.cl-blk-status{min-height:46px;justify-content:flex-end;}

/* ===== 预览拟真升级 v2（信号条 / 导航圆头像 / 客服头像 / 气泡精修；card 新增页共用） ===== */
.phone-wrap .wx-sig{display:flex;align-items:center;gap:3px;margin-left:10px;}
.phone-wrap .wx-sig i{width:3px;border-radius:1px;background:#111;display:inline-block;}
.phone-wrap .wx-sig i:nth-child(1){height:4px}
.phone-wrap .wx-sig i:nth-child(2){height:6px}
.phone-wrap .wx-sig i:nth-child(3){height:8px}
.phone-wrap .wx-sig i:nth-child(4){height:10px;opacity:.3}
.phone-wrap .wx-sig b{font-size:10px;margin-left:2px;font-weight:400;}
.phone-wrap .wx-sig u{width:19px;height:10px;border:1px solid #111;border-radius:3px;display:inline-block;position:relative;text-decoration:none;opacity:.9;}
.phone-wrap .wx-sig u:after{content:"";position:absolute;left:2px;top:2px;bottom:2px;right:7px;background:#111;border-radius:1px;}
.phone-wrap .wx-sig u:before{content:"";position:absolute;right:-3px;top:3px;width:2px;height:4px;background:#111;border-radius:0 2px 2px 0;}
.phone-wrap .wx-sig em{font-style:normal;font-size:10px;margin-left:1px;}
.phone-wrap .notch{width:64px;}
.phone-wrap .wx-navuser{display:flex;align-items:center;justify-content:center;gap:7px;}
.phone-wrap .wx-navava{width:30px;height:30px;border-radius:50%;flex:none;box-shadow:0 0 0 1px rgba(16,24,40,.06);background:#f9c9d4 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><rect width='100' height='100' fill='%23f9c9d4'/><ellipse cx='50' cy='62' rx='30' ry='34' fill='%236b4630'/><circle cx='50' cy='52' r='21' fill='%23ffe3d0'/><path d='M29 50 Q29 25 50 25 Q71 25 71 50 Q61 38 50 39 Q39 38 29 50 Z' fill='%236b4630'/><circle cx='43' cy='53' r='2.4' fill='%234a3128'/><circle cx='57' cy='53' r='2.4' fill='%234a3128'/><circle cx='38.5' cy='60' r='3' fill='%23ffb3ba' opacity='.75'/><circle cx='61.5' cy='60' r='3' fill='%23ffb3ba' opacity='.75'/><path d='M45 63 Q50 67 55 63' stroke='%23c96f5e' stroke-width='1.8' fill='none' stroke-linecap='round'/><path d='M30 50 Q30 27 50 27 Q70 27 70 50' stroke='%23e2536b' stroke-width='4' fill='none' stroke-linecap='round'/><rect x='24' y='48' width='8' height='13' rx='4' fill='%23e2536b'/><rect x='68' y='48' width='8' height='13' rx='4' fill='%23e2536b'/><path d='M28 60 Q33 69 43 68' stroke='%23e2536b' stroke-width='2.6' fill='none'/><circle cx='44' cy='68' r='3' fill='%23e2536b'/><path d='M28 100 Q30 77 50 77 Q70 77 72 100 Z' fill='%23ffffff'/><path d='M45 77 L50 85 L55 77' fill='none' stroke='%23e2536b' stroke-width='2'/></svg>") center/cover no-repeat;}
.phone-wrap .wx-navtxt{text-align:left;}
.phone-wrap .msg-avatar,.phone-wrap .zh-avatar{width:40px;height:40px;border-radius:8px;box-shadow:0 0 0 1px rgba(16,24,40,.05);background:#f9c9d4 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><rect width='100' height='100' fill='%23f9c9d4'/><ellipse cx='50' cy='62' rx='30' ry='34' fill='%236b4630'/><circle cx='50' cy='52' r='21' fill='%23ffe3d0'/><path d='M29 50 Q29 25 50 25 Q71 25 71 50 Q61 38 50 39 Q39 38 29 50 Z' fill='%236b4630'/><circle cx='43' cy='53' r='2.4' fill='%234a3128'/><circle cx='57' cy='53' r='2.4' fill='%234a3128'/><circle cx='38.5' cy='60' r='3' fill='%23ffb3ba' opacity='.75'/><circle cx='61.5' cy='60' r='3' fill='%23ffb3ba' opacity='.75'/><path d='M45 63 Q50 67 55 63' stroke='%23c96f5e' stroke-width='1.8' fill='none' stroke-linecap='round'/><path d='M30 50 Q30 27 50 27 Q70 27 70 50' stroke='%23e2536b' stroke-width='4' fill='none' stroke-linecap='round'/><rect x='24' y='48' width='8' height='13' rx='4' fill='%23e2536b'/><rect x='68' y='48' width='8' height='13' rx='4' fill='%23e2536b'/><path d='M28 60 Q33 69 43 68' stroke='%23e2536b' stroke-width='2.6' fill='none'/><circle cx='44' cy='68' r='3' fill='%23e2536b'/><path d='M28 100 Q30 77 50 77 Q70 77 72 100 Z' fill='%23ffffff'/><path d='M45 77 L50 85 L55 77' fill='none' stroke='%23e2536b' stroke-width='2'/></svg>") center/cover no-repeat;}
.phone-wrap .wx-bubble{border-radius:8px;box-shadow:0 2px 8px rgba(16,24,40,.08);}


/* ---------- 手机外壳：真实手机壳图片版（media/pgsjk.webp，500x967 含透明边框+侧键+挖孔摄像头） ---------- */
.phone-wrap .phone{
  width:300px;height:580px;margin:0 auto;padding:0;position:relative;
  border-radius:0;min-height:0;
  background:url("/media/pgsjk.webp") center/100% 100% no-repeat;
  box-shadow:0 22px 44px rgba(16,24,40,.22);
}
.phone-wrap .phone:before,.phone-wrap .phone:after{content:none;}
.phone-wrap .phone-screen{
  position:absolute;left:4.4%;top:1.3%;width:91.2%;height:97.4%;
  border-radius:36px;min-height:0;overflow:hidden;
}
.phone-wrap .notch{display:none;}
.phone-wrap .notch:after{display:none;}


/* ---------- 列表页编辑面板：真机壳 300x580 在右侧窄栏内等比缩放显示 ---------- */
.phone-shrink{width:auto;height:384px;overflow:hidden;}
.phone-shrink .phone-clip{width:310px;height:580px;transform:scale(0.66);transform-origin:top left;display:flex;justify-content:center;align-items:flex-start;}
@media (max-width:991px){
  .phone-shrink{height:auto;overflow:visible;}
  .phone-shrink .phone-clip{width:auto;height:auto;transform:none;}
}


/* ---------- 手机壳真图分层修正：壳图置顶层，屏幕内容嵌入透明开孔(x 41-459=8.2%-92.0%, y 41-935=4.24%-96.7%, 500x967, 刘海压状态栏) ---------- */
.phone-wrap .phone{
  width:300px;height:580px;margin:0 auto;padding:0;position:relative;
  border-radius:0;min-height:0;background:none;
  box-shadow:0 22px 44px rgba(16,24,40,.22);
}
.phone-wrap .phone:before{content:none;}
.phone-wrap .phone:after{
  content:"";position:absolute;left:0;top:0;width:100%;height:100%;
  z-index:10;pointer-events:none;
  background:url("/media/pgsjk.webp") center/100% 100% no-repeat;
}
.phone-wrap .phone-screen{
  position:absolute;left:8.2%;width:83.8%;height:95.2%;
  border-radius:22px;min-height:0;overflow:hidden;z-index:1;background:#ededed;
}
.phone-wrap .notch{display:none;}
.phone-wrap .notch:after{display:none;}

/* 预览层叠隔离：壳图 z-index 只在预览区内生效，绝不外溢盖住页面导航栏 */
.phone-wrap{isolation:isolate;z-index:0;}
.phone-wrap .phone{isolation:isolate;z-index:0;}
.phone-wrap .phone:after{z-index:3;}

/* 预览容器：透明底，避免壳图四角露出白色方块 */
.phone-wrap .phone-clip{background:transparent;}

/* 窄视口（<992px）：预览容器不再固定 450px 高、不再裁切；手机保持 300x580 真实比例 */
@media (max-width:991.98px){
  .phone-wrap.phone-wrap{position:static;height:auto;min-height:0;padding-top:0;overflow:visible;}
  .phone-wrap.phone-wrap .phone-clip{height:auto;min-height:0;overflow:visible;flex:none;}
  .phone-wrap.phone-wrap .phone{max-width:none;width:300px;height:580px;}
  .phone-wrap.phone-wrap .phone-screen{position:absolute;}
}

/* ---------- 阴影修正：投影只跟随手机壳 alpha 剪影，不再给整块矩形留白加阴影 ---------- */
/* 外壳盒子：彻底去掉背景/边框/盒阴影 —— 它只是个 300x580 的定位容器 */
.phone-wrap .phone{
  width:300px;height:580px;margin:0 auto;padding:0;position:relative;
  border:0;border-radius:0;min-height:0;
  background:none;box-shadow:none;
}
/* 阴影层：壳图剪影 drop-shadow（跟随 alpha，透明留白不投影）
   放在屏幕内容之下(z-index:0)，壳内缘的投影会被屏幕内容盖住 */
.phone-wrap .phone:before{
  content:"";position:absolute;left:0;top:0;width:100%;height:100%;
  z-index:0;pointer-events:none;
  background:url("/media/pgsjk.webp") center/100% 100% no-repeat;
  filter:drop-shadow(0 16px 24px rgba(16,24,40,.30)) drop-shadow(0 3px 6px rgba(16,24,40,.14));
}
/* 壳图层：最上层，遮住屏幕内容溢出到开孔外的部分 */
.phone-wrap .phone:after{
  content:"";position:absolute;left:0;top:0;width:100%;height:100%;
  z-index:3;pointer-events:none;
  background:url("/media/pgsjk.webp") center/100% 100% no-repeat;
  filter:none;
}
.phone-wrap .phone-screen{z-index:1;}
/* 列表页编辑面板：容器留出阴影空间，避免投影被 overflow 裁掉 */
.phone-shrink{height:420px;overflow:hidden;}
.phone-shrink .phone-clip{width:310px;height:580px;transform:scale(0.66);transform-origin:top left;}
@media (max-width:991px){
  .phone-shrink{height:auto;overflow:visible;}
}

/* ---------- 屏内容容器贴开孔顶部（不用 top 偏移），状态栏与壳图刘海左右分列 ---------- */
.phone-wrap .phone-screen{padding-top:0;}

/* ---------- 状态栏：右侧网络/电池整体右移；电池改 iOS 样式（电量百分比落在电池内） ---------- */
.phone-wrap .wx-status,.phone-wrap .dy-status,.phone-wrap .zh-status{padding:0 10px 12px 24px;line-height:1;}
.phone-wrap .wx-sig{margin-left:0;gap:1px;}
.phone-wrap .wx-sig i{width:3px;border-radius:1px;background:#111;}
.phone-wrap .wx-sig em{display:none;}
.phone-wrap .wx-sig u{
  width:24px;height:12px;border:1px solid #111;border-radius:3.5px;
  background:#111;opacity:1;display:inline-block;position:relative;
}
.phone-wrap .wx-sig u:after{
  content:"100";position:absolute;left:0;top:0;right:0;bottom:0;
  display:flex;align-items:center;justify-content:center;
  background:none;border-radius:0;font-size:8px;font-weight:600;color:#fff;
  letter-spacing:-.3px;line-height:1;
}
.phone-wrap .wx-sig u:before{
  content:"";position:absolute;right:-3px;top:3px;width:2px;height:5px;
  background:#111;border-radius:0 2px 2px 0;
}


/* ---------- 预览细节精修 v3：状态栏信号条底边对齐（不再垂直居中，呈「由下向上」生长状） ---------- */
.phone-wrap .wx-sig{align-items:flex-end;}
.phone-wrap .wx-sig i{width:3px;border-radius:1px;background:#111;}
.phone-wrap .wx-sig i:nth-child(1){height:4px}
.phone-wrap .wx-sig i:nth-child(2){height:6px}
.phone-wrap .wx-sig i:nth-child(3){height:8px}
.phone-wrap .wx-sig i:nth-child(4){height:10px;opacity:.3}

/* ---------- 会话气泡与导航标题比例精修：气泡收矮、导航标题字号下调 ---------- */
.phone-wrap .wx-bubble{padding:9px 11px;gap:8px;border-radius:7px;}
.phone-wrap .wx-bubble:before{top:13px;}
.phone-wrap .bub-pic{width:54px;height:54px;}
.phone-wrap .bub-title{font-size:13.5px;line-height:1.3;}
.phone-wrap .bub-desc{font-size:11.5px;margin-top:4px;}
.phone-wrap .wx-navname{font-size:13.5px;}


/* ---------- 预览细节精修 v4：会话气泡改为「宽扁」比例（占满行内剩余宽度 + 压低高度） ---------- */
.phone-wrap .wx-bubble{flex:1;max-width:none;min-width:0;padding:8px 10px;gap:8px;border-radius:8px;}
.phone-wrap .bub-left{flex:1;min-width:0;}
.phone-wrap .bub-pic{width:48px;height:48px;}
.phone-wrap .bub-title{font-size:13px;line-height:1.25;}
.phone-wrap .bub-desc{font-size:11px;margin-top:3px;}


/* ---------- 全站预预览统一 v5：活码预览 .hm-phone 改用真机壳图（与卡片预览同一套） ----------
   容器仍保持 440px 高（右栏布局不变），按 300x580 真实比例绘制真机壳，只露上部、下半部裁掉。
   三重 class 用于压过 pg/a_huoma.css、pg/a_admin_huoma.css 里后加载的 .hms-right .hm-phone 同名规则。 */
.hm-phone.hm-phone.hm-phone{
  width:300px;height:440px;max-width:none;margin:0 auto;padding:0;position:relative;
  border:0;border-radius:0;background:none;box-shadow:none;overflow:hidden;isolation:isolate;
}
.hm-phone.hm-phone.hm-phone:before{
  content:"";position:absolute;left:0;top:0;width:300px;height:580px;z-index:0;pointer-events:none;
  background:url("/media/pgsjk.webp") left top/300px 580px no-repeat;
  border-radius:0;box-shadow:none;
  filter:drop-shadow(0 16px 24px rgba(16,24,40,.28)) drop-shadow(0 3px 6px rgba(16,24,40,.12));
}
.hm-phone.hm-phone.hm-phone:after{
  content:"";position:absolute;left:0;top:0;width:300px;height:580px;z-index:3;pointer-events:none;
  background:url("/media/pgsjk.webp") left top/300px 580px no-repeat;
  border-radius:0;box-shadow:none;
}
.hm-phone.hm-phone.hm-phone .hm-phone-notch,
.hm-phone.hm-phone.hm-phone .hm-phone-notch:after{display:none;}
.hm-phone.hm-phone.hm-phone .hm-phone-screen{
  position:absolute;left:8.2%;top:24.6px;width:83.8%;height:552px;z-index:1;
  border-radius:22px;background:#fff;box-sizing:border-box;
  padding:30px 16px 18px;text-align:center;
  overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;
}
.hm-phone.hm-phone.hm-phone .hm-pv-qr{width:74%;margin:14px auto 8px;}


/* ---------- 全站预览统一 v6 ----------
   1) 通用状态栏 .pv-status/.pv-sig（时间 + 信号 + 电池，电量数字在电池内）
   2) 活码预览 .hm-phone：屏幕贴开孔顶、内容自顶排布、底部渐隐（替代硬切）
   3) 卡片列表页落地页预览 .hmlp-phone：改用真机壳图并贴顶 */

/* 1) 通用状态栏 */
.pv-status{display:flex;align-items:center;justify-content:space-between;width:100%;height:34px;padding:0 10px 0 20px;box-sizing:border-box;font-size:11px;font-weight:600;color:#111;line-height:1;flex:none;}
.pv-sig{display:flex;align-items:flex-end;gap:1px;}
.pv-sig i{width:3px;border-radius:1px;background:#111;display:inline-block;}
.pv-sig i:nth-child(1){height:4px}
.pv-sig i:nth-child(2){height:6px}
.pv-sig i:nth-child(3){height:8px}
.pv-sig i:nth-child(4){height:10px;opacity:.3}
.pv-sig b{font-size:10px;margin-left:2px;font-weight:400;line-height:1;}
.pv-sig u{width:24px;height:12px;border:1px solid #111;border-radius:3.5px;background:#111;display:inline-block;position:relative;text-decoration:none;margin-left:2px;}
.pv-sig u:after{content:"100";position:absolute;left:0;top:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:600;color:#fff;letter-spacing:-.3px;line-height:1;}
.pv-sig u:before{content:"";position:absolute;right:-3px;top:3px;width:2px;height:5px;background:#111;border-radius:0 2px 2px 0;}
.pv-sig em{display:none;}

/* 2) 活码预览：贴顶 + 自顶排布 + 底部渐隐 */
.hm-phone.hm-phone.hm-phone{
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 68%,rgba(0,0,0,.55) 86%,rgba(0,0,0,0) 100%);
  mask-image:linear-gradient(180deg,#000 0,#000 68%,rgba(0,0,0,.55) 86%,rgba(0,0,0,0) 100%);
}
.hm-phone.hm-phone.hm-phone .hm-phone-screen{padding:0 16px 18px;justify-content:flex-start;}
.hm-phone.hm-phone.hm-phone .hm-phone-screen .pv-status{padding:0 10px 0 26px;}
.hm-phone.hm-phone.hm-phone .hm-pv-tag{margin-top:14px;}

/* 3) 卡片落地页预览：真机壳 */
.hmlp-phone.hmlp-phone{width:230px;height:445px;max-width:none;margin:0 auto;padding:0;border:0;border-radius:0;background:none;box-shadow:none;position:relative;overflow:hidden;isolation:isolate;}
.hmlp-phone.hmlp-phone:before{content:'';position:absolute;left:0;top:0;width:230px;height:445px;z-index:0;border-radius:0;background:url("/media/pgsjk.webp") left top/230px 445px no-repeat;filter:drop-shadow(0 14px 22px rgba(16,24,40,.24)) drop-shadow(0 2px 5px rgba(16,24,40,.12));}
.hmlp-phone.hmlp-phone:after{content:'';position:absolute;left:0;top:0;width:230px;height:445px;z-index:3;border-radius:0;background:url("/media/pgsjk.webp") left top/230px 445px no-repeat;}
.hmlp-phone .hmlp-notch{display:none;}
.hmlp-phone.hmlp-phone .hmlp-screen{position:absolute;left:8.2%;top:9.8px;width:83.8%;height:411.5px;min-height:0;border-radius:17px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;background-color:#eef0f3;background-image:radial-gradient(rgba(16,24,40,.035) 1px,transparent 1px);background-size:12px 12px;box-sizing:border-box;}
.hmlp-phone.hmlp-phone .hmlp-screen>*{flex:none;}
.hmlp-phone.hmlp-phone .hmlp-card{margin:12px 11px 0;width:auto;align-self:stretch;}


/* ---------- 全站预览统一 v7：卡片落地页预览窄屏状态栏适配 ----------
   .hmlp-phone 仅 230px 宽，屏幕有效宽 193px、刘海占中 73px，
   状态栏元素需整体收窄并贴屏幕两侧，避免被刘海遮挡；内容恢复垂直居中。 */
.hmlp-phone.hmlp-phone .hmlp-screen{justify-content:center;padding:0 0 6px;}
.hmlp-phone.hmlp-phone .hmlp-screen .pv-status{position:absolute;left:0;top:0;right:0;padding:0 9px 0 13px;font-size:10px;}
.hmlp-phone.hmlp-phone .pv-sig i{width:2px;}
.hmlp-phone.hmlp-phone .pv-sig b{font-size:9px;margin-left:1px;}
.hmlp-phone.hmlp-phone .pv-sig u{width:20px;height:10px;border-radius:3px;margin-left:1px;}
.hmlp-phone.hmlp-phone .pv-sig u:after{font-size:7px;letter-spacing:-.2px;}
.hmlp-phone.hmlp-phone .pv-sig u:before{right:-3px;top:2.5px;width:2px;height:4px;}
.hmlp-phone.hmlp-phone .hmlp-card{margin:0 11px;}


/* ---------- 全站预览统一 v8：投影只跟壳形，杜绝「整张图矩形轮廓」 ----------
   病根：.hm-phone / .hmlp-phone 用容器 overflow:hidden 裁掉下半机身，把
   filter:drop-shadow 也沿矩形盒边一起裁断 → 壳外出现一圈直角的「整张图轮廓」。
   改法：容器彻底不裁切（overflow:visible + 去掉容器级遮罩），裁切与底部渐隐
   下移到每一层（投影层 / 壳图层 / 屏幕层各带同一条纵向渐隐曲线）；投影层盒子
   左右外扩，把壳图内缩绘制，让 drop-shadow 有足够余量按 alpha 剪影自然外扩；
   纵向盒子高度锁在容器内，不产生额外可滚动区域。 */

/* 活码预览 .hm-phone（300x440，只露上半机身） */
.hm-phone.hm-phone.hm-phone{
  width:300px;height:440px;max-width:none;margin:0 auto;padding:0;position:relative;
  border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;isolation:isolate;
  -webkit-mask-image:none;mask-image:none;
}
.hm-phone.hm-phone.hm-phone:before{
  content:"";position:absolute;left:-22px;top:0;width:344px;height:440px;z-index:0;pointer-events:none;
  background:url("/media/pgsjk.webp") no-repeat 22px 0/300px 580px;
  border:0;border-radius:0;box-shadow:none;
  filter:drop-shadow(0 14px 16px rgba(16,24,40,.30));
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 440px);
  mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 440px);
}
.hm-phone.hm-phone.hm-phone:after{
  content:"";position:absolute;left:0;top:0;width:300px;height:440px;z-index:3;pointer-events:none;
  background:url("/media/pgsjk.webp") no-repeat left top/300px 580px;
  border:0;border-radius:0;box-shadow:none;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 440px);
  mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 440px);
}
.hm-phone.hm-phone.hm-phone .hm-phone-screen{
  position:absolute;left:24.6px;top:24.6px;width:251.4px;height:415.4px;z-index:1;
  border-radius:22px;background:#ededed;box-sizing:border-box;
  padding:0 16px 18px;text-align:center;justify-content:flex-start;
  overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 275px,rgba(0,0,0,.5) 357px,transparent 415px);
  mask-image:linear-gradient(180deg,#000 0,#000 275px,rgba(0,0,0,.5) 357px,transparent 415px);
}

/* 卡片落地页预览 .hmlp-phone（230x445）——同一套做法 */
.hmlp-phone.hmlp-phone{
  width:230px;height:445px;max-width:none;margin:0 auto;padding:0;position:relative;
  border:0;border-radius:0;background:none;box-shadow:none;overflow:visible;isolation:isolate;
}
.hmlp-phone.hmlp-phone:before{
  content:"";position:absolute;left:-16px;top:0;width:262px;height:445px;z-index:0;pointer-events:none;
  background:url("/media/pgsjk.webp") no-repeat 16px 0/230px 445px;
  border:0;border-radius:0;box-shadow:none;
  filter:drop-shadow(0 14px 14px rgba(16,24,40,.28));
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 445px);
  mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 445px);
}
.hmlp-phone.hmlp-phone:after{
  content:"";position:absolute;left:0;top:0;width:230px;height:445px;z-index:3;pointer-events:none;
  background:url("/media/pgsjk.webp") no-repeat left top/230px 445px;
  border:0;border-radius:0;box-shadow:none;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 445px);
  mask-image:linear-gradient(180deg,#000 0,#000 300px,rgba(0,0,0,.5) 382px,transparent 445px);
}
.hmlp-phone.hmlp-phone .hmlp-screen{
  left:18.86px;top:9.8px;width:192.74px;height:411.5px;
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 290px,rgba(0,0,0,.5) 372px,transparent 415px);
  mask-image:linear-gradient(180deg,#000 0,#000 290px,rgba(0,0,0,.5) 372px,transparent 415px);
}

/* 列表页编辑面板：.phone-clip 左右仅 10px 余量，换用更紧的投影，避免被矩形裁断 */
.phone-shrink .phone-wrap .phone:before{
  filter:drop-shadow(0 10px 10px rgba(16,24,40,.34)) drop-shadow(0 3px 4px rgba(16,24,40,.14));
}

/* 二维码操作按钮：文案统一 14px 加粗（卡片/活码列表、活码表单、生成成功弹窗） */
.qrb-act,
.hmlp-actions .btn,
.hmlp-actions a.btn,
.hm-qrbtm .hm-qrcopy>.btn,
.tr-ok .qrbtns button{font-size:14px!important;font-weight:700!important}

/* 活码/卡片列表预览卡底部按钮组：右栏宽度有限，压紧间距并去掉字距，确保 14px 文案不被截断 */
.hm-qrbtm .hm-qrcopy{gap:3px;padding:0}
.hm-qrbtm .hm-qrcopy>.btn{letter-spacing:0;padding:4px 0}


/* ===== 卡片生成成功弹窗（重设计：水平垂直居中 · 白底大圆角 · 柔和阴影） ===== */
.modal-backdrop{background-color:#0f172a}
.modal-backdrop.in{opacity:.45}
.cgm-modal{overflow-x:hidden;overflow-y:auto;padding:24px 12px}
.cgm-modal.in{display:flex!important;justify-content:center;align-items:flex-start}
.cgm-modal.fade .cgm-dialog{transform:none}
.cgm-modal .cgm-dialog{display:block;position:static;width:420px;max-width:100%;margin:auto;text-align:left;font-size:14px;box-shadow:none;border:0}
.cgm-modal .modal-content{position:relative;padding:0;background:#fff;border:0;border-radius:14px;box-shadow:0 18px 48px rgba(16,24,40,.20),0 2px 6px rgba(16,24,40,.06);overflow:hidden}
.cgm-x{position:absolute;right:12px;top:12px;z-index:2;width:28px;height:28px;padding:0;line-height:26px;text-align:center;font-size:20px;font-weight:400;color:#98a2b3;background:#f2f4f7;border:0;border-radius:50%;cursor:pointer;opacity:1;text-shadow:none}
.cgm-x:hover,.cgm-x:focus{background:#e6eaf0;color:#475467;opacity:1;outline:none}
.cgm-hd{padding:28px 20px 0;text-align:center}
.cgm-check{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;margin-bottom:12px;border-radius:50%;background:#e7f9f0}
.cgm-check:after{content:"";display:block;width:9px;height:16px;margin:-4px 0 0 -1px;border:2.5px solid #12b76a;border-top:0;border-left:0;border-radius:1px;transform:rotate(45deg)}
.cgm-tt{margin:0;font-size:17px;font-weight:700;color:#101828;letter-spacing:.2px}
.cgm-bd{padding:18px 22px 24px;text-align:center}
.cgm-qr{display:inline-block;margin-bottom:16px;padding:10px;background:#f7f9fc;border:1px solid #eef2f7;border-radius:12px;line-height:0}
.cgm-field{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.cgm-lab{flex:0 0 58px;font-size:13px;color:#667085;text-align:right}
.cgm-inp{display:flex;flex:1;min-width:0;align-items:center;background:#f7f9fc;border:1px solid #eaecf0;border-radius:8px;overflow:hidden}
.cgm-inp input{flex:1;min-width:0;height:38px;padding:0 12px;font-size:13px;color:#344054;background:transparent;border:0;border-radius:0;box-shadow:none;outline:none}
.cgm-inp input:focus{box-shadow:none;outline:none;border:0}
.cgm-copy{flex:none;height:38px;padding:0 18px;font-size:14px;font-weight:700;letter-spacing:0;color:#fff;background:#48d2e9;border:0;border-radius:0;cursor:pointer}
.cgm-copy:hover,.cgm-copy:focus{color:#fff;background:#2bb8cf}
.cgm-tip{margin:12px 0 0;font-size:12px;line-height:1.7;color:#98a2b3}
.cgm-vip{margin:6px 0 0;font-size:12px;line-height:1.7;color:#48d2e9}
.cgm-vip:empty{display:none}

/* ===== 保存成功：居中浮出的提示框（编辑保存后短暂显示再跳转） ===== */
.cgm-toast{position:fixed;left:50%;top:50%;z-index:20000;display:flex;align-items:center;gap:11px;padding:18px 28px;font-size:15px;font-weight:700;letter-spacing:.2px;color:#101828;white-space:nowrap;background:#fff;border-radius:12px;box-shadow:0 18px 48px rgba(16,24,40,.20),0 2px 6px rgba(16,24,40,.06);opacity:0;transform:translate(-50%,-50%) scale(.96);transition:opacity .18s ease,transform .18s ease;pointer-events:none}
.cgm-toast.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cgm-tick{display:flex;flex:none;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#e7f9f0}
.cgm-tick:after{content:"";display:block;width:7px;height:13px;margin:-3px 0 0 -1px;border:2.5px solid #12b76a;border-top:0;border-left:0;border-radius:1px;transform:rotate(45deg)}


/* 生成成功弹窗／保存提示：对勾改绿色实色徽章 + 白色勾图案 */
.cgm-check{background:#12b76a;box-shadow:0 8px 18px rgba(18,183,106,.28)}
.cgm-check:after{border-color:#fff}
.cgm-tick{background:#12b76a}
.cgm-tick:after{border-color:#fff}

/* 弹窗「复制」按钮：复制成功改浮出气泡（对齐按钮中线、水平居中、1.5s 消失） */
.cgm-cptip{position:fixed;left:50%;transform:translateX(-50%);z-index:20001;background:#07c160;color:#fff;font-size:13px;line-height:22px;padding:8px 18px;border-radius:3px;white-space:nowrap;box-shadow:0 6px 18px rgba(7,193,96,.35);pointer-events:none}

/* 弹窗勾徽章：勾画加粗一档（老板：原来太细小）+ 卡片有效期提示改橙色 */
.cgm-check:after{width:12px;height:21px;margin:-5px 0 0 -2px;border-width:4px;border-radius:2px}
.cgm-tick:after{width:8px;height:15px;margin:-4px 0 0 -1px;border-width:3.5px;border-radius:2px}
.cgm-vip{color:#ff6200}

/* ===== 卡片列表页：点行切换预览时消除页面上下抖动 =====
   1) 预览二维码图是异步加载的（../qrc.php?url=短链），无内在尺寸时高度为 0，
      加载完成后才占位 → 右侧面板高度突变 → 滚到底时页面被顶动。
      用 aspect-ratio 让它在加载前就按容器宽度占好高度。
   2) 关掉滚动锚定：内容高度变化时浏览器会自动补偿 scrollTop，
      在「已滚到底」的状态下表现为页面自己上下动一下。 */
.hmlp-qr{aspect-ratio:1/1;height:auto;background:#fff}
.hmlp-qrbox{min-height:123px}
html,body{overflow-anchor:none}

/* 预览二维码占位文本兜底 */
img.hmlp-qr,img.hm-pv-qr{color:transparent;font-size:0}

/* 预览二维码：加载前占位 + 破图占位覆盖 */
.hm-pv-qr{aspect-ratio:1/1;height:auto}
img.hmlp-qr,img.hm-pv-qr{position:relative}
img.hmlp-qr::after,img.hm-pv-qr::after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;background:#fff;border-radius:inherit}


/* ---------- 封面占位对调：本站默认图标放「预览对话框」，上传框改文字提示 ---------- */
.pic-thumb.noimg{background:#f2f2f2!important;color:transparent!important;font-size:0!important;}
.pic-thumb.noimg:after{content:"上传封面"!important;display:block!important;color:#a9b0ba!important;font-size:11px!important;font-weight:400!important;line-height:1.35!important;text-align:center;padding:0 6px;}
.bub-pic.noimg,.zh-cardpic.noimg,.dy-cardpic.noimg{background:#eef0f3 url(/media/logo-1.webp) center/68% no-repeat!important;color:transparent!important;font-size:0!important;}

/* 管理端活码概览功能页（/ah 无 view 参数）与会员端功能页一致：隐藏右栏预览，左栏铺满 */
.hms-row.hm-nopv>.hms-left{flex:1 1 100%;max-width:100%;width:100%;padding-right:0;}

/* 列表卡标题行的「新增」按钮：紧跟「最近生成的…」标题左对齐（原 pull-right 靠右），按钮带前置加号图标 */
.card-header h4.pull-left+.hm-addbtn{display:inline-block;margin-left:10px;margin-top:3px;vertical-align:middle;}
.card-header h4.pull-left+.hm-addbtn .mdi{font-size:14px;line-height:1;vertical-align:-1px;margin-right:2px;}
@media (max-width:767px){
  .card-header h4.pull-left+.hm-addbtn{margin-left:8px;margin-top:0;}
}

/* ===== 会员端「编辑信息」页面：与会员中心编辑信息弹窗同构（头像/昵称/邮箱/key），入口与呈现不同、功能一致 ===== */
.medit-ava-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.medit-ava{position:relative;width:64px;height:64px;border-radius:50%;overflow:hidden;cursor:pointer;flex:none;background:#eef2f7;}
.medit-ava img{width:100%;height:100%;object-fit:cover;display:block;}
.medit-ava .mdi{position:absolute;right:0;bottom:0;width:22px;height:22px;background:#48d2e9;color:#fff;font-size:14px;display:flex;align-items:center;justify-content:center;}
.medit-ava-tip{font-size:12px;color:#9aa4b2;line-height:1.6;}
.medit-sys{margin:0 0 16px;}
.medit-sys-t{display:block;font-size:12px;color:#9aa4b2;margin-bottom:8px;}
.medit-sys-list{display:flex;flex-wrap:wrap;gap:8px;}
.medit-sys-i{width:36px;height:36px;border-radius:50%;overflow:hidden;border:2px solid transparent;padding:0;margin:0;background:#eef2f7;cursor:pointer;display:block;line-height:0;text-decoration:none;transition:border-color .15s,transform .15s;}
.medit-sys-i img{width:100%;height:100%;object-fit:cover;display:block;}
.medit-sys-i:hover{transform:translateY(-2px);text-decoration:none;}
.medit-sys-i.cur{border-color:#48d2e9;}
.medit-static{padding:7px 10px;font-size:14px;color:#8a9099;background:#f7f9fc;border-radius:4px;}
.medit-key{display:flex;align-items:center;gap:10px;background:#f7f9fc;border:1px solid #e5e9f0;border-radius:5px;padding:8px 12px;}
.medit-key span{flex:1;font-size:12px;color:#51606f;word-break:break-all;font-weight:400;}
.medit-key-reset{flex:none;font-size:12px;color:#2e8fdc;background:#fff;border:1px solid #b3dcfa;border-radius:3px;padding:3px 12px;cursor:pointer;font-weight:400;transition:all .15s;}
.medit-key-reset:hover{background:#eaf5fe;border-color:#48d2e9;}
.fm-col>.card{margin-bottom:15px;}
@media (max-width:767px){
  .medit-ava{width:56px;height:56px;}
  .medit-sys-i{width:32px;height:32px;}
}

/* 类型页 hero：创建按钮移到标题+标签块右侧，底边与标签底边对齐（原在右侧 side 区） */
.hm-type-hero-headrow{display:flex;align-items:flex-end;gap:48px;flex-wrap:nowrap;}
.hm-type-hero-headl{min-width:0;flex:0 1 auto;}
.hm-type-hero-headl>.hm-type-hero-titlerow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.hm-type-hero-headl>.hm-type-hero-titlerow>.hm-type-hero-title{margin-bottom:0;min-width:0;}
.hm-type-hero-headrow>.hm-card-btn{display:inline-flex;align-items:center;justify-content:center;position:static;margin:0;width:150px;height:40px;padding:0;box-sizing:border-box;flex-shrink:0;}
.hm-type-hero-headrow>.hm-card-btn:hover,.hm-type-hero-headrow>.hm-card-btn:focus{color:#fff;text-decoration:none;}
@media (max-width:767px){
  /* 移动端维持改动前的布局：创建按钮仍在卡片右下角，不与标题同行 */
  .hm-type-hero{position:relative;padding-bottom:76px;}
  .hm-type-hero-headrow{display:block;}
  .hm-type-hero-headrow>.hm-card-btn{position:absolute;left:auto;top:auto;right:24px;bottom:22px;width:150px;height:40px;padding:0;font-size:14px;margin:0;}
}


/* 二维码操作按钮（短链 / 活码 / 卡片三系统统一）：美化=品牌蓝、下载=品牌青绿，默认态即区分；
   悬停/聚焦/按下文字恒白，避免被基础按钮样式打回深色 */
.btn.qrb-beauty{background:#2e8df1!important;border-color:#2e8df1!important;color:#fff!important}
.btn.qrb-beauty:hover,.btn.qrb-beauty:focus,.btn.qrb-beauty:active{background:#1f76c8!important;border-color:#1f76c8!important;color:#fff!important}
.btn.qrb-down{background:#33cabb!important;border-color:#33cabb!important;color:#fff!important}
.btn.qrb-down:hover,.btn.qrb-down:focus,.btn.qrb-down:active{background:#2baa9d!important;border-color:#2baa9d!important;color:#fff!important}
.btn.qrb-beauty i,.btn.qrb-down i{color:inherit!important}

/* 活码预览卡底部三按钮（美化·下载·编辑）：统一加高，点击区域更饱满 */
.hm-qrbtm .hm-qrcopy>.btn{min-height:40px;padding:8px 0}

/* 新建/编辑活码页右栏：二维码按钮按标签宽度固定，不随宽容器拉伸 */
.hm-pv-side .hm-qrbtm .hm-qrcopy>.btn{flex:0 1 150px}
