/* 趣友AI 终端客户 Web 工作台皮肤（与 App 端同一套 P0-3 设计语言） */
:root{
  --bg-top:#7439E1; --bg-mid:#3A1C8F; --bg-bottom:#170B3D;
  --card:#1A1130; --card-elev:#251350; --field:#150A34; --field-deep:#120A2F;
  --box:#332874; --selected:#442280; --unselected:#291F51; --ghost:#3C2784; --cancel:#3A2E5C;
  --line:rgba(255,255,255,.08);
  --t1:#FFFFFF; --t2:#B8AEE0; --t3:#8F84B8; --counter:#A99CD9;
  --brand-blue:#2477F2; --brand-yellow:#F7E14F;
  --grad:linear-gradient(90deg,#E93DFB 0%,#8B46FD 50%,#5B4DFE 100%);
  --violet:#C23BF7; --cyan:#2BD9D6;
  --ok:#3DDC97; --warn:#FFB84D; --danger:#FF5C5C;
  /* 三咩 1:1 实测取色（K2/K5，docx 原图逐像素取样，与 App qy_tokens.dart 同值） */
  --btn-muted:#5C42A5;        /* image4「创建直播任务」哑光紫 */
  --slot-border-cyan:#5BBFDF; /* image5 直播位选中行描边青蓝 */
  --launch-blue:#1B85EB;      /* image20「点我开播」蓝卡 */
  /* 浅色弹窗体系（三咩双轨制 image6：白底提示/输入弹窗） */
  --dlg-bg:#F7F7F8; --dlg-field:#EFEFF3; --dlg-text:#1C1C1E;
  --dlg-text-sec:#6E6E73; --dlg-divider:#E2E2E7; --dlg-confirm:#E04536;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:"PingFang SC","Noto Sans CJK SC",sans-serif}
body{
  background:linear-gradient(180deg,var(--bg-top) 0%,var(--bg-mid) 38%,var(--bg-bottom) 100%);
  background-attachment:fixed;color:var(--t1);font-size:14px;min-height:100vh;
}
a{text-decoration:none;color:inherit}
input,textarea,select{font-family:inherit}

/* ── 顶栏 ─────────────────────────────── */
.qy-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;
  padding:12px 24px;background:rgba(21,10,52,.72);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line)}
.qy-brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700}
.qy-brand img{width:30px;height:30px;border-radius:8px}
.qy-brand b{color:var(--brand-yellow)}
.qy-nav{display:flex;gap:4px;margin-left:12px}
.qy-nav a{padding:8px 14px;border-radius:999px;color:var(--t2);font-size:13px;transition:.15s}
.qy-nav a:hover{color:var(--t1);background:rgba(255,255,255,.06)}
.qy-nav a.on{color:var(--cyan);background:rgba(43,217,214,.1)}
.qy-top-right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px}
.qy-power{background:var(--box);border-radius:10px;padding:6px 12px;text-align:center}
.qy-power b{font-size:15px;font-variant-numeric:tabular-nums}
.qy-power span{display:block;font-size:10px;color:var(--t2)}
.qy-account{color:var(--t2);font-variant-numeric:tabular-nums}
.qy-logout{color:var(--t3)}
.qy-logout:hover{color:var(--danger)}

/* ── 内容容器 ─────────────────────────── */
.qy-wrap{max-width:960px;margin:0 auto;padding:24px 20px 64px}
.qy-h1{font-size:22px;font-weight:700;margin-bottom:6px}
.qy-sub{color:var(--t2);font-size:12.5px;line-height:1.7;margin-bottom:22px}

/* ── 卡片与容器 ───────────────────────── */
.qy-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.qy-card.cyan{border-color:rgba(43,217,214,.55);background:transparent}
.qy-card.selected{background:var(--selected);border-color:var(--violet)}
/* K5：直播位选中行描边按三咩 image5 实测青蓝（App slotBorderCyan 同值）；
   .qy-card.selected 共享样式不动，仅直播位行用 slot-active */
