/* RECUT 门户 — C1「Vignelli 网格」方向
   规则：单一无衬线 + 1px 规则线 + 唯一红色只做信号；无圆角、无阴影、无渐变。 */

:root{
  --ink:#111111;
  --paper:#ffffff;
  --hair:#dcdcdc;
  --hair-strong:#111111;
  --mute:#767676;
  --red:#E2231A;
  --grey:#f4f4f4;
  --mono:"SF Mono",ui-monospace,Menlo,monospace;
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--paper);color:var(--ink)}
body{font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}

a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit;background:none;border:0;outline:0}

/* ---------------------------------------------------------------- 顶栏 */
.top{display:grid;grid-template-columns:180px 1fr auto auto;align-items:center;gap:24px;
  border-bottom:1px solid var(--hair-strong);height:56px;padding-right:24px}
.brand{padding-left:24px;font-weight:700;letter-spacing:.14em;font-size:13px;border-right:1px solid var(--hair)}
.top .where{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.top .meta{font:12px var(--mono);color:var(--mute);letter-spacing:.02em}
.tabs{display:grid;grid-auto-flow:column;border-left:1px solid var(--hair);height:56px}
.tabs a{display:grid;place-items:center;padding:0 18px;font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;border-right:1px solid var(--hair)}
.tabs a[aria-current="page"]{background:var(--ink);color:var(--paper)}

/* ---------------------------------------------------------------- 三栏 */
.shell{display:grid;grid-template-columns:180px 1fr 380px;min-height:calc(100vh - 56px)}
.rail{border-right:1px solid var(--hair);padding:18px 0 0}
.rail h3{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);
  padding:0 24px 8px}
.rail .item{display:flex;justify-content:space-between;width:100%;padding:9px 24px;
  font-size:13px;border-top:1px solid var(--hair);text-align:left;align-items:baseline}
.rail .item:last-child{border-bottom:1px solid var(--hair)}
.rail .item[aria-selected="true"]{font-weight:700;color:var(--red)}
.rail .item .n{font:12px var(--mono);color:var(--mute)}
.rail .item[aria-selected="true"] .n{color:var(--red)}
.rail .note{padding:16px 24px;font-size:12px;line-height:1.6;color:var(--mute)}

.main{padding:0 0 40px;border-right:1px solid var(--hair);min-width:0}
.pad{padding:24px}

/* ---------------------------------------------------------------- 表格 */
table{width:100%;border-collapse:collapse}
th{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);
  text-align:left;font-weight:400;padding:10px 12px;border-top:1px solid var(--hair-strong);
  border-bottom:1px solid var(--hair-strong);white-space:nowrap}
td{padding:13px 12px;border-bottom:1px solid var(--hair);vertical-align:baseline}
tr.row{cursor:pointer}
tr.row:hover{background:var(--grey)}
tr.row[aria-selected="true"]{box-shadow:inset 3px 0 0 var(--ink)}
td.no{font:13px var(--mono);letter-spacing:.02em}
td.num,th.num{text-align:right;font-family:var(--mono);font-size:12.5px}
.st{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.st.alert{color:var(--red)}

/* ---------------------------------------------------------------- 队列条 */
.jobs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--hair-strong);
  border-bottom:1px solid var(--hair-strong);margin-top:24px}
.jobs > div{padding:14px 12px;border-right:1px solid var(--hair)}
.jobs > div:last-child{border-right:0}
.jobs .k{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.jobs .v{font:12.5px var(--mono);margin-top:6px}

/* ---------------------------------------------------------------- 日志 */
.log{width:100%;border-collapse:collapse;margin-top:24px}
.log td{border-bottom:1px solid var(--hair);padding:11px 12px;font-size:13px}
.log td.t{font:12px var(--mono);color:var(--mute);width:64px}
.log td.who{font-size:11px;letter-spacing:.12em;text-transform:uppercase;width:96px;color:var(--mute)}
.log td.no{width:64px;text-align:right;color:var(--mute);font-size:12px}

/* ---------------------------------------------------------------- 详情栏 */
.side{padding:24px}
.side .label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.side h2{font-size:24px;letter-spacing:-.01em;margin:6px 0 4px;font-weight:700}
.side .sub{font:12px var(--mono);color:var(--mute);overflow-wrap:anywhere}
.side hr{border:0;border-top:1px solid var(--hair-strong);margin:22px 0 16px}
.side p{margin:6px 0 12px}
.side p.sub{margin:4px 0 6px}
.score{display:flex;align-items:baseline;gap:8px;margin:6px 0 14px}
.score b{font-size:44px;letter-spacing:-.03em;line-height:1}
.score span{font-size:12px;color:var(--mute);font-family:var(--mono)}
.dim{display:grid;grid-template-columns:1fr 24px;gap:6px 10px;align-items:center;font-size:13px}
.dim .bar{grid-column:1/-1;height:5px;background:var(--grey);margin-bottom:8px}
.dim .bar i{display:block;height:5px;background:var(--ink)}
.dim .bar i.low{background:var(--red)}
.dim .v{font:12px var(--mono);text-align:right}
.money{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:13px}
.money .tot{border-top:1px solid var(--hair-strong);margin-top:8px;padding-top:8px;font-weight:700}
.btn{display:block;width:100%;padding:13px;border:1px solid var(--ink);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;text-align:center;margin-top:10px}
.btn.dark{background:var(--ink);color:var(--paper)}
.btn.ghost{background:var(--paper)}
.btn[disabled]{opacity:.35;cursor:not-allowed}
.btn.red{border-color:var(--red);color:var(--red)}

.qc-row{display:grid;grid-template-columns:1fr 108px 56px 36px;gap:10px;align-items:center;
  padding:7px 0;border-bottom:1px solid var(--hair);font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--mute)}
