/* 模型资源库 · 服务商与凭证。沿用后台 card / button / msg 的视觉,只补三栏下钻布局。 */
.rl-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rl-head>div{min-width:0;flex:1 1 260px}.rl-head h2{margin-bottom:4px}.rl-head p{margin:0}
.rl-sections{display:flex;gap:0;margin:14px 0 0;border-bottom:1px solid var(--line);overflow-x:auto}
.rl-sections button{border-radius:0;background:transparent;color:var(--fg);font-weight:600;box-shadow:inset 0 -3px 0 var(--accent);padding:10px 14px}
.rl-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:14px 0 4px}
.rl-toolbar label{margin:0}.rl-search{flex:1 1 240px;min-width:0}.rl-search input{margin-top:4px}
.rl-check{display:flex;align-items:center;gap:6px;color:var(--fg);font-size:13px;white-space:nowrap}.rl-check input{width:auto}
.rl-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.rl-banner[hidden]{display:none}
.rl-banner span{flex:1 1 260px;overflow-wrap:anywhere}
.rl-feedback{overflow-wrap:anywhere}.rl-feedback:empty{display:none}
.rl-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.rl-col{border:1px solid var(--line);border-radius:9px;min-width:0;display:flex;flex-direction:column}
.rl-col-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#f7f8f5;border-radius:9px 9px 0 0}
.rl-col-head>div{min-width:0}.rl-col-head h3{color:var(--fg);font-size:14px;margin:0}
.rl-col-head .rl-sub{display:block;overflow-wrap:anywhere}.rl-col-head button{flex:0 0 auto;padding:6px 10px}
.rl-note{margin:0;padding:8px 12px;background:#fbf3e8;color:#8a4a17;font-size:12px;overflow-wrap:anywhere}.rl-note[hidden]{display:none}
.rl-list{list-style:none;margin:0;padding:0;max-height:62dvh;overflow:auto}
.rl-item{padding:10px 12px;border-bottom:1px solid var(--line);display:grid;gap:6px}
.rl-item:last-child{border-bottom:0}.rl-item.on{background:#eef2ff}.rl-item.off .rl-pick strong{color:var(--mut)}
.rl-pick{display:grid;grid-template-columns:minmax(0,1fr);width:100%;white-space:normal;justify-content:stretch;justify-items:start;gap:2px;text-align:left;background:transparent;color:var(--fg);padding:0;border-radius:4px;min-width:0}
.rl-pick strong{overflow-wrap:anywhere;font-size:14px}.rl-pick:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rl-meta{color:var(--mut);font-size:12px;overflow-wrap:anywhere}
.rl-badges{display:flex;flex-wrap:wrap;gap:6px}
.rl-state{display:inline-block;border-radius:5px;padding:2px 7px;font-size:12px;background:#edf5ee;color:#28644c}
.rl-state.disabled{background:#f0f1ee;color:#555}.rl-state.deleted{background:#fef2f2;color:#991b1b}.rl-state.blocked{background:#fbf3e8;color:#8a4a17}
.rl-actions{display:flex;flex-wrap:wrap;gap:6px}.rl-actions button{padding:5px 9px}
.rl-danger{background:#b42318}.rl-danger-text{color:#b42318}
.rl-empty{padding:16px 12px;color:var(--mut);overflow-wrap:anywhere}.rl-empty .msg{margin-top:0}
.rl-dialog{width:min(560px,calc(100vw - 24px));max-height:90dvh;padding:0;border:1px solid var(--line);border-radius:12px;color:var(--fg)}
.rl-dialog::backdrop{background:#18231870}
.rl-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.rl-dialog-head h2{margin:0;overflow-wrap:anywhere;min-width:0}
.rl-form{padding:14px 20px 18px;overflow:auto;max-height:calc(90dvh - 70px)}
.rl-field{color:var(--fg)}.rl-field input{margin-top:4px}.rl-field small{display:block;margin-top:3px}
.rl-dialog-error:empty{display:none}.rl-dialog-error{overflow-wrap:anywhere}
.rl-dialog-actions{display:flex;justify-content:flex-end;margin-top:14px}
.rl-history h3{color:var(--fg);margin:6px 0 8px}.rl-table{margin-bottom:10px}
.rl-events{margin:0;padding-left:20px}.rl-events li{margin-bottom:6px;overflow-wrap:anywhere}.rl-events small{display:block}
.rl-sections button:not(.on){box-shadow:none;color:var(--mut)}

/* 模型目录与报价(resource-catalog.js)。写锁/反馈用 rc-* 类名,不与凭证分区的选择器互相命中。 */
.rc-scope{margin:12px 0 0;padding:8px 12px;border-radius:8px;background:#f7f8f5;font-size:13px;overflow-wrap:anywhere}
.rc-toolbar label{display:flex;flex-direction:column;gap:4px;min-width:0}.rc-toolbar select{min-width:120px}
.rc-toolbar .rc-create{margin-left:auto}
.rc-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.rc-banner[hidden]{display:none}
.rc-banner span{flex:1 1 260px;overflow-wrap:anywhere}
.rc-feedback{overflow-wrap:anywhere}.rc-feedback:empty{display:none}
.rc-compare-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0 0;font-size:13px}
.rc-compare-bar button{padding:5px 10px}.rc-picked{flex:1 1 240px;min-width:0;overflow-wrap:anywhere}
.rc-layout{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);gap:12px;margin-top:12px;align-items:start}
.rc-list-pane,.rc-detail{border:1px solid var(--line);border-radius:9px;min-width:0}
.rc-list{max-height:70dvh}.rc-more{padding:8px 12px}.rc-more:empty{display:none}
.rc-item-main{display:flex;align-items:flex-start;gap:8px;min-width:0}.rc-item-main input{width:auto;margin-top:3px;flex:0 0 auto}
.rc-detail{padding:12px 14px;display:grid;gap:10px}
.rc-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.rc-detail-head>div{min-width:0;flex:1 1 240px}.rc-detail-head h3{margin:0 0 6px;color:var(--fg);overflow-wrap:anywhere}
.rc-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 12px;margin:0;font-size:13px}
.rc-facts dt{color:var(--mut)}.rc-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}
.rc-json{margin:0;padding:6px 8px;background:#f7f8f5;border-radius:6px;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:240px;overflow:auto}
.rc-link{overflow-wrap:anywhere;word-break:break-all}
.rc-quotes-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rc-quotes-head h4{margin:0;flex:1 1 auto;color:var(--fg)}
.rc-hint{margin:0;font-size:12px}
.rc-quote{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;gap:8px;min-width:0}
.rc-quote.off{opacity:.75}
.rc-quote-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.rc-quote-head>div{display:grid;gap:2px;min-width:0}
.rc-table-wrap{overflow-x:auto;max-width:100%}
.rc-components td,.rc-compare-table td,.rc-compare-table th{vertical-align:top;overflow-wrap:anywhere}
.rc-unknown{color:#8a4a17;font-weight:600}
.rc-source,.rc-note-text{margin:0;font-size:12px;overflow-wrap:anywhere}
.rc-version details summary{cursor:pointer;font-size:12px}
.rl-dialog.rc-wide{width:min(1080px,calc(100vw - 24px))}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 12px}
.rc-grid [hidden]{display:none}
.rc-components-edit,.rc-source-edit{border:1px solid var(--line);border-radius:8px;margin:12px 0 0;padding:8px 12px;min-width:0}
.rc-components-edit legend,.rc-source-edit legend{font-weight:600;padding:0 4px}
.rc-edit-table input,.rc-edit-table select{min-width:90px}.rc-edit-table [hidden]{display:none}
.rc-advanced{margin-top:12px}.rc-advanced summary{cursor:pointer}
.rl-form textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.rc-compare-table th small,.rc-entry small{display:block}.rc-entry+.rc-entry{margin-top:6px;padding-top:6px;border-top:1px dashed var(--line)}
.rc-reasons{margin:0;padding-left:16px;font-size:12px;color:#8a4a17}
.rc-history-version{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.rc-history-version h3{margin:0 0 4px;color:var(--fg);font-size:14px}
@media(max-width:900px){.rl-columns{grid-template-columns:minmax(0,1fr)}.rl-list{max-height:none}
  .rc-layout{grid-template-columns:minmax(0,1fr)}.rc-toolbar .rc-create{margin-left:0}
  .rc-edit-table thead{display:none}.rc-edit-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px 0;border-bottom:1px solid var(--line)}
  .rc-edit-table td{display:flex;flex-direction:column;gap:2px;border:0;padding:0}
  .rc-edit-table td[data-label]::before{content:attr(data-label);font-size:12px;color:var(--mut)}
  .rc-edit-table input,.rc-edit-table select{min-width:0}}
@media(max-width:600px){.rl-form,.rl-dialog-head{padding-left:14px;padding-right:14px}.rc-facts{grid-template-columns:minmax(0,1fr)}}
/* 保持报价可读,窄屏只在表格区域横向滚动,不把金额和单位挤成逐字竖排。 */
.rc-version,.rc-table-wrap{min-width:0}
.rc-components{min-width:640px}
.rc-components th,.rc-components td{min-width:70px}
.rc-components .rc-cny{min-width:120px}
.rc-cny small{display:block;font-family:inherit;white-space:normal}
.rc-compare-table{min-width:600px}

/* 连接与采集(resource-connections.js)。写锁/反馈用 rk-* 类名,与其它分区互不命中。 */
.rk-feedback{overflow-wrap:anywhere}.rk-feedback:empty{display:none}
.rk-note{margin-top:8px;border-radius:8px}.rk-note .msg{margin:0 0 6px}
.rk-detail .rc-facts dd{white-space:pre-line}
.rk-runs{display:grid;gap:8px;min-width:0}
.rk-run-table{min-width:640px}.rk-run-table td{vertical-align:top;overflow-wrap:anywhere}
.rl-state.rk-run-queued,.rl-state.rk-run-running{background:#eef2ff;color:#3730a3}
.rl-state.rk-run-failed,.rl-state.rk-run-interrupted{background:#fef2f2;color:#991b1b}
.rc-observations{display:grid;gap:6px}.rc-observations h4{margin:0;color:var(--fg)}

/* 测试空间与项目(resource-projects.js)。写锁/反馈用 rp-* 类名与 data-pwrite,与其它分区互不命中。 */
.rp-feedback{overflow-wrap:anywhere}.rp-feedback:empty{display:none}
.rp-policy,.rp-keys{display:grid;gap:8px;min-width:0}.rp-policy>p,.rp-keys>p{margin:0}
.rp-key-list{max-height:none;border:1px solid var(--line);border-radius:8px}
.rp-grant-list{margin:0;padding-left:18px;font-size:13px}.rp-grant-list li{overflow-wrap:anywhere}
.rp-policies{display:grid;gap:10px}.rp-policies .rc-facts{border-top:1px solid var(--line);padding-top:8px}
.rp-budgets{display:grid;gap:6px;margin-bottom:8px}
.rp-budget{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center}
.rp-grants{display:grid;gap:6px;margin-bottom:8px}
.rp-grant{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:6px 8px}
.rp-grant-name{display:grid;gap:2px;min-width:0;flex:1 1 220px}.rp-grant-name strong,.rp-grant-name small{overflow-wrap:anywhere}
.rp-search{display:flex;gap:6px;align-items:center}.rp-search input{flex:1 1 auto;min-width:0}
.rp-results{max-height:40dvh;border:1px solid var(--line);border-radius:8px}
.rp-results .rl-item{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.rp-on{color:var(--mut)}
.rp-token-row{display:flex;gap:6px;align-items:center}.rp-token{flex:1 1 auto;min-width:0;font-size:13px}
.rp-history{min-width:900px}.rp-history td{vertical-align:top;overflow-wrap:anywhere}
@media(max-width:600px){.rp-budget{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.rp-budget button{grid-column:1/-1}
  .rp-token-row{flex-direction:column;align-items:stretch}}

/* 文本测试(resource-runs.js)。写锁/反馈用 rr-* 类名与 data-rwrite,与其它分区互不命中。 */
.rr-feedback{overflow-wrap:anywhere}.rr-feedback:empty{display:none}
.rr-pane-title{margin:0;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--fg);font-size:14px}
.rr-conn-list{max-height:70dvh}
.rr-main h3{margin:4px 0 0;color:var(--fg)}
.rr-form{padding:0;max-height:none;overflow:visible}.rr-form textarea{font-family:inherit;font-size:14px}
.rr-form select{width:100%;min-width:0}
.rr-preview{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:grid;gap:6px;min-width:0}
.rr-preview p{margin:0;overflow-wrap:anywhere}.rr-bound{font-size:13px}
.rr-run-list{max-height:none;border:1px solid var(--line);border-radius:8px}
.rr-content{max-height:50dvh}
.rr-project-use{margin:0 0 8px;overflow-wrap:anywhere}
.rr-live{min-height:4em}.rr-live-status{margin:0;overflow-wrap:anywhere}.rr-form .rl-check{white-space:normal}
.rr-table{min-width:760px}.rr-table td{vertical-align:top;overflow-wrap:anywhere}
.rl-state.rr-run-queued,.rl-state.rr-run-claimed,.rl-state.rr-run-dispatching,.rl-state.rr-run-running{background:#eef2ff;color:#3730a3}
/* 视频测试(resource-video.js):播放器不超出弹窗,参数在窄屏单列。 */
.rv-video{display:block;width:100%;max-height:60dvh;background:#000;border-radius:6px}
.rv-asset{display:grid;gap:8px;min-width:0}.rv-asset p{margin:0;overflow-wrap:anywhere}
@media(max-width:600px){.rv-params{grid-template-columns:minmax(0,1fr)}}
/* 参考素材(resource-video.js):图片缩略图只来自本地文件或带原因的审计读取;窄屏单列。 */
.rv-refs{display:grid;gap:8px;min-width:0;border:1px solid #e5e7eb;border-radius:6px;padding:10px 12px;margin:0}
.rv-refs legend{padding:0 4px;font-weight:600}
.rv-ref-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rv-ref{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0}
.rv-ref-info{min-width:0;overflow-wrap:anywhere}.rv-ref-info p{margin:0}
.rv-thumb{width:72px;height:72px;object-fit:contain;background:#f3f4f6;border-radius:4px;display:grid;place-items:center;font-size:12px;color:#555}
.rv-ref-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.rv-ref-image{display:block;max-width:100%;max-height:60dvh;object-fit:contain;background:#f3f4f6;border-radius:6px}
/* 参考视频/音频:只在审计读取后手动播放;合计时长超限标红。 */
.rv-audio{display:block;width:100%}
.rv-ref-totals{margin:0;overflow-wrap:anywhere}.rv-over{color:#991b1b;font-weight:600}
@media(max-width:600px){.rv-ref{grid-template-columns:56px minmax(0,1fr)}.rv-thumb{width:56px;height:56px}.rv-ref-actions{grid-column:1/-1;justify-content:flex-start}}
.rl-state.rr-run-failed,.rl-state.rr-run-unknown{background:#fef2f2;color:#991b1b}
.rl-state.rr-run-cancelled{background:#f0f1ee;color:#555}
.rp-links{display:flex;flex-wrap:wrap;gap:6px 12px;flex:1 1 100%}.rp-links small{flex:1 1 100%}

.rk-detail>details{margin:8px 0 16px}.rk-run-table td:first-child,.rk-run-table td:nth-child(3){min-width:140px}.rk-run-table td:nth-child(2){min-width:145px}
.rk-runs .rk-run-table{min-width:900px}.rk-runs .rk-run-table td:nth-child(4){min-width:220px}.rk-runs .rk-run-table td:nth-child(5){min-width:160px}

/* 分区在窄屏换行,当前入口始终可见;复选框与文字同行。 */
.rc-toolbar label.rl-check{flex-direction:row;align-items:center}
@media(max-width:600px){.rl-sections{flex-wrap:wrap}.rl-sections button{flex:0 0 50%;padding:10px 6px}}

.ai-dialog{width:min(780px,calc(100vw - 32px));max-height:85vh;overflow:auto;overflow-wrap:anywhere}.ai-dialog label{display:block;margin:12px 0}.ai-dialog select,.ai-dialog input[type=password]{max-width:100%;width:100%}.ai-dialog input[type=checkbox]{margin-right:8px}.ai-run{border:1px solid var(--line,#ddd);border-radius:8px;padding:12px;margin:16px 0}.ai-dialog table{width:100%;table-layout:fixed}.ai-dialog button{margin:4px}

.ai-dialog .rl-dialog-head{position:sticky;top:0;background:var(--panel,#fff);z-index:1;padding-bottom:8px}

.pi-dialog{width:min(900px,calc(100vw - 24px));max-height:88dvh;overflow:auto;overflow-wrap:anywhere}
.pi-dialog>div:not(.rl-dialog-head),.pi-dialog>p{padding:12px 20px}.pi-dialog button{margin:4px}
.pi-dialog input:not([type=checkbox]),.pi-dialog select,.pi-dialog textarea{width:100%;max-width:100%;min-width:0;box-sizing:border-box}
.pi-dialog label{display:block;margin:10px 0}.pi-dialog input[type=checkbox]{margin-right:8px}
.pi-dialog .rl-dialog-head{position:sticky;top:0;background:var(--panel,#fff);z-index:1}
.pi-model{border:1px solid var(--line);border-radius:8px;margin:10px 0;padding:10px}.pi-model summary{cursor:pointer;overflow-wrap:anywhere}
.pi-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
@media(max-width:600px){.pi-fields{grid-template-columns:minmax(0,1fr)}.pi-dialog>div:not(.rl-dialog-head),.pi-dialog>p{padding:10px 14px}}
.pi-dialog input[type=checkbox]{display:inline-block;width:16px;height:16px;min-height:0;vertical-align:middle;margin:0 8px 0 0;padding:0}
.pi-model summary span{display:inline;vertical-align:middle}

/* Product authoring: bounded details and readable identities on narrow screens. */
.rp-list,.rp-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.rp-detail,.rp-line{min-width:0;overflow-wrap:anywhere;padding:12px 0}
.rp-detail:empty{display:none}
.rp-detail pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto}
.rp-detail textarea{width:100%;box-sizing:border-box}
.rp-binding{white-space:pre-wrap}
.rp-legacy{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
.rp-line{border-bottom:1px solid var(--line);padding:12px}
.rp-capabilities{display:grid;gap:8px;margin:12px 0}
.rp-spec p{margin:4px 0;font-size:13px;color:var(--mut)}
.rp-detail details{margin:12px 0}
.rp-list button,.rp-line button{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}
.rp-product-detail{scroll-margin-top:96px}
.rp-drain-dialog .rl-dialog-head{position:sticky;top:0;background:var(--panel,#fff);z-index:1}
.rp-drain-dialog .rl-form{padding:16px;overflow-wrap:anywhere}
.rp-drain-dialog select,.rp-drain-dialog textarea,.rp-drain-dialog input:not([type=checkbox]){max-width:100%;box-sizing:border-box}
.rp-drain-dialog .rp-drain-detail{min-width:0;border-top:1px solid var(--line);margin-top:16px}
.rp-drain-dialog .rp-line p{white-space:pre-wrap}
.rp-drain-dialog input[type=checkbox]{width:18px;height:18px;display:inline-block;vertical-align:middle;margin:4px 8px;box-shadow:none}

.pv-intake-dialog>div:not(.rl-dialog-head),.pv-intake-dialog>p{padding:12px 16px;margin:0}
.pv-intake-dialog>button{margin:4px 16px}
.pv-intake-dialog input[type=checkbox]{display:inline-block;width:16px;height:16px;min-height:0;margin:0 8px;padding:0;vertical-align:middle}