.qy-card.slot-active{background:var(--selected);border-color:var(--slot-border-cyan)}
/* K5：开播中「点我开播」蓝卡（三咩 image20 实测，App launchCardBlue 同值） */
.qy-card.launch-blue{background:var(--launch-blue);border-color:transparent}
.qy-card.launch-blue .qy-mut{color:rgba(255,255,255,.85)}
.qy-card.unselected{background:var(--unselected)}
.qy-card-title{font-size:15px;font-weight:600;margin-bottom:12px}
.qy-sec{display:flex;align-items:center;gap:7px;font-size:14.5px;font-weight:600;margin:22px 0 10px}
.qy-sec i{font-style:normal;color:var(--cyan);font-size:13px}

/* ── 首页功能卡片（与 App 首页同构） ──── */
.qy-grid{display:grid;gap:12px}
.qy-grid.r1{grid-template-columns:1.2fr 1fr;grid-template-rows:repeat(2,118px)}
.qy-grid.r2{grid-template-columns:1fr 1fr;margin-top:12px}
.qy-grid.r3{grid-template-columns:repeat(3,1fr);margin-top:12px}
.qy-fcard{position:relative;border-radius:16px;padding:16px;overflow:hidden;cursor:pointer;
  border:1px solid rgba(255,255,255,.12);transition:.15s;display:flex;flex-direction:column;justify-content:flex-end}
.qy-fcard:hover{transform:translateY(-2px)}
.qy-fcard .t{font-size:16px;font-weight:700}
.qy-fcard .d{font-size:11px;color:rgba(255,255,255,.8);margin-top:5px;line-height:1.5}
.qy-fcard .wm{position:absolute;right:-6px;top:-6px;font-size:72px;opacity:.14}
/* K5：卡片右上角插图（与 App K2 cornerImage 同版位，44px 圆角 + 标题避让） */
.qy-fcard .corner{position:absolute;right:10px;top:10px;width:44px;height:44px;
  border-radius:8px;object-fit:cover}
