/* 上门录音复盘 — 移动端优先 */
:root{
  --ink:#1a1614;
  --ink-2:#4a423d;
  --muted:#8a8078;
  --line:#e8e1d8;
  --bg:#faf7f2;
  --card:#ffffff;
  --accent:#b4762f;
  --accent-soft:#f5ead9;
  --ok:#2f7a52;
  --warn:#a8621f;
  --radius:16px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);
  font-size:15px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.view{display:none;min-height:100vh;padding-bottom:76px}
.view.show{display:block}
#view-login.show{display:flex;align-items:center;justify-content:center;padding:24px}

/* 登录 */
.login-wrap{width:100%;max-width:400px}
.brand{text-align:center;margin-bottom:24px}
.brand-mark{
  display:block;width:170px;height:auto;margin:0 auto 10px;
}
.brand h1{font-size:22px;margin:0 0 6px;font-weight:600}
.sub{margin:0;color:var(--muted);font-size:13px}

/* 卡片与表单 */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;margin-bottom:14px;
}
.card.muted{background:#f6f1e9;border-color:#eee6da}
.card h3{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--ink-2)}
label{display:block;margin-bottom:14px;font-size:13px;color:var(--ink-2);font-weight:500}
input,select,textarea{
  display:block;width:100%;margin-top:6px;padding:12px 13px;
  border:1px solid var(--line);border-radius:11px;background:#fdfcfa;
  font-size:15px;color:var(--ink);font-family:inherit;
  -webkit-appearance:none;appearance:none;
}
/* 复选框/单选框恢复原生外观（上面的全局 appearance:none 会把它们变成空心圆且看不到勾） */
input[type=checkbox],input[type=radio]{
  -webkit-appearance:checkbox;appearance:checkbox;
  display:inline-block;vertical-align:middle;
  width:18px;height:18px;min-width:18px;padding:0;margin:0 6px 0 0;
  accent-color:#2f8a43;
}
select{background-image:linear-gradient(45deg,transparent 50%,#8a8078 50%),linear-gradient(135deg,#8a8078 50%,transparent 50%);
  background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
textarea{resize:vertical;min-height:60px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:#fff}
.row{display:flex;gap:10px;align-items:flex-end}
.grow{flex:1;min-width:0}
.row .btn{margin-bottom:14px}

.btn{
  display:block;width:100%;padding:13px;border-radius:12px;border:1px solid transparent;
  font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;
  transition:opacity .15s;
}
.btn:active{opacity:.75}
.btn.primary{background:var(--ink);color:#fff}
.btn.ghost{width:auto;padding:11px 14px;background:var(--accent-soft);color:var(--accent);border-color:#eadfc9;font-size:13px;white-space:nowrap}
.btn[disabled]{opacity:.45}

/* 上传区 */
.uploader{margin-bottom:14px}
.file-drop{
  width:100%;padding:22px 16px;border:1.5px dashed #d9cdbb;border-radius:14px;
  background:#fdfaf5;display:flex;flex-direction:column;align-items:center;gap:4px;
  font-size:14px;color:var(--ink-2);font-family:inherit;cursor:pointer;
}
.file-drop.has-file{border-color:var(--accent);background:#fdf6ec}
.drop-icon{font-size:22px;color:var(--accent);line-height:1}
.file-drop small{color:var(--muted);font-size:12px;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.msg{margin:4px 0 12px;font-size:13px;min-height:18px}
.msg.ok{color:var(--ok)}
.msg.err{color:#b23a2f}
.hint{margin:12px 0 0;font-size:12px;color:var(--muted);line-height:1.5}
.tips{margin:0;padding-left:18px;font-size:13px;color:var(--ink-2)}
.tips li{margin-bottom:6px}

/* 顶栏与布局 */
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:18px 18px 10px;
}
.topbar h2{margin:0;font-size:19px;font-weight:600}
.topbar .sub{margin-top:2px}
.link{background:none;border:none;color:var(--muted);font-size:13px;font-family:inherit;cursor:pointer;padding:4px}
.page{padding:0 18px}

/* 列表 */
.filters{display:flex;gap:8px;padding:4px 18px 12px;overflow-x:auto}
.chip{
  padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;
  font-size:13px;color:var(--ink-2);font-family:inherit;white-space:nowrap;cursor:pointer;
}
.chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}

.item{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:14px 15px;margin-bottom:10px;cursor:pointer;
}
.item:active{background:#fdfaf5}
.item-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.item-title{font-size:15px;font-weight:600}
.item-meta{font-size:12px;color:var(--muted);margin-top:3px}
.badge{font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap}
.badge.pending{background:#fdf0dd;color:var(--warn)}
.badge.done{background:#e8f3ec;color:var(--ok)}
.score{font-size:13px;color:var(--accent);font-weight:600}

/* 同一客户多段录音聚合组 */
.item-group{border:1px solid var(--line);border-radius:14px;background:var(--card);margin-bottom:10px;overflow:hidden}
.item-group-head{display:flex;align-items:baseline;gap:8px;padding:13px 15px 8px}
.item-group-head .item-title{font-size:15px;font-weight:700}
.item-group-head .badge{margin-left:auto}
.item.seg{display:flex;align-items:center;gap:10px;border:none;border-top:1px dashed var(--line);border-radius:0;padding:10px 15px;margin:0;cursor:pointer}
.item.seg:last-child{border-bottom:none}
.item.seg:active{background:#fdfaf5}
.seg-type{font-size:12px;font-weight:600;color:var(--accent);background:#f4efe6;border-radius:6px;padding:2px 7px;white-space:nowrap}
.seg-meta{font-size:12px;color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.empty{text-align:center;color:var(--muted);font-size:13px;padding:48px 20px}

/* 详情（报告） */
.report{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.report h1{font-size:18px;margin:0 0 10px}
.report h2{font-size:16px;margin:20px 0 8px;padding-top:14px;border-top:1px solid var(--line)}
.report h2:first-child{border-top:none;padding-top:0;margin-top:0}
.report h3{font-size:14px;margin:14px 0 6px;color:var(--ink-2)}
.report p{margin:8px 0}
.report ul,.report ol{margin:8px 0;padding-left:20px}
.report li{margin:4px 0}
.report blockquote{
  margin:10px 0;padding:10px 12px;border-left:3px solid var(--accent);
  background:#fdf6ec;border-radius:0 8px 8px 0;color:var(--ink-2);font-size:14px;
}
.report table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px;display:block;overflow-x:auto}
.report th,.report td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
.report th{background:#f6f1e9;font-weight:600;white-space:nowrap}
.report code{background:#f2ece2;padding:1px 5px;border-radius:4px;font-size:13px}
.report pre{background:#f6f1e9;padding:12px;border-radius:10px;overflow-x:auto;font-size:12px}
.report hr{border:none;border-top:1px solid var(--line);margin:16px 0}

/* 底部导航 */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;display:flex;
  background:rgba(255,255,255,.94);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom));
}
.tab{
  flex:1;background:none;border:none;padding:8px;font-size:13px;color:var(--muted);
  font-family:inherit;cursor:pointer;
}
.tab.active{color:var(--ink);font-weight:600}

.skeleton{height:70px;border-radius:14px;background:linear-gradient(90deg,#f2ece2 25%,#faf5ee 50%,#f2ece2 75%);background-size:200% 100%;animation:sh 1.2s infinite}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* 成绩单 */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.stat-cell{background:#faf5ee;border-radius:12px;padding:12px 6px;text-align:center}
.stat-cell b{display:block;font-size:20px;color:var(--ink)}
.stat-cell span{font-size:11px;color:var(--muted)}
.item.me{border-color:var(--accent);background:var(--accent-soft, #f2ece2)}

/* 今日工单 */
.draw-hero{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px 16px;text-align:center;margin-bottom:12px}
.draw-hero .big{font-size:40px;margin:10px 0}
.draw-hero p{color:var(--muted);font-size:13px;margin:0 0 14px}
.ops-order{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}
.ops-order.done{border-color:#cfe3d6;background:#fbfdfc}
.ops-order.abn{border-color:#ead9c0;background:#fdfaf4}
.ops-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ops-head .rt{font-size:12px;background:var(--accent-soft,#f2ece2);color:var(--accent);border-radius:999px;padding:2px 9px;font-weight:600}
.ops-head .cn{font-size:16px;font-weight:700}
.ops-head .st{font-size:11px;padding:2px 8px;border-radius:999px;margin-left:auto}
.st.wait{background:#f1ece4;color:var(--muted)}
.st.serving{background:#fff3d6;color:#b8860b}
.st.done{background:#e8f3ec;color:var(--ok)}
.st.abnormal{background:#f7e3d9;color:#c0392b}
.ops-meta{font-size:12px;color:var(--muted);margin:6px 0}
.ops-tl{font-size:12px;color:var(--ink-2);background:#faf6f0;border-radius:10px;padding:8px 10px;margin:8px 0;line-height:1.8}
.ops-tl .rv{color:#b3aa9c;text-decoration:line-through}
.ops-tl .warn{color:#c0392b}
.ops-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ops-btns .btn{margin:0;padding:11px 14px;font-size:14px;flex:1;min-width:100px}
.ops-more{background:none;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;color:var(--ink-2);cursor:pointer;font-family:inherit;margin-top:8px}
.ops-panel{display:none;border-top:1px dashed var(--line);margin-top:10px;padding-top:12px}
.ops-panel.show{display:block}
.ops-panel h4{margin:12px 0 6px;font-size:13px;color:var(--ink)}
.ops-panel input,.ops-panel select,.ops-panel textarea{width:100%;box-sizing:border-box;margin-top:4px;font-size:14px}
.ops-panel .row2{display:flex;gap:8px}
.ops-panel .row2>*{flex:1}
.mini-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px;font-size:13px;color:var(--ink-2);cursor:pointer;font-family:inherit;width:100%;margin-top:6px}
.mini-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.flag-row{display:flex;gap:8px;margin-top:4px}
.flag-chip{flex:1;text-align:center;padding:9px 4px;border:1px solid var(--line);border-radius:10px;font-size:13px;cursor:pointer;background:#fff;user-select:none}
.flag-chip.on1{background:#e8f3ec;border-color:var(--ok);color:var(--ok);font-weight:700}
.flag-chip.on0{background:#f7e3d9;border-color:#c0392b;color:#c0392b;font-weight:700}

/* 补充说明语音输入 */
.note-tools{margin-top:8px}
.mic-btn{
  display:inline-flex;align-items:center;gap:8px;padding:9px 14px;
  border:1px solid var(--line);border-radius:999px;background:#fdfaf5;
  font-size:13px;color:var(--ink-2);font-family:inherit;cursor:pointer;
}
.mic-dot{width:9px;height:9px;border-radius:50%;background:var(--ok);display:inline-block}
.mic-btn.recording{border-color:#c0392b;background:#fdf0ee;color:#c0392b}
.mic-btn.recording .mic-dot{background:#c0392b;animation:micpulse 1s infinite}
@keyframes micpulse{0%,100%{opacity:1}50%{opacity:.25}}

/* 录音类型标签 */
.tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}

/* 扣分明细（销售/摄影师自查） */
.ded-item{padding:11px 0;border-bottom:1px dashed var(--line)}
.ded-item:last-of-type{border-bottom:none;padding-bottom:2px}
.ded-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.ded-name{font-size:14px;font-weight:600;color:var(--ink)}
.ded-num{font-size:12px;color:var(--muted);white-space:nowrap}
.ded-num b{color:#c0392b;font-size:14px;font-weight:700}
.ded-bar{height:6px;border-radius:999px;background:#f1ece4;margin:8px 0 7px;overflow:hidden}
.ded-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#e0b357,#c0392b)}
.ded-why{font-size:12px;color:var(--muted);line-height:1.65}
.ded-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:13px;color:var(--ink-2);display:flex;justify-content:space-between;align-items:baseline}
.ded-foot b{font-size:18px;color:#c0392b}
.ded-tag{font-size:10px;padding:1px 6px;border-radius:999px;background:#eef1f6;color:#5b6b82;margin-left:5px;vertical-align:1px;white-space:nowrap}
.ded-lead{margin:0 0 4px;font-size:12px;color:var(--muted);line-height:1.6}
.ded-tip{margin:12px 0 0;padding:9px 11px;border-radius:10px;background:#faf6f0;font-size:12.5px;color:var(--ink-2);line-height:1.65}
.ded-tip b{color:#c0392b}

/* 得分算法说明（把人话讲清楚，不用"系数"） */
.score-explain{margin:10px 0 0;padding:11px 13px;border-radius:12px;background:#f7f4ee;border:1px solid var(--line);font-size:12.5px;line-height:1.75;color:var(--ink-2)}
.score-explain > b{display:block;margin-bottom:5px;font-size:13px;color:var(--ink)}
.score-explain span{display:block}
.score-explain b{color:var(--ink);font-weight:600}
.score-final{margin-top:7px;padding-top:7px;border-top:1px dashed var(--line);color:#c0392b !important;font-weight:600}
.score-final b{color:#c0392b;font-size:15px}

/* 两件事分区：行为管控 / 销售能力 */
.panel-block{margin:10px 0 0;padding:12px 13px;border-radius:12px;background:#fbf9f5;border:1px solid var(--line)}
.pb-title{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;line-height:1.5}
.pb-tag{font-size:10px;font-weight:400;padding:1px 6px;border-radius:999px;background:#eef1f6;color:#5b6b82;white-space:nowrap}
.panel-block .stat-grid{margin-top:0}
.panel-block .hint{margin:7px 0 0}

/* 待补清单（红色提醒） */
.todo-card{margin:12px 0 0;padding:11px 13px;border-radius:12px;background:#fdf4f3;border:1px solid #f0d5d1}
.todo-card.ok{background:#f2f8f2;border-color:#d7e8d7;color:#3f7a3f;font-size:12.5px;line-height:1.6}
.todo-head{font-size:13px;font-weight:600;color:#c0392b;margin-bottom:5px}
.todo-card ul{margin:0;padding-left:16px}
.todo-card li{font-size:12.5px;line-height:1.85;color:var(--ink-2)}
.todo-card li b{color:var(--ink);font-weight:600}
.todo-date{color:var(--muted);font-size:11px}
.todo-hl{color:#c0392b;font-weight:600}

/* 考核期提示条（测试期 / 正式期） */
.phase-bar{margin:0 0 10px;padding:9px 12px;border-radius:10px;font-size:12.5px;line-height:1.65;border:1px solid var(--line)}
.phase-bar b{font-weight:600}
.phase-bar.test{background:#fff8ec;border-color:#f0e0c0;color:#8a6a2f}
.phase-bar.test b{color:#a8641b}
.phase-bar.official{background:#f2f7f3;border-color:#d5e6d8;color:#3f6b48}
.watch-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:9px 12px;border-radius:10px;background:#fffbe9;border:1px solid #f0e6c0;color:#8a6a2f;font-size:12.5px}
.watch-bar a{color:#a8641b;font-weight:600;text-decoration:underline;white-space:nowrap}

/* 首页顶部：盲盒抽签 / 工单大入口（底部 tab 太隐蔽，找不到的人全靠这个） */
.home-ops{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;margin:0 0 12px;padding:14px 16px;border:0;border-radius:14px;text-align:left;cursor:pointer;
  background:linear-gradient(135deg,#ff8a3d,#f5563d);color:#fff;box-shadow:0 6px 18px rgba(245,86,61,.28)}
.home-ops:active{transform:scale(.99)}
.home-ops .ho-ico{font-size:26px;line-height:1}
.home-ops .ho-txt{flex:1;display:flex;flex-direction:column;gap:3px}
.home-ops .ho-txt b{font-size:15px;font-weight:700}
.home-ops .ho-txt i{font-size:12px;font-style:normal;opacity:.9}
.home-ops .ho-arrow{font-size:22px;opacity:.85}

/* 日期文件夹：工单页顶部按天切换 */
.day-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.day-strip::-webkit-scrollbar{display:none}
.day-card{flex:0 0 auto;min-width:96px;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:8px 10px 9px;text-align:center;cursor:pointer;transition:transform .08s}
.day-card:active{transform:scale(.97)}
.day-card .d0{font-size:10px;color:var(--accent);height:13px;font-weight:700}
.day-card .d1{font-size:15px;font-weight:800;color:var(--ink)}
.day-card .d2{font-size:11px;color:var(--muted);margin-top:3px;white-space:nowrap}
.day-card.ok{border-color:#bfe3cd;background:#f3fbf6}
.day-card.run{border-color:#f2d9b6;background:#fffaf2}
.day-card.draw{border-color:#f0c99a;background:#fff3e6}
.day-card.draw .d2{color:var(--warn);font-weight:700}
.day-card.on{background:var(--ink);border-color:var(--ink)}
.day-card.on .d0{color:#e8b978}
.day-card.on .d1,.day-card.on .d2{color:#fff}
