/* ===== 云枢智控 · 工具屏样式（mobile.tools.css，20260865） =====
   🧰 工具格：2 列网格 + 触控 ≥44px；建设中工具灰显不假装可用。
   仅被 /static/mobile.html 引用。约束：单文件 ≤200 行。 */

.tools-body{padding:12px 14px;display:flex;flex-direction:column;gap:12px}
.tools-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.tool-tile{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  min-height:96px;background:var(--card);border:1px solid var(--border);border-radius:14px;
  cursor:pointer;color:var(--text);padding:12px 8px;box-shadow:var(--card-shadow);
}
.tool-tile:active{border-color:var(--accent)}
.tt-ico{font-size:26px;line-height:1}
.tt-name{font-size:16px;font-weight:700}
.tt-sub{font-size:11px;color:var(--sub)}
.tools-tip{font-size:11px;color:var(--sub);text-align:center;padding:4px 0}

/* 技能分组（20260821 用户端底座第1步）：4 卡占位，形态对齐跃界工具广场 skill-card */
.skill-group-title{font-size:13px;color:var(--sub);font-weight:700;padding:2px 0}
.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.skill-card{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;
  min-height:92px;background:var(--card);border:1px solid var(--border);border-radius:16px;
  cursor:pointer;color:var(--text);padding:12px;box-shadow:var(--card-shadow);text-align:left;
}
.skill-card:active{border-color:var(--accent)}
.sc-ico{font-size:22px;line-height:1}
.sc-name{font-size:15px;font-weight:700}
.sc-sub{font-size:11px;color:var(--sub);line-height:1.4}