.qy-fcard.has-corner .t{display:inline-block;padding-right:52px}
.qy-fcard.big{grid-row:span 2}
.qy-fcard.big .t{font-size:19px}
.qy-chip{display:inline-block;background:rgba(0,0,0,.3);border-radius:6px;font-size:10px;padding:2px 7px;margin-bottom:6px}
.qy-gmv{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.g-green{background:linear-gradient(135deg,#19C37D,#0E9F8A)}
.g-blue{background:linear-gradient(135deg,#2E5FD8,#325DC5)}
.g-orange{background:linear-gradient(135deg,#D97A3D,#C25E8E)}
.g-purple{background:linear-gradient(135deg,#573A66,#3A2350)}
.g-navy{background:linear-gradient(135deg,#33437E,#26335F)}
.g-deep{background:linear-gradient(135deg,#321F7B,#241557)}
/* K18 #4：首页小卡图标位（对照三咩 image3：圆角彩色块 + 线性 glyph 置左上） */
.qy-fcard .fi{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;margin-bottom:auto}

/* ── K18 #5：全站电路纹理（对照三咩 image3/4/5 的线路板装饰） ────────────────
   内联 SVG pattern，不用大图；描边白 4~5% 透明度叠在渐变之上。
   实测叠加后页面最亮处等效底色的白字对比度仍 ≈7.8:1（>4.5:1），
   正文主要落在卡片底上，不受影响。 */
body{
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' viewBox='0 0 260 260'%3E%3Cg fill='none' stroke='%23FFFFFF' stroke-opacity='.05' stroke-width='1.4'%3E%3Cpath d='M240 10v60h-50v40h-30'/%3E%3Cpath d='M250 90v50h-40v36'/%3E%3Cpath d='M10 250v-60h50v-40h34'/%3E%3Cpath d='M20 168v-46h38'/%3E%3Cpath d='M130 250v-30h40'/%3E%3C/g%3E%3Cg fill='%23FFFFFF' fill-opacity='.06'%3E%3Ccircle cx='240' cy='10' r='2.4'/%3E%3Ccircle cx='160' cy='110' r='2.4'/%3E%3Ccircle cx='250' cy='90' r='2.4'/%3E%3Ccircle cx='150' cy='176' r='2.4'/%3E%3Ccircle cx='10' cy='250' r='2.4'/%3E%3Ccircle cx='94' cy='150' r='2.4'/%3E%3Ccircle cx='58' cy='122' r='2.4'/%3E%3Ccircle cx='170' cy='220' r='2.4'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(180deg,var(--bg-top) 0%,var(--bg-mid) 38%,var(--bg-bottom) 100%);
}

/* ── K18 #7：我的页菜单行 emoji → 线性 SVG 图标（与首页 .fi 同一 1.8px 线性风格） ──
   mine.php 归 C91 热改，纯 CSS 实现：emoji 文本藏起，按行挂 data-URI 线性图标。 */
.qy-menurow .ic{font-size:0;width:20px;height:20px;flex:none;color:var(--t2);
  background:no-repeat center/20px 20px}
.qy-menurow.danger .ic{color:var(--danger)}
.qy-menurow[href="recharge.php"] .ic{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8AEE0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.2'/%3E%3Cpath d='M8.5 7.5L12 12l3.5-4.5M12 12v5.5M9.3 14.6h5.4'/%3E%3C/svg%3E")}
.qy-menurow[onclick*="qyRenew"] .ic,.qy-menurow[onclick*="系统续费"] .ic{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8AEE0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a8 8 0 11-2.34-5.66M20 4.5V9h-4.5'/%3E%3C/svg%3E")}
.qy-menurow[onclick*="qyPwd"] .ic,.qy-menurow[onclick*="账户安全"] .ic{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8AEE0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.2l6.8 2.9v4.7c0 4.4-2.9 8.3-6.8 9.8-3.9-1.5-6.8-5.4-6.8-9.8V6.1L12 3.2z'/%3E%3Cpath d='M9.2 11.8l2 2 3.8-3.8'/%3E%3C/svg%3E")}
.qy-menurow[onclick*="qyInfo"] .ic,.qy-menurow[onclick*="隐私政策"] .ic{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8AEE0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3.5h6.5L18 8v12.5H7V3.5z'/%3E%3Cpath d='M13.5 3.5V8H18M9.8 12.5h5M9.8 16h5'/%3E%3C/svg%3E")}
.qy-menurow.danger .ic{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF5C5C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.8h15M9.2 6.8V4.2h5.6v2.6M6.2 6.8l1 14h9.6l1-14M10 11v6M14 11v6'/%3E%3C/svg%3E")}
.qy-menurow[href="logout.php"] .ic{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8AEE0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 4.5H5v15h4.5M14 8l4 4-4 4M8.5 12H18'/%3E%3C/svg%3E")}
/* C140：我的 → 联系客服（耳麦线性图标，同上 1.8px 风格） */
.qy-menurow[onclick*="qyCsOpen"] .ic{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8AEE0' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 13.5v-1.8a7.5 7.5 0 0115 0v1.8'/%3E%3Cpath d='M4.5 13.5h2.8v5H5.8a1.3 1.3 0 01-1.3-1.3v-3.7zM19.5 13.5h-2.8v5h1.5a1.3 1.3 0 001.3-1.3v-3.7z'/%3E%3Cpath d='M16.7 18.5c0 1.2-1.6 2-4.2 2'/%3E%3C/svg%3E")}

/* ── 表单控件（与 App 组件语义一致） ──── */
.qy-field{background:var(--field);border:1px solid var(--line);border-radius:10px;color:var(--t1);
  padding:11px 14px;font-size:14px;outline:none;width:100%}
.qy-field:focus{border-color:var(--cyan)}
.qy-field::placeholder{color:var(--t3)}
.qy-selectrow{display:flex;align-items:center;justify-content:space-between;background:var(--field);
  border:1px solid var(--line);border-radius:10px;padding:14px 16px;cursor:pointer;font-size:14px}
.qy-selectrow:hover{border-color:rgba(43,217,214,.4)}
.qy-selectrow .ph{color:var(--t3)}
.qy-selectrow .chev{color:var(--t3)}
.qy-selectrow .sum{color:var(--t2)}
.qy-ta-wrap{position:relative;background:var(--field);border:1px solid var(--line);border-radius:10px}
.qy-ta-wrap:focus-within{border-color:var(--cyan)}
.qy-ta{width:100%;background:transparent;border:none;outline:none;color:var(--t1);
  padding:12px 14px 26px;font-size:13.5px;line-height:1.75;resize:vertical}
.qy-ta::placeholder{color:var(--t3)}
.qy-counter{position:absolute;right:10px;bottom:7px;font-size:11px;color:var(--counter);font-variant-numeric:tabular-nums}
.qy-counter.over{color:var(--danger)}

/* ── 按钮（主按钮渐变与 App 一致） ────── */
.qy-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 26px;
  border:none;border-radius:999px;background:var(--grad);color:#fff;font-size:15px;font-weight:600;cursor:pointer}
.qy-btn:hover{filter:brightness(1.08)}
.qy-btn:disabled{opacity:.4;cursor:not-allowed}
.qy-btn.block{width:100%;height:50px}
.qy-btn.secondary{background:var(--cancel);height:42px}
.qy-btn.ghosty{background:var(--ghost);color:var(--t2);height:42px}
.qy-btn.danger-o{background:transparent;border:1px solid var(--danger);color:var(--danger);height:38px;font-size:13px}
.qy-btn.sm{height:32px;padding:0 14px;font-size:12.5px}
/* K5：三咩 image4 哑光紫主 CTA（「主按钮=渐变」的三咩平替特许例外，与 App QyButton.muted 同值） */
.qy-btn.muted{background:var(--btn-muted)}
.qy-txtbtn{background:none;border:none;color:var(--cyan);font-size:13px;cursor:pointer;padding:4px 8px}

/* ── 单选/复选/开关/滑块 ─────────────── */
.qy-opt{display:inline-flex;align-items:center;gap:7px;padding:6px 0;margin-right:26px;cursor:pointer;color:var(--t1);font-size:13.5px}
.qy-radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--t3);flex:none;position:relative}
.qy-opt.on .qy-radio{border:none;background:var(--violet)}
/* K5：三咩 radio 选中态是白勾✓（sanmei-basic-modal），不是白圆点（App P2-2 同步改） */
.qy-opt.on .qy-radio::after{content:"✓";position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;color:#fff;font-size:12px;line-height:1}
.qy-chk{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--t3);flex:none;
  display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff}
.qy-opt.on .qy-chk{border:none;background:var(--violet)}
.qy-opt.on .qy-chk::before{content:"✓"}
.qy-switch{width:42px;height:24px;border-radius:999px;background:rgba(255,255,255,.2);position:relative;cursor:pointer;transition:.15s;flex:none}
.qy-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}
.qy-switch.on{background:var(--cyan)}
.qy-switch.on::after{left:21px}
.qy-slider-wrap{padding:8px 4px 0}
.qy-slider-val{text-align:center;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;margin-bottom:2px}
input[type=range].qy-slider{width:100%;appearance:none;height:4px;border-radius:2px;
  background:linear-gradient(90deg,#E93DFB,#5B4DFE);outline:none}
input[type=range].qy-slider::-webkit-slider-thumb{appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;cursor:pointer}
.qy-slider-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--t2);margin-top:6px}

/* ── 弹窗（与 App 模态语义一致） ─────── */
.qy-mask{position:fixed;inset:0;background:rgba(11,6,24,.65);z-index:50;display:none;
  align-items:center;justify-content:center;padding:20px}
.qy-mask.show{display:flex}
.qy-modal{background:var(--card-elev);border:1px solid rgba(194,59,247,.65);border-radius:16px;
  width:min(720px,94vw);max-height:86vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(5,2,20,.55)}
.qy-modal-h{display:flex;align-items:center;justify-content:center;position:relative;padding:16px 20px 10px}
.qy-modal-h h3{font-size:16px}
.qy-modal-x{position:absolute;right:14px;top:12px;background:none;border:none;color:var(--t2);font-size:18px;cursor:pointer}
.qy-modal-b{padding:6px 22px 10px;overflow-y:auto}
.qy-modal-f{display:flex;gap:12px;padding:16px 22px}
.qy-modal-f .qy-btn{flex:1}

/* ── 浅色弹窗（K5：三咩双轨制 image6，与 App QyModalVariant.light 同构） ──
   适用：小型提示/确认/输入弹窗。大型多节表单弹窗保持深紫（.qy-modal 默认）。 */
.qy-modal.light{background:var(--dlg-bg);border:none;color:var(--dlg-text)}
.qy-modal.light .qy-modal-h h3{color:var(--dlg-text)}
.qy-modal.light .qy-modal-x{display:none}  /* 三咩白色提示弹窗无 × */
.qy-modal.light .qy-field{background:var(--dlg-field);border-color:transparent;color:var(--dlg-text)}
.qy-modal.light .qy-field::placeholder{color:var(--dlg-text-sec)}
.qy-modal.light .qy-err{color:var(--dlg-confirm)}
.qy-modal.light .qy-modal-f{display:flex;gap:0;padding:0;border-top:1px solid var(--dlg-divider)}
.qy-lbtn{flex:1;height:48px;background:none;border:none;cursor:pointer;
  font-size:15px;font-weight:500;color:var(--dlg-text-sec)}
.qy-lbtn:hover{background:rgba(0,0,0,.04)}
.qy-lbtn:first-child{border-top-left-radius:0;border-bottom-left-radius:16px}
.qy-lbtn:last-child{border-bottom-right-radius:16px}
.qy-lbtn.ok{color:var(--dlg-confirm)}
.qy-lbtn:disabled{color:var(--dlg-text-sec);cursor:not-allowed}
.qy-modal.light .qy-modal-f .qy-lbtn+.qy-lbtn{border-left:1px solid var(--dlg-divider)}

/* ── 徽章/状态/空态/提示 ─────────────── */
.qy-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;border:1px solid var(--t3);color:var(--t3)}
.qy-badge.ok{border-color:var(--ok);color:var(--ok)}
.qy-badge.warn{border-color:var(--warn);color:var(--warn)}
.qy-badge.info{border-color:var(--cyan);color:var(--cyan)}
.qy-badge.danger{border-color:var(--danger);color:var(--danger)}
.qy-empty{text-align:center;padding:52px 0;color:var(--t2)}
.qy-empty .ic{font-size:42px;opacity:.4;margin-bottom:10px}
.qy-note{border:1px solid rgba(43,217,214,.5);border-radius:12px;padding:12px 14px;
  color:var(--t2);font-size:12.5px;line-height:1.7;margin-bottom:14px}
.qy-note b{color:var(--cyan)}
.qy-note.warn{border-color:rgba(255,184,77,.55)}
.qy-note.warn b{color:var(--warn)}

/* ── 登录/注册 ────────────────────────── */
.qy-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.qy-auth-card{width:400px;background:rgba(26,17,48,.94);border:1px solid var(--line);border-radius:18px;padding:34px 30px}
.qy-auth-logo{text-align:center;margin-bottom:6px}
.qy-auth-logo img{width:76px;height:76px;border-radius:16px}
.qy-auth-card h1{text-align:center;font-size:21px;margin-bottom:2px}
.qy-auth-card h1 b{color:var(--brand-yellow)}
.qy-auth-sub{text-align:center;color:var(--t3);font-size:12px;margin-bottom:22px}
.qy-tabs{display:flex;background:var(--field);border-radius:999px;padding:4px;margin-bottom:20px}
.qy-tabs div{flex:1;text-align:center;padding:9px;border-radius:999px;color:var(--t2);cursor:pointer;font-size:14px}
.qy-tabs div.on{background:var(--field-deep);border:1px solid var(--cyan);color:var(--cyan)}
.qy-auth-card .qy-field{margin-bottom:12px;height:46px}
.qy-gift{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--brand-yellow);
  border-radius:999px;padding:8px;color:var(--brand-yellow);font-size:12.5px;font-weight:600;margin:10px 0 18px}
.qy-err{color:var(--danger);font-size:12.5px;text-align:center;margin:8px 0}
.qy-warn-line{color:var(--warn);font-size:12px;margin:-4px 0 10px}

/* ── K17（交接 T12）：克隆页说明卡正文纯白 ─────────────────────────────────
   三咩 image22/23 逐像素比对：免责声明与模式说明卡正文都是纯白。
   modeDesc 卡由 voice-clone.php 内联 JS 生成且正文写死 var(--t2)（JS 归 C91，
   本轮不碰），这里用更高优先级只覆盖这一张卡；警告行 <span> 自带 inline
   --warn，不受本条影响，仍然只有警告行是黄。--t2 是全站共享次级文字色，
   不改变量本身。白字在页面渐变底上对比度 ≈12:1，过 WCAG AA。 */
#modeDesc .qy-card > p{color:#FFFFFF !important}

/* ── 直播位/数据条/菜单行 ────────────── */
.qy-stats2{display:grid;grid-template-columns:1fr 1fr;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:20px 0;margin-bottom:14px}
.qy-stat2{text-align:center}
.qy-stat2+.qy-stat2{border-left:1px solid rgba(255,255,255,.12)}
.qy-stat2 .v{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
.qy-stat2 .l{font-size:11.5px;color:var(--t2);margin-top:5px}
.qy-menurow{display:flex;align-items:center;gap:14px;padding:16px 4px;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer;font-size:14px}
.qy-menurow:hover{background:rgba(255,255,255,.03)}
.qy-menurow .ic{width:22px;text-align:center;color:var(--t2)}
.qy-menurow .chev{margin-left:auto;color:var(--t3)}
.qy-menurow.danger{color:var(--danger)}

/* ── 声音克隆/上传/播放器 ────────────── */
.qy-upload{border:1px dashed rgba(194,59,247,.6);border-radius:12px;padding:28px;text-align:center;
  background:var(--field-deep);cursor:pointer}
.qy-upload.disabled{opacity:.55;cursor:not-allowed}
.qy-vrow{display:flex;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:12px 14px;margin-bottom:10px}
.qy-vrow .tag{color:var(--cyan);font-size:10.5px;margin-left:8px}
.qy-vrow .sub{font-size:10.5px;color:var(--t3);margin-top:3px}
.qy-try{margin-left:auto;background:var(--grad);border:none;color:#fff;border-radius:999px;
  padding:7px 16px;font-size:12px;font-weight:600;cursor:pointer}
.qy-player{display:flex;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:12px 16px;margin:16px 0}
.qy-player .prog{flex:1;height:3px;background:rgba(255,255,255,.15);border-radius:2px;position:relative}
.qy-player .prog i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--cyan);border-radius:2px}
.qy-player .time{font-size:11px;color:var(--counter);font-variant-numeric:tabular-nums}
.qy-playbtn{width:44px;height:44px;border-radius:50%;background:var(--grad);border:none;color:#fff;font-size:16px;cursor:pointer}

/* ── 表格 ─────────────────────────────── */
.qy-table{width:100%;border-collapse:collapse}
.qy-table th{text-align:left;font-size:12px;color:var(--t3);font-weight:500;padding:9px 10px;border-bottom:1px solid var(--line)}
.qy-table td{padding:11px 10px;border-bottom:1px solid rgba(255,255,255,.04)}
.qy-num{font-variant-numeric:tabular-nums}
.qy-mut{color:var(--t3);font-size:12px}

@media (max-width:720px){
  .qy-grid.r1{grid-template-columns:1fr;grid-template-rows:auto}
  .qy-fcard.big{grid-row:auto}
  .qy-grid.r3{grid-template-columns:1fr}
  .qy-nav{display:none}
  .qy-topbar{gap:10px;padding:12px}
  .qy-brand{white-space:nowrap}
  .qy-power a,.qy-logout{white-space:nowrap}
  .qy-power{padding:6px 8px}
  .qy-account{white-space:nowrap;max-width:96px;overflow:hidden;text-overflow:ellipsis}
}
