/* ql-inner-theme-addon.css — S6 incremental dark decorations on top of ql-inner-theme.css.
   Pure style layer: overrides inline light styles of individual user-module views
   (ai_batch / ai_image / ai_task / grain / user_kami / agentip / info-box …).
   No business logic, no form fields, no JS submit behavior is touched here. */

/* ---- panel-lead headings (grain / ai_image etc.) ---- */
.inner-page .panel-intro > .panel-heading .panel-lead { color: #fff; }
.inner-page .panel-intro > .panel-heading .panel-lead em { color: #fff; }
.inner-page .panel-intro > .panel-heading .panel-lead small,
.inner-page .panel-intro > .panel-heading .panel-lead .text-muted { color: #7e93ad !important; }

/* ---- Progress bars: demo gradient #2266ed→#22d0dc (one-key creation / image creation polling) ---- */
.inner-page .progress,
.inner-page .progress-bar {
    box-shadow: none;
}
.inner-page .progress {
    height: 7px;
    border: 0;
    border-radius: 10px;
    background: #1d2e46;
}
.inner-page .progress-bar,
.inner-page .progress-bar-success,
.inner-page .progress-bar-info,
.inner-page .progress-bar-danger,
.inner-page .progress-bar-warning {
    border-radius: 10px;
    background: linear-gradient(90deg, #2266ed, #22d0dc);
    transition: width .3s;
}
.inner-page .ai-progress-item,
.inner-page .progress-item { color: var(--ql-inner-text-2); }

/* ---- Alert notices: demo .notice (#09253c / #195675 / #a8dff9) ---- */
.inner-page .alert,
.inner-page .alert-info,
.inner-page .alert-warning,
.inner-page .alert-danger,
.inner-page .alert-success {
    border: 1px solid #195675;
    border-radius: 8px;
    color: #a8dff9 !important;
    background: #09253c !important;
    text-shadow: none;
}
.inner-page .alert-warning { border-color: #6b5220 !important; color: #ffcf8e !important; background: #2c2312 !important; }
.inner-page .alert-danger { border-color: #703044 !important; color: #ff9aad !important; background: #3b1c29 !important; }
.inner-page .alert-success { border-color: #1d5c50 !important; color: #8ff0d9 !important; background: #0a3530 !important; }
.inner-page .alert .alert-link,
.inner-page .alert a { color: #55a9ff; }
.inner-page .alert b { color: inherit; }

/* ---- Info-box (grain page metric cards): demo .card look ----
   AdminLTE bg-* colors ship with !important so the overrides must too. */
.inner-page .info-box {
    min-height: 96px;
    border: 1px solid #22334c;
    border-radius: 11px;
    background: #0f192b;
    box-shadow: 0 0 0 1px rgba(41, 65, 95, .3);
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.inner-page .info-box:hover { transform: translateY(-2px); border-color: #277fc1; background: #102644; }
.inner-page .info-box-content { color: var(--ql-inner-text-2); }
.inner-page .info-box-text { color: #7e93ad; }
.inner-page .info-box-number { color: #fff; font-weight: 800; }
.inner-page .info-box-icon {
    height: 96px;
    line-height: 96px;
    background: rgba(36, 103, 237, .12) !important;
    color: #65e8ff !important;
}
.inner-page .info-box-icon.bg-red { color: #ff8b9b !important; background: rgba(255, 139, 155, .1) !important; }
.inner-page .info-box-icon.bg-yellow { color: #ffad69 !important; background: rgba(255, 173, 105, .1) !important; }
.inner-page .info-box-icon.bg-green { color: #75efd4 !important; background: rgba(117, 239, 212, .1) !important; }
.inner-page .info-box-icon.bg-aqua { color: #6ce8e5 !important; background: rgba(108, 232, 229, .1) !important; }

/* ---- ai_batch / ai_image inline decorations darkened (classes added by views, structure untouched) ----
   demo .quick hover: translateY(-2px)+border #277fc1+bg #102644; demo .num: blue circle with white number */
.inner-page .ai-mode-card,
.inner-page .ai-result-card,
.inner-page .candidate-card,
.inner-page .task-card {
    border: 1px solid #28405e;
    border-radius: 9px;
    background: #0b1628;
    color: #c9d9ea;
    transition: transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
    cursor: pointer;
}
.inner-page .ai-mode-card:hover,
.inner-page .ai-result-card:hover,
.inner-page .candidate-card:hover,
.inner-page .task-card:hover {
    transform: translateY(-2px);
    border-color: #277fc1;
    background: #102644;
}
.inner-page .ai-mode-card b,
.inner-page .ai-result-card b,
.inner-page .candidate-card b { color: #fff; }
.inner-page .ai-mode-card span,
.inner-page .ai-result-card span,
.inner-page .candidate-card span,
.inner-page .candidate-card small { color: #7890a9; }
.inner-page .ai-mode-card.active {
    border-color: #27bcec;
    background: #0c2c47;
    box-shadow: 0 0 0 2px rgba(39, 188, 236, .11);
}
.inner-page .ai-step,
.inner-page .ql-num-dot {
    width: 29px;
    height: 29px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: #2566ec;
    color: #fff;
    font-weight: bold;
    line-height: 1;
}

/* ai_batch inline tags (#d9edf7 light blue pills) and ai_image result panels (#ddd borders) */
.inner-page .ai-tag {
    border: 1px solid #267c9c;
    border-radius: 20px;
    color: #aeeaff;
    background: #0b3850;
}
.inner-page .ai-result-panel,
.inner-page .ai-section { border-color: #22334c; }
.inner-page .ai-section { border-bottom-color: #213149; }
.inner-page .ai-section h4 { color: #fff; }
.inner-page .ai-ref,
.inner-page .ai-sim-group .btn span { border-color: #29415f; color: #7e93ad; }
.inner-page .ai-ref { background: #0d1728; }
.inner-page .ai-ref img { border-radius: 4px; }
.inner-page .ai-ref-remove { color: #ff8b9b !important; }
.inner-page #ai-advanced-toggle { color: #55a9ff; }

/* ai_task candidate cards and running rows (#ddd border / #fffbea row) */
.inner-page .candidate-card { background: #0b1628; }
.inner-page .running-row { background: rgba(59, 39, 18, .4) !important; }
.inner-page .candidate-card .actions .btn { margin-right: 4px; }

/* user_kami add form: bold black label on dark background */
.inner-page .form-horizontal .control-label[style*="color: #000"],
.inner-page .form-horizontal .control-label[style*="color:#000"] { color: #dce8f7 !important; }

/* agentip: #309cff bold input text and #777 hint text on dark */
.inner-page .form-control[style*="font-weight: 700"],
.inner-page .box .form-control { color: #55a9ff; }
.inner-page .help-block, .inner-page small { color: #7e93ad; }

/* grain page description paragraph */
.inner-page .text-muted { color: #7e93ad !important; }

/* ---- Toastr dark (keep copy/behavior untouched) ---- */
#toast-container > div, .toast,
#toast-container > .toast-info,
#toast-container > .toast-success,
#toast-container > .toast-warning,
#toast-container > .toast-error {
    border: 1px solid #25abd7;
    border-radius: 9px;
    color: #fff;
    background-image: none;
    background-color: #12283d;
    box-shadow: 0 0 0 1px rgba(41, 65, 95, .4), 0 12px 32px rgba(0, 0, 0, .4);
    opacity: 1;
}
#toast-container > .toast-success { border-color: #1d5c50; }
#toast-container > .toast-error { border-color: #703044; }
#toast-container > .toast-warning { border-color: #6b5220; }
#toast-container > .toast-info { border-color: #25abd7; }
#toast-container > div:hover { box-shadow: 0 0 0 1px rgba(41, 65, 95, .4), 0 12px 32px rgba(0, 0, 0, .4); }

/* ---- Layer confirm dialogs already dark via theme css; shade backdrop darkened ---- */
.inner-page ~ body .layui-layer-shade, body.inner-page .layui-layer-shade { background-color: #020711 !important; opacity: .85 !important; }

/* ---- Modal (bootstrap modal used by ai_batch region picker) ---- */
.modal-dialog .modal-content {
    border: 1px solid #29415f;
    border-radius: 11px;
    color: var(--ql-inner-text-2);
    background: #0d1728;
    box-shadow: 0 0 0 1px rgba(41, 65, 95, .5), 0 20px 56px rgba(0, 0, 0, .5);
}
.modal-dialog .modal-header,
.modal-dialog .modal-footer { border-color: #233650; }
.modal-dialog .modal-header h4 { color: #fff; }
.modal-dialog .modal-header .close { color: #7e93ad; text-shadow: none; }
.modal-dialog .modal-header .close:hover { color: #fff; }
.modal-dialog .ai-region-item { color: #c9d9ea; }
.modal-dialog .ai-region-item label { color: #c9d9ea; }

/* ---- juzhen_user list card page (授权账号卡片视图已由 theme 覆盖, 此处仅补 hover 一致性) ---- */
.inner-page .userlist,
.inner-page .juzhen-create-form,
.inner-page .publish-strategy-shell,
.inner-page .ai-mode-card,
.inner-page .ai-result-card,
.inner-page .candidate-card,
.inner-page .task-card,
.inner-page .panel,
.inner-page .panel-default,
.inner-page .panel-intro,
.inner-page .btn,
.inner-page .form-control,
.inner-page .label,
.inner-page .badge { transition-duration: .2s; }

@media (prefers-reduced-motion: reduce) {
    .inner-page * { transition: none !important; animation: none !important; }
}

/* ---- 统筹验收补充：两处白块收尾（无 class 的 number 输入 / ql-ms 组件底） ---- */
.inner-page input[type="number"]:not(.form-control),
.inner-page .input-group input[type="number"] {
    background-color: #091322 !important;
    color: #dce8f7 !important;
    border: 1px solid #31445e !important;
}
.ql-ms {
    background-color: #0f192b;
    border-color: #31445e;
}
.ql-ms .ql-ms-input,
.ql-ms .ql-ms-search-input {
    background-color: #091322;
    color: #dce8f7;
    border-color: #31445e;
}
.ql-ms .ql-ms-dropdown {
    background-color: #0f192b;
    border-color: #29415f;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
}
.ql-ms .ql-ms-options .ql-ms-item:hover,
.ql-ms label:hover {
    background-color: #132139;
}

/* ---- 统筹补充：内容区严格按 demo 标准 max-width:1540px 居中 ----
   demo参考版: .content{padding:20px;max-width:1540px;margin:auto}
   宽屏(2560/1440)下内容居中，不再拉满全宽 */
.inner-page .content,
.inner-page #content {
    max-width: 1540px;
    margin-left: auto !important;
    margin-right: auto !important;
}
/* FastAdmin 列表页内容常包裹在 .content > .row 中, 保持行内平铺不受栅格挤压 */
.inner-page .content > .row {
    margin-left: 0;
    margin-right: 0;
}
/* 表格容器与工具栏在 1540 内自然铺满（demo 的 .card 即如此） */
.inner-page .content .panel-intro,
.inner-page .content .panel {
    max-width: none;
}
/* 大屏字号节奏对齐 demo：正文14px，无需放大 */
@media (min-width: 1900px) {
    .inner-page .content {
        padding: 20px;
    }
}

/* ---- 共享 ai-card 框架（ai_batch/ai_image 卡片分步风格，对齐 demo）---- */
.ai-batch-wrap{color:#dce8f7}
.ai-page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.ai-page-head-l{display:flex;gap:12px;align-items:center}
.ai-page-ico{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#2bd2ef,#5b62e8);display:grid;place-items:center;color:#fff;font-size:20px}
.ai-page-head h1{margin:0;color:#fff;font-size:22px}
.ai-page-head p{margin:2px 0 0;color:#7e93ad;font-size:13px}
.btn-ghost{border:1px solid #314561;background:#142238;color:#dceaff;border-radius:8px;padding:8px 14px}
.ai-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(300px,1fr);gap:16px}
.ai-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.ai-card{background:#0f192b;border:1px solid #22334c;border-radius:11px;overflow:hidden}
.ai-card-h{padding:13px 16px;border-bottom:1px solid #213149;display:flex;align-items:center;gap:10px}
.ai-card-h b{color:#fff;font-size:15px}
.ai-card-tag{margin-left:auto;padding:3px 9px;border-radius:20px;background:#0d4a47;color:#75efd4;font-size:12px}
.ai-card-muted{margin-left:auto;color:#7e93ad;font-size:12px}
.ai-card-b{padding:16px}
.ai-num{width:28px;height:28px;border-radius:50%;background:#2566ec;color:#fff;display:grid;place-items:center;font-weight:700;flex:none}
.ai-grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ai-field{display:block}
.ai-field>span{display:block;margin-bottom:7px;color:#b9c8d9}
.ai-field i{color:#ff6b81;font-style:normal}
.ai-input{width:100%;background:#091322;border:1px solid #31445e;color:#eef6ff;border-radius:8px;padding:10px 11px;outline:none}
.ai-input:focus{border-color:#2dbcf0;box-shadow:0 0 0 2px rgba(45,188,240,.12)}
textarea.ai-input{min-height:76px;resize:vertical}
.ai-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ai-btn{border:1px solid #314561;background:#142238;color:#dceaff;border-radius:8px;padding:9px 13px;cursor:pointer}
.ai-btn-primary-sm{border:0;background:linear-gradient(90deg,#2467ed,#16b9dc);color:#fff}
.ai-btn-primary{border:0;background:linear-gradient(90deg,#2467ed,#16b9dc);color:#fff;border-radius:8px;padding:12px 20px;font-weight:700}
.ai-btn-block{width:100%}
.ai-muted{color:#7e93ad;font-size:12px}
.ai-taskgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ai-task{border:1px solid #28405e;background:#0b1628;padding:13px;border-radius:9px}
.ai-task label{color:#dce8f7}
.ai-task b{color:#fff}
.ai-task small{display:block;color:#7890a9;margin:7px 0}
.ai-task .ai-input{margin-top:7px}
.ai-mode-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ai-mode{border:1px solid #2e425e;background:#0b1729;color:#b9cce1;border-radius:10px;padding:14px;cursor:pointer;text-align:left}
.ai-mode.active{border-color:#27bcec;background:#0c2c47;box-shadow:0 0 0 2px rgba(39,188,236,.11)}
.ai-mode b{display:block;color:#fff;margin-bottom:5px}
.ai-mode small{color:#7890a9}
.ai-sticky{position:sticky;top:70px}
.ai-tags{margin-top:6px}
.ai-tag{display:inline-block;padding:4px 8px;margin:2px;border:1px solid #267c9c;border-radius:20px;color:#aeeaff;background:#0b3850}
.ai-region-list{max-height:300px;overflow:auto;padding:10px}
.ai-region-item{display:inline-block;margin:3px}
.ai-region-item input{margin-right:3px}
@media(max-width:1100px){.ai-layout{grid-template-columns:1fr}.ai-taskgrid{grid-template-columns:repeat(2,1fr)}.ai-grid2{grid-template-columns:1fr}.ai-sticky{position:static}}

/* ---- ql-multi-select 组件暗色（覆盖组件自带浅色，优先级用 .inner-page 前缀）---- */
.inner-page .ql-ms { background: #091322; border-color: #31445e; }
.inner-page .ql-ms .ql-ms-input { background: transparent; color: #dce8f7; }
.inner-page .ql-ms .ql-ms-input::placeholder { color: #64748b; }
.inner-page .ql-ms .ql-ms-caret { color: #64748b; }
.inner-page .ql-ms .ql-ms-dropdown { background: #0f192b; border-color: #29415f; box-shadow: 0 8px 24px rgba(0,0,0,.5); }
.inner-page .ql-ms .ql-ms-search-input { background: #091322; border: 1px solid #31445e; color: #dce8f7; }
.inner-page .ql-ms .ql-ms-opt { color: #dce8f7; }
.inner-page .ql-ms .ql-ms-opt:hover { background: #132139; }
.inner-page .ql-ms .ql-ms-opt.on { background: rgba(37, 99, 235, .16); }
.inner-page .ql-ms .ql-ms-opt-main b { color: #f1f5f9; }
.inner-page .ql-ms .ql-ms-opt-main .ql-ms-opt-sub { color: #7e93ad; }
.inner-page .ql-ms .ql-ms-tag { background: linear-gradient(90deg, #2467ed, #16b9dc); color: #fff; }
.inner-page .ql-ms .ql-ms-add { color: #7dd3fc; }

/* ---- 长文本单元格：超长省略号 + 悬停(title)显示全文 ---- */
/* 固定表格布局: 单元格按列宽约束, 内容超出即省略, 不再把表格撑宽 */
.ai-ellipsis-table{table-layout:fixed}
.ai-ellipsis-table tbody > tr > td,.ai-ellipsis-table thead > tr > th{overflow:hidden}
.ai-ellipsis{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.ai-ellipsis-sm{max-width:100%}
.ai-ellipsis-lg{max-width:100%}
.ai-ellipsis-table tbody > tr > td .ai-ellipsis{cursor:default}

/* ---- GEO/SEO 三个分类列表（智能标题/话题关键词/内容描述）长文本省略 ---- */
.jz-ellipsis-table{table-layout:fixed}
.jz-ellipsis-table tbody > tr > td,.jz-ellipsis-table thead > tr > th{overflow:hidden}
.jz-ellipsis{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;cursor:default}

/* ---- 通用搜索表单(2026-10-01): 标签置顶+区间行flex, 修复窄网格里 col-xs-4 标签换行/截断 ---- */
.inner-page .bootstrap-table .form-commonsearch fieldset > .row > .form-group {
    display: flex;
    flex-direction: column;
    align-items: stretch;
}
.inner-page .bootstrap-table .form-commonsearch .form-group > .control-label {
    width: 100% !important;
    max-width: none;
    float: none;
    padding: 0 !important;
    text-align: left;
}
.inner-page .bootstrap-table .form-commonsearch .form-group > .col-xs-8 {
    width: 100% !important;
    float: none;
    padding: 0 !important;
}
/* 文件大小等 BETWEEN 区间行: 两个输入框各占一半(此前被顶层 grid 误伤成4列跑位) */
.inner-page .bootstrap-table .form-commonsearch .row-between {
    display: flex !important;
    gap: 8px;
    margin: 0 !important;
}
.inner-page .bootstrap-table .form-commonsearch .row-between > .col-xs-6 {
    width: auto !important;
    float: none !important;
    flex: 1 1 0;
    padding: 0 !important;
}
/* 提交/重置: 去掉 xs-offset 靠左, 与置顶标签风格一致 */
.inner-page .bootstrap-table .form-commonsearch .form-group .col-xs-offset-4 {
    margin-left: 0 !important;
    width: auto !important;
    float: none !important;
    padding: 0 !important;
    display: flex;
    gap: 8px;
}

/* ---- 素材库搜索: 类别下拉自绘组件(原生 select 隐藏保值, 关键字筛选面板挂 body 防裁剪) ---- */
.ql-cat-trigger { cursor: pointer; }
.ql-cat-panel {
    position: fixed;
    z-index: 3000;
    background: #101a2c;
    border: 1px solid #29415f;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .45);
    padding: 8px;
}
.ql-cat-panel .ql-cat-search { position: relative; margin-bottom: 6px; }
.ql-cat-panel .ql-cat-search .fa-search {
    position: absolute; left: 10px; top: 50%; transform: translateY(-50%);
    color: #7e93ad; font-size: 12px;
}
.ql-cat-panel .ql-cat-search input {
    width: 100%; height: 32px; padding: 0 10px 0 30px;
    border: 1px solid #29415f; border-radius: 8px;
    background: #091322; color: #dce8f7; outline: none; font-size: 12px;
}
.ql-cat-panel .ql-cat-search input:focus { border-color: #2467ed; }
.ql-cat-panel .ql-cat-list { list-style: none; margin: 0; padding: 0; max-height: 240px; overflow-y: auto; }
.ql-cat-panel .ql-cat-list li {
    padding: 7px 10px; border-radius: 7px;
    color: #b9c8d9; font-size: 13px; cursor: pointer;
}
.ql-cat-panel .ql-cat-list li:hover { background: rgba(36, 103, 237, .18); color: #fff; }
.ql-cat-panel .ql-cat-list li.active { background: #245fc9; color: #fff; }
.ql-cat-panel .ql-cat-none { color: #64748b; cursor: default; text-align: center; }
.ql-cat-native { display: none !important; }
/* 浅色兜底(未走深色主题直开页面时) */
html:not(.inner-page) .ql-cat-panel {
    background: #fff; border-color: #d8e0e6; box-shadow: 0 10px 26px rgba(15, 25, 43, .16);
}
html:not(.inner-page) .ql-cat-panel .ql-cat-search input { background: #fff; border-color: #d8e0e6; color: #333; }
html:not(.inner-page) .ql-cat-panel .ql-cat-list li { color: #444; }
