:root {
    color-scheme: light;
}

/* 侧栏一级分组：折叠箭头随展开状态旋转 */
.sidebar-collapse-toggle[aria-expanded="true"] .sidebar-collapse-chevron {
    transform: rotate(180deg);
}

.sidebar-collapse-toggle:focus {
    box-shadow: none;
}

.sidebar-collapse-toggle:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.35);
    outline-offset: 2px;
}

.ls-wide {
    letter-spacing: 0.08em;
}

.card-gradient {
    background:
            radial-gradient(900px 360px at 10% -20%, rgba(255, 255, 255, 0.35), transparent 55%),
            linear-gradient(135deg, #1c2b5a 0%, #2f4acb 42%, #4dabf7 100%);
    color: #fff;
}

.card-gradient .text-secondary {
    color: rgba(255, 255, 255, 0.78) !important;
}

.page-title {
    font-weight: 650;
}

.navbar-brand-text {
    color: inherit;
    text-decoration: none;
}

.table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--tblr-secondary);
}

.vditor-host {
    min-height: 360px;
}

.vditor-host > div[id^="vditor"] {
    min-height: inherit;
}

/* Vditor 分屏预览：弹窗 / Offcanvas 内避免预览列被 flex 挤成不可见 */
#doc-editor .vditor-sv .vditor-panel > div,
#doc-create-modal .vditor-sv .vditor-panel > div {
    min-width: 0 !important;
}

#doc-editor .vditor-preview,
#doc-editor .vditor-content,
#doc-create-modal .vditor-preview,
#doc-create-modal .vditor-content {
    min-width: 0 !important;
}

#doc-create-modal .vditor-content,
#doc-editor .vditor-content {
    min-height: 280px;
}

/* ---------- 列表页 / 数据卡：工具栏与分页视觉统一 ---------- */

.app-list-card > .card-header.d-flex {
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.app-list-card > .card-header .btn-list {
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 0.35rem;
}

.app-list-card > .card-footer .btn-list {
    align-items: center;
}

.app-list-card > .card-header .form-select.form-select-sm.w-auto {
    min-width: 4.25rem;
}

.app-list-search {
    border-bottom: 1px solid var(--tblr-border-color);
}

.app-list-search .form-label {
    margin-bottom: 0.25rem;
    font-size: 0.75rem;
    color: var(--tblr-secondary);
}

/* 列表查询 / 重置加载态 */
.app-list-card {
    position: relative;
}

.app-list-card.is-query-loading .table-responsive {
    opacity: 0.45;
    pointer-events: none;
}

.app-list-loading {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 5;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.72);
    font-size: 0.875rem;
    color: var(--tblr-secondary);
}

.app-list-card.is-query-loading .app-list-loading {
    display: flex;
}

/* 弹窗底部：与列表主按钮同为紧凑尺寸 */
.app-modal-actions .btn {
    min-width: 4.5rem;
}

/* 表格操作列：保证「编辑 + 不可删除」等同排横排 */
.app-table-actions {
    white-space: nowrap;
    width: 1%;
    min-width: 9.5rem;
}

.app-table-actions .app-row-actions {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0.5rem;
    justify-content: flex-end;
}

.app-table-actions-wide {
    min-width: 12.5rem;
}

/* 可搜索令牌下拉 */
.app-token-combobox {
    position: relative;
}

/* input-group 内可搜索下拉：与 UUID 等附加按钮同排 */
.input-group > .app-token-combobox {
    flex: 1 1 0;
    min-width: 0;
}

.input-group > .app-token-combobox > .app-token-combobox-input {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.app-token-combobox-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: auto;
    z-index: 1050;
    min-width: 100%;
    width: max-content;
    max-width: min(42rem, 96vw);
    max-height: 16rem;
    overflow-x: hidden;
    overflow-y: auto;
    margin-top: 0.125rem;
}

.app-token-combobox.open .app-token-combobox-menu {
    display: block;
}

.app-token-combobox-menu .app-token-combobox-item {
    display: flex;
    align-items: baseline;
    gap: 0;
    white-space: nowrap;
    max-width: min(42rem, 96vw);
}

.app-token-combobox-item-token {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 18rem;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--tblr-body-color);
    font-weight: 600;
}

.app-token-combobox-item-name {
    flex: 0 0 auto;
    color: var(--tblr-secondary);
    font-weight: 400;
    opacity: 0.72;
}

/* 文档列表筛选：下拉可超出输入框宽度，避免名称被裁切 */
.app-list-search .app-token-combobox-menu {
    min-width: max(100%, 22rem);
}

#doc-view-meta .app-token-combobox-item-token,
#doc-view-meta .app-token-combobox-item-name {
    font-size: inherit;
}

/* 列表单元格：过长省略，悬停 title 显示全文（由 AppUi.applyEllipsisTitles 设置） */
.app-list-card .table td.app-cell-ellipsis {
    max-width: 11rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.app-list-card .table td.app-cell-ellipsis.app-cell-lg {
    max-width: 15rem;
}

.app-list-card .table td.app-cell-ellipsis.app-cell-xl {
    max-width: 18rem;
}

/* 固定 32 字符宽：列宽 = 32ch 正文 + 左右 padding，避免“满 32 字仍出现 …” */
.app-list-card .table td.app-cell-ch32 {
    --app-cell-ch32-pad-x: 0.75rem;
    width: calc(32ch + 2 * var(--app-cell-ch32-pad-x));
    max-width: calc(32ch + 2 * var(--app-cell-ch32-pad-x));
    min-width: calc(32ch + 2 * var(--app-cell-ch32-pad-x));
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
}

.app-list-card .table td[title] {
    cursor: help;
}

/* 状态滑动开关：列表与表单 */
.app-status-switch-wrap .form-check-input,
.app-status-switch-form .form-check-input {
    width: 2.5rem;
    height: 1.25rem;
    cursor: pointer;
}

.app-status-switch-wrap .form-check-input:disabled,
.app-status-switch-form .form-check-input:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.app-list-card .table td .app-status-switch-wrap {
    padding-top: 0.125rem;
}