/* AI 音乐生成面板（skill.sx_music，20260823） */
.music-panel{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:14px;box-shadow:var(--card-shadow)}
.music-label{font-size:13px;font-weight:700;color:var(--text)}
.music-input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:10px;padding:10px;font-size:14px;background:var(--bg);color:var(--text);resize:vertical}
.music-opts{display:flex;align-items:center}
.music-opt{font-size:13px;color:var(--text);display:flex;align-items:center;gap:6px;cursor:pointer}
.music-btn{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:12px;font-size:15px;font-weight:700;cursor:pointer}
.music-btn:disabled{opacity:.6}
.music-status{margin-top:2px}
.music-tip{font-size:12px;color:var(--sub);line-height:1.5;padding:6px 0}
.music-warn{font-size:13px;color:#8a6d00;background:#fff7d6;border:1px solid #ffe58f;border-radius:10px;padding:10px 12px;line-height:1.6;margin:6px 0}
.music-warn b{color:#d48806}
.music-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 6px}
.music-chip{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:6px 10px;font-size:12px;color:var(--text);cursor:pointer}
.music-chip:active{border-color:var(--accent)}
.music-style{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:6px 12px;font-size:12px;color:var(--text);cursor:pointer}
.music-style.style-on,.music-style:active{background:var(--accent);color:#fff;border-color:var(--accent)}
.music-err{font-size:13px;color:#e5484d;line-height:1.5;padding:6px 0}
/* 资产库入口按钮：加大到导航栏同高，占满宽度，字号醒目 */
.music-assets{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;min-height:52px;text-align:center;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px 16px;font-size:17px;font-weight:700;color:var(--accent);cursor:pointer;box-shadow:var(--card-shadow);margin:2px 0}
.music-assets:active{border-color:var(--accent)}
.music-assets-sub{font-size:12px;color:var(--sub);text-align:center;padding:2px 0 8px}

/* 音乐卡片：封面 + 歌名/信息两行，清晰区分，整卡可点(≥52px 手指友好) */
.music-play{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;min-height:64px;text-align:left;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:8px 14px;font-size:15px;color:var(--text);cursor:pointer;margin:8px 0;box-shadow:var(--card-shadow)}
.music-play:active{border-color:var(--accent)}
.music-cover{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;background:var(--bg)}
.music-play-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.music-play-name{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-play-sub{font-size:12px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.music-play-ico{font-size:22px;flex-shrink:0}
.music-player{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:10px 12px;margin:8px 0;box-shadow:var(--card-shadow)}
.music-player-name{font-size:13px;color:var(--text);font-weight:600;margin-top:6px;text-align:center}
.music-player audio{width:100%}
/* 全局播放器：点开全屏（覆盖整页含导航上方，不锁底）· 适配深/浅主题 */
.global-player{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;background:var(--bg,#f5f6f7);overflow-y:auto;padding:env(safe-area-inset-top, 0px) 12px 24px;box-sizing:border-box}
.global-player #apContainer{max-width:480px;margin:0 auto;margin-top:8px}
.global-player #apContainer .aplayer{box-shadow:0 4px 24px rgba(0,0,0,.12);border-radius:16px;overflow:hidden}
.global-player #apContainer .aplayer .aplayer-info{padding:12px 15px}
.global-player #apContainer .aplayer .aplayer-title{font-size:15px;font-weight:700}
.global-player #apContainer .aplayer .aplayer-list{border-top:1px solid var(--border,#eee)}
.global-player .gp-head{display:flex;align-items:center;justify-content:space-between;max-width:480px;margin:0 auto;padding:12px 4px 6px}
.global-player .gp-title{font-size:17px;font-weight:700;color:var(--text)}
.global-player .gp-close{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:8px 16px;font-size:13px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15)}
/* 底部收起小条（不挡导航）：当前曲 + 展开/关闭 · 精致圆角渐变 */
.player-mini{position:fixed;bottom:calc(env(safe-area-inset-bottom, 0px) + 70px);right:12px;width:260px;z-index:998;display:none;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:8px 10px;box-shadow:0 4px 20px rgba(0,0,0,.18);cursor:grab;font-size:13px;color:var(--text);box-sizing:border-box;touch-action:none}
.player-mini.dragging{cursor:grabbing;opacity:.9;box-shadow:0 6px 24px rgba(0,0,0,.3)}
.player-mini .pm-ico{font-size:20px}
.player-mini .pm-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.player-mini .pm-expand{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:7px 14px;font-size:13px;cursor:pointer}
.player-mini .pm-close{background:transparent;color:var(--sub,#999);border:none;font-size:18px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.player-mini .pm-close:active{background:var(--accent-bg-light,#e8f0fe)}
.music-opt-btn{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:8px 14px;font-size:14px;color:var(--text);cursor:pointer;min-height:40px}
.music-opt-btn:active{background:var(--accent);color:#fff;border-color:var(--accent)}
/* 资产库搜索框 */
.music-search{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:15px;background:var(--bg);color:var(--text);margin-bottom:6px}
.music-search:focus{border-color:var(--accent);outline:none}
/* AI 优化提示词按钮 */
.music-opt-ai{display:block;width:100%;text-align:center;background:var(--accent-bg-light);color:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:10px;font-size:14px;font-weight:600;cursor:pointer;margin:8px 0}
.music-opt-ai:active{background:var(--accent);color:#fff}
.music-opt-ai:disabled{opacity:.6}
/* 音色朗读录音区 */
.music-voice-rec{margin-top:8px}
.music-rec-text{font-size:13px;color:var(--text);line-height:1.7;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:10px;margin-top:8px}
.music-rec-text b{color:var(--accent);font-weight:600}
/* 写歌要素勾选（AI 拆解，像验收单） */
.music-opt-element{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:var(--card);border:1px solid var(--border);border-radius:10px;margin:6px 0;font-size:14px;color:var(--text);line-height:1.5}
.music-opt-element input{margin-top:3px}
.music-opt-element b{color:var(--accent);flex-shrink:0}
.music-add-row{display:flex;gap:8px;margin-top:8px;align-items:center}
.music-add-row .music-input{margin:0}
/* APlayer 深色主题适配（页面深色时播放器不刺眼） */
[data-theme="dark"] .global-player{background:#191919}
[data-theme="dark"] .global-player #apContainer .aplayer{background:#242424;color:#eee}
[data-theme="dark"] .global-player #apContainer .aplayer .aplayer-title,[data-theme="dark"] .global-player #apContainer .aplayer .aplayer-artist{color:#fff}
[data-theme="dark"] .global-player #apContainer .aplayer .aplayer-list{background:#1f1f1f;color:#ccc}
[data-theme="dark"] .global-player #apContainer .aplayer .aplayer-list ol li{color:#ccc}
[data-theme="dark"] .global-player #apContainer .aplayer .aplayer-list ol li.aplayer-list-light{background:#2a2a2a;color:#fff}
/* 音乐卡片（资产库）：封面+播放 + 元数据(风格/提示词/时间) + 一键再生成 */
.music-card{position:relative;border-radius:16px;margin:14px 0;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.18);background:var(--card)}
/* 大图封面（约占卡片 2 倍高，作为主视觉） */
.music-card .mc-img{position:relative;height:200px;background-size:cover;background-position:center;background-color:#e8e8e8}
/* 歌名悬浮在封面上方 */
.music-card .mc-title{position:absolute;top:12px;left:14px;right:60px;color:#fff;font-size:20px;font-weight:800;text-shadow:0 2px 10px rgba(0,0,0,.7);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 时间在右上角悬浮 */
.music-card .mc-time{position:absolute;top:14px;right:14px;color:rgba(255,255,255,.9);font-size:12px;background:rgba(0,0,0,.45);border-radius:8px;padding:3px 8px;backdrop-filter:blur(4px)}
/* 大播放键（居中） */
.music-card .mc-playbtn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.35);border:1px solid rgba(255,255,255,.6);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(6px);box-shadow:0 4px 16px rgba(0,0,0,.3)}
.music-card .mc-playbtn:active{background:rgba(255,255,255,.55)}
/* 时长在封面右下角 */
.music-card .mc-dur{position:absolute;bottom:10px;right:14px;color:rgba(255,255,255,.95);font-size:12px;background:rgba(0,0,0,.5);border-radius:8px;padding:2px 8px}
.music-meta-box{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-top:1px solid var(--border);margin-top:0;background:var(--card)}
.music-meta{font-size:13px;color:var(--text);line-height:1.6;white-space:normal;word-break:break-all}
.music-meta b{color:var(--text)}
.music-card-actions{display:flex;gap:8px;margin-top:10px}
.music-regen{flex:1;text-align:center;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:11px;font-size:14px;font-weight:700;cursor:pointer}
.music-regen:active{opacity:.85}
.music-copy-btn{flex:1;text-align:center;background:var(--accent-bg-light);color:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:11px;font-size:14px;font-weight:600;cursor:pointer}
.music-copy-btn:active{background:var(--accent);color:#fff}
.music-prompt-btn{width:100%;text-align:center;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px;font-size:14px;cursor:pointer;margin-top:8px}
.music-prompt-btn:active{background:var(--accent-bg-light)}
.music-help{display:block;width:100%;text-align:center;background:none;border:none;color:var(--sub);font-size:13px;cursor:pointer;padding:6px 0;text-decoration:underline}
.music-guide{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;box-sizing:border-box;min-height:48px;text-align:center;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;font-size:15px;font-weight:600;color:var(--text);cursor:pointer;box-shadow:var(--card-shadow);margin:2px 0}
.music-guide:active{border-color:var(--accent)}
.music-help-box{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;margin-top:6px}
.music-help-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px}
.music-back{margin-top:8px;background:none;border:none;color:var(--sub);font-size:13px;cursor:pointer;padding:6px 0;text-align:center}