.qc-row .bar{height:5px;background:var(--grey);display:block}
.qc-row .bar i{display:block;height:5px;background:var(--ink)}
.qc-row .bar i.low{background:var(--red)}
.qc-row input{border-bottom:1px solid var(--ink);text-align:right;font:12px var(--mono);
  color:var(--ink);padding:3px 0;width:100%}
.qc-row .v{font:12px var(--mono);text-align:right;color:var(--ink)}
.qc-row .v.low{color:var(--red)}

/* ---------------------------------------------------------------- 表单 */
.field{margin-bottom:18px}
.field label{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mute);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border-bottom:1px solid var(--ink);
  padding:9px 0;font-size:15px;border-radius:0;appearance:none}
.field textarea{border:1px solid var(--ink);padding:10px;min-height:92px;resize:vertical}
.field .hint{font-size:12px;color:var(--mute);margin-top:6px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.err{color:var(--red);font-size:13px;margin-top:12px}
.ok{border:1px solid var(--ink);padding:16px;margin-top:16px}
.ok .no{font:18px var(--mono);letter-spacing:.04em}

/* ---------------------------------------------------------------- 客户页 */
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.hero{display:grid;grid-template-columns:1fr 340px;gap:48px;padding:56px 0 40px;
  border-bottom:1px solid var(--hair-strong)}
.hero h1{font-size:54px;line-height:1.02;letter-spacing:-.035em;font-weight:700;max-width:14ch}
.hero p{font-size:16px;color:var(--mute);margin-top:16px;max-width:46ch;line-height:1.6}
.hero .facts{border-left:1px solid var(--hair-strong);padding-left:24px;font-size:13px;align-self:start}
.hero .facts div{display:grid;grid-template-columns:88px 1fr;gap:12px;padding:8px 0;
  border-bottom:1px solid var(--hair)}
.hero .facts .k{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.cols{display:grid;grid-template-columns:1fr 420px;gap:56px;padding:40px 0 72px}
h2.section{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);
  border-top:1px solid var(--hair-strong);padding-top:10px;margin-bottom:18px}
.main h2.section{border-top:0;padding-top:0}
.steps{list-style:none;counter-reset:s}
.steps li{counter-increment:s;padding:14px 0 14px 44px;border-bottom:1px solid var(--hair);
  position:relative;font-size:14px}
.steps li:before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:14px;
  font:12px var(--mono);color:var(--mute)}
.track td,.track th{padding-left:0;padding-right:16px}
.st + .pill{margin-left:8px;vertical-align:1px}
td{white-space:nowrap}
.pill{font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--ink);
  padding:3px 7px;display:inline-block}
.pill.red{border-color:var(--red);color:var(--red)}

@media (max-width:1100px){
  .shell{grid-template-columns:1fr}
  .rail,.side{border:0;border-top:1px solid var(--hair-strong)}
  .hero,.cols{grid-template-columns:1fr;gap:28px}
  .hero .facts{border-left:0;border-top:1px solid var(--hair-strong);padding:16px 0 0}
}

/* 复刻模板下拉：与细线表单一套，不引入新形状 */
.select{width:100%;border-bottom:1px solid var(--ink);padding:8px 22px 8px 0;font-size:14px;
  appearance:none;border-radius:0;cursor:pointer;background:none;font-weight:700}
.select:focus{border-bottom-color:var(--red)}
.select-wrap{position:relative;margin-bottom:10px}
.select-wrap::after{content:"\25BE";position:absolute;right:2px;top:50%;transform:translateY(-50%);
  pointer-events:none;font-size:11px;color:var(--mute)}
.beats{margin:6px 0 18px}
.beats td{font-size:13px;padding:3px 0;border:0}
.beats td.no{width:76px;color:var(--mute);font-variant-numeric:tabular-nums}
