/* 喜音 · NZCMS 集成补充样式（CMS 弹窗/表单/结算页等） */

/* ---------- 登录/注册弹窗（CMS 功能 + aham 外观） ---------- */
.xy-modal{border:0;border-radius:22px;box-shadow:0 30px 60px -30px rgba(0,0,0,.35);font-family:var(--sans)}
.xy-modal .modal-header{border-bottom:1px solid var(--line2);padding:18px 22px 0}
.xy-modal-tabs{border-bottom:0;gap:4px}
.xy-modal-tabs .nav-link{border:0;border-radius:12px 12px 0 0;font-weight:600;color:var(--ink2);padding:10px 16px}
.xy-modal-tabs .nav-link.active{color:var(--ink);background:var(--panel2)}
.xy-modal-body{padding:22px}
.xy-modal .close{border:0;background:none;font-size:26px;line-height:1;opacity:.5}
.xy-form .input{width:100%}
.xy-form .form-group{margin-bottom:14px}
.xy-muted{color:var(--ink2)}
.xy-warn-text{color:#8D681F;font-size:14px}
.xy-link{color:var(--ink2);text-decoration:none}
.xy-link:hover{color:var(--ink)}
.xy-modal .input-group-append img{margin-left:-1px}
#signin-modal .modal-body .tab-pane .input-group{display:flex}
.xy-modal label{font-weight:500}

/* ---------- 结算页（对齐 UI checkout.html 内联样式） ---------- */
.co{display:grid;grid-template-columns:1fr 380px;gap:20px;align-items:start;padding-bottom:96px}
.co .blk{display:flex;flex-direction:column;gap:14px}
.co h3{font-size:18px}
.pay{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pay label{display:flex;align-items:center;gap:12px;padding:16px;border-radius:14px;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;min-height:64px;margin:0}
.pay label:has(input:checked){box-shadow:inset 0 0 0 2px var(--ink)}
.pay input{accent-color:var(--ink);width:16px;height:16px}
.pay .lg{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:700;font-size:14px}
.cycle{display:flex;gap:8px;flex-wrap:wrap}
.co .sum{position:sticky;top:84px}
.sum .line{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line2);font-size:14px}
.sum .total{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0}
.sum .total b{font-size:36px;letter-spacing:-.02em}
@media (max-width:1000px){.co{grid-template-columns:1fr}.co .sum{position:static}}
@media (max-width:520px){.pay{grid-template-columns:1fr}}

/* ---------- 声音详情页布局 ---------- */
.voice-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:start;padding:56px 0}
.voice-hero .big-canvas{width:100%;border-radius:16px;background:var(--screen)}
.voice-side{display:flex;flex-direction:column;gap:16px}
@media (max-width:900px){.voice-hero{grid-template-columns:1fr;gap:24px;padding:32px 0}}
.voice-meta-row{display:flex;gap:10px;flex-wrap:wrap}
.content-body h3{margin:26px 0 10px;font-size:18px}
.content-body p{color:var(--ink2);margin:0 0 10px}
.content-body h3:first-child{margin-top:0}

/* ---------- 列表页筛选 ---------- */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 22px}
.filter-row select.input{width:auto;min-width:130px}
.filter-row .search-box{flex:1;min-width:220px;display:flex;gap:8px}
.empty-tip{padding:60px 0;text-align:center;color:var(--ink2)}

/* ---------- 详情页正文里的图片/表格（CMS 正文兼容） ---------- */
.content-body img{max-width:100%;border-radius:12px}
.content-body table{width:100%;border-collapse:collapse;margin:12px 0}
.content-body table td,.content-body table th{border:1px solid var(--line2);padding:8px 12px;font-size:14px}

/* ---------- 会员中心旧页面轻度适配（保留功能的页面在 aham 外壳内） ---------- */
.member-shell-wrap{max-width:var(--content-max);margin:0 auto;padding:24px 32px}
.member-shell-wrap .card,.member-shell-wrap .bg-white{border-radius:16px!important;border:1px solid var(--line2);box-shadow:none!important}
.member-shell-wrap .table th{color:var(--ink2);font-weight:500}
@media (max-width:900px){.member-shell-wrap{padding:16px}}

