/* 服务顾问工作台 · 保时捷深灰风格（对齐车间打卡 clock.css 设计令牌）
   深灰底白字 / 红底白字(Guards Red) / 浅灰底黑字，方角细线大写小字距 */

:root{
  --bg:#2b2d2f;
  --card:#35383a;
  --card-2:#303234;
  --fill:#3f4245;
  --line:#474a4d;
  --text:#f2f3f4;
  --text2:#a9adb1;
  --text3:#84888c;
  --red:#d5001c;
  --red-dim:rgba(213,0,28,.18);
  --grey:#cdd0d2;
  --ink:#15171a;
  --radius:4px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--text);
  font:15px/1.45 "Porsche Next","SF Pro Text",-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",Arial,sans-serif;
  padding-bottom:env(safe-area-inset-bottom);
  -webkit-font-smoothing:antialiased;letter-spacing:.1px;
}
button,input,textarea,select{font-family:inherit;color:inherit}
a{color:inherit;text-decoration:none}

/* 顶部 header */
.hdr{position:sticky;top:0;z-index:20;padding:calc(env(safe-area-inset-top) + 10px) 0 0;
  background:rgba(43,45,47,.92);-webkit-backdrop-filter:saturate(150%) blur(18px);backdrop-filter:saturate(150%) blur(18px);
  border-bottom:1px solid var(--line)}
.hdr-brand{display:flex;align-items:center;justify-content:space-between;padding:0 18px 7px;
  font-size:10px;font-weight:700;letter-spacing:2.2px;text-transform:uppercase;color:var(--text2)}
.hdr-title{font-size:24px;font-weight:700;letter-spacing:-.4px;line-height:1.15;padding:0 18px;color:#fff}
.hdr-sub{font-size:12px;color:var(--text2);padding:3px 18px 11px;letter-spacing:.4px}
.btn-back{display:grid;place-items:center;width:26px;height:26px;flex:none;color:#fff;opacity:.9}
.btn-back svg{width:16px;height:16px;stroke-width:1.9}

/* 容器 / 分组 */
.wrap{padding:16px 14px calc(30px + env(safe-area-inset-bottom))}
.group-title{display:flex;align-items:center;gap:8px;font-size:10.5px;font-weight:700;letter-spacing:1.8px;
  text-transform:uppercase;color:var(--text2);padding:2px 2px 10px}
.group-title::before{content:"";width:14px;height:2px;background:var(--red);flex:none}
.card{background:var(--card);border-radius:var(--radius);padding:15px 16px;border:1px solid var(--line);margin-bottom:10px}
.muted{color:var(--text2);font-size:13px}
.empty{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:40px 20px;text-align:center;color:var(--text2);font-size:13.5px;line-height:1.8}

/* 输入 / 选择 */
.inp,textarea,select{background:var(--fill);color:#fff;border:1px solid #54585c;border-radius:2px;
  padding:12px;font-size:16px;outline:none;width:100%;letter-spacing:.3px}
.inp:focus,textarea:focus{border-color:var(--red)}
.inp::placeholder,textarea::placeholder{color:#8b8f93}
.field{margin-bottom:11px}
.field label{display:block;font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;
  color:var(--text2);margin-bottom:6px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* 按钮 */
.btn{border-radius:2px;border:1px solid var(--red);background:var(--red);color:#fff;font-weight:700;
  text-transform:uppercase;display:flex;align-items:center;justify-content:center;
  min-height:50px;font-size:15px;padding:0 10px;width:100%;transition:opacity .12s ease}
.btn:active{opacity:.86}
.btn.gray{background:var(--grey);border-color:var(--grey);color:#15171a}
.btn.dark{background:var(--ink);border-color:#5c6064;color:#fff}
.btn.sm{min-height:32px;font-size:11px;padding:0 12px;width:auto}
.btn:disabled{opacity:.4}
.acts{display:grid;gap:8px;margin-top:14px}
.acts.two{grid-template-columns:1fr 1fr}

/* 状态徽章 */
.st{flex:none;display:inline-flex;align-items:center;padding:4px 8px;border-radius:2px;
  font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;white-space:nowrap}
.st-run{background:var(--red);color:#fff}
.st-idle{background:var(--fill);color:#c9cdd0}
.st-done{background:var(--grey);color:#15171a}
.st-qc{box-shadow:inset 0 0 0 1px var(--red);background:var(--red-dim);color:#fff}

/* 可勾选列表项 */
.sel-item{display:flex;align-items:flex-start;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line)}
.sel-item:last-child{border-bottom:0}
.sel-item input{width:20px;height:20px;accent-color:var(--red);flex:none;margin-top:2px}
.sel-body{flex:1;min-width:0}
.sel-name{font-size:13.5px;color:#fff;line-height:1.35}
.sel-name b{color:var(--text2);font-weight:700;font-size:11px;margin-right:5px}
.sel-meta{font-size:11px;color:var(--text2);margin-top:3px;display:flex;gap:8px;flex-wrap:wrap}
.sel-meta .h{color:var(--red);font-weight:700}

/* 金额汇总 */
.total-bar{position:sticky;bottom:0;z-index:10;background:rgba(43,45,47,.95);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.total-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}
.total-line .k{font-size:11px;color:var(--text2);letter-spacing:1.2px;font-weight:700}
.total-line .v{font-size:13px;color:#fff}
.total-line.big .k{font-size:12px;color:#fff}
.total-line.big .v{font-size:26px;font-weight:800;color:var(--red);letter-spacing:-.5px;font-variant-numeric:tabular-nums}

/* 明细行 */
.kv{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:2px 14px;margin-bottom:10px}
.kv-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.kv-row:last-child{border-bottom:0}
.kv-row .k{font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--text2);flex:none;padding-top:2px}
.kv-row .v{font-size:12.5px;color:#fff;text-align:right;line-height:1.5;word-break:break-all}

/* 明细清单行 */
.line{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.line:last-child{border-bottom:0}
.line .l{flex:1;min-width:0}
.line .nm{font-size:14px;color:#fff;line-height:1.35}
.line .sb{font-size:11px;color:var(--text2);margin-top:3px}
.line .amt{flex:none;text-align:right}
.line .amt .p{font-size:14px;font-weight:700;color:#fff}
.line .amt .q{font-size:10.5px;color:var(--text2);margin-top:2px}

/* toast */
#toast{position:fixed;left:50%;bottom:calc(26px + env(safe-area-inset-bottom));transform:translate(-50%,12px);opacity:0;pointer-events:none;
  max-width:86vw;padding:12px 16px;border-radius:2px;background:#15171a;border-left:2px solid var(--red);color:#fff;
  font-size:12.5px;font-weight:600;text-align:center;z-index:99;transition:.18s;box-shadow:0 6px 20px rgba(0,0,0,.45)}
#toast.show{opacity:1;transform:translate(-50%,0)}

/* 底部弹层 */
.modal-mask{position:fixed;inset:0;z-index:50;background:rgba(15,16,17,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  display:flex;align-items:flex-end}
.modal{width:100%;max-height:88vh;overflow:auto;background:var(--card-2);border-top:2px solid var(--red);
  box-shadow:0 -8px 30px rgba(0,0,0,.4);padding:18px 16px calc(20px + env(safe-area-inset-bottom));animation:sheet .2s ease-out}
@keyframes sheet{from{transform:translateY(24px);opacity:.5}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.modal-head h3{margin:0;font-size:13px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#fff}
.modal-close{background:none;border:0;color:var(--text2);font-size:22px;line-height:1;padding:0 4px}
.search-box{display:flex;gap:8px;margin-bottom:12px}
.search-box .inp{flex:1}
