.release-upload,.oss-grid article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;margin-bottom:18px}.release-upload>div:first-child{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.release-upload label,.oss-grid label{display:grid;gap:7px;color:#777}.release-upload input,.release-upload select,.release-upload textarea,.oss-grid input{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff}.release-upload textarea{margin-bottom:13px}.release-upload .check{display:flex;align-items:center;flex-direction:row}.release-upload .check input{width:auto}.release-file{border:1px dashed #a9c8d4;padding:15px;border-radius:10px;margin-bottom:12px}.upload-progress{height:5px;background:#eef1f2;border-radius:5px;margin:14px 0}.upload-progress i{display:block;height:100%;width:0;background:var(--green);transition:.3s}.oss-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.oss-grid article{display:grid;gap:12px}.oss-grid button{border:1px solid #222;background:#fff;padding:10px 16px;border-radius:20px}.oss-stats strong{font-size:42px}.oss-stats>div{display:grid;gap:12px;border-top:1px solid var(--line);padding-top:18px}.oss-stats>div span{display:flex;justify-content:space-between}@media(max-width:950px){.release-upload>div:first-child,.oss-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.release-upload>div:first-child,.oss-grid{grid-template-columns:1fr}}
.model-picker{display:grid;grid-template-columns:1fr auto;gap:8px}.model-picker input{min-width:0}.model-picker button{border:1px solid #222;background:#fff;border-radius:9px;padding:0 12px;white-space:nowrap}.model-controls button[data-action="edit"]{font-size:26px;line-height:1;padding:7px 12px}.model-cost-row{margin-top:6px}.model-cost{color:#1f7a54;font-size:13px}
.ai-app-card{grid-template-columns:1.2fr 1fr 1.4fr auto}.ai-app-meta{display:grid;gap:6px;color:#777;font-size:12px}.ai-app-meta span{display:flex;justify-content:space-between;gap:14px}.ai-app-mappings{display:flex;flex-wrap:wrap;gap:6px;align-content:center}.ai-app-mappings code{background:#f2f5f6;border:1px solid var(--line);border-radius:8px;padding:5px 7px;color:#3a5965;font-size:11px}.ai-app-box{width:min(980px,calc(100vw - 42px))}.mapping-title{margin:18px 0 10px}.ai-mapping-list{display:grid;gap:8px}.ai-mapping-row{display:grid;grid-template-columns:1.1fr 1fr .7fr .9fr .8fr 1fr;gap:8px}.ai-mapping-row input,.ai-mapping-row select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}@media(max-width:950px){.ai-app-card{grid-template-columns:1fr}.ai-mapping-row{grid-template-columns:1fr 1fr}}
.image-model-card,.ai-app-card{grid-template-columns:24px minmax(220px,1fr) minmax(320px,.9fr) auto;min-height:86px;padding-top:14px;padding-bottom:14px}
.ai-app-card .model-card-main{min-width:0}
.ai-app-card .ai-app-meta{display:grid;grid-template-columns:1fr;gap:4px;color:#777;font-size:12px}
.ai-app-card .ai-app-meta span{display:grid;grid-template-columns:56px 1fr;gap:8px;align-items:center}
.ai-app-card .ai-app-meta b{font-weight:700;color:#252422;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-app-mappings{display:none}
.model-controls button[data-action="edit"],.model-controls button[data-ai-action="edit"]{width:40px;height:40px;padding:0;font-size:20px;line-height:1;display:grid;place-items:center}
.image-model-card .model-usage{gap:7px}
.image-model-card .model-balance-row{grid-template-columns:58px 1fr;font-size:12px}
.image-model-card .model-balance-row strong{font-size:12px;line-height:1.35}
.rh-price-strip{display:flex;flex-wrap:wrap;gap:5px;align-items:center;max-width:100%}
.rh-price-strip span{display:inline-flex;gap:4px;align-items:center;padding:3px 6px;border:1px solid var(--line);border-radius:8px;background:#f7faf8;color:#557064;font-size:10px;line-height:1.2;white-space:nowrap}
.rh-price-strip b{color:#1f7a54;font-weight:700}
@media(max-width:950px){.image-model-card,.ai-app-card{grid-template-columns:1fr}.model-drag{display:none}}


/* 价格表管理：一屏内 + 横向滚动 + 操作列固定 */
.price-table-card{overflow-x:auto;overflow-y:visible}
.price-table-card>table{min-width:1180px;width:max-content;border-collapse:separate;border-spacing:0}
.price-table-card>table thead th{position:sticky;top:0;z-index:1;background:#fcfcfa;box-shadow:0 1px 0 #e8e6e1}
.price-table-card>table thead th:last-child,.price-table-card>table tbody td:last-child{position:sticky;right:0;background:#fff;box-shadow:-1px 0 0 #e8e6e1}
.price-table-card>table thead th:last-child{background:#fcfcfa}
.price-table-card>table tbody tr:nth-child(even) td{background:#fafaf7}
.price-table-card>table tbody tr:hover td{background:#eef9f3}
.price-table-card>table tbody td input[type="number"]{font-variant-numeric:tabular-nums;text-align:right;width:88px;padding:6px 8px;border:1px solid #e8e6e1;border-radius:6px;background:#fff}
.price-table-card>table tbody td input[type="text"],.price-table-card>table tbody td input:not([type]){padding:6px 8px;border:1px solid #e8e6e1;border-radius:6px;background:#fff;width:96px}
.price-table-card>table tbody td input:focus{outline:0;border-color:#18bd83;box-shadow:0 0 0 2px #18bd8320}
.price-table-card>table tbody td:nth-child(5),.price-table-card>table tbody td:nth-child(6),.price-table-card>table tbody td:nth-child(7),.price-table-card>table tbody td:nth-child(8),.price-table-card>table tbody td:nth-child(9){font-variant-numeric:tabular-nums;text-align:right}
.price-table-card>table tbody td:first-child b{display:block;color:#252422}
.price-table-card>table tbody td:first-child small{color:#999;font-family:ui-monospace,Menlo,monospace;font-size:11px}
.price-table-card>table tbody td:nth-child(2) code{font-size:11px;background:#f2f5f6;border:1px solid #e8e6e1;padding:2px 6px;border-radius:6px;color:#3a5965}
.price-table-card>table tbody td:nth-child(2) small{color:#888}
.price-table-card>table tbody td:last-child button{white-space:nowrap}
.recharge-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.recharge-summary article{padding:18px;border:1px solid #1d5875;border-radius:8px;background:#081f30}.recharge-summary small,.recharge-summary strong{display:block}.recharge-summary small{color:#779daf}.recharge-summary strong{margin-top:8px;color:#e9faff;font-size:28px}.recharge-import{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(360px,1.25fr);gap:18px;margin-bottom:16px;padding:18px;border:1px solid #1d5875;border-radius:8px;background:#081f30}.recharge-import>div:first-child{display:grid;gap:12px}.recharge-import label{display:grid;gap:6px;color:#9fc7d8;font-size:12px}.recharge-import input,.recharge-import select,.recharge-import textarea,.recharge-toolbar select{box-sizing:border-box;width:100%;padding:10px;border:1px solid #286d8b;border-radius:7px;outline:0;background:#061722;color:#eafaff}.recharge-import textarea{resize:vertical;min-height:154px;font:12px/1.55 ui-monospace,"SF Mono",monospace}.recharge-file input{padding:8px}.recharge-import-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px}.recharge-import-actions span{color:#739aab;font-size:11px}.recharge-toolbar{display:grid;grid-template-columns:145px 145px minmax(220px,1fr) auto auto auto;align-items:center}.recharge-toolbar input{width:100%}.recharge-toolbar>span{color:#6f8793;white-space:nowrap}.recharge-toolbar button.danger{border-color:#efb7bd;background:#fff0f1;color:#c83f50}.recharge-toolbar button.danger:disabled{opacity:.45;cursor:not-allowed}.recharge-check{width:42px;padding-left:16px!important;padding-right:6px!important;text-align:center}.recharge-check input{width:16px;height:16px;accent-color:#18bd83}.status.redeemed{background:#14384a;color:#6ed7ff}@media(max-width:1120px){.recharge-toolbar{grid-template-columns:1fr 1fr auto}.recharge-toolbar input{grid-column:1/3}.recharge-toolbar>span{grid-column:1/2}}@media(max-width:980px){.recharge-summary{grid-template-columns:repeat(2,1fr)}.recharge-import{grid-template-columns:1fr}.recharge-toolbar{grid-template-columns:1fr 1fr}.recharge-import-actions{grid-column:1}}
.task-flow { margin-top: 10px; min-width: 300px; }
.task-flow summary { cursor: pointer; color: #1769e0; font-weight: 700; }
.task-flow ol { display: grid; gap: 6px; margin: 9px 0 0; padding: 0; list-style: none; }
.task-flow li { display: grid; grid-template-columns: minmax(130px, 1fr) auto; gap: 4px 12px; padding: 8px 10px; border-left: 3px solid #b8bec8; border-radius: 4px; background: #f6f7f9; }
.task-flow li.flow-success { border-left-color: #22a06b; }
.task-flow li.flow-failed { border-left-color: #d83a52; }
.task-flow li.flow-running { border-left-color: #2878ee; }
.task-flow li span { color: #667085; font-size: 12px; white-space: nowrap; }
.task-flow li small { grid-column: 1 / -1; color: #667085; }
.flow-audit { display: grid; grid-template-columns: repeat(2,minmax(240px,1fr)); gap: 6px 14px; margin-top: 10px; padding: 10px; border: 1px solid #dde2e8; border-radius: 6px; background: #fbfcfd; color: #596273; font-size: 12px; }
.flow-audit span { min-width: 0; overflow-wrap: anywhere; }
.flow-audit code { color: #222; }
.task-flow li.flow-waiting { border-left-color: #e3a008; }
@media(max-width:980px){.flow-audit{grid-template-columns:1fr}}
.oss-diagnostic{display:grid;gap:7px;margin-top:4px;padding:13px 14px;border:1px solid #d9dee5;border-radius:9px;background:#f7f8fa;color:#4c5667;font-size:12px;line-height:1.55}.oss-diagnostic[hidden]{display:none}.oss-diagnostic b{font-size:13px;color:#222}.oss-diagnostic p{margin:0}.oss-diagnostic.working{border-color:#b8d2f6;background:#f2f7ff}.oss-diagnostic.success{border-color:#9fd9c3;background:#edf9f4}.oss-diagnostic.success b{color:#157554}.oss-diagnostic.warning{border-color:#efd39a;background:#fff8e8}.oss-diagnostic.warning b{color:#95620b}.oss-diagnostic.error{border-color:#efb6bd;background:#fff2f3}.oss-diagnostic.error b{color:#be3345}