/* ---------- 通用小工具 ---------- */
.xy-inline-note{font-size:13px;color:var(--ink2)}
.gap-8{gap:8px}
.mt-xy{margin-top:24px}

/* ---------- 会员中心（nzcms_member）：桥接旧页面到 aham 观感 ---------- */
body.member-scope{background:var(--body)}
.xy-mem-wrap{max-width:var(--content-max);margin-left:auto;margin-right:auto}
.xy-mem-side{padding:18px;position:sticky;top:84px}
.xy-mem-side-user{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line2);margin-bottom:10px}
.xy-mem-avatar img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.xy-mem-side-meta b{display:block;font-size:15px}
.xy-mem-side-meta>span{font-size:12px;color:var(--ink2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.xy-badge-warn{background:var(--warn-soft);color:var(--warn);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600}
.xy-mem-forever{color:var(--ok);font-size:12px;font-weight:600}
.xy-mem-expiry{font-size:12px;color:var(--ink2)}
.xy-mem-nav{display:flex;flex-direction:column}
.xy-mem-nav a{padding:9px 12px;border-radius:10px;font-size:14px;font-weight:500;color:var(--ink2)}
.xy-mem-nav a:hover{background:var(--panel2);color:var(--ink)}
.xy-mem-nav a.on{background:var(--panel2);color:var(--ink);font-weight:600}
.xy-mem-nav a.xy-mem-logout{color:#B3261E;margin-top:6px}
.xy-mem-nav-title{font-size:12px;color:var(--ink3);padding:12px 12px 4px;font-family:var(--mono)}
/* bootstrap → aham 桥接 */
/* 站点头部导航是 <nav> 元素：bootstrap 的 .nav{display:flex} 会把它压成内容宽度，恢复块级。
   会员中心/弹窗的 ul.nav-tabs 不受影响，保持 bootstrap 的 flex 横排 */
nav.nav{display:block}
body.member-scope .card,body.member-scope .bg-white{border-radius:18px;border:1px solid var(--line2);box-shadow:none;background:var(--panel)}
body.member-scope .card-header{background:none;border-bottom:1px solid var(--line2);font-weight:600}
body.member-scope .card-border{border:1px solid var(--line2)}
body.member-scope .list-group-item{border-color:var(--line2);background:none}
body.member-scope .table th{color:var(--ink2);font-weight:500}
body.member-scope .table td,body.member-scope .table th{border-color:var(--line2);vertical-align:middle}
body.member-scope .form-control{border-radius:12px;border:1px solid var(--line);padding:10px 14px;font-size:14px;height:auto;box-shadow:none;color:var(--ink);background:var(--panel)}
body.member-scope .form-control:focus{border-color:var(--ink);box-shadow:none;background:var(--panel)}
body.member-scope .btn{border-radius:999px;font-weight:600}
body.member-scope .btn-primary,body.member-scope .btn-info{background:var(--ink);border-color:var(--ink);color:#fff}
body.member-scope .btn-success{background:var(--ok);border-color:var(--ok)}
body.member-scope .btn-secondary{background:var(--panel2);border-color:var(--panel2);color:var(--ink)}
body.member-scope .btn-outline-primary,body.member-scope .btn-outline-info{border-color:var(--ink);color:var(--ink)}
body.member-scope .badge-warning{background:var(--warn-soft);color:var(--warn)}
body.member-scope .badge-danger{background:#FDECEA;color:#B3261E}
body.member-scope .alert-info{background:var(--panel2);border-color:var(--line2);color:var(--ink)}
body.member-scope h1,body.member-scope h2,body.member-scope h3{letter-spacing:-.01em}
body.member-scope .input-group-text{background:var(--panel2);border-color:var(--line);border-radius:12px 0 0 12px}
body.member-scope .modal-content{border-radius:20px;border:0}
body.member-scope .cz-handheld-toolbar{display:none}
@media (max-width:576px){body.member-scope .cz-handheld-toolbar{display:block}}
body.member-scope .footer{color:var(--ink2)}
