/* 第六批增量：仅客服工单列表密度与登录字母验证码。 */

/* 工单页不使用任何随视口变化的字号或整体缩放，宽屏只扩展内容宽度。 */
#pageContent.page-stretch-tickets{width:100%;max-width:none!important;font-size:13px}
.page-stretch-tickets>.split-workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)!important}
.page-stretch-tickets .ticket-list{font-size:13px}
.page-stretch-tickets .ticket-list button,
.page-stretch-tickets .ticket-list input{font-size:12px}
.page-stretch-tickets .ticket-list-head{min-height:54px;padding:9px 12px}
.page-stretch-tickets .ticket-list-head h3{font-size:14px}
.page-stretch-tickets .ticket-list-head p{font-size:11px}
.page-stretch-tickets .ticket-list-head .ticket-query-check{display:flex;align-items:center;gap:5px;color:var(--sub);font-size:11px;white-space:nowrap}
.page-stretch-tickets .ticket-list-head input{accent-color:var(--blue)}
.page-stretch-tickets .ticket-virtual-scroll{position:relative;display:block!important;flex:1 1 auto;min-height:576px;overflow:auto;contain:strict;overscroll-behavior:contain}
.page-stretch-tickets .ticket-virtual-space{position:relative;width:100%;min-height:100%}
.page-stretch-tickets .ticket-density-row{position:absolute;left:0;right:0;height:48px;box-sizing:border-box;padding:5px 9px;display:grid;grid-template-columns:18px 28px minmax(0,1fr) 176px;align-items:center;gap:7px;border-bottom:1px solid var(--line);background:var(--card);cursor:pointer}
.page-stretch-tickets .ticket-density-row:hover,.page-stretch-tickets .ticket-density-row.active{background:color-mix(in srgb,var(--card) 94%,var(--blue) 6%)}
.page-stretch-tickets .ticket-density-row.overdue{border-left:3px solid var(--amber);padding-left:6px}
.page-stretch-tickets .ticket-density-row.menu-open{z-index:8}
.page-stretch-tickets .ticket-density-row .check{margin:0}
.page-stretch-tickets .ticket-density-row .mini-avatar{width:27px;height:27px;min-width:27px;font-size:11px}
.page-stretch-tickets .ticket-compact-main{display:grid;min-width:0;line-height:1.25}
.page-stretch-tickets .ticket-compact-main b,.page-stretch-tickets .ticket-compact-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-stretch-tickets .ticket-compact-main b{font-size:12px;color:var(--text)}
.page-stretch-tickets .ticket-compact-main small{margin-top:2px;font-size:11px;color:var(--sub)}
.page-stretch-tickets .ticket-compact-side{position:relative;display:grid;justify-items:end;gap:3px;min-width:0}
.page-stretch-tickets .ticket-compact-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;width:100%}
.page-stretch-tickets .ticket-status-toggle{height:22px;max-width:92px;padding:0 8px;border:0;border-radius:11px;background:#EFF6FF;color:#2563EB;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.page-stretch-tickets .ticket-status-toggle.warning{background:#FFF7ED;color:#C2410C}
.page-stretch-tickets .ticket-status-toggle.success{background:#ECFDF3;color:#15803D}
html[data-theme="dark"] .page-stretch-tickets .ticket-status-toggle{background:rgba(61,123,255,.14);color:#8DB1FF}
html[data-theme="dark"] .page-stretch-tickets .ticket-status-toggle.warning{background:rgba(245,165,36,.13);color:#F5A524}
html[data-theme="dark"] .page-stretch-tickets .ticket-status-toggle.success{background:rgba(34,211,170,.12);color:#22D3AA}
.page-stretch-tickets .ticket-density-row .ticket-take{height:22px;min-width:46px;padding:0 7px}
.page-stretch-tickets .ticket-compact-meta{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;color:var(--sub);font-size:10px}
.page-stretch-tickets .ticket-status-popover{position:absolute;z-index:20;right:0;top:25px;width:112px;padding:4px;display:grid;gap:2px;border:1px solid var(--line2);border-radius:8px;background:var(--float);box-shadow:var(--shadow)}
.page-stretch-tickets .ticket-status-popover button{height:25px;padding:0 7px;border:0;border-radius:5px;background:transparent;color:var(--sub);text-align:left;cursor:pointer}
.page-stretch-tickets .ticket-status-popover button:hover,.page-stretch-tickets .ticket-status-popover button.active{background:rgba(61,123,255,.11);color:var(--blue)}
.page-stretch-tickets .ticket-list-foot{flex:0 0 auto;height:34px;padding:0 11px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);color:var(--sub);font-size:10px;background:var(--card)}
.page-stretch-tickets .ticket-list-foot .grow{flex:1}
.page-stretch-tickets .ticket-list-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--placeholder);font-size:12px}
.page-stretch-tickets .ticket-batch label{display:flex;align-items:center;gap:5px;color:var(--sub);font-size:11px}
.page-stretch-tickets .ticket-batch input{accent-color:var(--blue)}

/* 输入式字母验证：固定四字母、输入反馈和锁定状态。 */
.captcha-modal .captcha-prompt{font-size:12px}
.captcha-canvas{height:150px;display:grid;grid-template-columns:repeat(4,58px);align-items:center;justify-content:center;gap:18px;padding:18px}
.captcha-letter{width:58px;height:58px;display:grid;place-items:center;border:1px solid var(--line2);border-radius:14px;background:var(--card);color:var(--text);font:700 27px ui-monospace,SFMono-Regular,Menlo,monospace;text-transform:lowercase;box-shadow:0 8px 22px rgba(15,23,42,.12);transition:border-color .15s,color .15s,background .15s}
.captcha-letter>span{display:block;animation:captcha-float var(--d) ease-in-out infinite alternate}
.captcha-letter.typed{border-color:rgba(61,123,255,.55);background:rgba(61,123,255,.08);color:var(--blue)}
.captcha-letter.match{border-color:rgba(22,163,74,.45);background:rgba(22,163,74,.08);color:var(--green)}
.captcha-letter.mismatch{border-color:rgba(220,38,38,.45);background:rgba(220,38,38,.08);color:var(--red)}
.captcha-progress{min-height:67px;letter-spacing:normal;text-align:left}
.captcha-input-row{display:grid;grid-template-columns:1fr 88px;gap:8px}
.captcha-input-row input{height:40px;min-width:0;padding:0 11px;border:1px solid var(--line2);border-radius:8px;background:var(--card);color:var(--text);font:600 16px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.24em;text-transform:lowercase}
.captcha-input-row input::placeholder{color:var(--placeholder);font:12px -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:0;text-transform:none}
.captcha-input-row button{height:40px}
.captcha-feedback{min-height:20px;padding-top:6px;color:var(--sub);font-size:11px;text-align:center}
.captcha-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.captcha-actions button{width:100%;height:36px}
.captcha-modal.locked .captcha-canvas,.captcha-modal.locked .captcha-input-row{opacity:.45;pointer-events:none}
.captcha-modal.locked .captcha-feedback{color:var(--red)}

@media(max-width:899px){
  #pageContent.page-stretch-tickets{max-width:100%!important}
  .page-stretch-tickets>.split-workspace{grid-template-columns:1fr!important}
  .page-stretch-tickets .ticket-virtual-scroll{min-height:576px}
}

@media(max-width:520px){
  .captcha-canvas{height:132px;grid-template-columns:repeat(4,52px);gap:10px;padding:12px}
  .captcha-letter{width:52px;height:52px;font-size:24px}
  .captcha-input-row{grid-template-columns:1fr 76px}
}
