/* 页面样式：播放器、转写、评估面板、弹层及各业务页面 */
/* 播放器 */
/* 播放器：吸顶固定 */
.player{background:#2B2118;border-radius:var(--yzw-radius-l);padding:16px 20px 14px;color:#fff;margin-bottom:16px;
  position:sticky;top:calc(var(--yzw-topbar-h) + 8px);z-index:30;box-shadow:0 6px 18px rgba(43,33,24,.28)}
.player .p-top{display:flex;align-items:center;gap:14px}
.p-btn{width:42px;height:42px;border-radius:50%;background:var(--yzw-gold);border:none;color:#2B2118;font-size:16px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.15s}
.p-btn:hover{background:#DDB878}
.p-time{font-size:12px;color:rgba(255,255,255,.75);font-variant-numeric:tabular-nums;white-space:nowrap}
.p-name{font-size:12.5px;color:rgba(255,255,255,.6);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seek-wrap{padding:14px 0 4px}
.seekbar{position:relative;height:22px;cursor:pointer}
.seekbar .track{position:absolute;left:0;right:0;top:9px;height:5px;background:rgba(255,255,255,.18);border-radius:3px}
.seekbar .fill{position:absolute;left:0;top:9px;height:5px;background:var(--yzw-gold);border-radius:3px;width:0}
.seekbar .head{position:absolute;top:6px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.4);transform:translateX(-50%);left:0;pointer-events:none}
.mk{position:absolute;top:4px;width:15px;height:15px;border-radius:50%;transform:translateX(-50%);cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:700;color:#fff;border:2px solid #2B2118;transition:.15s}
.mk:hover{transform:translateX(-50%) scale(1.35);z-index:5}
.mk.bad{background:var(--yzw-danger)}
.mk.good{background:var(--yzw-success)}
.mk .tip{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);background:#fff;color:var(--yzw-ink);font-size:11px;padding:5px 10px;border-radius:6px;white-space:nowrap;box-shadow:var(--yzw-shadow-pop);display:none;pointer-events:none;font-weight:400}
.mk:hover .tip{display:block}
.legend{display:flex;gap:16px;font-size:11px;color:rgba(255,255,255,.55);margin-top:2px;flex-wrap:wrap}
.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px}

/* 转写 */
.conv{max-height:640px;overflow-y:auto;padding-right:4px}
.seg{display:flex;gap:10px;padding:8px 10px;border-radius:8px;margin-bottom:4px;cursor:pointer;border:1.5px solid transparent;transition:background .15s}
.seg:hover{background:#FBF9F4}
.seg .t-tag{font-size:11px;color:var(--yzw-sub);font-variant-numeric:tabular-nums;flex-shrink:0;width:44px;padding-top:3px;text-align:right}
.seg .body{flex:1;min-width:0}
.seg .sp-tag{font-size:10.5px;padding:1px 9px;border-radius:9px;margin-right:6px}
.seg.sales .sp-tag{background:#F9E9E7;color:var(--yzw-red)}
.seg.customer .sp-tag{background:#E8EFFC;color:#2C5BBF}
.seg.unknown{opacity:.55}
.seg.unknown .sp-tag{background:#F0EFEC;color:#6B655C}
.seg .txt{font-size:13px;display:inline}
.seg.is-bad{background:#FCF1F0}
.seg.is-bad .txt{background:linear-gradient(transparent 62%,#F3C5C0 62%)}
.seg.is-good{background:#F2FAF6}
.seg.is-good .txt{background:linear-gradient(transparent 62%,#BFE6D2 62%)}
.seg.playing{border-color:var(--yzw-gold);background:#FDF9EF}
.seg.flash-bad{animation:flashBad 2.2s}
.seg.flash-good{animation:flashGood 2.2s}
@keyframes flashBad{0%,55%{background:#F8D7D3;box-shadow:0 0 0 3px var(--yzw-danger)}100%{box-shadow:none}}
@keyframes flashGood{0%,55%{background:#DDF2E7;box-shadow:0 0 0 3px var(--yzw-success)}100%{box-shadow:none}}

/* 评估面板 */
.eval-score{display:flex;align-items:center;gap:16px}
.score-ring{width:74px;height:74px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--yzw-font-display);border:5px solid var(--yzw-gold)}
.score-ring b{font-size:24px;line-height:1}
.score-ring span{font-size:10px;color:var(--yzw-sub)}
.anchor-row{border-radius:8px;padding:9px 10px;margin:0 -10px 2px;display:flex;gap:8px;align-items:flex-start}
.anchor-row:hover{background:#FDF9F1}
.anchor-row .icn{flex-shrink:0;font-weight:700}
.anchor-row.good .icn{color:var(--yzw-success)}
.anchor-row.bad .icn{color:var(--yzw-danger)}
.anchor-row .cnt{flex:1;font-size:13px}
.anchor-row .quote{font-size:12px;color:var(--yzw-sub);margin-top:3px;background:#FBF9F4;border-radius:6px;padding:5px 9px}
.anchor-row .fix{font-size:12px;color:#9A7433;margin-top:4px}
.anchor-row .fix::before{content:'✎ 改正：';font-weight:700}
.locate-btn{flex-shrink:0;font-size:11px;color:var(--yzw-red);border:1px solid var(--yzw-red);border-radius:11px;padding:2px 10px;background:#fff;cursor:pointer;white-space:nowrap;font-family:var(--yzw-font-body)}
.locate-btn:hover{background:var(--yzw-red);color:#fff}
.eval-box{background:#FDF9F1;border:1px solid var(--yzw-gold-light);border-radius:var(--yzw-radius-m);padding:14px 16px;font-size:13px;white-space:pre-wrap}
.eval-box .lb{font-size:11.5px;color:#9A7433;font-weight:700;letter-spacing:1px;margin-bottom:6px}
textarea.eval-input{width:100%;border:1px solid var(--yzw-line);border-radius:8px;padding:10px 12px;font-size:13px;font-family:var(--yzw-font-body);line-height:1.7;resize:vertical;min-height:88px;background:#fff;color:var(--yzw-ink)}
textarea.eval-input:focus{outline:none;border-color:var(--yzw-gold)}

/* 弹层 */
.modal-mask{position:fixed;inset:0;background:rgba(30,22,16,.55);z-index:90;display:none;align-items:center;justify-content:center}
.modal-mask.show{display:flex}
.modal{background:#fff;border-radius:var(--yzw-radius-l);width:min(680px,94vw);max-height:90vh;overflow-y:auto;padding:26px 30px;box-shadow:var(--yzw-shadow-pop)}
.modal h3{font-size:17px;margin-bottom:16px}
.form-row{margin-bottom:14px}
.form-row label{display:block;font-size:12.5px;color:var(--yzw-sub);margin-bottom:5px}
.form-row input[type=text],.form-row input[type=date],.form-row select,.form-row textarea{width:100%;border:1px solid var(--yzw-line);border-radius:8px;padding:9px 12px;font-size:13px;font-family:var(--yzw-font-body);background:#fff;color:var(--yzw-ink)}
.form-row textarea{min-height:150px;resize:vertical;line-height:1.7;font-size:12.5px}
.form-row input[type=file]{font-size:12.5px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* 新模块 */
.nav-badge{margin-left:auto;background:var(--yzw-danger);color:#fff;font-size:10.5px;border-radius:9px;padding:0 7px;line-height:17px;min-width:17px;text-align:center}
.tag{display:inline-block;font-size:11px;background:#F7EFDF;color:#9A7433;border-radius:10px;padding:2px 10px;margin:2px 3px 2px 0}
.sev-high{background:#FBEAE8;color:var(--yzw-danger)}
.sev-mid{background:#FBF0E3;color:#B26A1B}
.sev-low{background:#F0EFEC;color:#6B655C}
.bar-row{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:13px}
.bar-row .bl{width:88px;flex-shrink:0;text-align:right;color:var(--yzw-sub);font-size:12px}
.bar-row .bt{flex:1;background:#F4F0E8;border-radius:5px;height:18px;overflow:hidden}
.bar-row .bf{height:100%;border-radius:5px;background:var(--yzw-gold)}
.bar-row .bv{width:36px;flex-shrink:0;font-weight:700;font-size:12.5px}
.cust-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(430px,1fr));gap:16px}
.kv{display:flex;font-size:13px;padding:4px 0;border-bottom:1px dashed var(--yzw-line)}
.kv .k{width:76px;flex-shrink:0;color:var(--yzw-sub);font-size:12px;padding-top:2px}
.kv .v{flex:1}
.chip-cat{font-size:11px;border:1px solid var(--yzw-line);border-radius:11px;padding:2px 10px;background:#fff}
.st-pending{background:#F7EFDF;color:#9A7433}
.st-assigned{background:#E8EFFC;color:#2C5BBF}
.st-done{background:#EAF6F0;color:#23835A}

/* 筛选栏 */
.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px;background:#fff;border:1px solid var(--yzw-line);border-radius:var(--yzw-radius-m);padding:12px 16px}
.filter-bar input,.filter-bar select{border:1px solid var(--yzw-line);border-radius:8px;padding:8px 12px;font-size:13px;font-family:var(--yzw-font-body);background:#fff}

/* Tab 页签 */
.tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.tab{padding:8px 20px;border-radius:20px;font-size:13px;cursor:pointer;border:1px solid var(--yzw-line);background:#fff;color:var(--yzw-sub);transition:.15s}
.tab:hover{border-color:var(--yzw-gold)}
.tab.on{background:linear-gradient(135deg,var(--yzw-red),var(--yzw-red-deep));color:#fff;border-color:var(--yzw-red);font-weight:600}

/* 话术库 Q&A */
.faq-item{padding:12px 0;border-bottom:1px dashed var(--yzw-line)}
.faq-item:last-child{border-bottom:none}
.faq-q{display:flex;align-items:center;gap:8px;font-size:13.5px}
.faq-a{display:flex;gap:8px;align-items:flex-start;margin-top:7px;background:#FBF9F4;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.8}
.faq-badge{flex-shrink:0;font-size:10.5px;padding:2px 9px;border-radius:9px;font-weight:600}
.faq-badge.q{background:#E8EFFC;color:#2C5BBF}
.faq-badge.a{background:#F7EFDF;color:#9A7433}

/* 经营日报版式 */
.rpt{background:#fff;border:1px solid var(--yzw-line);border-radius:var(--yzw-radius-l);box-shadow:var(--yzw-shadow-card);max-width:900px;margin:0 auto}
.rpt-head{background:linear-gradient(135deg,#2B2118,#4a1f1a);color:#fff;border-radius:var(--yzw-radius-l) var(--yzw-radius-l) 0 0;padding:26px 34px 22px;position:relative;overflow:hidden}
.rpt-head::after{content:'';position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(201,161,90,.25),transparent 70%)}
.rpt-head h2{font-size:22px;letter-spacing:2px;color:var(--yzw-gold);margin-bottom:4px}
.rpt-head .sub{font-size:11px;letter-spacing:4px;color:rgba(255,255,255,.5)}
.rpt-head .meta{margin-top:10px;font-size:12.5px;color:rgba(255,255,255,.75)}
.rpt-body{padding:24px 34px 30px}
.rpt-sec{margin-bottom:26px}
.rpt-sec-h{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--yzw-red);padding-bottom:6px;margin-bottom:14px}
.rpt-sec-h b{font-size:16px;font-family:var(--yzw-font-display);color:var(--yzw-red-deep)}
.rpt-sec-h span{font-size:10px;letter-spacing:2px;color:var(--yzw-sub)}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.metric{background:#FBF9F4;border:1px solid var(--yzw-line);border-radius:10px;padding:12px 14px;text-align:center}
.metric .mv{font-size:18px;font-weight:700;color:var(--yzw-red-deep);font-family:var(--yzw-font-display)}
.metric .ml{font-size:11px;color:var(--yzw-sub);margin-top:2px}
.rpt-note{background:#FDF9F1;border-left:3px solid var(--yzw-gold);border-radius:6px;padding:10px 14px;font-size:13px;margin-top:12px}
.ov-item{display:flex;gap:10px;font-size:13.5px;padding:6px 0;border-bottom:1px dashed var(--yzw-line)}
.ov-item:last-child{border-bottom:none}
.ov-item .no{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--yzw-red);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:700}
.rpt-card{border:1px solid var(--yzw-line);border-radius:10px;padding:14px 16px;margin-bottom:12px;background:#fff}
.rpt-card .ttl{font-size:14px;font-weight:700;margin-bottom:6px}
.rpt-kv{display:flex;font-size:13px;padding:3px 0}
.rpt-kv .k{width:96px;flex-shrink:0;color:var(--yzw-sub);font-size:12px;padding-top:1px}
.rpt-kv .v{flex:1}
.rpt-script{margin-top:8px;background:#F5F1EA;border-left:3px solid var(--yzw-gold);border-radius:6px;padding:9px 12px;font-size:12.5px;color:#5c554a;font-style:italic}
.rpt-tags{margin-bottom:4px}
.chk-table{width:100%;border-collapse:collapse;font-size:13px}
.chk-table th{background:#FBF9F4;text-align:left;padding:8px 10px;font-size:12px;color:var(--yzw-sub);border-bottom:2px solid var(--yzw-line)}
.chk-table td{padding:9px 10px;border-bottom:1px solid var(--yzw-line);vertical-align:top}
.rpt-foot{text-align:center;font-size:11px;color:var(--yzw-sub);border-top:1px solid var(--yzw-line);padding-top:14px;margin-top:8px;line-height:1.8}
@media print{
  .side,.topbar,.filter-bar,.no-print{display:none!important}
  .main{margin-left:0!important}
  .content{padding:0!important;max-width:100%!important}
  .rpt{border:none;box-shadow:none;max-width:100%}
  body{background:#fff}
}

/* AI 陪练聊天 */
.persona-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}
.persona-card{border:1.5px solid var(--yzw-line);border-radius:var(--yzw-radius-m);padding:14px 16px;cursor:pointer;background:#fff;transition:.15s}
.persona-card:hover{border-color:var(--yzw-gold)}
.persona-card b{display:block;font-size:14px;margin-bottom:4px}
.persona-card span{font-size:12px;color:var(--yzw-sub)}
.chat-box{height:440px;overflow-y:auto;padding:16px;background:#F5F1EA;border-radius:var(--yzw-radius-m)}
.chat-msg{display:flex;margin-bottom:12px}
.chat-msg.me{justify-content:flex-end}
.chat-msg .bubble{max-width:72%;padding:9px 14px;border-radius:12px;font-size:13.5px;line-height:1.7;white-space:pre-wrap}
.chat-msg.me .bubble{background:var(--yzw-red);color:#fff;border-bottom-right-radius:4px}
.chat-msg.ai .bubble{background:#fff;border:1px solid var(--yzw-line);border-bottom-left-radius:4px}
.chat-msg .who{font-size:10.5px;color:var(--yzw-sub);margin-bottom:3px}
.chat-input{display:flex;gap:10px;margin-top:12px}
.chat-input input{flex:1;border:1px solid var(--yzw-line);border-radius:22px;padding:10px 18px;font-size:13.5px;font-family:var(--yzw-font-body)}
.chat-input input:focus{outline:none;border-color:var(--yzw-gold)}

@media (max-width:1024px){.grid2{grid-template-columns:1fr}}
@media (max-width:768px){
  .side{display:none}.main{margin-left:0}
  .content{padding:16px 14px 90px}
  .login-card{padding:30px 24px}
}
