/* tickets.css - 工单模块样式（server/tickets/webui/），设计稿 docs\工单\设计稿.html。
   颜色与尺寸变量沿用 app.css 的 :root。*/
.tc-pghead{display:flex;align-items:flex-end;gap:16px;min-height:70px;padding:8px 0 6px}
.tc-pgtitle{margin:0;font-size:calc(var(--ui-base) * 1.6);font-weight:740;letter-spacing:-.03em}
.tc-pgsub{margin:4px 0 0;color:var(--muted);font-size:var(--ui-small)}
.tc-pgsub:empty{display:none}
.tc-pgact{margin-left:auto;display:flex;gap:10px;align-items:center}
.tc-card{margin-top:14px;padding:18px 22px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.tc-card-tight{margin-top:18px}
.tc-card h3{margin:0 0 12px;font-size:var(--ui-base);font-weight:700}
.tc-dim,.tc-empty{color:var(--muted);font-size:var(--ui-small)}
/* 按钮 */
.tc-btn{height:32px;padding:0 14px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);font-size:var(--ui-small);font-weight:650}
.tc-btn:hover{background:var(--surface2)}
.tc-btn.primary{border-color:var(--blue);background:var(--blue);color:#fff}
.tc-btn.primary:hover{background:var(--blue-dark)}
.tc-btn.danger{border-color:#e6b4ad;color:var(--down)}
.tc-bigbtn{height:var(--ui-control);padding:0 22px;border:0;border-radius:9px;background:var(--blue);color:#fff;font-size:var(--ui-base);font-weight:700}
.tc-bigbtn:hover{background:var(--blue-dark)}
.tc-acts{display:flex;align-items:center;gap:12px;margin-top:12px}
.tc-acts .hint,.tc-acts .error{margin:0}
/* 标签与状态 */
.tc-tag{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--ui-caption);font-weight:700;white-space:nowrap;background:#eef1f5;color:#46536a}
.tc-tag.need{background:var(--blue-soft);color:var(--blue-dark)}
.tc-tag.bug{background:var(--down-bg);color:var(--down)}
.tc-st{font-size:var(--ui-small);font-weight:700;white-space:nowrap}
.tc-st.open{color:#a96008}
.tc-st.doing{color:var(--blue-dark)}
.tc-st.returned{color:var(--down)}
.tc-st.done{color:var(--up)}
.tc-st.closed{color:var(--subtle)}
/* 列表 */
.tc-filters{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}
.tc-seg button{padding:7px 14px;font-size:var(--ui-small);white-space:nowrap}
.tc-seg{justify-self:start}
.tc-seg button.active{background:var(--blue-soft);color:var(--blue-dark);font-weight:700}
.tc-rhead,.tc-row{display:grid;grid-template-columns:70px 1fr 64px 110px 88px 110px;align-items:center;gap:12px;padding:11px 6px;font-size:var(--ui-small)}
.tc-rhead{padding:6px 6px 8px;border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--ui-caption);font-weight:650}
.tc-row{border-bottom:1px solid var(--line);cursor:pointer}
.tc-row:last-child{border-bottom:0}
.tc-row:hover{background:var(--blue-faint)}
.tc-num{font-family:Consolas,monospace;color:var(--muted)}
.tc-rtitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tc-row .tc-tag{justify-self:start}
.tc-rtitle b{font-weight:650}
.tc-rtitle i{font-style:normal;margin-left:8px;color:var(--subtle);font-size:var(--ui-caption)}
/* 详情 */
.tc-detail{display:grid;grid-template-columns:1fr 300px;gap:0 22px;align-items:start}
.tc-dhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tc-dtitle{margin:0;font-size:calc(var(--ui-base) * 1.25);font-weight:740}
.tc-dmeta{margin:6px 0 0;color:var(--muted);font-size:var(--ui-small)}
.tc-dbody{margin:14px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);font-size:var(--ui-base);line-height:1.7;white-space:pre-wrap}
.tc-subhead{margin:22px 0 10px;font-size:var(--ui-small);color:var(--muted)}
/* 截图 */
.tc-shots{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.tc-shots:empty{display:none}
.tc-shot{position:relative;width:132px;height:84px;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;background:var(--surface2);display:grid;place-items:center}
.tc-shot img{width:100%;height:100%;object-fit:cover;display:block}
.tc-shot-add{border-style:dashed;color:var(--muted);font-size:var(--ui-small);cursor:pointer;text-align:center;padding:0 8px}
.tc-shot-add:hover{border-color:var(--blue);color:var(--blue)}
.tc-shot-del{position:absolute;top:4px;right:4px;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:rgba(23,32,51,.65);color:#fff;font-size:13px;line-height:1}
/* 时间线 */
.tc-tl{margin:8px 0 0;padding:0 0 0 20px;list-style:none;border-left:2px solid var(--line)}
.tc-tl li{position:relative;padding:0 0 18px 6px}
.tc-tl li:last-child{padding-bottom:0}
.tc-tl li:before{content:"";position:absolute;left:-27px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--line-strong)}
.tc-tl li.act:before{border-color:var(--blue);background:var(--blue)}
.tc-tl li.warn:before{border-color:var(--down);background:var(--down)}
.tc-tl li.ok:before{border-color:var(--up);background:var(--up)}
.tc-tl-h{font-size:var(--ui-small)}
.tc-tl-h b{font-weight:700}
.tc-tl-h span{margin-left:8px;color:var(--subtle);font-size:var(--ui-caption)}
.tc-tl-t{margin:5px 0 0;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:var(--ui-small);line-height:1.6;white-space:pre-wrap}
.tc-tl-t.red{border-color:#f0cdc8;background:var(--down-bg)}
/* 右栏 */
.tc-side{padding-top:4px}
.tc-box{padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:var(--surface);margin-bottom:14px}
.tc-box h4{margin:0 0 10px;font-size:var(--ui-small);color:var(--muted)}
.tc-box-hi{border-color:#cfdcf4;background:var(--blue-soft)}
.tc-box-hi h4{color:var(--blue-dark)}
.tc-kv{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:var(--ui-small)}
.tc-kv span{color:var(--muted)}
/* 处理按钮分两组：推进（开始处理 / 标记完成）与退回（打回 / 关闭） */
.tc-actrow{display:flex;flex-direction:column;gap:14px}
.tc-actgrp{display:flex;flex-wrap:wrap;gap:8px}
.tc-actbox{margin-top:12px;padding-top:12px;border-top:1px solid #cfdcf4}
.tc-actbox textarea{width:100%;padding:8px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);font-size:var(--ui-small);line-height:1.6;resize:vertical}
/* 表单 */
.tc-form{display:grid;grid-template-columns:96px 1fr;gap:16px 18px;align-items:start}
.tc-label{display:block;padding-top:8px;color:var(--muted);font-size:var(--ui-small);font-weight:650}
.tc-label em{font-style:normal;font-weight:500;color:var(--down)}
.tc-form input[type=text],.tc-form textarea,#tc-say{width:100%;padding:9px 12px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface-soft);font-size:var(--ui-base);line-height:1.6;resize:vertical}
#tc-view-new .tc-btn{height:var(--ui-control)}
/* 被打回时提单人看到的补充说明卡 */
.tc-card.tc-supplement{border-color:#f0cdc8;background:var(--down-bg)}
.tc-card.tc-supplement h3{color:var(--down)}
.tc-card.tc-supplement #tc-say{background:var(--surface)}
