.aiv2-layout, .aiv2-side, .aiv2-main { top: 0 !important; bottom: 0 !important; }
.aiv2-side { width: 88px !important; }
.aiv2-side .layui-side-scroll { width: 88px !important; overflow-x: hidden; }
.aiv2-main { left: 88px !important; padding: 16px 18px 28px; display: flex; flex-direction: column; overflow: auto; background: var(--ai-bg); }
.aiv2-brand { height: 72px; padding: 8px 4px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: #fff; text-align: center; }
.aiv2-brand:hover { color: #fff; }
.aiv2-brand-mark { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 6px; background: var(--ai-primary); font-weight: 700; }
.aiv2-brand strong, .aiv2-brand small { display: block; }
.aiv2-brand strong { font-size: 12px; }
.aiv2-brand small { display: none; }
.aiv2-nav, .aiv2-nav .layui-nav-item, .aiv2-nav .layui-nav-item a { width: 88px !important; box-sizing: border-box; }
.aiv2-nav { background: transparent !important; }
.aiv2-nav .layui-nav-item { height: 68px; }
.aiv2-nav .layui-nav-item a { height: 68px; padding: 0 4px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; box-sizing: border-box; line-height: 18px; text-align: center; }
.aiv2-nav .layui-nav-item a > i { margin: 0; font-size: 21px; }
.aiv2-nav .layui-nav-item a span { font-size: 12px; }
.aiv2-nav .layui-nav-item.layui-this a { background: var(--ai-primary); }
.aiv2-page-head { min-height: 48px; flex: 0 0 auto; margin-bottom: 14px; display: flex; align-items: flex-start; gap: 16px; }
.aiv2-page-head > div:first-child { flex: 0 0 auto; }
.aiv2-page-head h1 { margin: 0; font-size: 22px; line-height: 30px; font-weight: 600; }
.aiv2-page-head p { margin: 3px 0 0; color: var(--ai-muted); }
.aiv2-head-actions { width: 0; min-width: 0; flex: 1 1 auto; display: flex; align-items: center; }
.aiv2-top-status { width: 100%; max-width: none; display: flex; align-items: center; gap: 8px; overflow-x: auto; overflow-y: hidden; overscroll-behavior: contain; scrollbar-width: thin; }
.aiv2-top-status::before { content: ""; flex: 0 0 0; margin-left: auto; }
.aiv2-top-status-card, .aiv2-top-action { width: max-content; min-width: 0; height: 48px; flex: 0 0 auto; box-sizing: border-box; padding: 0 12px; border: 1px solid var(--ai-line); border-radius: 8px; background: #fff; color: var(--ai-text); }
.aiv2-top-status > [data-status-id] { position: relative; touch-action: none; user-select: none; cursor: grab; will-change: transform; }
.aiv2-top-status.is-sorting { cursor: grabbing; }
.aiv2-top-status > [data-status-id].is-dragging { z-index: 20; cursor: grabbing; opacity: .92; box-shadow: 0 8px 22px rgba(23,32,51,.18); }
.aiv2-top-status-card.is-progress { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.aiv2-top-status-head { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.aiv2-top-status-card span { overflow: hidden; color: var(--ai-muted); font-size: 11px; line-height: 13px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-top-status-card strong { font-size: 12px; line-height: 14px; white-space: nowrap; }
.aiv2-top-status-card.is-progress > i { width: 100%; height: 4px; overflow: hidden; border-radius: 2px; background: #edf1f5; }
.aiv2-top-status-card.is-progress > i b { display: block; height: 100%; background: var(--ai-primary); }
.aiv2-top-status-card.is-progress.is-active { border-color: #22b573; box-shadow: 0 0 0 1px rgba(34,181,115,.08); }
.aiv2-top-status-value { display: flex; align-items: center; }
.aiv2-top-status-value.is-host { display: flex; align-items: center; }
.aiv2-top-status-text { width: max-content; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; }
.aiv2-status-value-line { min-width: 0; display: flex; align-items: center; gap: 8px; }
.aiv2-status-led { width: 8px; height: 8px; display: block; flex: 0 0 8px; border-radius: 50%; background: #9aa6b5; }
.aiv2-top-status-value.is-ok .aiv2-status-led, .aiv2-status-pin-preview.is-ok .aiv2-status-led { background: #16a34a; box-shadow: 0 0 6px rgba(22,163,74,.45); }
.aiv2-top-status-value.is-bad .aiv2-status-led, .aiv2-status-pin-preview.is-bad .aiv2-status-led { background: var(--ai-danger); box-shadow: 0 0 6px rgba(255,87,34,.4); }
.aiv2-top-action { min-width: 0; padding-right: 7px; padding-left: 7px; order: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; color: #fff; border-color: #dc3f18; background: var(--ai-danger); cursor: pointer; }
.aiv2-top-action span, .aiv2-top-action strong { font-size: 11px; line-height: 13px; font-weight: 600; }
.aiv2-top-action:hover { color: #fff; border-color: #c93410; background: #df4317; }
.aiv2-top-status-value.is-ok { border-color: #a7d9d5; }.aiv2-top-status-value.is-bad { border-color: #ffb5a0; }
.aiv2-page-view { min-width: 960px; flex: 0 0 auto; padding-bottom: 24px; }
.aiv2-page-view.aiv2-page-view-fill { height: auto; min-height: 0; flex: 1 1 0; padding-bottom: 0; overflow: hidden; box-sizing: border-box; }
.aiv2-loading, .aiv2-empty { padding: 30px 16px; color: var(--ai-muted); text-align: center; }
.aiv2-layout .layui-btn + .layui-btn { margin-left: 0; }
.layui-btn { -webkit-transition: none !important; transition: none !important; }
.aiv2-layout .layui-input-wrap { min-width: 0; }
.aiv2-layout .layui-input-wrap > .layui-input { width: 100%; }
.aiv2-icon-spin { display: inline-block; animation: aiv2-icon-spin .9s linear infinite; }
@keyframes aiv2-icon-spin { to { transform: rotate(360deg); } }
.layui-btn > i[class^="ri-"], .layui-btn > i[class*=" ri-"] { margin-right: 5px; vertical-align: -1px; font-size: 1.08em; }
.aiv2-icon-btn { aspect-ratio: 1 / 1; margin: 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; border-radius: 4px; line-height: 1; }
.aiv2-icon-btn > i[class^="ri-"], .aiv2-icon-btn > i[class*=" ri-"] { margin: 0; vertical-align: 0; line-height: 1; }
.aiv2-icon-btn.is-danger, .aiv2-icon-btn.layui-btn-danger { color: #fff; border-color: var(--ai-danger) !important; background: var(--ai-danger); }
.aiv2-toast { display: inline-flex; align-items: center; gap: 7px; }
.aiv2-toast > i { font-size: 17px; }
.aiv2-toast.is-success > i { color: #16a34a; }
.aiv2-toast.is-warn > i { color: #d97706; }
.aiv2-toast.is-error > i { color: var(--ai-danger); }
.layui-form-select .layui-edge.aiv2-select-arrow { top: 50%; width: 18px; height: 18px; margin-top: -9px; border: 0; color: #7b8794; font-size: 18px; line-height: 18px; }
.layui-layer-setwin .aiv2-layer-close { width: 20px; height: 20px; margin-left: 8px; background: none !important; color: #667085; font-size: 18px; line-height: 20px; text-align: center; }
.layui-layer-setwin .aiv2-layer-close:hover { color: var(--ai-danger); }
.layui-layer .layui-layer-btn { min-height: 56px; padding: 9px 16px; display: flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; text-align: center; border-top: 1px solid var(--ai-line); background: #fff; }
.layui-layer .layui-layer-btn a { height: 30px; margin: 0; padding: 0 12px; color: #fff; border-color: var(--ai-primary); border-radius: 4px; background: var(--ai-primary); line-height: 30px; }
.layui-layer .layui-layer-btn a:hover { color: #fff; border-color: var(--ai-primary-dark); background: var(--ai-primary-dark); }
.layui-layer.aiv2-return-layer { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--ai-radius); }
.layui-layer.aiv2-return-layer .layui-layer-title { flex: 0 0 auto; }
.layui-layer.aiv2-return-layer .layui-layer-content { min-height: 0; height: auto !important; flex: 1 1 auto; overflow: hidden; }
.aiv2-return-dialog { height: 100%; display: flex; flex-direction: column; overflow: hidden; background: #f6f8fa; }
.aiv2-return-tab-panel { min-height: 0; height: 100%; flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-return-origin-tabs { min-height: 0; margin: 0; flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; background: #fff; }
.aiv2-return-origin-tabs > .layui-tabs-header { flex: 0 0 auto; margin: 0; }
.aiv2-return-origin-tabs > .layui-tabs-body { min-height: 0; padding: 0; flex: 1 1 auto; overflow: hidden; background: #f6f8fa; }
.aiv2-return-origin-tabs > .layui-tabs-body > .layui-tabs-item { height: 100%; overflow: hidden; }
.aiv2-return-summary { min-height: 62px; flex: 0 0 auto; padding: 12px 16px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; box-sizing: border-box; border-bottom: 1px solid var(--ai-line); background: #fff; }
.aiv2-return-summary > span { color: var(--ai-muted); font-size: 12px; }
.aiv2-return-summary > strong { overflow: hidden; color: var(--ai-text); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-return-summary > em { color: var(--ai-primary-dark); font-size: 12px; font-style: normal; }
.aiv2-return-flow { min-height: 0; flex: 1 1 auto; padding: 12px 16px; display: flex; flex-direction: column; gap: 8px; overflow: auto; box-sizing: border-box; }
.aiv2-return-step { width: 100%; min-height: 50px; height: auto; margin: 0 !important; padding: 7px 12px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 20px; align-items: center; gap: 10px; box-sizing: border-box; color: var(--ai-text); line-height: normal; text-align: left; white-space: normal; transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.aiv2-return-step-index { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; color: var(--ai-muted); border: 1px solid var(--ai-line); border-radius: 50%; background: #fff; font-size: 11px; font-weight: 600; }
.aiv2-return-step-text { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.aiv2-return-step-text strong { overflow: hidden; font-size: 13px; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-return-step-text small { color: var(--ai-muted); font-size: 11px; line-height: 15px; }
.aiv2-return-step > i[class^="ri-"], .aiv2-return-step > i[class*=" ri-"] { margin: 0; color: var(--ai-muted); font-size: 16px; text-align: center; }
.aiv2-return-step.is-available { color: var(--ai-text) !important; border-color: #cbd5df !important; background: #fff !important; }
.aiv2-return-step.is-available .aiv2-return-step-index { color: var(--ai-primary-dark); border-color: #9ddbd5; background: #f3fffd; }
.aiv2-return-step.is-available > i { color: #6b7b8f !important; }
.aiv2-return-step.is-available:hover { color: var(--ai-primary-dark) !important; border-color: #57bdb2 !important; background: #f3fffd !important; }
.aiv2-return-step.is-selected { color: #fff !important; border-color: #087f75 !important; background: var(--ai-primary) !important; box-shadow: 0 0 0 2px rgba(13,148,136,.22), 0 4px 10px rgba(13,148,136,.16); }
.aiv2-return-step.is-selected .aiv2-return-step-index { color: var(--ai-primary-dark); border-color: #fff; }
.aiv2-return-step.is-selected .aiv2-return-step-text small, .aiv2-return-step.is-selected > i { color: #fff !important; }
.aiv2-return-step.is-current { color: var(--ai-primary-dark); border-color: #9ddbd5; background: #eafaf8; opacity: 1; }
.aiv2-return-step.is-current .aiv2-return-step-index { color: var(--ai-primary-dark); border-color: #9ddbd5; }
.aiv2-return-step.is-current > i { color: var(--ai-primary) !important; }
.aiv2-return-step.is-future, .aiv2-return-step.is-unavailable { color: #8b95a5; border-color: #e7ebf0; background: #f1f3f6; opacity: 1; }
.aiv2-return-step.is-future .aiv2-return-step-index, .aiv2-return-step.is-unavailable .aiv2-return-step-index { color: #98a2b3; background: #f7f8fa; }
.aiv2-return-dialog-note { flex: 0 0 auto; padding: 9px 16px; color: var(--ai-muted); border-top: 1px solid var(--ai-line); background: #fff; font-size: 12px; line-height: 18px; }
.aiv2-return-dialog > .aiv2-dialog-footer { min-height: 56px; border-radius: 0; }
.layui-layer.aiv2-image-preview-layer { overflow: hidden; background: transparent; box-shadow: none; }
.layui-layer.aiv2-image-preview-layer .layui-layer-content { height: 100% !important; overflow: hidden !important; }
.aiv2-image-preview { position: relative; width: 100vw; height: 100vh; overflow: hidden; display: grid; place-items: center; isolation: isolate; background: rgba(8,12,18,.62); }
.aiv2-image-preview-backdrop { position: absolute; z-index: -2; inset: -36px; background-position: center; background-size: cover; filter: blur(28px); opacity: .68; transform: scale(1.08); transition: opacity .32s ease; }
.aiv2-image-preview-backdrop.is-incoming { opacity: 0; }
.aiv2-image-preview-backdrop.is-incoming.is-visible { opacity: .68; }
.aiv2-image-preview-backdrop.is-leaving { opacity: 0; }
.aiv2-image-preview::after { content: ""; position: absolute; z-index: -1; inset: 0; background: rgba(8,12,18,.38); }
.aiv2-image-preview-media { position: absolute; z-index: 0; max-width: calc(100vw - 48px); max-height: calc(100vh - 48px); width: auto; height: auto; object-fit: contain; opacity: 1; transform: translate3d(0,0,0); box-shadow: 0 10px 36px rgba(0,0,0,.34); transition: transform .32s cubic-bezier(.22,1,.36,1), opacity .24s ease; will-change: transform, opacity; }
.aiv2-image-preview-media.is-enter-next { opacity: 0; transform: translate3d(14vw,0,0); }
.aiv2-image-preview-media.is-enter-prev { opacity: 0; transform: translate3d(-14vw,0,0); }
.aiv2-image-preview-media.is-exit-next { opacity: 0; transform: translate3d(-14vw,0,0); }
.aiv2-image-preview-media.is-exit-prev { opacity: 0; transform: translate3d(14vw,0,0); }
.aiv2-image-preview-nav { position: absolute; z-index: 2; top: 50%; width: 58px; height: 58px; padding: 0; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,.46); border-radius: 50%; background: rgba(15,23,42,.56); backdrop-filter: blur(10px); font-size: 36px; line-height: 1; cursor: pointer; transform: translateY(-50%); transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.aiv2-image-preview-nav.is-prev { left: 24px; }
.aiv2-image-preview-nav.is-next { right: 24px; }
.aiv2-image-preview-nav:hover { border-color: rgba(255,255,255,.9); background: rgba(15,23,42,.82); transform: translateY(-50%) scale(1.06); }
.aiv2-image-preview-close { position: absolute; z-index: 1; top: 16px; right: 16px; width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,.42); border-radius: 4px; background: rgba(15,23,42,.72); font-size: 22px; line-height: 1; cursor: pointer; }
.aiv2-image-preview-close:hover { border-color: #fff; background: var(--ai-danger); }
.aiv2-image-preview.is-import-review .aiv2-image-preview-media { max-height: calc(100vh - 116px); }
.aiv2-image-preview.is-import-review .aiv2-image-preview-nav { display: none; }
.aiv2-image-preview-bottom-controls { position: absolute; z-index: 3; bottom: 22px; left: 50%; display: inline-flex; align-items: center; gap: 10px; padding: 8px; border: 1px solid rgba(255,255,255,.34); border-radius: 6px; background: rgba(15,23,42,.78); box-shadow: 0 8px 24px rgba(0,0,0,.26); transform: translateX(-50%); }
.aiv2-image-preview-bottom-btn { position: relative; width: 46px; height: 46px; padding: 0; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,.42); border-radius: 5px; background: rgba(30,41,59,.72); font-size: 28px; line-height: 1; cursor: pointer; transition: background .2s ease, border-color .2s ease, transform .2s ease; }
.aiv2-image-preview-bottom-btn.is-mark { border-color: rgba(94,234,212,.72); background: #0f766e; }
.aiv2-image-preview-bottom-btn.is-marked { border-color: rgba(167,243,208,.92); background: #0f9f92; }
.aiv2-image-preview-mark-count { position: absolute; top: -8px; right: -8px; min-width: 18px; height: 18px; padding: 0 4px; display: inline-flex; align-items: center; justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,.76); border-radius: 9px; background: #dc2626; font-size: 11px; font-style: normal; line-height: 1; }
.aiv2-image-preview-bottom-btn:hover:not(:disabled) { border-color: #fff; background: rgba(30,41,59,.98); transform: translateY(-2px); }
.aiv2-image-preview-bottom-btn.is-mark:hover:not(:disabled) { background: #0b8a80; }
.aiv2-image-preview-bottom-btn:disabled { cursor: not-allowed; opacity: .42; }
.aiv2-image-preview-toolbar { position: absolute; z-index: 3; top: 14px; left: 50%; padding: 2px 9px; border: 1px solid rgba(255,255,255,.42); border-radius: 4px; background: rgba(15,23,42,.72); transform: translateX(-50%); }
.aiv2-image-preview-toolbar .layui-form-checkbox { margin: 0; color: #fff; }
.aiv2-image-preview-toolbar .layui-form-checkbox:hover span { color: #fff; }
.aiv2-image-preview-stage { position: relative; z-index: 0; width: 100%; height: 100%; min-width: 0; min-height: 0; padding: 60px 82px 28px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: stretch; box-sizing: border-box; }
.aiv2-image-preview-stage.is-single { grid-template-columns: minmax(0, 1fr); }
.aiv2-image-preview-stage.is-single .aiv2-image-preview-pane.is-reference { display: none; }
.aiv2-image-preview-pane { position: relative; min-width: 0; min-height: 0; padding: 28px 10px 10px; display: flex; align-items: center; justify-content: center; box-sizing: border-box; border: 1px solid rgba(255,255,255,.22); border-radius: 6px; background: rgba(15,23,42,.18); }
.aiv2-image-preview-stage.is-single .aiv2-image-preview-pane.is-current { padding: 0; border-color: transparent; background: transparent; }
.aiv2-image-preview-stage.is-single .aiv2-image-preview-pane-label { display: none; }
.aiv2-image-preview-pane-label { position: absolute; z-index: 1; top: 7px; left: 10px; color: rgba(255,255,255,.82); font-size: 12px; line-height: 18px; }
.aiv2-image-preview-pane > .aiv2-image-preview-media, .aiv2-image-preview-pane > .aiv2-image-preview-reference { position: static; z-index: 0; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: 0 10px 36px rgba(0,0,0,.34); }
.aiv2-image-preview-pane > .aiv2-image-preview-media.is-enter-next, .aiv2-image-preview-pane > .aiv2-image-preview-media.is-enter-prev { position: absolute; }
@media (max-width: 720px) { .aiv2-image-preview-stage.is-compare { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 54px 12px 18px; } .aiv2-image-preview-pane { padding: 25px 6px 6px; } }
.aiv2-grid { display: grid; gap: 16px; margin-bottom: 16px; align-items: stretch; }
.aiv2-grid-2-1 { grid-template-columns: minmax(0, 2fr) minmax(340px, 1fr); }
.aiv2-grid-1-2 { grid-template-columns: minmax(320px, 1fr) minmax(0, 2fr); }
.aiv2-grid-1-2 > .layui-card > .layui-card-body { height: 150px; overflow: auto; box-sizing: border-box; }
.aiv2-grid-1-1 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aiv2-grid-1-1-1 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aiv2-grid > .layui-card { height: 100%; box-sizing: border-box; }
.aiv2-card { margin-bottom: 16px; }
.aiv2-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.aiv2-card-actions { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.aiv2-card-actions .layui-form-select { min-width: 112px; }
.aiv2-card-head > .aiv2-card-actions .layui-form-checkbox[lay-skin="primary"] { margin-left: 4px; margin-right: 4px; }
.aiv2-card-head > .aiv2-card-actions .layui-form-checkbox[lay-skin="primary"] > div { padding-right: 0; }
.aiv2-card-head > .aiv2-card-actions .layui-form-checkbox[lay-skin="primary"] + input[type="checkbox"] + .layui-form-checkbox[lay-skin="primary"] { margin-left: 0; }
.aiv2-workflows { margin: 0 0 16px; padding: 0 14px; background: #fff; border-bottom: 1px solid var(--ai-line); }
.aiv2-field { margin-bottom: 14px; }
.aiv2-field:last-child { margin-bottom: 0; }
.aiv2-field-label { display: block; margin-bottom: 7px; color: var(--ai-muted); font-size: 13px; }
.aiv2-field-head { margin-bottom: 7px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.aiv2-field-head .aiv2-field-label { margin: 0; }
.aiv2-agent { height: 124px; resize: vertical; }
.aiv2-ai-inner { height: 100%; min-height: 0; display: flex; overflow: visible; }
.aiv2-ai-inner > .aiv2-ai-agent { width: 100%; }
.aiv2-ai-agent { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-ai-agent .aiv2-agent { width: 100%; min-height: 0; flex: 1 1 auto; resize: none; box-sizing: border-box; }
.aiv2-ai-controls { min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-ai-controls-scroll { min-height: 0; flex: 1 1 auto; padding: 0 2px 12px 0; overflow: auto; }
.aiv2-ai-inner:has(.layui-form-select.layui-form-selected), .aiv2-ai-inner:has(.layui-form-select.layui-form-selected) .aiv2-ai-controls, .aiv2-ai-inner:has(.layui-form-select.layui-form-selected) .aiv2-ai-controls-scroll { overflow: visible; }
.aiv2-ai-inner .layui-form-select.layui-form-selected { z-index: 20; }
.aiv2-panel-actions { flex: 0 0 auto; justify-content: center; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--ai-line); }
.aiv2-prompt-main, .aiv2-prompt-negative { min-height: 0; height: auto; flex: 1 1 auto; resize: none; }
.aiv2-form-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px; }
.aiv2-col-2 { grid-column: span 2; }.aiv2-col-3 { grid-column: span 3; }.aiv2-col-4 { grid-column: span 4; }.aiv2-col-5 { grid-column: span 5; }.aiv2-col-6 { grid-column: span 6; }.aiv2-col-12 { grid-column: span 12; }
.aiv2-param-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.aiv2-toolbar { margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.aiv2-toolbar-side { display: flex; align-items: center; gap: 6px; }
.aiv2-list { display: flex; flex-direction: column; gap: 9px; min-height: 54px; }
.aiv2-list-item { padding: 11px 12px; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 10px; align-items: start; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); background: #fff; }
.aiv2-list-item.is-running { border-color: var(--ai-primary); background: #f4fffd; }
.aiv2-queue-actions { display: flex; align-self: center; align-items: center; gap: 8px; }
.aiv2-queue-actions > .aiv2-status-tag { flex: 0 0 auto; }
.aiv2-history-item { grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; }
.aiv2-history-item.has-thumb { grid-template-columns: 28px 72px minmax(0, 1fr) auto; }
.aiv2-history-status-icon { display: block; font-size: 24px; line-height: 1; }
.aiv2-history-status-icon.is-success { color: #16a34a; }
.aiv2-history-status-icon.is-error { color: #dc2626; }
.aiv2-history-media { position: relative; width: 72px; height: 54px; display: grid; place-items: center; overflow: hidden; border-radius: 4px; color: #94a3b8; background: #edf1f5; font-size: 20px; }
.aiv2-history-thumb { position: absolute; inset: 0; width: 72px; height: 54px; display: block; object-fit: cover; cursor: pointer; }
.aiv2-history-item > .aiv2-card-actions { align-self: center; }
.aiv2-history-tabs-row { min-width: 0; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--ai-line); }
.aiv2-history-tabs-row > .layui-tabs { min-width: 0; margin: 0; flex: 1 1 auto; }
.aiv2-history-tabs-row > .layui-tabs > .layui-tabs-header { margin: 0; border-bottom: 0; }
.aiv2-history-tab-actions { padding-right: 10px; flex: 0 0 auto; flex-wrap: nowrap; }
.aiv2-item-title { line-height: 20px; font-weight: 600; word-break: break-word; }
.aiv2-item-meta { margin-top: 5px; color: var(--ai-muted); font-size: 12px; word-break: break-word; }
.aiv2-tag { display: inline-block; padding: 1px 7px; color: var(--ai-muted); border: 1px solid var(--ai-line); border-radius: 10px; font-size: 12px; font-weight: 400; }
.aiv2-progress { height: 6px; margin-top: 8px; overflow: hidden; border-radius: 3px; background: #edf1f5; }
.aiv2-progress i { display: block; height: 100%; background: var(--ai-primary); }
.aiv2-queue-progress { margin-bottom: 9px; padding: 8px 10px; color: var(--ai-primary-dark); border: 1px solid #b7e7df; border-radius: var(--ai-radius); background: #f4fffd; font-size: 12px; line-height: 18px; }
.aiv2-queue-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.aiv2-queue-progress > div:first-child span { color: var(--ai-muted); white-space: nowrap; }
.aiv2-queue-progress .aiv2-progress { margin-top: 6px; }
.aiv2-prompt-gen-progress { margin-bottom: 9px; padding: 8px 10px; border: 1px solid #b7e7df; border-radius: var(--ai-radius); color: var(--ai-primary-dark); background: #f4fffd; font-size: 12px; }
.aiv2-prompt-gen-progress .aiv2-progress { margin-top: 6px; }
.aiv2-sample-enhance-box { margin-top: 12px; padding: 10px; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); background: #f8fafc; }
.aiv2-sample-enhance-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.aiv2-sample-enhance-head strong { font-size: 13px; }
.aiv2-sample-enhance-controls { margin-top: 10px; display: grid; grid-template-columns: auto minmax(0, 1fr) 74px; gap: 8px; align-items: center; }
.aiv2-sample-enhance-controls .layui-input { height: 32px; }
.aiv2-sample-chip-row { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 5px; }
.aiv2-txt-draft-item .aiv2-card-actions { align-self: center; }
.aiv2-txt-draft-item .aiv2-icon-btn span { margin-left: 2px; font-size: 11px; }
.aiv2-txt-draft-item .aiv2-txt-copy-btn { aspect-ratio: auto; gap: 3px; padding: 0 6px; }
.aiv2-txt-draft-item .aiv2-txt-copy-btn span { margin-left: 0; }
.aiv2-draft-style { color: #536477; }
.aiv2-tone-tag { display: inline-flex; align-items: center; padding: 0 5px; border-radius: 3px; font-size: 11px; line-height: 18px; }
.aiv2-tone-tag.is-dark { color: #fff; background: #475569; }
.aiv2-tone-tag.is-light { color: #7c4a03; background: #fef3c7; }
.aiv2-draft-detail { padding: 16px; }
.aiv2-draft-detail-meta { margin-bottom: 14px; padding: 10px; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); color: var(--ai-muted); line-height: 20px; }
.aiv2-draft-detail section + section { margin-top: 14px; }
.aiv2-draft-detail-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 7px; }
.aiv2-draft-detail pre { margin: 0; padding: 11px; overflow: visible; white-space: pre-wrap; word-break: break-word; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); background: #f8fafc; color: var(--ai-text); font: 13px/1.6 var(--ai-font); }
.aiv2-overview { display: grid; grid-template-columns: 130px minmax(0, 1fr); row-gap: 12px; }
.aiv2-overview dt { color: var(--ai-muted); }.aiv2-overview dd { margin: 0; text-align: right; word-break: break-all; }
.aiv2-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.aiv2-gallery-toolbar { margin-bottom: 12px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.aiv2-gallery-toolbar .layui-input, .aiv2-gallery-toolbar .layui-input-wrap { width: min(240px, 100%); }
.aiv2-output-toolbar { justify-content: space-between; gap: 8px 12px; }
.aiv2-output-crumb { min-width: 0; flex: 1 1 auto; }
.aiv2-output-crumb .layui-breadcrumb { font-size: 12px; }
.aiv2-output-crumb .layui-breadcrumb a { color: var(--ai-blue) !important; }
.aiv2-output-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.aiv2-output-actions .layui-input { width: 220px; }
.aiv2-output-selection { min-width: 0; color: var(--ai-primary-dark); font-size: 12px; white-space: nowrap; }
.aiv2-output-list > .aiv2-empty { padding: 6px 0; text-align: left; }
.aiv2-gallery-item { position: relative; min-width: 0; padding: 8px; display: flex; flex-direction: column; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); background: #fff; }
.aiv2-gallery-item.aiv2-selectable > input { position: absolute; top: 13px; left: 13px; z-index: 3; }
.aiv2-gallery-actions { min-height: 24px; display: flex; align-items: center; justify-content: flex-end; gap: 3px; margin-bottom: 8px; opacity: 0; transition: opacity .15s; }
.aiv2-gallery-actions.layui-btn-group { gap: 0; }
.aiv2-gallery-item:hover .aiv2-gallery-actions, .aiv2-gallery-item:focus-within .aiv2-gallery-actions { opacity: 1; }
.aiv2-gallery-item.has-txt-origin .aiv2-gallery-actions, .aiv2-txt-output-list .aiv2-gallery-actions { opacity: 1; }
.aiv2-kind-tag { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; margin-left: 5px; padding: 0 5px; border: 1px solid rgb(5 150 105 / 32%); border-radius: 9px; color: #05806a; background: rgb(5 150 105 / 8%); font-size: 11px; line-height: 16px; vertical-align: 1px; }
.aiv2-kind-tag.is-prefix { margin-right: 5px; margin-left: 0; }
.aiv2-gallery-item img { width: 100%; aspect-ratio: 4 / 3; display: block; margin-bottom: 8px; object-fit: cover; border-radius: 4px; background: #edf1f5; cursor: pointer; }
.aiv2-txt-output-media { position: relative; }
.aiv2-txt-output-media > img { margin-bottom: 8px; }
.aiv2-gallery-item.has-candidates { border-color: #9ed8d1; }
.aiv2-output-candidate-tag { position: absolute; top: 7px; left: 7px; min-width: 34px; padding: 2px 7px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; color: #075c56; border: 1px solid #8fd4cb; border-radius: 4px; background: rgba(240, 253, 250, .94); font-size: 12px; font-weight: 700; line-height: 18px; }
.aiv2-folder-button { width: 100%; aspect-ratio: 4 / 3; display: grid; place-items: center; margin-bottom: 8px; border: 0; border-radius: 4px; color: #e9a23b; background: #edf1f5; cursor: pointer; }
.aiv2-folder-button > i { font-size: 52px; }
.aiv2-gallery-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.aiv2-pager { margin-top: 12px; text-align: right; }
.aiv2-wf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; height: 330px; overflow: auto; }
.aiv2-wf-node { min-width: 0; padding: 9px 10px; display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 8px; align-items: center; border: 1px solid var(--ai-line); border-radius: 4px; background: #fff; }
.aiv2-wf-node > i { width: 8px; height: 8px; border-radius: 50%; background: #bec7d3; }
.aiv2-wf-node strong, .aiv2-wf-node span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-wf-node strong { font-size: 12px; }.aiv2-wf-node span { margin-top: 2px; color: var(--ai-muted); font-size: 11px; }
.aiv2-wf-node.is-running { border-color: var(--ai-blue); background: #f3f9ff; }.aiv2-wf-node.is-running > i { background: var(--ai-blue); box-shadow: 0 0 0 3px rgba(30,159,255,.14); }
.aiv2-wf-node.is-done > i { background: #16a34a; }.aiv2-wf-node.is-cached > i { background: #d97706; }
.aiv2-page-actions { margin-top: 16px; display: flex; flex: 0 0 auto; gap: 6px; }
.aiv2-txt-page { min-width: 0; }
.aiv2-txt-model-bars { margin-bottom: 16px; }
.aiv2-txt-model-bars { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aiv2-txt-reference-card { margin-bottom: 0; }
.aiv2-txt-reference-card > .layui-card-body { min-height: 0; display: flex; flex: 1 1 auto; flex-direction: column; gap: 12px; overflow: hidden; }
.aiv2-txt-reference-upload { width: 100%; height: 132px; flex: 0 0 auto; }
.aiv2-reference-list { min-width: 0; min-height: 0; display: grid; flex: 1 1 auto; grid-template-columns: 1fr; grid-auto-rows: max-content; align-content: start; gap: 8px; overflow: auto; }
.aiv2-reference-item { min-width: 0; display: grid; grid-template-columns: 22px 58px minmax(0, 1fr); gap: 9px; align-items: center; padding: 7px; border: 1px solid var(--ai-line); border-radius: 5px; }
.aiv2-reference-item.is-running { border-color: #bfdbfe; background: #f8fbff; }
.aiv2-reference-progress { padding: 8px 10px; color: var(--ai-primary-dark); border: 1px solid #b7e7df; border-radius: var(--ai-radius); background: #f4fffd; font-size: 12px; line-height: 18px; }
.aiv2-reference-progress .aiv2-progress { margin-top: 6px; }
.aiv2-reference-item > input { margin: 0; }
.aiv2-reference-item img { width: 58px; height: 58px; object-fit: cover; border-radius: 4px; }
.aiv2-reference-detail { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.aiv2-reference-detail > strong { min-width: 0; overflow: hidden; font-size: 13px; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-reference-status { min-width: 0; display: flex; align-items: center; gap: 6px; }
.aiv2-reference-error { min-width: 0; overflow: hidden; color: var(--ai-danger); font-size: 12px; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-model-bars .aiv2-txt-model-bar { margin-bottom: 0; }
.aiv2-txt-model-bar .layui-card-body { padding: 12px 16px; }
.aiv2-txt-model-summary { min-height: 42px; display: flex; align-items: center; gap: 8px; }
.aiv2-txt-model-summary-label { min-width: 0; flex: 1 1 0; display: flex; align-items: center; gap: 9px; overflow: hidden; }
.aiv2-txt-model-summary-label > span { flex: 0 0 auto; color: var(--ai-muted); font-size: 13px; white-space: nowrap; }
.aiv2-txt-model-summary-label strong { overflow: hidden; font-size: 15px; line-height: 20px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-model-summary-label em { flex: 0 0 auto; overflow: hidden; color: var(--ai-muted); font-size: 12px; font-style: normal; line-height: 16px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-model-summary-meta { min-width: 0; margin-left: auto; display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.aiv2-txt-model-summary > .layui-btn { flex: 0 0 auto; margin-left: 4px; }
.aiv2-txt-authoring-grid > .layui-card { height: 620px !important; min-height: 620px; max-height: 620px; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-txt-authoring-grid > .layui-card > .layui-card-body { min-height: 0; flex: 1 1 auto; }
.aiv2-txt-manual-body { min-height: 0; padding-bottom: 12px; display: flex; flex-direction: column; gap: 16px; overflow: hidden; box-sizing: border-box; }
.aiv2-txt-manual-body .aiv2-field { min-height: 0; display: flex; flex-direction: column; }
.aiv2-txt-manual-body .aiv2-field:first-child { flex: 3 1 0; }
.aiv2-txt-manual-body .aiv2-field:last-child { flex: 2 1 0; }
.aiv2-txt-shared-params { display: flex; flex-direction: column; overflow-x: hidden; overflow-y: auto; }
.aiv2-txt-param-head,
.aiv2-txt-param-row { width: 100%; min-width: 0; display: grid; grid-template-columns: minmax(72px, 1fr) minmax(92px, 1.25fr) 64px 70px 32px; align-items: center; gap: 6px; }
.aiv2-txt-param-head { margin-bottom: 7px; color: var(--ai-muted); font-size: 12px; line-height: 20px; }
#txt-param-rows { display: grid; gap: 8px; }
.aiv2-txt-param-row > .layui-input-wrap,
.aiv2-txt-param-row > .layui-form-select { min-width: 0; }
.aiv2-txt-param-row .layui-input { min-width: 0; height: 36px; line-height: 36px; }
.aiv2-txt-param-row > .aiv2-txt-param-delete { width: 32px; height: 32px; min-width: 32px; padding: 0; margin: 0; display: inline-flex; align-items: center; justify-content: center; }
.aiv2-txt-param-add { margin-top: auto; padding-top: 14px; display: flex; justify-content: center; }
.aiv2-txt-task-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aiv2-txt-task-card { min-width: 0; height: 720px !important; min-height: 720px; max-height: 720px; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-txt-task-card > .layui-card-body { min-height: 0; flex: 1 1 auto; overflow: auto; }
.aiv2-txt-task-card .aiv2-card-footer { flex-wrap: wrap; }
.aiv2-txt-queue-actions { gap: 4px; }
.aiv2-txt-bottom-grid { margin-bottom: 0; align-items: start; }
.aiv2-txt-limited-card { height: 720px !important; min-height: 720px; max-height: 720px; display: flex; flex-direction: column; }
.aiv2-txt-limited-card > .layui-card-body { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-txt-scroll-area { min-height: 0; flex: 1 1 auto; overflow: auto; align-content: start; }
.aiv2-gallery > .aiv2-empty { grid-column: 1 / -1; padding: 20px 0; text-align: center; }
.aiv2-txt-history-body { min-height: 0; }
.aiv2-txt-history-list { margin-top: 12px; }
.aiv2-history-footer .aiv2-pager { margin-top: 0; text-align: center; }
.aiv2-history-footer .layui-laypage { margin: 0; }
.aiv2-txt-bottom-grid > .aiv2-txt-limited-card:last-child { height: 720px !important; }
.aiv2-history-error { margin-top: 6px; color: #b42318; font-size: 12px; line-height: 18px; word-break: break-word; }
.aiv2-history-error strong { font-weight: 600; }
.aiv2-txt-model-picker-layer .layui-layer-content { overflow: hidden; }
.aiv2-txt-model-picker { height: 100%; padding: 14px; overflow: auto; box-sizing: border-box; background: #f6f8fa; }
.aiv2-txt-model-picker.is-multi { padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-txt-model-picker-body { min-height: 0; padding: 14px; flex: 1 1 auto; overflow: auto; box-sizing: border-box; }
.aiv2-txt-model-picker.is-multi .aiv2-card-footer { min-height: 52px; padding-block: 7px; }
.aiv2-txt-model-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; align-content: start; }
.aiv2-txt-image-model-card { width: 100%; min-width: 0; height: 156px; min-height: 156px; margin: 0; padding: 0; display: flex; flex-direction: column; overflow: hidden; color: var(--ai-text); border: 1px solid var(--ai-line); border-radius: var(--ai-radius); background: #fff; font: inherit; text-align: left; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.aiv2-txt-image-model-card:hover { border-color: #83cfc5; box-shadow: 0 4px 12px rgba(15, 118, 110, .12); transform: translateY(-1px); }
.aiv2-txt-image-model-card.is-selected { border: 2px solid var(--ai-primary); background: #f3fffd; }
.aiv2-txt-model-picker.is-multi .aiv2-txt-image-model-card { cursor: default; }
.aiv2-txt-model-picker.is-multi .aiv2-txt-image-model-card:hover { box-shadow: none; transform: none; }
.aiv2-txt-model-picker.is-multi .aiv2-txt-image-model-card .layui-form-checkbox { margin: 0; }
.aiv2-txt-image-model-card .layui-card-header { width: 100%; min-height: 36px; padding: 0 11px; display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; color: var(--ai-muted); border-bottom: 1px solid var(--ai-line); font-size: 12px; line-height: 36px; }
.aiv2-txt-image-model-card.is-selected .layui-card-header { color: var(--ai-primary-dark); }
.aiv2-txt-image-model-card .layui-card-header > i { color: var(--ai-primary); font-size: 17px; }
.aiv2-txt-image-model-card .layui-card-body { width: 100%; min-height: 0; padding: 11px; display: flex; flex: 1 1 auto; flex-direction: column; gap: 8px; box-sizing: border-box; }
.aiv2-txt-image-model-name { min-width: 0; display: flex; align-items: center; gap: 9px; }
.aiv2-txt-image-model-name > img, .aiv2-txt-image-model-name > i { width: 30px; height: 30px; flex: 0 0 30px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; box-sizing: border-box; object-fit: contain; color: #475569; border: 1px solid #dbe3ec; border-radius: 5px; background: #f8fafc; font-size: 17px; }
.aiv2-txt-image-model-name strong { min-width: 0; overflow: hidden; font-size: 13px; line-height: 19px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-image-model-card .aiv2-model-tags { min-height: 24px; overflow: hidden; align-content: flex-start; }
.aiv2-txt-image-model-foot { min-width: 0; min-height: 25px; margin-top: auto; padding-top: 6px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--ai-muted); border-top: 1px solid var(--ai-line); font-size: 12px; line-height: 18px; }
.aiv2-txt-image-model-foot > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-image-model-foot em { overflow: hidden; color: #0f766e; font-style: normal; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-image-model-price { min-width: 0; overflow: hidden; color: #0f766e; font-size: 12px; font-weight: 600; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-image-model-price.is-pending { color: var(--ai-muted); font-weight: 400; }
.aiv2-card-footer { min-height: 56px; flex: 0 0 auto; padding: 9px 16px; display: flex; align-items: center; justify-content: center; gap: 8px; box-sizing: border-box; border-top: 1px solid var(--ai-line); background: #fff; }
.aiv2-card-footer .aiv2-footer-save { margin-left: 0; }
.aiv2-test-result { min-width: 0; color: var(--ai-muted); font-size: 12px; line-height: 18px; word-break: break-word; }
.aiv2-test-result.is-success { color: #16a34a; }
.aiv2-test-result.is-error { color: var(--ai-danger); }
.aiv2-upload-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.aiv2-upload-box { height: 145px; box-sizing: border-box; display: grid; place-items: center; text-align: center; }
.aiv2-upload-box i[class^="ri-"], .aiv2-upload-box i[class*=" ri-"] { display: block; margin-bottom: 8px; font-size: 34px; color: var(--ai-primary); }
.aiv2-img-config-grid > .layui-card { height: 270px; min-height: 270px; max-height: 270px; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-img-config-grid > .layui-card > .layui-card-body { min-height: 0; flex: 1 1 auto; box-sizing: border-box; }
.aiv2-img-upload-card > .layui-card-body { display: flex; }
.aiv2-img-upload-card .aiv2-upload-split { width: 100%; height: 100%; }
.aiv2-img-upload-card .aiv2-upload-box { height: 100%; }
.aiv2-img-param-card > .layui-card-body { padding: 10px 16px; overflow: auto; }
.aiv2-img-param-card > .aiv2-card-footer { justify-content: center; }
.aiv2-img-fixed-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.aiv2-img-fixed-grid > .layui-card { min-width: 0; height: 720px !important; min-height: 720px; max-height: 720px; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-img-fixed-grid > .layui-card > .layui-card-body { min-height: 0; height: auto; flex: 1 1 auto; overflow: auto; box-sizing: border-box; }
.aiv2-img-fixed-grid .aiv2-wf-grid { height: 100%; }
.aiv2-staging { display: flex; flex-direction: column; gap: 10px; }
.aiv2-staging-item { min-width: 0; padding: 12px; display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; align-items: start; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); }
.aiv2-staging-check { margin-top: 2px; }
.aiv2-staging-content { min-width: 0; }
.aiv2-staging-basic { min-width: 0; display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 12px; align-items: start; }
.aiv2-staging-thumb { width: 132px; height: 99px; object-fit: cover; border-radius: 4px; background: #edf1f5; cursor: pointer; }
.aiv2-staging-summary { min-width: 0; display: flex; flex-direction: column; justify-content: flex-start; gap: 7px; }
.aiv2-staging-title-row { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.aiv2-staging-title { min-width: 0; display: flex; align-items: center; gap: 6px; line-height: 24px; }
.aiv2-staging-title > strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }
.aiv2-staging-title .aiv2-kind-tag { flex: 0 0 auto; margin-left: 0; }
.aiv2-staging-actions { flex: 0 0 auto; flex-wrap: nowrap; }
.aiv2-staging-tone { min-width: 0; display: flex; align-items: center; gap: 7px; color: var(--ai-muted); font-size: 12px; }
.aiv2-staging-params { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.aiv2-staging-params > div { min-width: 0; }
.aiv2-img-draft-item { align-items: start; }
.aiv2-draft-workflow { min-width: 0; margin: 2px 0 9px; display: flex; align-items: center; gap: 7px; color: var(--ai-muted); font-size: 12px; }
.aiv2-draft-workflow strong { min-width: 0; overflow: hidden; color: var(--ai-text); text-overflow: ellipsis; white-space: nowrap; }
.aiv2-flow-tag { flex: 0 0 auto; padding: 0 7px; color: #fff; border: 1px solid #0f9f92; border-radius: 9px; background: #0f9f92; font-size: 10px; line-height: 18px; }
.aiv2-draft-param-line { min-width: 0; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; color: var(--ai-muted); font-size: 12px; line-height: 22px; }
.aiv2-draft-param-line > i { color: #c7cdd4; font-style: normal; }
.aiv2-draft-param-line > span { min-width: 0; display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.aiv2-draft-param-line em { color: var(--ai-muted); font-style: normal; }
.aiv2-draft-param-line strong { color: var(--ai-text); font-weight: 600; }
.aiv2-import-layer.layui-layer { top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; max-width: none !important; max-height: none !important; display: flex; flex-direction: column; overflow: hidden; border-radius: 0; box-shadow: none; }
.aiv2-import-layer .layui-layer-title { flex: 0 0 auto; }
.aiv2-import-layer .layui-layer-content { min-height: 0; flex: 1 1 auto; overflow: hidden; }
.aiv2-import-layer .layui-layer-btn { flex: 0 0 auto; }
.aiv2-import-layer #img-import-list { height: 100%; min-height: 0; }
.aiv2-import-layer #txt2img-import-list { height: 100%; min-height: 0; }
.aiv2-import-picker { height: 100%; min-height: 0; padding: 14px; display: flex; flex-direction: column; gap: 10px; box-sizing: border-box; }
.aiv2-import-toolbar { min-width: 0; flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.aiv2-import-toolbar .layui-input, .aiv2-import-toolbar .layui-input-wrap { width: min(360px, 100%); }
.aiv2-import-toolbar .aiv2-stat-meta { margin-left: auto; white-space: nowrap; }
.aiv2-import-density { display: inline-flex; align-items: center; gap: 4px; margin-left: 10px; color: var(--ai-muted); font-size: 12px; white-space: nowrap; }
.aiv2-import-density button { min-width: 44px; height: 28px; padding: 0 8px; border: 1px solid var(--ai-line); border-radius: 4px; color: var(--ai-muted); background: #fff; cursor: pointer; }
.aiv2-import-density button:hover, .aiv2-import-density button.is-active { border-color: var(--ai-primary); color: var(--ai-primary-dark); background: #effcf9; }
.aiv2-import-grid { --import-columns: 4; min-height: 0; flex: 1 1 auto; display: grid; grid-template-columns: repeat(var(--import-columns), minmax(0, 1fr)); grid-auto-rows: max-content; gap: 12px; align-content: start; overflow: auto; box-sizing: border-box; }
.aiv2-import-item { position: relative; min-width: 0; padding: 7px; display: flex; flex-direction: column; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); overflow: hidden; }
.aiv2-import-item[hidden] { display: none; }
.aiv2-import-item input { position: absolute; top: 12px; left: 12px; z-index: 1; }
.aiv2-import-item img { width: 100%; height: auto; flex: 0 0 auto; aspect-ratio: 16 / 9; display: block; object-fit: contain; border-radius: 4px; background: #dfe5ea; cursor: pointer; }
.aiv2-import-meta { position: absolute; z-index: 2; top: 9px; right: 44px; left: 38px; min-width: 0; height: 30px; display: flex; align-items: flex-start; gap: 5px; color: var(--ai-text); font-size: 12px; line-height: 18px; pointer-events: none; }
.aiv2-import-meta > span { min-width: 0; flex: 0 0 auto; max-width: min(260px, calc(100% - 10px)); padding: 3px 8px; overflow: hidden; color: #1f2937; border: 1px solid rgb(255 255 255 / 72%); border-radius: 3px; background: rgb(255 255 255 / 90%); box-shadow: 0 1px 4px rgb(15 23 42 / 18%); font-size: 12px; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-import-meta > span:last-child { flex: 0 1 auto; }
.aiv2-import-detail.layui-btn-primary { position: absolute; z-index: 3; top: 9px; right: 8px; width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; color: #1f2937 !important; border: 1px solid rgb(255 255 255 / 72%) !important; border-radius: 4px; background: rgb(255 255 255 / 90%) !important; box-shadow: 0 1px 4px rgb(15 23 42 / 18%); font-size: 17px; }
.aiv2-import-item > input { position: absolute; top: 12px; left: 12px; z-index: 3; }
.aiv2-import-item .aiv2-gallery-name { position: relative; z-index: 1; margin-top: 7px; }
.aiv2-output-card-tools { min-width: 0; min-height: 28px; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; overflow: hidden; }
.aiv2-output-card-tools > input { flex: 0 0 auto; }
.aiv2-output-card-tools .aiv2-gallery-actions { min-width: 0; min-height: 0; flex: 1 1 auto; margin: 0; justify-content: flex-end; flex-wrap: nowrap; white-space: nowrap; overflow: hidden; }
.aiv2-archive-item .aiv2-gallery-actions > .layui-btn { flex: 0 0 auto; }
.aiv2-archive-item .aiv2-gallery-actions > .layui-btn { flex: 0 0 auto; }
.aiv2-archive-head-actions { min-width: 0; flex-wrap: nowrap; white-space: nowrap; overflow-x: auto; }
.aiv2-archive-head-actions > .layui-btn, .aiv2-archive-head-actions > .layui-form-checkbox { flex: 0 0 auto; }
@media (max-width: 760px) {
  .aiv2-txt-model-bars, .aiv2-txt-authoring-grid { grid-template-columns: 1fr; }
  .aiv2-txt-param-head,
  .aiv2-txt-param-row { grid-template-columns: minmax(60px, 1fr) minmax(74px, 1.25fr) 58px 62px 30px; gap: 4px; }
  .aiv2-txt-param-row > .aiv2-txt-param-delete { width: 30px; height: 30px; min-width: 30px; }
  .aiv2-txt-reference-upload { height: 104px; }
  .aiv2-reference-list { max-height: none; }
  .aiv2-import-toolbar { align-items: flex-start; flex-wrap: wrap; }
  .aiv2-import-toolbar .aiv2-stat-meta { margin-left: 0; }
  .aiv2-import-density { margin-left: 0; }
  .aiv2-import-grid { --import-columns: 2; }
}
.aiv2-sample-page { height: 100%; min-height: 0; }
.aiv2-sample-layout { height: 100%; min-height: 0; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(360px, .72fr); gap: 16px; align-items: stretch; }
.aiv2-sample-layout > .layui-card { min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-sample-layout > .layui-card > .layui-card-body { min-height: 0; flex: 1 1 auto; overflow: auto; box-sizing: border-box; }
.aiv2-sample-main-card > .layui-card-body { padding: 0; overflow: hidden !important; }
.aiv2-sample-main-split { height: 100%; min-height: 0; display: grid; grid-template-columns: 280px minmax(0, 1fr); }
.aiv2-sample-form-pane { min-height: 0; padding: 16px; display: flex; flex-direction: column; gap: 14px; border-right: 1px solid var(--ai-line); background: #fbfcfd; box-sizing: border-box; }
.aiv2-sample-list-pane { min-height: 0; padding: 16px 16px 0; display: flex; flex-direction: column; overflow: hidden; box-sizing: border-box; }
.aiv2-sample-upload { width: 100%; height: 168px; }
.aiv2-sample-model-summary { min-height: 76px; align-items: stretch; flex-direction: column; }
.aiv2-sample-model-summary .layui-btn { width: 100%; margin: 0; justify-content: center; }
.aiv2-sample-list-tools { min-width: 0; margin-bottom: 12px; flex: 0 0 auto; display: flex; align-items: center; gap: 10px; }
.aiv2-sample-bucket-tabs { min-width: 0; margin: 0; flex: 1 1 auto; background: #fff; }
.aiv2-sample-bucket-tabs .layui-tabs-header { margin: 0; }
.aiv2-sample-list-pane .aiv2-archive-search { width: 320px; flex: 0 0 320px; }
.aiv2-sample-list-actions { flex: 0 0 auto; flex-wrap: nowrap; }
.aiv2-sample-grid { min-height: 0; flex: 1 1 0; padding-right: 5px; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; align-content: start; overflow-x: hidden; overflow-y: auto; scrollbar-gutter: stable; }
.aiv2-sample-grid > .aiv2-empty { grid-column: 1 / -1; }
.aiv2-sample-pager { min-height: 30px; margin: 4px 0 0; padding-top: 4px; flex: 0 0 auto; border-top: 1px solid var(--ai-line); text-align: center; box-sizing: content-box; }
.aiv2-sample-pager .layui-laypage { margin: 0; }
.aiv2-sample-ignore-note { padding: 10px; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; align-items: start; color: #667085; border: 1px solid #d9e5ec; border-radius: var(--ai-radius); background: #f8fafc; font-size: 12px; line-height: 18px; }
.aiv2-sample-ignore-note i { color: var(--ai-primary); font-size: 16px; line-height: 18px; }
.aiv2-sample-item.is-active { border-color: var(--ai-primary); background: #f4fffd; }
.aiv2-sample-item .aiv2-gallery-actions { opacity: 1; }
.aiv2-sample-card-tags { min-height: 22px; margin-top: 6px; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.aiv2-status-tag, .aiv2-sample-chip { max-width: 100%; min-height: 22px; padding: 1px 8px; display: inline-flex; align-items: center; box-sizing: border-box; overflow: hidden; border-radius: 11px; font-size: 12px; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-status-tag { color: #285b72; border: 1px solid #b9dce9; background: #f1fbff; font-weight: 600; }
.aiv2-status-tag.status-ready, .aiv2-status-tag.status-pending, .aiv2-status-tag.status-queued { color: #285b72; border-color: #b9dce9; background: #f1fbff; }
.aiv2-status-tag.status-extracting, .aiv2-status-tag.status-analyzing, .aiv2-status-tag.status-generating, .aiv2-status-tag.status-processing, .aiv2-status-tag.status-publishing { color: #2563eb; border-color: #bfdbfe; background: #eff6ff; }
.aiv2-status-tag.status-done, .aiv2-status-tag.status-completed, .aiv2-status-tag.status-published { color: #057a55; border-color: #a7e0c8; background: #ecfdf3; }
.aiv2-status-tag.status-paused { color: #a16207; border-color: #fde68a; background: #fffbeb; }
.aiv2-status-tag.status-error, .aiv2-status-tag.status-failed, .aiv2-status-tag.status-cancelled, .aiv2-status-tag.status-aborted { color: #c2410c; border-color: #fdba9c; background: #fff7ed; }
.aiv2-sample-chip.chip-category { color: #0f766e; border: 1px solid rgba(20,184,166,.34); background: rgba(20,184,166,.12); }
.aiv2-sample-chip.chip-style { color: #7c3aed; border: 1px solid rgba(139,92,246,.34); background: rgba(139,92,246,.12); }
.aiv2-sample-chip.chip-tone { color: #2563eb; border: 1px solid rgba(59,130,246,.32); background: rgba(59,130,246,.11); }
.aiv2-sample-chip.chip-score { color: #be123c; border: 1px solid rgba(244,63,94,.32); background: rgba(244,63,94,.1); }
.aiv2-sample-footer { flex-direction: column; }
.aiv2-sample-analysis-progress { width: min(520px, 100%); color: var(--ai-primary-dark); font-size: 12px; line-height: 18px; text-align: center; }
.aiv2-sample-analysis-progress .aiv2-progress { margin-top: 5px; }
.aiv2-sample-detail { min-width: 0; }
.aiv2-sample-detail > img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; border-radius: 4px; background: #edf1f5; cursor: pointer; }
.aiv2-sample-detail-title { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.aiv2-sample-detail-title strong { min-width: 0; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-sample-section { margin-top: 12px; padding: 10px; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); background: #f8fafc; }
.aiv2-sample-section strong { display: block; margin-bottom: 6px; font-size: 13px; }
.aiv2-sample-section p { margin: 0; color: var(--ai-muted); font-size: 12px; line-height: 20px; word-break: break-word; }
.aiv2-publish-layout { min-height: 0; height: 100%; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(440px, 1fr); gap: 16px; align-items: stretch; }
.aiv2-publish-layout > .layui-card, .aiv2-publish-side > .layui-card { min-height: 0; display: flex; flex-direction: column; }
.aiv2-publish-layout > .layui-card > .layui-card-body, .aiv2-publish-side > .layui-card > .layui-card-body { min-height: 0; flex: 1 1 auto; overflow: auto; }
.aiv2-publish-side { min-height: 0; display: grid; grid-template-rows: 298px minmax(0, 1fr); gap: 16px; }
.aiv2-publish-item { padding: 12px; display: grid; grid-template-columns: 20px 118px minmax(0, 1fr); gap: 12px; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); }
.aiv2-publish-item.is-failed { border-color: #ffb5a0; background: #fff8f5; }
.aiv2-publish-thumb { width: 118px; height: 88px; object-fit: cover; border-radius: 4px; background: #edf1f5; }
.aiv2-meta-grid { margin-top: 8px; display: grid; grid-template-columns: 90px minmax(0, 1fr); row-gap: 5px; font-size: 12px; }
.aiv2-meta-grid dt { color: var(--ai-muted); }.aiv2-meta-grid dd { margin: 0; word-break: break-word; }
.aiv2-sample-detail-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.aiv2-current { text-align: center; }
.aiv2-current img { width: min(100%, 320px); aspect-ratio: 4/3; object-fit: cover; border-radius: 4px; }
.aiv2-publish-note { margin: 12px 0 0; text-align: center; }
.aiv2-archive-toolbar { margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.aiv2-archive-path { min-width: 0; flex: 1 1 auto; display: flex; align-items: center; gap: 6px; }
.aiv2-archive-path > #archive-breadcrumb, .aiv2-archive-path > .aiv2-archive-breadcrumb { min-width: 0; max-width: calc(100% - 34px); flex: 0 1 auto; overflow-x: auto; overflow-y: hidden; white-space: nowrap; scrollbar-width: thin; }
.aiv2-archive-path > #archive-back, .aiv2-archive-path > .aiv2-archive-back { flex: 0 0 auto; }
.aiv2-archive-search { width: 280px; flex: 0 0 auto; }
.aiv2-archive-search > .layui-input-wrap { width: 100%; }
.aiv2-output-browser-card > .layui-card-body { display: block; overflow: auto; }
.aiv2-archive-item { position: relative; }
.aiv2-archive-item > input { position: absolute; z-index: 1; top: 13px; left: 13px; }
.aiv2-archive-item .aiv2-gallery-actions { min-height: 28px; opacity: 1; }
#archive-list .aiv2-archive-item { display: flex; flex-direction: column; }
#img-output-list .aiv2-archive-item { display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-rows: 36px auto auto; column-gap: 6px; }
#archive-list .aiv2-archive-item > input, #img-output-list .aiv2-archive-item > input { position: static; width: 16px; height: 16px; grid-column: 1; grid-row: 1; align-self: center; justify-self: start; margin: 0; }
#archive-list .aiv2-archive-item .aiv2-gallery-actions, #img-output-list .aiv2-archive-item .aiv2-gallery-actions { height: 28px; min-height: 28px; grid-column: 2; grid-row: 1; align-self: center; display: flex; align-items: center; box-sizing: border-box; margin: 0; }
#archive-list .aiv2-archive-item > img, #archive-list .aiv2-archive-item > .aiv2-folder-button, #img-output-list .aiv2-archive-item > img, #img-output-list .aiv2-archive-item > .aiv2-folder-button { grid-column: 1 / -1; grid-row: 2; }
#archive-list .aiv2-archive-item > .aiv2-gallery-name, #img-output-list .aiv2-archive-item > .aiv2-gallery-name { grid-column: 1 / -1; grid-row: 3; }
.aiv2-stat-meta { color: var(--ai-muted); font-size: 12px; }
#status-page { height: 100%; min-height: 0; overflow: hidden; }
.aiv2-status-layout { height: 100%; min-height: 0; display: grid; grid-template-columns: minmax(620px,1.15fr) minmax(460px,.85fr); gap: 16px; align-items: stretch; }
.aiv2-status-layout > * { height: 100%; min-height: 0; overflow: hidden; box-sizing: border-box; }
.aiv2-status-left { min-width: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 16px; }
.aiv2-status-pins-card, .aiv2-status-ops-card { min-height: 0; display: flex; flex-direction: column; }
.aiv2-status-pins-card > .layui-card-body, .aiv2-status-ops-card > .layui-card-body { min-height: 0; flex: 1 1 auto; overflow: auto; }
.aiv2-section-hint { margin: 0 0 10px; }
.aiv2-status-pin-list { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 8px; }
.aiv2-status-pin-group { grid-column: 1 / -1; margin: 6px 0 0; padding-bottom: 6px; border-bottom: 1px solid var(--ai-line); font-size: 13px; }
.aiv2-status-pin-group:first-child { margin-top: 0; }
.aiv2-status-pin-item { min-width: 0; padding: 8px; display: grid; grid-template-columns: 22px 92px minmax(0,1fr); gap: 8px; align-items: center; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); cursor: pointer; }
.aiv2-status-pin-item:hover { border-color: #a7d9d5; }.aiv2-status-pin-item.is-checked { background: #f4fffd; border-color: var(--ai-primary); }
.aiv2-status-pin-preview { width: 92px; min-width: 0; height: 42px; box-sizing: border-box; padding: 0 9px; border: 1px solid var(--ai-line); border-radius: 7px; background: #fff; }
.aiv2-status-pin-preview b { overflow: hidden; color: var(--ai-muted); font-size: 11px; line-height: 13px; text-overflow: ellipsis; white-space: nowrap; }.aiv2-status-pin-preview strong { font-size: 12px; line-height: 14px; white-space: nowrap; }
.aiv2-status-pin-preview.is-progress { min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.aiv2-status-pin-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.aiv2-status-pin-preview.is-progress > i { width: 100%; height: 3px; overflow: hidden; border-radius: 2px; background: #edf1f5; }.aiv2-status-pin-preview.is-progress > i em { display: block; height: 100%; background: var(--ai-primary); }
.aiv2-status-pin-preview.is-value { display: flex; align-items: center; }
.aiv2-status-pin-preview.is-host { display: flex; align-items: center; }
.aiv2-status-pin-value { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.aiv2-status-pin-preview.is-action { min-width: 0; padding-right: 7px; padding-left: 7px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; color: #fff; border-color: #dc3f18; background: var(--ai-danger); text-align: center; }
.aiv2-status-pin-preview.is-action b, .aiv2-status-pin-preview.is-action strong { color: #fff; }
.aiv2-status-pin-preview.is-ok { border-color: #a7d9d5; }.aiv2-status-pin-preview.is-bad { border-color: #ffb5a0; }
.aiv2-status-pin-text { min-width: 0; }.aiv2-status-pin-text strong, .aiv2-status-pin-text small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.aiv2-status-pin-text small { margin-top: 5px; color: var(--ai-muted); font-size: 11px; }
.aiv2-maintenance-row { display: flex; align-items: center; gap: 18px; }.aiv2-maintenance-row p { margin: 0; }
.aiv2-status-ops-card > .aiv2-status-ops-body { padding: 0; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-ops-list { min-height: 0; flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; }
.aiv2-op-item { min-width: 0; padding: 10px 14px; display: flex; flex: 0 0 auto; flex-direction: column; gap: 5px; border-bottom: 1px solid var(--ai-line); font-size: 12px; }
.aiv2-op-item:last-child { border-bottom: 0; }
.aiv2-op-head { min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.aiv2-op-head time { flex: 0 0 auto; color: var(--ai-muted); font-family: Consolas, "Courier New", monospace; font-size: 11px; }
.aiv2-op-head strong { min-width: 0; color: var(--ai-primary-dark); font-weight: 600; word-break: break-all; }
.aiv2-op-category { height: 20px; flex: 0 0 auto; padding: 0 7px; display: inline-flex; align-items: center; box-sizing: border-box; color: #64748b; border: 1px solid #cbd5e1; border-radius: 4px; background: #f8fafc; font-size: 11px; font-weight: 600; }
.aiv2-op-category.cat-jobs { color: #2563eb; border-color: #bfdbfe; background: #eff6ff; }
.aiv2-op-category.cat-publish { color: #15803d; border-color: #bbf7d0; background: #f0fdf4; }
.aiv2-op-category.cat-archive { color: #7e22ce; border-color: #e9d5ff; background: #faf5ff; }
.aiv2-op-category.cat-output { color: #a16207; border-color: #fde68a; background: #fffbeb; }
.aiv2-op-category.cat-settings { color: #475569; border-color: #cbd5e1; background: #f8fafc; }
.aiv2-op-category.cat-system { color: #c2410c; border-color: #fed7aa; background: #fff7ed; }
.aiv2-op-detail-row { min-width: 0; display: flex; align-items: flex-start; gap: 8px; }
.aiv2-op-detail { min-width: 0; flex: 1 1 auto; color: var(--ai-text); line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.aiv2-op-detail-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 3px; margin-top: 0; }
.aiv2-op-detail-dialog { padding: 16px 18px 18px; box-sizing: border-box; }
.aiv2-op-detail-summary { margin-bottom: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--ai-line); border-radius: 6px; background: #f8fafc; }
.aiv2-op-detail-summary strong { color: var(--ai-text); font-size: 14px; line-height: 1.5; }
.aiv2-op-detail-summary span { color: var(--ai-muted); font-size: 12px; }
.aiv2-op-detail-dialog ol { max-height: 520px; margin: 0; padding: 0; overflow-y: auto; list-style: none; }
.aiv2-op-detail-dialog li { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 8px; align-items: start; padding: 8px 0; border-bottom: 1px solid var(--ai-line); }
.aiv2-op-detail-dialog li:last-child { border-bottom: 0; }
.aiv2-op-detail-dialog li span { width: 24px; height: 20px; display: inline-flex; align-items: center; justify-content: center; color: var(--ai-muted); border-radius: 4px; background: #eef2f7; font-family: Consolas, "Courier New", monospace; font-size: 11px; }
.aiv2-op-detail-dialog code { min-width: 0; color: #334155; white-space: pre-wrap; word-break: break-all; font-family: Consolas, "Courier New", monospace; font-size: 12px; line-height: 1.5; }
.aiv2-op-extra { color: var(--ai-muted); font-family: Consolas, "Courier New", monospace; font-size: 11px; line-height: 1.45; word-break: break-all; }
.aiv2-op-item.level-error { background: #fff5f2; }
.aiv2-op-item.level-error .aiv2-op-head strong { color: var(--ai-danger); }
.aiv2-op-item.level-warn, .aiv2-op-item.level-warning { background: #fffbeb; }
.aiv2-op-item.level-warn .aiv2-op-head strong, .aiv2-op-item.level-warning .aiv2-op-head strong { color: #a16207; }
#models-page, .aiv2-model-shell, .aiv2-model-layout { width: 100%; height: 100%; min-height: 0; box-sizing: border-box; }
#models-page { overflow: hidden; }
.aiv2-model-shell { overflow: hidden; }
.aiv2-model-layout { display: grid; grid-template-columns: 360px minmax(0, 1fr); align-items: stretch; }
.aiv2-model-side { height: 100%; min-height: 0; padding: 16px; display: flex; flex-direction: column; box-sizing: border-box; overflow: hidden; border-right: 1px solid var(--ai-line); }
.aiv2-model-detail { height: 100%; min-height: 0; padding: 18px; display: flex; flex-direction: column; gap: 14px; box-sizing: border-box; overflow-x: hidden; overflow-y: auto; }
.aiv2-model-secret-card { flex: 0 0 auto; padding: 12px; border: 1px solid var(--ai-line); border-radius: 6px; background: #f8fafc; }
.aiv2-model-secret-card > strong { display: block; font-size: 13px; line-height: 20px; }
.aiv2-model-secret-row { margin-top: 7px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.aiv2-model-secret-status { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; }
.aiv2-model-secret-status.is-set { color: #059669; }
.aiv2-model-secret-status.is-unset { color: var(--ai-muted); }
.aiv2-model-secret-modal { padding: 20px 24px 12px; }
.aiv2-model-secret-modal .layui-form-label { width: 80px; padding-left: 0; }
.aiv2-model-secret-modal .layui-input-block { margin-left: 90px; }
.aiv2-model-secret-clear { margin-bottom: 12px; }
.aiv2-model-secret-help { margin: 4px 0 0 90px; color: var(--ai-muted); font-size: 12px; line-height: 18px; }
.aiv2-model-side > #model-search { height: 38px; box-sizing: border-box; line-height: 38px; }
.aiv2-provider-list { min-height: 0; flex: 1 1 auto; margin-top: 12px; overflow-x: hidden; overflow-y: auto; scrollbar-gutter: stable; }
.aiv2-provider-group { margin: 14px 0 6px; color: var(--ai-muted); font-size: 12px; }
.aiv2-provider-row { padding: 10px; display: grid; grid-template-columns: 56px minmax(0,1fr) auto; gap: 8px; align-items: center; border-radius: 4px; cursor: pointer; }
.aiv2-provider-row:hover { background: #f4f7fb; }.aiv2-provider-row.is-active { color: var(--ai-primary-dark); background: #eefbf9; }
.aiv2-provider-toggle { width: 56px; min-height: 24px; display: flex; align-items: center; justify-content: center; }
.aiv2-provider-toggle .layui-form-switch { width: 56px; margin: 0; }
.aiv2-provider-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 24px; }
.aiv2-provider-actions { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.aiv2-model-table { margin-top: 14px; }
.aiv2-model-row { padding: 10px 0; display: grid; grid-template-columns: minmax(0,1fr) 120px 220px; gap: 12px; align-items: center; border-bottom: 1px solid var(--ai-line); }
.aiv2-model-card-grid { margin-top: 14px; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); grid-auto-rows: max-content; gap: 12px; align-content: start; align-items: stretch; }
.aiv2-model-name-input { max-width: 360px; font-size: 18px; font-weight: 600; }
.aiv2-model-config .aiv2-model-name-input { max-width: 520px; font-size: 14px; font-weight: 400; }
.aiv2-model-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex: 0 0 auto; }
.aiv2-model-heading { min-width: 0; }
.aiv2-model-title { margin: 0; font-size: 18px; font-weight: 600; line-height: 26px; }
.aiv2-model-hint { margin: 5px 0 0; color: var(--ai-muted); font-size: 12px; line-height: 18px; }
.aiv2-model-balance { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.aiv2-model-balance-text { color: var(--ai-primary-dark); font-size: 13px; line-height: 30px; white-space: nowrap; }
.aiv2-model-balance .layui-btn + .layui-btn { margin-left: 0; }
.aiv2-model-config { flex: 0 0 auto; padding: 14px; display: flex; flex-direction: column; gap: 12px; border: 1px solid var(--ai-line); border-radius: 6px; background: #fff; }
.aiv2-model-config-row { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 10px; align-items: start; }
.aiv2-model-config-label { padding-top: 8px; color: var(--ai-muted); font-size: 13px; line-height: 20px; }
.aiv2-model-field-body { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.aiv2-model-control-row { min-width: 0; display: flex; align-items: center; gap: 6px; }
.aiv2-model-control-row > .layui-input, .aiv2-model-control-row > .layui-input-wrap { min-width: 0; flex: 1 1 auto; }
.aiv2-model-url-preset { width: 180px; min-width: 180px; flex: 0 0 180px; }
.aiv2-model-url-preset .layui-form-select { width: 100%; }
.aiv2-model-control-row .layui-btn { flex: 0 0 auto; margin: 0; }
.aiv2-model-field-hint { min-height: 17px; margin: 0; color: var(--ai-muted); font-size: 12px; line-height: 17px; }
.aiv2-model-field-hint a { color: var(--ai-blue); }
.aiv2-model-key-saved { color: var(--ai-muted); }
.aiv2-model-key-list { display: flex; flex-direction: column; gap: 6px; }
.aiv2-model-key-row { min-width: 0; display: grid; grid-template-columns: minmax(96px, 120px) minmax(0, 1fr) 56px 56px 30px 72px; gap: 6px; align-items: center; }
.aiv2-model-key-row .layui-input, .aiv2-model-key-row .layui-input-wrap, .aiv2-model-key-input-wrap { min-width: 0; width: 100%; }
.aiv2-model-key-input-wrap { position: relative; }
.aiv2-model-key-input-wrap .layui-input { padding-right: 36px; }
.aiv2-model-key-copy { position: absolute; top: 50%; right: 4px; width: 28px; height: 28px; padding: 0; color: var(--ai-muted); border: 0; border-radius: 4px; background: transparent; transform: translateY(-50%); cursor: pointer; }
.aiv2-model-key-copy:hover { color: var(--ai-primary-dark); background: #eefbf9; }
.aiv2-model-key-copy:focus-visible { outline: 2px solid var(--ai-primary); outline-offset: -1px; }
.aiv2-model-key-reveal { width: 56px; min-width: 56px; margin: 0; padding: 0; }
.aiv2-model-key-row .layui-form-switch { margin: 0; align-self: center; }
.aiv2-model-key-row .aiv2-model-key-saved { min-width: 0; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-model-key-row .aiv2-model-key-slot { width: 100%; min-width: 0; visibility: hidden; }
.aiv2-model-add-key { align-self: flex-start; margin-top: 2px; }
.aiv2-model-form-actions { padding-left: 98px; display: flex; align-items: center; gap: 6px; }
.aiv2-model-form-actions .layui-btn + .layui-btn { margin-left: 0; }
.aiv2-model-fetch-result { min-width: 0; overflow: hidden; color: #059669; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-model-card { min-width: 0; min-height: 140px; height: auto; padding: 12px 13px; display: flex; flex-direction: column; gap: 7px; box-sizing: border-box; border-radius: 6px; overflow: hidden; }
.aiv2-model-card:hover { border-color: #a7d9d5; }
.aiv2-model-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.aiv2-model-card-head > .aiv2-tag { max-width: calc(100% - 70px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-model-card-head .aiv2-card-actions { flex: 0 0 auto; gap: 4px; flex-wrap: nowrap; }
.aiv2-model-card-icon-btn { color: #475569; font-size: 14px; font-weight: 700; }
.aiv2-model-card-name { display: flex; align-items: center; gap: 10px; min-width: 0; }
.aiv2-model-card-name strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; line-height: 18px; }
.aiv2-model-card-name img, .aiv2-model-icon { width: 32px; height: 32px; flex: 0 0 32px; display: grid; place-items: center; object-fit: contain; border-radius: 5px; background: #eef2f6; }
.aiv2-model-tags { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.aiv2-model-cap { padding: 1px 7px; color: #285b72; border: 1px solid #b9dce9; border-radius: 9px; background: #f1fbff; font-size: 11px; line-height: 17px; white-space: nowrap; }
.aiv2-model-card-price-row { min-width: 0; display: flex; align-items: center; gap: 5px; }
.aiv2-model-card-price { min-width: 0; overflow: hidden; color: #0f766e; font-size: 12px; font-weight: 600; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-model-card-price.is-pending { color: var(--ai-muted); font-weight: 400; }
.aiv2-model-price-detail-btn { width: 22px; height: 22px; min-width: 22px; font-size: 13px; }
.aiv2-price-detail { padding: 18px 22px 16px; }
.aiv2-price-detail dl { margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.aiv2-price-detail dl > div { min-width: 0; padding: 10px 12px; border: 1px solid var(--ai-line); border-radius: 6px; background: #f8fafc; }
.aiv2-price-detail dt { margin: 0 0 5px; color: var(--ai-muted); font-size: 12px; }
.aiv2-price-detail dd { min-width: 0; margin: 0; overflow: hidden; color: var(--ai-text); font-size: 13px; font-weight: 600; line-height: 19px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-price-detail section { margin-top: 12px; padding: 12px 14px; border: 1px solid #b9dce9; border-radius: 6px; background: #f1fbff; }
.aiv2-price-detail section strong { display: block; margin-bottom: 8px; color: #285b72; font-size: 13px; }
.aiv2-price-detail ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.aiv2-price-detail li { position: relative; padding-left: 13px; color: #334155; font-size: 12px; line-height: 18px; word-break: break-word; }
.aiv2-price-detail li::before { content: ""; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--ai-primary); }
.aiv2-model-card-status { min-height: 18px; margin-top: 0; }
.aiv2-model-picker-layer .layui-layer-content { overflow: hidden; }
#model-picker { height: 100%; min-height: 0; }
.aiv2-model-picker { height: 100%; min-height: 0; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; box-sizing: border-box; }
.aiv2-model-picker-tools { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; }
.aiv2-model-picker-tools .layui-input, .aiv2-model-picker-tools .layui-input-wrap { min-width: 0; flex: 1 1 auto; }
.aiv2-model-picker-tools .layui-btn { flex: 0 0 auto; margin: 0; }
.aiv2-model-picker-body { min-height: 0; padding: 10px; flex: 1 1 auto; display: flex; flex-direction: column; gap: 10px; overflow: auto; border-radius: 6px; background: #f6f8fa; scrollbar-gutter: stable; }
.aiv2-model-picker-group { margin: 0; flex: 0 0 auto; overflow: hidden; border: 1px solid var(--ai-line); border-radius: 6px; box-shadow: none; }
.aiv2-model-picker-group-head { width: 100%; height: 38px; padding: 0 13px; display: flex; align-items: center; gap: 8px; box-sizing: border-box; color: #334155; border: 0; border-bottom: 1px solid var(--ai-line); background: #fff; font: inherit; text-align: left; cursor: pointer; }
.aiv2-model-picker-group-head:hover { background: #f8fafc; }
.aiv2-model-picker-group-head:focus-visible { outline: 2px solid var(--ai-primary); outline-offset: -2px; }
.aiv2-model-picker-group-head strong { font-size: 13px; }
.aiv2-model-picker-group-count { min-width: 20px; padding: 0 6px; color: #64748b; border-radius: 9px; background: #eef2f7; font-size: 10px; line-height: 18px; text-align: center; }
.aiv2-model-picker-group-arrow { margin-left: auto; color: #64748b; font-size: 18px; line-height: 1; transition: transform .18s ease; }
.aiv2-model-picker-group.is-collapsed .aiv2-model-picker-group-arrow { transform: rotate(180deg); }
.aiv2-model-picker-group.is-collapsed .aiv2-model-picker-group-head { border-bottom-color: transparent; }
.aiv2-model-picker-group.is-collapsed .aiv2-model-picker-list { display: none; }
.aiv2-model-picker-list { background: #fff; }
.aiv2-model-picker-item { min-height: 70px; padding: 10px 13px; display: flex; align-items: center; gap: 12px; box-sizing: border-box; border-bottom: 1px solid var(--ai-line); transition: background-color .15s ease; }
.aiv2-model-picker-item:last-child { border-bottom: 0; }
.aiv2-model-picker-item:hover { background: #f8fafc; }
.aiv2-model-picker-item.is-enabled { background: #f0fdfa; }
.aiv2-model-picker-icon { width: 32px; height: 32px; flex: 0 0 32px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; box-sizing: border-box; color: #475569; border: 1px solid #dbe3ec; border-radius: 50%; background: #fff; font-size: 12px; font-weight: 700; }
.aiv2-model-picker-icon img { width: 100%; height: 100%; display: block; object-fit: contain; }
.aiv2-model-picker-main { min-width: 0; flex: 1 1 auto; }
.aiv2-model-picker-main > strong { display: block; overflow: hidden; color: #1f2937; font-family: Consolas, "Courier New", monospace; font-size: 13px; line-height: 19px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-model-picker-tags { min-height: 20px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.aiv2-model-picker-actions { min-width: 0; max-width: 66%; flex: 0 1 auto; display: flex; align-items: center; justify-content: flex-end; gap: 4px; }
.aiv2-model-picker-actions .layui-btn + .layui-btn { margin-left: 0; }
.aiv2-model-picker-actions-tags { justify-content: flex-end; }
.aiv2-model-price { padding: 2px 7px; flex: 0 0 auto; color: #0f766e; border: 1px solid #99ddd2; border-radius: 4px; background: #f0fdfa; font-size: 11px; line-height: 18px; white-space: nowrap; }
.aiv2-model-picker-icon-btn { font-size: 14px; font-weight: 700; }
.aiv2-model-tags .tag-reasoning, .aiv2-model-picker-tags .tag-reasoning { color: #9a4b00; border-color: #f59e0b; background: #fff1d6; }
.aiv2-model-tags .tag-tools, .aiv2-model-picker-tags .tag-tools { color: #047857; border-color: #10b981; background: #d8f8ec; }
.aiv2-model-tags .tag-vision, .aiv2-model-picker-tags .tag-vision { color: #7e22ce; border-color: #a855f7; background: #f2e5ff; }
.aiv2-model-tags .tag-chat, .aiv2-model-picker-tags .tag-chat { color: #075985; border-color: #38bdf8; background: #e0f2fe; }
.aiv2-model-tags .tag-image, .aiv2-model-picker-tags .tag-image { color: #9f1239; border-color: #fb7185; background: #fff1f2; }
.aiv2-model-tags .tag-image-edit, .aiv2-model-tags .tag-image_edit, .aiv2-model-picker-tags .tag-image-edit { color: #9d174d; border-color: #f472b6; background: #fce7f3; }
.aiv2-model-tags .tag-video, .aiv2-model-picker-tags .tag-video { color: #4338ca; border-color: #818cf8; background: #eef2ff; }
.aiv2-model-tags .tag-music, .aiv2-model-picker-tags .tag-music { color: #a21caf; border-color: #e879f9; background: #fae8ff; }
.aiv2-model-tags .tag-ppt, .aiv2-model-picker-tags .tag-ppt { color: #c2410c; border-color: #fb923c; background: #fff7ed; }
.aiv2-model-tags .tag-gpts, .aiv2-model-picker-tags .tag-gpts { color: #0f766e; border-color: #2dd4bf; background: #f0fdfa; }
.aiv2-model-tags .tag-digital-human, .aiv2-model-tags .tag-digital_human, .aiv2-model-picker-tags .tag-digital-human { color: #6d28d9; border-color: #a78bfa; background: #f5f3ff; }
.aiv2-model-tags .tag-multimodal, .aiv2-model-picker-tags .tag-multimodal { color: #166534; border-color: #4ade80; background: #f0fdf4; }
.aiv2-model-tags .tag-realtime-voice, .aiv2-model-tags .tag-realtime_voice, .aiv2-model-picker-tags .tag-realtime-voice { color: #b45309; border-color: #fbbf24; background: #fffbeb; }
.aiv2-model-tags .tag-audio, .aiv2-model-picker-tags .tag-audio { color: #be123c; border-color: #f43f5e; background: #ffe4e9; }
.aiv2-model-tags .tag-web, .aiv2-model-picker-tags .tag-web { color: #0369a1; border-color: #0ea5e9; background: #dff3ff; }
.aiv2-model-tags .tag-free, .aiv2-model-tags .tag-embedding, .aiv2-model-tags .tag-rerank, .aiv2-model-picker-tags .tag-free, .aiv2-model-picker-tags .tag-embed, .aiv2-model-picker-tags .tag-rerank { color: #334155; border-color: #94a3b8; background: #eef2f7; }
.aiv2-model-tags .tag-video_edit, .aiv2-model-picker-tags .tag-video-edit, .aiv2-model-tags .tag-dance, .aiv2-model-picker-tags .tag-dance { color: #5b21b6; border-color: #a78bfa; background: #f5f3ff; }
.aiv2-model-tags .tag-async_task, .aiv2-model-tags .tag-file_analysis, .aiv2-model-picker-tags .tag-async-task, .aiv2-model-picker-tags .tag-file-analysis { color: #155e75; border-color: #67e8f9; background: #ecfeff; }
.aiv2-model-tags .tag-text_to_speech, .aiv2-model-tags .tag-speech_to_text, .aiv2-model-picker-tags .tag-text-to-speech, .aiv2-model-picker-tags .tag-speech-to-text { color: #9f1239; border-color: #fda4af; background: #fff1f2; }
.aiv2-model-tags .tag-translation, .aiv2-model-picker-tags .tag-translation { color: #166534; border-color: #86efac; background: #f0fdf4; }
.aiv2-model-tags .tag-context_128k, .aiv2-model-tags .tag-context_200k, .aiv2-model-tags .tag-tiered_pricing, .aiv2-model-picker-tags .tag-context, .aiv2-model-picker-tags .tag-tiered-pricing { color: #854d0e; border-color: #fde047; background: #fefce8; }
.aiv2-model-tags .tag-deprecating, .aiv2-model-picker-tags .tag-deprecating { color: #9a3412; border-color: #fdba74; background: #fff7ed; }
.aiv2-model-tags .tag-deprecated, .aiv2-model-picker-tags .tag-deprecated { color: #991b1b; border-color: #fca5a5; background: #fef2f2; }
.aiv2-model-manual { padding: 20px 24px 8px; }
.aiv2-model-manual .layui-form-label { width: 76px; padding-left: 0; }
.aiv2-model-manual .layui-input-block { margin-left: 86px; }
.aiv2-model-manual-types { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 0; }
#settings-page { height: 100%; min-height: 0; overflow: hidden; }
.aiv2-settings-top { height: 100%; min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 0; align-items: stretch; overflow: hidden; }
.aiv2-settings-top > .layui-card { width: 100%; height: 100%; min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; box-sizing: border-box; }
.aiv2-settings-top > .layui-card > .layui-card-body { min-height: 0; flex: 1 1 auto; overflow: auto; }
.aiv2-settings-top > .aiv2-settings-workflow-card > .layui-card-body { overflow: hidden; }
.aiv2-settings-stack { display: flex; flex-direction: column; gap: 6px; }
.aiv2-settings-stack label { color: var(--ai-muted); font-size: 12px; }
.aiv2-settings-field { display: flex; flex-direction: column; gap: 6px; }
.aiv2-settings-field[hidden], .aiv2-settings-field.is-hidden { display: none !important; }
.aiv2-backup-protocol-radios { min-height: 32px; display: flex; align-items: center; gap: 12px; }
.aiv2-backup-protocol-radios .layui-form-radio { margin: 0 10px 0 0; padding-right: 0; }
.aiv2-settings-form { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 12px; align-items: center; }
.aiv2-settings-form label { color: var(--ai-muted); }
.aiv2-workflow-layout { height: 100%; min-height: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.aiv2-workflow-list { min-height: 0; overflow: auto; }
.aiv2-workflow-detail { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.aiv2-workflow-detail .aiv2-settings-form { min-height: 0; flex: 1 1 auto; align-content: start; overflow: auto; }
.aiv2-workflow-actions { margin: 0; justify-content: center; }
.aiv2-workflow-row { width: 100%; min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) 28px 28px; gap: 8px; align-items: center; padding: 8px 10px; box-sizing: border-box; border-bottom: 1px solid var(--ai-line); background: transparent; }
.aiv2-workflow-row.is-active { color: var(--ai-primary-dark); background: #eefbf9; }
.aiv2-workflow-pick { min-width: 0; padding: 3px 0; display: block; color: inherit; border: 0; background: transparent; text-align: left; cursor: pointer; }
.aiv2-workflow-pick strong { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-workflow-row small { display: block; margin-top: 4px; color: var(--ai-muted); }
.aiv2-workflow-row .aiv2-icon-btn { width: 26px; height: 26px; min-width: 26px; padding: 0; }
.aiv2-node-tools { margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.aiv2-node-tools .layui-input, .aiv2-node-tools .layui-input-wrap { width: 100%; max-width: 320px; }
.aiv2-settings-nodes-card { height: 520px; margin-bottom: 0; display: flex; flex-direction: column; overflow: hidden; }
.aiv2-settings-nodes-card > .layui-card-body { min-height: 0; flex: 1 1 auto; box-sizing: border-box; }
.aiv2-settings-nodes { height: 100%; min-height: 0; display: grid; grid-template-columns: minmax(300px, 400px) minmax(0, 1fr); gap: 14px; box-sizing: border-box; }
.aiv2-settings-output-col, .aiv2-settings-custom-col { min-width: 0; min-height: 0; padding: 12px; display: flex; flex-direction: column; border: 1px solid var(--ai-line); border-radius: var(--ai-radius); }
.aiv2-settings-output-col .aiv2-output-list { min-height: 0; overflow: auto; }
.aiv2-settings-custom-col .aiv2-node-tools { margin-top: 10px; }
.aiv2-node-list { min-height: 0; overflow: auto; }
.aiv2-node-row { padding: 10px; display: grid; grid-template-columns: 24px 70px minmax(150px,1fr) 150px 120px; gap: 10px; align-items: center; border-bottom: 1px solid var(--ai-line); }
.aiv2-node-row .layui-input-wrap { width: 100%; }
.aiv2-node-row > .layui-form-checkbox { margin: 0; }
.aiv2-node-id-tag { min-width: 48px; padding: 2px 8px; color: #1d4ed8; border: 1px solid #bfdbfe; border-radius: 999px; background: #eff6ff; font-size: 12px; line-height: 18px; text-align: center; }
.aiv2-node-row > label { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.aiv2-node-row > label .layui-form-checkbox { margin: 0; }
.aiv2-node-row.is-enabled { background: #f4fffd; }
.aiv2-output-list { display: flex; flex-wrap: wrap; gap: 8px; }
.aiv2-output-chip { padding: 8px 10px; border: 1px solid var(--ai-line); border-radius: 4px; }
.aiv2-nodes-footer { justify-content: flex-end; }
.layui-layer.aiv2-settings-node-layer { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--ai-radius); }
.layui-layer.aiv2-settings-node-layer .layui-layer-title { flex: 0 0 auto; }
.layui-layer.aiv2-settings-node-layer .layui-layer-content { min-height: 0; height: auto !important; flex: 1 1 auto; overflow: hidden; }
.aiv2-settings-node-dialog { height: 100%; min-height: 0; padding: 14px; display: flex; flex-direction: column; box-sizing: border-box; overflow: hidden; background: #fff; }
.aiv2-settings-node-dialog .aiv2-settings-output-col, .aiv2-settings-node-dialog .aiv2-settings-custom-col { height: 100%; box-sizing: border-box; }
.aiv2-settings-node-dialog .aiv2-node-tools { margin-top: 10px; }
.aiv2-settings-node-dialog .aiv2-node-tools > .aiv2-card-actions { margin-left: auto; }
.aiv2-settings-node-dialog > .aiv2-node-list { flex: 1 1 auto; }
.aiv2-settings-node-dialog .aiv2-output-list { min-height: 0; overflow: auto; }
/* Header actions are commands, while adjacent tags remain informational. */
.aiv2-card-head .layui-btn.layui-btn-primary {
  color: #fff !important;
  border-color: var(--ai-primary) !important;
  background: var(--ai-primary) !important;
}
.aiv2-card-head .layui-btn.layui-btn-primary:hover {
  color: #fff !important;
  border-color: var(--ai-primary-dark) !important;
  background: var(--ai-primary-dark) !important;
}
.aiv2-card-head .aiv2-tag {
  color: var(--ai-primary-dark);
  border-color: #b7e7df;
  background: #f0fdfa;
}
.aiv2-backup-confirm { padding: 20px 24px 12px; }
.aiv2-backup-confirm p { margin: 0 0 14px; color: var(--ai-text); line-height: 1.7; }
.aiv2-backup-confirm .layui-form-checkbox[lay-skin="primary"] { margin: 0; }
.aiv2-backup-progress { padding: 28px 30px 22px; }
.aiv2-backup-progress-text { margin-bottom: 14px; color: var(--ai-text); font-weight: 600; line-height: 22px; }
.aiv2-backup-progress-meta { margin-top: 10px; color: var(--ai-muted); font-size: 12px; line-height: 18px; word-break: break-all; }
.aiv2-txt-analysis-progress { margin-bottom: 10px; padding: 8px 10px; border: 1px solid #b7e7df; border-radius: var(--ai-radius); color: var(--ai-primary-dark); background: #f0fdfa; font-size: 12px; line-height: 18px; }
.aiv2-txt-analysis-progress .aiv2-progress { margin-top: 6px; }
.aiv2-txt-output-eval { min-width: 0; min-height: 22px; margin-top: 5px; display: flex; align-items: center; gap: 6px; color: var(--ai-muted); font-size: 11px; }
.aiv2-txt-output-eval > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-score, .aiv2-txt-compare-score { flex: 0 0 auto; padding: 1px 6px; border: 1px solid #cbd5e1; border-radius: 9px; color: #64748b; background: #f8fafc; font-size: 11px; font-weight: 600; line-height: 17px; white-space: nowrap; }
.aiv2-txt-score.is-running, .aiv2-txt-compare-score.is-running { color: #0369a1; border-color: #7dd3fc; background: #f0f9ff; }
.aiv2-txt-score.is-high, .aiv2-txt-compare-score.is-high { color: #047857; border-color: #6ee7b7; background: #ecfdf5; }
.aiv2-txt-score.is-medium, .aiv2-txt-compare-score.is-medium { color: #a16207; border-color: #fde047; background: #fefce8; }
.aiv2-txt-score.is-low, .aiv2-txt-compare-score.is-low, .aiv2-txt-score.is-error, .aiv2-txt-compare-score.is-error { color: #b42318; border-color: #fda29b; background: #fff1f0; }
.layui-layer.aiv2-txt-compare-layer { position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; display: flex; flex-direction: column; overflow: hidden; border-radius: 0; box-shadow: none; }
.layui-layer.aiv2-txt-compare-layer .layui-layer-title { flex: 0 0 auto; height: 48px; padding: 0 52px 0 18px; border-bottom: 1px solid var(--ai-line); background: #fff; font-weight: 600; line-height: 48px; }
.layui-layer.aiv2-txt-compare-layer .layui-layer-setwin { top: 16px; right: 18px; }
.layui-layer.aiv2-txt-compare-layer .layui-layer-content { min-height: 0; height: auto !important; flex: 1 1 auto; overflow: hidden; }
.aiv2-txt-compare { height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; box-sizing: border-box; background: #eef1f4; }
.aiv2-txt-compare-toolbar { min-height: 50px; padding: 8px 14px; display: flex; align-items: center; justify-content: space-between; gap: 14px; box-sizing: border-box; border-bottom: 1px solid var(--ai-line); background: #fff; }
.aiv2-txt-compare-count { display: inline-flex; align-items: center; gap: 6px; color: var(--ai-muted); font-size: 12px; white-space: nowrap; }
.aiv2-txt-compare-count i { color: var(--ai-primary-dark); font-size: 16px; }
.aiv2-txt-compare-density { display: inline-flex; align-items: center; gap: 4px; }
.aiv2-txt-compare-density > span { margin-right: 4px; color: var(--ai-muted); font-size: 12px; }
.aiv2-txt-compare-density button { min-width: 48px; height: 30px; padding: 0 9px; color: #526274; border: 1px solid #d7dee6; border-radius: 4px; background: #f8fafc; font-size: 12px; line-height: 28px; cursor: pointer; }
.aiv2-txt-compare-density button:hover { color: var(--ai-primary-dark); border-color: #7dd6cd; background: #f0fdfa; }
.aiv2-txt-compare-density button.is-active { color: #fff; border-color: var(--ai-primary-dark); background: var(--ai-primary-dark); }
.aiv2-txt-compare-grid { --compare-columns: 3; min-height: 0; padding: 14px; display: grid; grid-template-columns: repeat(var(--compare-columns), minmax(0, 1fr)); grid-auto-rows: max-content; gap: 14px; align-items: start; align-content: start; overflow: auto; }
.aiv2-txt-compare-item { position: relative; min-width: 0; height: 0; padding-bottom: 56.25%; margin: 0; box-sizing: content-box; overflow: hidden; border-radius: 4px; background: #dfe5ea; }
.aiv2-txt-compare-item.is-selected { outline: 2px solid var(--ai-primary); outline-offset: -2px; }
.aiv2-txt-compare-item > img { position: absolute; inset: 0; width: 100%; height: 100%; min-width: 0; min-height: 0; display: block; object-fit: contain; background: #dfe5ea; cursor: zoom-in; }
.aiv2-txt-compare-overlay { position: absolute; z-index: 2; top: 9px; right: 9px; left: 9px; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; pointer-events: none; }
.aiv2-txt-compare-labels { min-width: 0; display: flex; align-items: center; gap: 5px; }
.aiv2-txt-compare-labels > span { min-width: 0; max-width: min(260px, 24vw); padding: 3px 8px; overflow: hidden; color: #1f2937; border: 1px solid rgba(255,255,255,.72); border-radius: 3px; background: rgba(255,255,255,.9); box-shadow: 0 1px 4px rgba(15,23,42,.18); font-size: 12px; line-height: 18px; text-overflow: ellipsis; white-space: nowrap; }
.aiv2-txt-compare-labels > .aiv2-txt-compare-candidate { flex: 0 0 auto; max-width: none; color: #0f766e; border-color: #99e3dc; background: #effcf9; font-weight: 700; }
.aiv2-txt-compare-labels .aiv2-txt-compare-score { padding: 3px 8px; border-radius: 3px; box-shadow: 0 1px 4px rgba(15,23,42,.18); line-height: 18px; }
.aiv2-txt-compare-detail-btn { width: 30px; height: 30px; flex: 0 0 30px; padding: 0; display: grid; place-items: center; color: #1f2937; border: 1px solid rgba(255,255,255,.72); border-radius: 4px; background: rgba(255,255,255,.9); box-shadow: 0 1px 4px rgba(15,23,42,.18); font-size: 17px; cursor: pointer; pointer-events: auto; }
.aiv2-txt-compare-detail-btn:hover { color: #fff; border-color: var(--ai-primary-dark); background: var(--ai-primary-dark); }
.layui-layer.aiv2-txt-compare-detail-layer { display: flex; flex-direction: column; overflow: hidden; border-radius: var(--ai-radius); }
.layui-layer.aiv2-txt-compare-detail-layer .layui-layer-title, .layui-layer.aiv2-txt-compare-detail-layer .layui-layer-btn { flex: 0 0 auto; }
.layui-layer.aiv2-txt-compare-detail-layer .layui-layer-content { min-height: 0; height: auto !important; flex: 1 1 auto; overflow: auto; }
.aiv2-txt-compare-detail { padding: 16px; }
.aiv2-txt-compare-detail-meta { margin-bottom: 14px; display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--ai-muted); font-size: 12px; }
.aiv2-txt-compare-detail-meta strong { color: var(--ai-text); font-size: 14px; }
.aiv2-txt-compare-provenance { padding: 10px 12px; border: 1px solid var(--ai-line); border-radius: 4px; background: #f8fafc; }
.aiv2-txt-compare-provenance > div { min-width: 0; display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 8px; line-height: 20px; font-size: 12px; }
.aiv2-txt-compare-provenance strong { color: var(--ai-muted); font-weight: 600; }
.aiv2-txt-compare-provenance span { min-width: 0; overflow-wrap: anywhere; color: var(--ai-text); }
.aiv2-txt-compare-detail > .aiv2-txt-score-dimensions { margin: 0 0 16px; padding: 12px; border: 1px solid var(--ai-line); border-radius: 4px; background: #f8fafc; }
.aiv2-txt-compare-detail section { margin-top: 14px; }
.aiv2-txt-compare-detail pre { max-height: none; margin: 0; padding: 10px; overflow: visible; box-sizing: border-box; white-space: pre-wrap; word-break: break-word; border: 1px solid var(--ai-line); border-radius: 4px; background: #f8fafc; color: var(--ai-text); font: 12px/1.6 var(--ai-font); }
.aiv2-txt-compare-analysis-body { padding: 10px; border: 1px solid var(--ai-line); border-radius: 4px; background: #f8fafc; }
.aiv2-txt-compare-analysis p { margin: 0; color: #475569; line-height: 1.65; }
.aiv2-txt-compare-analysis dl { margin: 9px 0 0; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 6px; color: #475569; font-size: 12px; line-height: 18px; }
.aiv2-txt-compare-analysis dt { color: var(--ai-muted); font-weight: 600; }
.aiv2-txt-compare-analysis dd { margin: 0; word-break: break-word; }
.aiv2-txt-score-dimensions { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.aiv2-txt-score-dimensions > div { min-width: 0; display: grid; grid-template-columns: 76px minmax(48px, 1fr) 28px; gap: 7px; align-items: center; color: var(--ai-muted); font-size: 11px; line-height: 16px; }
.aiv2-txt-score-dimensions span { white-space: nowrap; }
.aiv2-txt-score-dimensions i { height: 5px; overflow: hidden; border-radius: 3px; background: #e9eef4; }
.aiv2-txt-score-dimensions i > b { height: 100%; display: block; border-radius: 3px; background: var(--ai-primary); }
.aiv2-txt-score-dimensions strong { color: var(--ai-text); text-align: right; }
@media (max-width: 1280px) { .aiv2-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 720px) { .aiv2-model-key-row { grid-template-columns: minmax(96px, 1fr) minmax(0, 2fr) 56px 56px 30px; } .aiv2-model-key-row .aiv2-model-key-saved { grid-column: 1 / -1; } }
@media (max-width: 720px) { .aiv2-txt-compare-grid { gap: 8px; padding: 8px; } .aiv2-txt-compare-density > span, .aiv2-txt-compare-count { display: none; } .aiv2-txt-compare-labels > span { max-width: 34vw; } }

.aiv2-model-picker-hint { margin: 0; color: var(--ai-muted); font-size: 12px; line-height: 18px; }

