:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#24332d;background:#f3f5f2;font-synthesis:none;font-variant-numeric:tabular-nums;--muted:#69756e;--line:#dfe5df;--green:#28634b;--soft:#e9f1eb}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{outline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--green)}[hidden]{display:none!important}header{height:76px;padding:0 max(24px,4vw);display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fafcf9;border-bottom:1px solid var(--line)}.brand{color:#233f30;text-decoration:none;font-size:19px;font-weight:650;letter-spacing:-.03em;display:flex;align-items:center;gap:16px}.brand:before{content:'↗';display:grid;place-items:center;width:34px;height:34px;background:var(--green);color:white;border-radius:9px;font-size:24px;font-weight:400}.brand span{border-left:1px solid var(--line);padding-left:16px;color:var(--muted);font-size:12px;font-weight:400;letter-spacing:0}#account{display:flex;align-items:center;gap:12px;font-size:12px}#account>span{color:var(--muted)}main{max-width:1440px;padding:44px 40px 64px;margin:auto}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:600;color:var(--green);margin:0 0 12px}h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:32px;line-height:1.25;letter-spacing:-.04em;font-weight:600;margin:0}h2{font-size:20px;font-weight:600;margin:0 0 24px;letter-spacing:-.02em}.muted{color:var(--muted);font-size:13px;line-height:1.7}.title-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.title-row .muted{margin:10px 0 0}.summary{display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr;background:#fbfcfa;border:1px solid var(--line);border-radius:12px;margin-bottom:32px;overflow:hidden}.summary>div{padding:22px 26px;border-right:1px solid var(--line)}.summary>div:last-child{border:0}.summary span{font-size:12px;color:var(--muted)}.summary strong{font-size:32px;display:block;margin-top:12px;font-weight:550;letter-spacing:-.04em}.summary>div:nth-child(2) strong{color:var(--green)}code{font:12px ui-monospace,SFMono-Regular,monospace;background:var(--soft);padding:3px 6px;border-radius:4px}label{display:block;font-size:12px;font-weight:550;margin-bottom:18px;color:#46554b}input,select{width:100%;padding:11px 12px;border:1px solid #cfd8cf;border-radius:7px;background:white;color:#24332d;font-size:13px;margin-top:8px;min-width:0}input::placeholder{color:#89928c}input:focus,select:focus{outline:2px solid #80a58d;outline-offset:1px;border-color:var(--green)}.search{width:min(360px,100%);margin:0}button{cursor:pointer;border:1px solid transparent;border-radius:7px;padding:10px 15px;font-size:12px;font-weight:550;white-space:nowrap;transition:background .16s,border-color .16s,transform .16s}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}.primary{color:#fff;background:var(--green)}.primary:hover{background:#1e503c}.secondary{color:#384d3e;background:#fff;border-color:#d3dcd3}.secondary:hover{background:#edf2ec;border-color:#aebfaf}.quiet{background:transparent;color:#66716a;padding:8px}.quiet:hover{background:#e8eee7;color:#243f30}.list-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px}.list-heading h2{font-size:15px;margin:0}.list-heading span{font-size:11px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;white-space:nowrap}th{background:#f8faf7;color:#738075;text-align:left;font-size:11px;font-weight:500}td,th{padding:17px 16px;border-bottom:1px solid #e9eee7}td{font-size:12px}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfdfb}.user-id{display:block;font:600 13px ui-monospace,SFMono-Regular,monospace}.badge{color:#356449;background:#edf4ec;padding:4px 8px;border-radius:5px;font-size:11px}.badge:before{content:'';display:inline-block;width:5px;height:5px;background:currentColor;border-radius:50%;margin-right:6px;vertical-align:2px}.badge.off{color:#797b73;background:#f0f1ed}.actions{display:flex;gap:6px}.actions button{font-size:11px;padding:7px 9px}.footnote,.help{color:var(--muted);font-size:12px;line-height:1.8}.footnote{margin-top:18px}.error{color:#a43d32;font-size:13px;line-height:1.6}.error:empty,#notice:empty{display:none}#notice{font-size:13px;color:var(--green)}#notice.error{color:#a43d32}.empty{text-align:center;padding:52px 20px;color:var(--muted);font-size:13px}.empty h2{margin-bottom:10px;color:#435448;font-size:18px}.empty p{margin:0}.login-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;align-items:center;min-height:70dvh;max-width:1000px;margin:auto}.intro h1{font-size:48px;line-height:1.25}.intro>p:not(.eyebrow){max-width:340px;color:var(--muted);font-size:14px;line-height:1.9;margin-top:24px}.connection-note{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:36px}.panel{background:#fff;padding:32px;border:1px solid var(--line);border-radius:14px}.panel>.primary{width:100%;margin-top:4px}dialog{border:1px solid var(--line);border-radius:14px;background:#fff;padding:28px;width:min(520px,calc(100vw - 32px));max-height:90dvh;color:#24332d;box-shadow:0 24px 90px #1e352321}dialog::backdrop{background:#233a304d;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:20px}.dialog-head h2{margin-bottom:24px}.dialog-head .quiet{margin-top:-5px}.skip-link{position:fixed;top:-60px;left:20px;padding:12px;background:#fff;color:var(--green);z-index:2}.skip-link:focus{top:10px}.flow-controls{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:20px 28px 16px}.flow-controls label{margin:0;width:260px}.flow-page-actions{display:flex;gap:8px}.flow-record{border-bottom:1px solid var(--line)}.flow-record>summary{list-style:none;display:grid;grid-template-columns:54px 42px minmax(0,1fr) 128px;gap:12px;align-items:center;padding:17px 28px;cursor:pointer;position:relative}.flow-record>summary::-webkit-details-marker{display:none}.flow-record>summary:after{content:'›';position:absolute;right:12px;color:#7c8b7e;font-size:18px}.flow-record[open]>summary:after{transform:rotate(90deg)}.flow-record>summary:hover,.flow-record[open]>summary{background:#f1f6ef}.method{font:600 11px ui-monospace,monospace;color:#456348}.status-code{font:12px ui-monospace,monospace;color:#32694b;background:#e7f0e5;border-radius:4px;padding:4px 5px;text-align:center}.status-code.failed{background:#f9ebe5;color:#a44b38}.flow-address{min-width:0;display:grid;gap:5px}.flow-host{font-size:13px;font-weight:550;overflow-wrap:anywhere}.flow-path{font:11px ui-monospace,SFMono-Regular,monospace;color:#758175;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.flow-time{color:#788377;font-size:10px;line-height:1.6;text-align:right}.flow-content{padding:0 28px 24px;background:#f8faf6}.flow-connection{font:11px/1.7 ui-monospace,monospace;color:#657464;padding:16px 0;margin:0;overflow-wrap:anywhere}.message-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.message-panel{min-width:0;background:white;border:1px solid var(--line);border-radius:8px;padding:18px}.message-panel h3{font-size:14px;margin:0 0 6px}.message-meta{font-size:11px;color:var(--muted);margin:0 0 20px}.message-panel h4{font-size:11px;color:#63745f;font-weight:500;margin:18px 0 8px}.message-panel pre{font:11px/1.75 ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;background:#f4f6f1;padding:12px;border-radius:5px;margin:0;color:#43523e}.flow-record summary:focus-visible{outline:2px solid var(--green);outline-offset:-3px}
@media(max-width:1100px){.brand span{display:none}.summary>div{padding:20px}.table-wrap{overflow:visible}table,tbody{display:block}thead{display:none}tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:20px;gap:20px;border-bottom:1px solid var(--line)}td{display:block;padding:0;border:0;white-space:normal}td:first-child{grid-column:1/3}td:last-child{grid-column:1/-1}.actions{border-top:1px solid var(--line);padding-top:14px;flex-wrap:wrap}.message-grid{grid-template-columns:1fr}}
@media(max-width:600px){header{height:66px;padding:0 18px}.brand{font-size:16px;gap:8px}.brand:before{width:28px;height:28px;font-size:20px}#account{gap:2px}#account>span{display:none}#account button{font-size:10px;padding:6px}main{padding:28px 18px 40px}.title-row{align-items:start;gap:12px}h1{font-size:26px}.title-row .muted{font-size:12px}.title-row .primary{padding:9px 10px;font-size:11px}.summary{grid-template-columns:1fr 1fr;margin-bottom:26px}.summary>div{padding:18px}.summary>div:nth-child(2){border-right:0}.summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.summary strong{font-size:28px}tbody tr{grid-template-columns:1fr 1fr;gap:18px}td:first-child{grid-column:auto}td:nth-child(2){text-align:right}.actions{gap:4px}.actions button{font-size:11px;padding:7px}.login-layout{grid-template-columns:1fr;gap:30px;min-height:0}.intro h1{font-size:36px}.intro>p:not(.eyebrow){margin-top:18px}.connection-note{margin-top:20px}.panel{padding:24px}.flow-controls{padding:16px 18px;flex-wrap:wrap;gap:12px}.flow-controls label{width:100%}.flow-page-actions{width:100%;justify-content:flex-end}.flow-record>summary{padding:16px 26px 16px 18px;grid-template-columns:44px 35px minmax(0,1fr);gap:8px}.flow-time{grid-column:3;text-align:left;font-size:10px}.flow-content{padding:0 18px 18px}.message-panel{padding:14px}dialog{padding:22px}.flow-host{font-size:12px}}
@media(prefers-reduced-motion:reduce){button{transition:none}}#questions-list{margin:18px 0}#question-detail{width:min(1200px,calc(100vw - 32px));padding:0}#question-detail>.dialog-head{position:sticky;top:0;background:#fff;padding:24px 28px 16px;border-bottom:1px solid var(--line);z-index:1}#question-detail h2{margin:0}#question-detail-status{margin:0;padding:0 28px}#question-detail-status:not(:empty){padding:16px 28px}.question-detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.question-detail-grid>section{min-width:0;padding:24px 28px}.question-detail-grid h3{margin:0 0 16px;font-size:15px}.question-answer-panel{background:#f3f7f1;border-left:1px solid var(--line)}.question-provenance{padding:18px 28px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.question-provenance summary{cursor:pointer}@media(max-width:760px){.question-detail-grid{grid-template-columns:1fr}.question-answer-panel{border-left:0;border-top:1px solid var(--line)}.question-detail-grid>section{padding:20px}#question-detail>.dialog-head{padding:20px}#question-detail h2{font-size:18px}}#question-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.8 system-ui,sans-serif}.page-nav{display:flex;gap:28px;padding:0 max(24px,4vw);background:#fafcf9;border-bottom:1px solid var(--line)}.page-nav a{padding:17px 0;color:var(--muted);text-decoration:none;font-size:14px;border-bottom:3px solid transparent}.page-nav a[aria-current=page]{color:var(--green);border-color:var(--green);font-weight:600}#questions-page .flow-controls{padding:16px 0}#questions-page #questions-status{font-size:13px;color:var(--muted);line-height:1.8}#questions-page #questions-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.question-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:14px}.question-card-meta{display:flex;gap:8px}.question-card-answer{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;color:var(--green);font-size:15px;font-weight:600;line-height:1.65;overflow-wrap:anywhere}#questions-page>.flow-page-actions{justify-content:flex-end;align-items:center;margin-top:24px}@media(max-width:800px){#questions-page #questions-list{grid-template-columns:1fr}.page-nav{padding:0 18px}.question-card{padding:18px}}#questions-page .flow-controls{justify-content:flex-start;flex-wrap:wrap}#questions-page .flow-controls label{flex:1;min-width:200px;max-width:420px}#question-content{display:block;width:100%;height:65vh;min-height:360px;border:1px solid var(--line);border-radius:6px;background:#fff}/* Question archive previews */
.question-card-meta{align-items:center;flex-wrap:wrap}.question-number{font-size:13px;font-weight:600;margin-right:4px}.question-card-actions{display:flex;gap:8px;margin-left:auto}.question-card-actions button{padding:7px 10px;font-size:12px}.question-delete{background:transparent;color:#a13d35;border:1px solid #e5c8c4}.question-delete:hover{background:#fff1ef}.question-card-preview{display:block;width:100%;height:330px;border:1px solid var(--line);border-radius:8px;background:#fff}.question-card-answer{margin-top:0;display:flex;align-items:baseline;gap:14px}.answer-label{display:block;font-size:12px;font-weight:500;color:var(--muted);flex:none}.answer-value{font-size:22px;white-space:pre-wrap;overflow-wrap:anywhere}.question-card-explanation{font-size:14px;line-height:1.8;overflow-wrap:anywhere}.reason-preview{margin:6px 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;white-space:pre-wrap}.reason-details summary{cursor:pointer;color:var(--green);font-size:12px;padding:5px 0}.reason-full{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.85;margin:12px 0}.question-card-explanation:has(details[open])>.reason-preview{display:none}#question-answer{padding:0 0 22px;border-top:0;border-bottom:1px solid var(--line);margin-bottom:24px}#question-solution h3{font-size:13px;color:var(--muted)}@media(max-width:520px){.question-card-actions{width:100%;margin-left:0;justify-content:flex-end}.question-card-preview{height:300px}.question-card{padding:14px}}.question-card-preview[hidden]{display:none}.answer-option-text{font-size:14px;font-weight:400;color:#24332d;overflow-wrap:anywhere;white-space:pre-wrap}.question-card-answer{flex-wrap:wrap}.answer-option-text{flex-basis:100%}.bind-cards button{align-self:center;margin:0 12px}.bind-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}.bind-cards>div{padding:16px 18px;border-right:1px solid var(--line);min-width:0}.bind-cards>div:last-child{border-right:0}.bind-cards span{display:block;font-size:10px;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.bind-cards strong{display:block;font-size:14px;font-weight:600;overflow-wrap:anywhere}
@media(max-width:1100px){.bind-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.bind-cards>div:nth-child(3n){border-right:0}.bind-cards>div:nth-child(-n+3){border-bottom:1px solid var(--line)}}
@media(max-width:600px){.bind-cards{grid-template-columns:1fr 1fr}.bind-cards>div{border-right:0;border-bottom:1px solid var(--line)}}/* 「认证绑定」列 + 顶部面板的运维卡片 */
.quiet-badge{background:#eef2ee;color:#41564a}.bind-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1100px){.bind-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.bind-cards>div:nth-child(3n){border-right:1px solid var(--line)}.bind-cards>div:nth-child(2n){border-right:0}.bind-cards>div:nth-child(-n+2){border-bottom:1px solid var(--line)}/* 用户表多了一列：小屏按序贴上标签 */
tbody tr{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.bind-cards{grid-template-columns:1fr 1fr}tbody tr{grid-template-columns:1fr 1fr}}
@media(max-width:1100px){tbody tr{grid-template-columns:repeat(2,minmax(0,1fr))}}.bind-cards strong.warn{color:#a1500f}/* ==========================================================================
   【新增块】题解流水线管理面（2026-09-15 移植）——只追加，不改上面任何一条。
   上面 #users/#workspace 时代的响应式规则仍然生效：@media(max-width:1100px)
   给 tbody td:nth-child(n) 挂了「考试账号 / 认证绑定 / 来源 IP…」的生成内容，
   那是旧「用户与数据流」表专用的列标签。新的账号 / 设备 / 解题池 / 概览表复用
   同一套 table 外壳，必须先清掉这些标签，再按各自列序重挂，否则小屏会贴错列名。
   ========================================================================== */
/* 概览：8 张卡片按 4 列排，去掉行尾那一条多余的竖线。 */
#overview-page .summary{grid-template-columns:repeat(4,minmax(0,1fr))}#overview-page .summary>div:nth-child(4n){border-right:0}#overview-page .summary>div:nth-child(-n+4){border-bottom:1px solid var(--line)}
@media(max-width:1100px){#overview-page .summary{grid-template-columns:repeat(2,minmax(0,1fr))}#overview-page .summary>div:nth-child(2n){border-right:0}#overview-page .summary>div:nth-child(-n+2){border-bottom:1px solid var(--line)}#overview-page .summary>div:nth-child(n+3){border-bottom:1px solid var(--line)}#overview-page .summary>div:nth-last-child(-n+2){border-bottom:0}
}
@media(max-width:600px){#overview-page .summary>div{padding:18px}#overview-page .summary strong{font-size:26px}
}/* 页面级控制条：.flow-controls 原本是弹窗内布局（左右各 28px 内边距），
   放到 main 里会缩进。新页面统一按 #questions-page 的做法贴齐左边。
   解题池状态条（2026-09-17 并入题目与解答）用类名定址，不再挂页面 id。 */
#overview-page .flow-controls,.worker-strip .flow-controls{
  padding:16px 0;justify-content:flex-start;flex-wrap:wrap;align-items:center}.worker-strip .flow-controls{gap:10px}.worker-strip .flow-controls button:disabled{opacity:.45;cursor:not-allowed}/* 状态表：左列是状态键，用等宽字体，省得「ai_status.updated」被折行看错行。 */
.fact-key{font:600 12px ui-monospace,SFMono-Regular,monospace;color:#3d5547;white-space:nowrap;width:230px}.table-wrap .fact-key+td{font-size:13px;overflow-wrap:anywhere}/* 解题池的「阻塞配置」面板：复用 .bind-cards 的卡片外观，但只有三张卡。 */
.worker-panel{margin:32px 0;padding:22px 26px;background:#fbfcfa;border:1px solid var(--line);border-radius:12px}.worker-panel h2{margin-bottom:14px}.worker-panel .help{margin:0 0 16px}.worker-panel .bind-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.worker-panel .bind-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.worker-panel .bind-cards>div:nth-child(3n){border-right:0}}
@media(max-width:600px){.worker-panel{padding:18px 16px}.worker-panel .bind-cards{grid-template-columns:1fr}}/* 题目列表的空状态：列表是两列网格，空状态要横跨整行。 */
#questions-list>.empty{grid-column:1/-1;background:#fff;border:1px dashed var(--line);border-radius:12px}#questions-list>.empty h2{font-size:16px;margin:0 0 10px}/* 题目详情里的两个动作按钮 + 一句说明。 */
.question-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.question-detail-actions button:disabled{opacity:.45}#question-action-help{margin:10px 0 0}/* 通用确认弹窗：正文分行、按钮靠右。 */
#confirm-dialog .confirm-body{margin:0 0 6px}#confirm-dialog .confirm-body p{margin:0 0 10px;overflow-wrap:anywhere}#confirm-dialog label code{font:12px ui-monospace,SFMono-Regular,monospace}.confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}#confirm-typed-label{margin-top:6px}#confirm-typed{width:100%}/* 凭据弹窗：多行只读文本 + 一行动作按钮。 */
#reveal-dialog{width:min(760px,calc(100vw - 32px))}#reveal-dialog textarea{min-height:170px}#reveal-dialog .flow-controls{padding:0 0 12px;justify-content:flex-start;gap:10px}#reveal-dialog .footnote{margin-bottom:0}/* Permit details use a roomy inspector; keep these rules scoped to this dialog. */
#access-dialog{width:min(1440px,calc(100vw - 48px));max-width:none;max-height:94dvh;padding:0 32px 24px;scroll-padding-top:110px}#access-dialog>.dialog-head{position:sticky;top:0;z-index:2;margin:0 -32px;padding:24px 32px 20px;background:#f8faf7;border-bottom:1px solid var(--line);align-items:center}#access-dialog .dialog-head>div{min-width:0}#access-dialog .dialog-head h2{font-size:26px;margin:0;line-height:1.35}#access-dialog .eyebrow{margin-bottom:6px}#access-dialog .dialog-head .quiet{margin:0}#access-dialog .help,#access-dialog .footnote{font-size:13px;line-height:1.8;overflow-wrap:anywhere}#access-help{margin:20px 0}#access-dialog .bind-cards{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(220px,1.4fr);background:#f8faf7}#access-dialog .bind-cards>div{padding:20px 24px;border-right:1px solid var(--line);border-bottom:0}#access-dialog .bind-cards>div:last-child{border-right:0}#access-dialog .bind-cards span{font-size:12px;letter-spacing:0}#access-dialog .bind-cards strong{font-size:30px;line-height:1.3;font-weight:600}#access-dialog #access-last{font-size:17px;line-height:1.6}#access-dialog .flow-controls{padding:22px 0 0;justify-content:flex-start;flex-wrap:wrap;gap:12px}#access-dialog .flow-controls label{width:180px;font-size:13px}#access-dialog .flow-controls label:first-of-type{margin-left:auto}#access-dialog button,#access-dialog select{font-size:14px}#access-dialog .list-heading{margin:28px 0 14px;gap:12px;flex-wrap:wrap}#access-dialog .list-heading h2{font-size:18px}#access-dialog .list-heading span{font-size:13px}#access-dialog .table-wrap{overflow:auto}#access-dialog table{display:table;white-space:normal}#access-dialog thead{display:table-header-group}#access-dialog tbody{display:table-row-group}#access-dialog tbody tr{display:table-row}#access-dialog td,#access-dialog th{display:table-cell;padding:16px 20px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;line-height:1.65;overflow-wrap:anywhere}#access-dialog th{font-size:12px;white-space:nowrap}#access-dialog td::before{content:none!important;display:none!important}#access-dialog tr:last-child td{border-bottom:0}#access-dialog .actions{border:0;padding:0}#access-dialog .actions button{font-size:13px}#access-record-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}/* 四格 = 老的抓包页：方法 / 状态码 / 域名+路径 / 时间。第一格放宽到 84px，因为非
   HTTP 的记录（答案请求、页面事件）把类型名放在那里，五字类型要放得下。 */
#access-dialog .flow-record>summary{grid-template-columns:84px 46px minmax(0,1fr) 128px;padding:20px 28px 20px 20px;gap:16px}#access-dialog .flow-record>summary>*{min-width:0}#access-dialog .method{font-size:12px}#access-dialog .method.kind{font-weight:550;font-family:inherit;color:#41564a}#access-dialog .flow-host-row{display:flex;align-items:baseline;gap:10px;min-width:0}#access-dialog .flow-host-row .flow-host{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#access-dialog .flow-path,#access-dialog .flow-time{font-size:12px}/* 行上的路径要看得见整条端点：换行显示，而不是账本那条省略号——被截断的路由回答不了
   "具体调了哪个端点"。域名仍在一行上省略，完整 url 在 title 与展开里。 */
#access-dialog .flow-path{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;color:#4d6f56}/* 抓包统计里「有东西被丢掉」是唯一值得标红的情况：一分钟一条的「一切正常」不是。 */
#access-dialog .flow-path.lost{color:#a43d32;font-weight:600}#access-dialog .status-code{font-size:12px}#access-dialog .capture-flag{flex:none;font-size:11px;color:#8a5a16;background:#fbf0dc;border-radius:5px;padding:2px 6px}#access-dialog .message-meta{margin-bottom:12px}/* 原始 JSON 是"整段拷走"用的，占满整行比挤在请求/响应旁边那半格好读。 */
#access-dialog .message-grid .raw-json{grid-column:1/-1}/* 全局 `input{width:100%}` 是给文本输入用的；复选框必须收回去，否则它会把标签撑满。 */
#access-dialog .check{display:flex;align-items:center;gap:9px;width:max-content;margin:0 0 16px;font-size:12px;font-weight:550;color:#46554b;cursor:pointer}#access-dialog .check-row{display:flex;gap:26px;flex-wrap:wrap;align-items:center;margin:0 0 16px}#access-dialog .check{display:flex;align-items:center;gap:9px;width:max-content;margin:0;font-size:12px;font-weight:550;color:#46554b;cursor:pointer}/* 「抓包自报」是「这不是流量」的标记：和（抓包）同形不同色，扫列表时一眼分得开。 */
#access-dialog .capture-flag.self-report{color:#3f5a75;background:#e8eef6}#access-dialog .check input{width:auto;margin:0;accent-color:var(--green);cursor:pointer}#access-dialog #access-empty-help{margin-top:-8px}#access-dialog .flow-content{padding:0 20px 24px}
@media(max-width:900px){#access-dialog .flow-record>summary{grid-template-columns:84px 46px minmax(0,1fr);gap:10px 16px}#access-dialog .flow-address{grid-column:1/-1;grid-row:2}#access-dialog .flow-path{white-space:normal;overflow-wrap:anywhere}#access-dialog .flow-time{grid-column:3;grid-row:1;text-align:right}#access-dialog .bind-cards{grid-template-columns:repeat(2,minmax(0,1fr))}#access-dialog .bind-cards>div:nth-child(2n){border-right:0}#access-dialog .bind-cards>div:nth-child(-n+2){border-bottom:1px solid var(--line)}#access-dialog .flow-controls label:first-of-type{margin-left:0}#access-dialog .flow-controls label{flex:1;min-width:140px}#access-dialog table{min-width:640px}
}
@media(max-width:600px){#access-dialog{width:calc(100vw - 16px);max-height:96dvh;padding:0 16px 20px;border-radius:12px}#access-dialog>.dialog-head{margin:0 -16px;padding:20px 16px 16px}#access-dialog .dialog-head h2{font-size:22px}#access-dialog .bind-cards>div{padding:16px}#access-dialog .bind-cards strong{font-size:26px}#access-dialog #access-last{font-size:14px}#access-dialog td,#access-dialog th{padding:14px 16px}
}/* 表格里长指纹/账号值换行，不要撑出横向滚动条。 */
#questions-page td,#overview-page td{overflow-wrap:anywhere}/* 解题池状态条：2026-09-17 由独立标签页并入「题目与解答」，长在题目列表上方。
   合并的收益就是这一段——池子停摆时它就在列表正上方变色，而不是藏在另一个标签页里
   （旧形态下"待解答一直不动"和"池子被阻塞"在同一页上看不出关联）。 */
.worker-strip{margin:8px 0 30px;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:#fbfcfa}.worker-strip .list-heading{margin-bottom:10px;flex-wrap:wrap}.worker-strip.blocked{border-color:#e0b055;background:#fdf9ef}.worker-strip.blocked .list-heading h2{color:#a1500f}.worker-strip.blocked #worker-status.help{color:#a1500f}.worker-strip.paused{border-color:#b6c6ba;background:#f5f8f5}.worker-strip #worker-status{margin:0;padding:0 0 4px;font-size:13px}.worker-strip .worker-panel{margin:18px 0 0;background:#fff}.worker-strip .footnote{margin-top:16px}.worker-facts{margin:16px 0 0;border-top:1px solid var(--line);padding-top:14px}.worker-facts summary{cursor:pointer;font-size:13px;font-weight:550;color:#3d5547}.worker-facts summary .muted{margin-left:8px;font-size:11px;font-weight:400}.worker-facts .table-wrap{margin-top:14px}
@media(max-width:600px){.worker-strip{padding:16px 14px}}
