/*!
 * NXUI 现代主题皮肤 — CSS 覆盖层
 * 适用：百度贴吧云签到 V5.x（Bootstrap 3.3 基线）
 * 原则：只覆盖视觉属性，不改布局骨架；全部选择器权重 >= 系统自带样式；
 *       不含 @import / 外链字体，可离线运行。
 */

/* ============================================================
 * 1. 设计令牌（Design Tokens）
 * ============================================================ */
:root {
    --nxui-font: system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC",
        "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;

    --nxui-bg: #f4f6fa;
    --nxui-surface: #ffffff;
    --nxui-surface-2: #f5f7fb;
    --nxui-border: #e4e8f0;
    --nxui-text: #1d2330;
    --nxui-muted: #6b7488;

    --nxui-primary: #2f6feb;
    --nxui-primary-hover: #2559c9;
    --nxui-primary-soft: rgba(47, 111, 235, .12);
    --nxui-success: #16a34a;
    --nxui-warning: #d97706;
    --nxui-danger: #dc2626;
    --nxui-info: #0891b2;

    --nxui-radius-sm: 8px;
    --nxui-radius: 12px;
    --nxui-radius-lg: 16px;
    --nxui-nav-bg: rgba(255, 255, 255, .88);
    --nxui-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 10px 28px -14px rgba(16, 24, 40, .18);
    --nxui-shadow-pop: 0 12px 40px -12px rgba(16, 24, 40, .28);
    --nxui-ring: 0 0 0 3px rgba(47, 111, 235, .18);
}

html[data-nxui-theme="dark"] {
    --nxui-bg: #11141b;
    --nxui-surface: #191d26;
    --nxui-surface-2: #202634;
    --nxui-border: #2b3342;
    --nxui-text: #e7eaf1;
    --nxui-muted: #98a2b6;

    --nxui-primary: #6b9bff;
    --nxui-primary-hover: #86adff;
    --nxui-primary-soft: rgba(107, 155, 255, .16);
    --nxui-success: #4ade80;
    --nxui-warning: #fbbf24;
    --nxui-danger: #f87171;
    --nxui-info: #38bdf8;

    --nxui-nav-bg: rgba(17, 20, 27, .88);
    --nxui-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px -14px rgba(0, 0, 0, .7);
    --nxui-shadow-pop: 0 12px 40px -12px rgba(0, 0, 0, .8);
    --nxui-ring: 0 0 0 3px rgba(107, 155, 255, .25);
    color-scheme: dark;
}

/* ============================================================
 * 2. 基础层
 * ============================================================ */
body {
    /* 覆盖 lib/ui.php 里的内联样式：body{ background:#eee } */
    background: var(--nxui-bg) !important;
    color: var(--nxui-text);
    font-family: var(--nxui-font);
    font-size: 14.5px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--nxui-primary); }
a:hover, a:focus { color: var(--nxui-primary-hover); text-decoration: none; }

hr { border-top-color: var(--nxui-border); }

h1, h2, h3, h4, h5, h6 { color: var(--nxui-text); font-weight: 600; }

::selection { background: var(--nxui-primary-soft); }

/* 滚动条（WebKit） */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--nxui-border); border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: var(--nxui-muted); }
::-webkit-scrollbar-track { background: transparent; }

/* ============================================================
 * 3. 顶部导航
 * ============================================================ */
.navbar.navbar-default {
    background: var(--nxui-nav-bg);
    border: 0;
    border-bottom: 1px solid var(--nxui-border);
    border-radius: 0;
    margin-bottom: 0;
    min-height: 56px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 1030;
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    backdrop-filter: saturate(180%) blur(12px);
}

.navbar-default .navbar-brand {
    color: var(--nxui-text);
    font-weight: 700;
    letter-spacing: .2px;
    height: 56px;
    padding: 15px 16px;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus { color: var(--nxui-primary); background: transparent; }

.navbar-default .navbar-nav > li > a {
    color: var(--nxui-muted);
    font-weight: 500;
    padding-top: 17px;
    padding-bottom: 17px;
    border-radius: 0;
    transition: color .15s ease, background-color .15s ease;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus { color: var(--nxui-primary); background: transparent; }
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
    color: var(--nxui-primary);
    background: var(--nxui-primary-soft);
}

.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus { color: var(--nxui-primary); background: transparent; }

.navbar-default .navbar-collapse,
.navbar-default .navbar-form { border-color: var(--nxui-border); }

.navbar-default .navbar-toggle { border-color: var(--nxui-border); border-radius: var(--nxui-radius-sm); margin-top: 11px; margin-bottom: 11px; }
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus { background: var(--nxui-surface-2); }
.navbar-default .navbar-toggle .icon-bar { background: var(--nxui-muted); }
.navbar-default .caret { border-top-color: currentColor; }

/* 下拉菜单 */
.navbar-default .dropdown-menu,
.dropdown-menu {
    background: var(--nxui-surface);
    border: 1px solid var(--nxui-border);
    border-radius: var(--nxui-radius);
    box-shadow: var(--nxui-shadow-pop);
    padding: 6px;
    margin-top: 6px;
    min-width: 200px;
}
.dropdown-menu > li > a {
    color: var(--nxui-text);
    padding: 8px 12px;
    border-radius: var(--nxui-radius-sm);
    white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus { background: var(--nxui-surface-2); color: var(--nxui-primary); }
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus { background: var(--nxui-primary-soft); color: var(--nxui-primary); }
.dropdown-menu .divider { background: var(--nxui-border); margin: 6px 4px; }

/* ============================================================
 * 4. 布局与侧边栏
 * ============================================================ */
.container.bs-docs-container { padding-top: 24px; padding-bottom: 40px; }

.bs-sidebar {
    background: var(--nxui-surface);
    border: 1px solid var(--nxui-border);
    border-radius: var(--nxui-radius-lg);
    box-shadow: var(--nxui-shadow);
    padding: 10px;
}

/* 注意：source/css/ui.css 使用 .container .nav>.active>a，权重为 (0,3,1)，
   故这里用同权重或更高权重选择器保证覆盖 */
.container .nav.bs-sidenav { margin-bottom: 0; }
.container .nav.bs-sidenav > li > a {
    color: var(--nxui-text);
    font-weight: 500;
    padding: 9px 12px;
    border-left: 0;
    border-radius: var(--nxui-radius-sm);
    transition: background-color .15s ease, color .15s ease;
}
.container .nav.bs-sidenav > li > a:hover,
.container .nav.bs-sidenav > li > a:focus { background: var(--nxui-surface-2); color: var(--nxui-primary); }
.container .nav.bs-sidenav > .active > a,
.container .nav.bs-sidenav > .active:hover > a,
.container .nav.bs-sidenav > .active:focus > a {
    color: var(--nxui-primary);
    font-weight: 600;
    background: var(--nxui-primary-soft);
    border-left: 0;
    padding-left: 12px;
}
.container .nav.bs-sidenav > li > a .glyphicon { width: 18px; opacity: .8; }

/* ============================================================
 * 5. 卡片 / 面板
 * ============================================================ */
.panel {
    background: var(--nxui-surface);
    border: 1px solid var(--nxui-border);
    border-radius: var(--nxui-radius-lg);
    box-shadow: var(--nxui-shadow);
    margin-bottom: 20px;
    overflow: hidden;
}
.panel > .panel-heading {
    background: var(--nxui-surface-2);
    color: var(--nxui-text);
    border-bottom: 1px solid var(--nxui-border);
    border-radius: 0;
    padding: 13px 18px;
}
.panel > .panel-heading > .panel-title,
.panel > .panel-heading .panel-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    color: var(--nxui-text);
}
.panel > .panel-heading > .panel-title::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--nxui-muted);
    flex: 0 0 auto;
}
.panel-primary > .panel-heading > .panel-title::before { background: var(--nxui-primary); }
.panel-success > .panel-heading > .panel-title::before { background: var(--nxui-success); }
.panel-warning > .panel-heading > .panel-title::before { background: var(--nxui-warning); }
.panel-danger > .panel-heading > .panel-title::before { background: var(--nxui-danger); }
.panel-info > .panel-heading > .panel-title::before { background: var(--nxui-info); }

.panel-body { padding: 18px; color: var(--nxui-text); }
.panel-footer { background: var(--nxui-surface-2); border-top: 1px solid var(--nxui-border); }

/* 列表组（首页信息区大量使用） */
.list-group-item {
    background: transparent;
    border-color: var(--nxui-border);
    color: var(--nxui-text);
    padding: 12px 18px;
}
.list-group-item .glyphicon { color: var(--nxui-muted); margin-right: 2px; }
.panel > .list-group:last-child .list-group-item:last-child { border-bottom: 0; }

/* ============================================================
 * 6. 按钮
 * ============================================================ */
.btn {
    border-radius: var(--nxui-radius-sm);
    font-weight: 500;
    padding: 8px 16px;
    border: 1px solid transparent;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease;
}
.btn:focus, .btn:active:focus { outline: 0; box-shadow: var(--nxui-ring); }
.btn-lg { border-radius: var(--nxui-radius); padding: 11px 22px; font-size: 15px; }
.btn-sm { border-radius: 6px; }
.btn-xs { border-radius: 6px; }

.btn-primary { background: var(--nxui-primary); border-color: var(--nxui-primary); color: #fff; }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-primary.active, .open > .dropdown-toggle.btn-primary {
    background: var(--nxui-primary-hover);
    border-color: var(--nxui-primary-hover);
    color: #fff;
}
.btn-default { background: var(--nxui-surface); border-color: var(--nxui-border); color: var(--nxui-text); }
.btn-default:hover, .btn-default:focus, .btn-default:active,
.btn-default.active, .open > .dropdown-toggle.btn-default {
    background: var(--nxui-surface-2);
    border-color: var(--nxui-border);
    color: var(--nxui-primary);
}
.btn-success { background: var(--nxui-success); border-color: var(--nxui-success); color: #fff; }
.btn-success:hover, .btn-success:focus, .btn-success:active { filter: brightness(.94); color: #fff; }
.btn-danger { background: var(--nxui-danger); border-color: var(--nxui-danger); color: #fff; }
.btn-danger:hover, .btn-danger:focus, .btn-danger:active { filter: brightness(.94); color: #fff; }
.btn-warning { background: var(--nxui-warning); border-color: var(--nxui-warning); color: #fff; }
.btn-warning:hover, .btn-warning:focus, .btn-warning:active { filter: brightness(.94); color: #fff; }
.btn-info { background: var(--nxui-info); border-color: var(--nxui-info); color: #fff; }
.btn-info:hover, .btn-info:focus, .btn-info:active { filter: brightness(.94); color: #fff; }
.btn-link { color: var(--nxui-primary); }
.btn[disabled], fieldset[disabled] .btn { opacity: .55; }

/* 表单内 100% 宽按钮（登录页使用内联宽度，这里仅统一圆角与视觉） */
.btn-block + .btn-block { margin-top: 8px; }

/* ============================================================
 * 7. 表单
 * ============================================================ */
label { font-weight: 500; color: var(--nxui-text); }

.form-control {
    height: auto;
    padding: 9px 12px;
    border: 1px solid var(--nxui-border);
    border-radius: var(--nxui-radius-sm);
    background: var(--nxui-surface);
    color: var(--nxui-text);
    box-shadow: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.form-control::placeholder { color: var(--nxui-muted); opacity: .8; }
.form-control:focus {
    border-color: var(--nxui-primary);
    background: var(--nxui-surface);
    color: var(--nxui-text);
    box-shadow: var(--nxui-ring);
}
.form-control[disabled], .form-control[readonly] { background: var(--nxui-surface-2); color: var(--nxui-muted); }
select.form-control { cursor: pointer; }

.input-group-addon {
    background: var(--nxui-surface-2);
    border-color: var(--nxui-border);
    color: var(--nxui-muted);
}
/* 圆角拼接（Bootstrap 3 默认按 :first-child/:last-child 处理，这里统一修正） */
.input-group-addon:first-child {
    border-top-left-radius: var(--nxui-radius-sm);
    border-bottom-left-radius: var(--nxui-radius-sm);
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.input-group .form-control:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.input-group .form-control:last-child {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}
.input-group-addon:last-child {
    border-top-right-radius: var(--nxui-radius-sm);
    border-bottom-right-radius: var(--nxui-radius-sm);
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.help-block { color: var(--nxui-muted); }
.radio label, .checkbox label { font-weight: 400; }
.img-thumbnail {
    background: var(--nxui-surface);
    border-color: var(--nxui-border);
    border-radius: var(--nxui-radius-sm);
    padding: 3px;
}

/* ============================================================
 * 8. 提示条 / 徽标 / 进度条
 * ============================================================ */
.alert { border-radius: var(--nxui-radius); border: 1px solid; padding: 13px 18px; }
.alert > .close { opacity: .5; }
.alert > .close:hover { opacity: .9; }

.alert-info { color: #0e5f75; background: #ecfaff; border-color: #c3ecf7; }
.alert-success { color: #12693a; background: #ecfdf3; border-color: #bdf0d3; }
.alert-warning { color: #8a5206; background: #fffaeb; border-color: #fde4b3; }
.alert-danger { color: #a01818; background: #fef3f2; border-color: #fbd1ce; }
html[data-nxui-theme="dark"] .alert-info { color: #a9e6f7; background: rgba(8, 145, 178, .14); border-color: rgba(8, 145, 178, .4); }
html[data-nxui-theme="dark"] .alert-success { color: #bbf7d0; background: rgba(22, 163, 74, .14); border-color: rgba(22, 163, 74, .4); }
html[data-nxui-theme="dark"] .alert-warning { color: #fde68a; background: rgba(217, 119, 6, .16); border-color: rgba(217, 119, 6, .42); }
html[data-nxui-theme="dark"] .alert-danger { color: #fecaca; background: rgba(220, 38, 38, .16); border-color: rgba(220, 38, 38, .42); }

.alert a { font-weight: 600; }

.label { border-radius: 999px; padding: .32em .68em; font-weight: 500; font-size: 78%; }
.badge { background: var(--nxui-muted); border-radius: 999px; font-weight: 500; }

.progress {
    background: var(--nxui-surface-2);
    border-radius: 999px;
    /* 保持 Bootstrap 默认高度：进度条内的百分比文字由 templates/index.php 的内联 JS 写入，
       压扁高度会让文字溢出重叠，属于"改变原有信息呈现"，故不压缩 */
    height: 20px;
    line-height: 20px;
    box-shadow: none;
    overflow: hidden;
    /* 宽度由内联 JS 计算，主题不得干预 width */
}
.progress-bar {
    background: var(--nxui-primary);
    box-shadow: none;
    font-size: 11px;
    line-height: 20px;
    border-radius: 999px;
    transition: width .3s ease;
}
.progress-bar-success { background: var(--nxui-success); }

/* ============================================================
 * 9. 表格
 * ============================================================ */
.table { color: var(--nxui-text); margin-bottom: 0; }
.table > thead > tr > th {
    border-bottom: 1px solid var(--nxui-border);
    color: var(--nxui-muted);
    font-weight: 600;
    font-size: 13px;
    padding: 11px 12px;
}
.table > tbody > tr > td,
.table > tbody > tr > th,
.table > tfoot > tr > td { border-top: 1px solid var(--nxui-border); padding: 11px 12px; }
.table > tbody > tr:hover { background: var(--nxui-surface-2); }
.table-striped > tbody > tr:nth-of-type(odd) { background: var(--nxui-surface-2); }
.table-bordered { border-color: var(--nxui-border); }
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td,
.table-bordered > tbody > tr > th { border-color: var(--nxui-border); }

/* ============================================================
 * 10. 模态框 / 分页 / 面包屑
 * ============================================================ */
.modal-content {
    background: var(--nxui-surface);
    border: 0;
    border-radius: var(--nxui-radius-lg);
    box-shadow: var(--nxui-shadow-pop);
}
.modal-header { border-bottom: 1px solid var(--nxui-border); padding: 16px 20px; }
.modal-title { font-weight: 600; color: var(--nxui-text); }
.modal-body { padding: 20px; color: var(--nxui-text); }
.modal-footer { border-top: 1px solid var(--nxui-border); padding: 14px 20px; }
.modal-backdrop.in { opacity: .5; }
.modal .close { color: var(--nxui-text); opacity: .45; text-shadow: none; }
.modal .close:hover { opacity: .85; }

.pagination > li > a,
.pagination > li > span {
    border-color: var(--nxui-border);
    background: var(--nxui-surface);
    color: var(--nxui-text);
}
.pagination > li > a:hover,
.pagination > li > span:hover { background: var(--nxui-surface-2); color: var(--nxui-primary); }
.pagination > .active > a,
.pagination > .active > a:hover,
.pagination > .active > span {
    background: var(--nxui-primary);
    border-color: var(--nxui-primary);
    color: #fff;
}

.breadcrumb { background: var(--nxui-surface); border: 1px solid var(--nxui-border); border-radius: var(--nxui-radius-sm); }
.breadcrumb > li + li:before { color: var(--nxui-muted); }

.well { background: var(--nxui-surface-2); border-color: var(--nxui-border); border-radius: var(--nxui-radius); box-shadow: none; }
code { background: var(--nxui-surface-2); color: var(--nxui-danger); border-radius: 5px; }
pre { background: var(--nxui-surface-2); border-color: var(--nxui-border); color: var(--nxui-text); border-radius: var(--nxui-radius-sm); }

/* 系统自带 .bs-callout（source/css/ui.css）主题化 */
.bs-callout { background: var(--nxui-surface); border-color: var(--nxui-border); border-radius: var(--nxui-radius-sm); }

/* 老式表现层标签：模板里存在 <font color="red">/<font color="#FF6600">（templates/index.php）
   表现层属性优先级低于作者样式表，故这里可安全接管，无需改动模板 */
font[color] { color: inherit; }
font[color="red"] { color: var(--nxui-danger); }
font[color="#FF6600"], font[color="#ff6600"], font[color="orange"] { color: var(--nxui-warning); }
font[color="green"] { color: var(--nxui-success); }

/* ============================================================
 * 11. 页脚与运行时注入元素
 * ============================================================ */
.nxui-footer {
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--nxui-border);
    color: var(--nxui-muted);
    font-size: 13px;
}
.nxui-footer a { color: var(--nxui-muted); }
.nxui-footer a:hover { color: var(--nxui-primary); }

/* 主题切换按钮（由 JS 注入到导航右侧） */
.nxui-theme-toggle {
    background: transparent;
    border: 1px solid var(--nxui-border);
    color: var(--nxui-muted);
    border-radius: 999px;
    width: 34px;
    height: 34px;
    line-height: 1;
    padding: 0;
    margin: 11px 10px 0 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color .15s ease, border-color .15s ease, background-color .15s ease;
}
.nxui-theme-toggle:hover { color: var(--nxui-primary); border-color: var(--nxui-primary); background: var(--nxui-primary-soft); }
.navbar-collapse > .nav.nxui-nav-actions { margin: 0; }
.navbar-collapse > .nav.nxui-nav-actions > li > a { padding-top: 17px; padding-bottom: 17px; }

/* 回到顶部 */
.nxui-to-top {
    position: fixed;
    right: 20px;
    bottom: 24px;
    z-index: 1020;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid var(--nxui-border);
    background: var(--nxui-surface);
    color: var(--nxui-muted);
    box-shadow: var(--nxui-shadow);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility .2s ease, color .15s ease;
}
.nxui-to-top.is-visible { opacity: 1; visibility: visible; }
.nxui-to-top:hover { color: var(--nxui-primary); border-color: var(--nxui-primary); }

/* 登录页/注册页（自带内联 margin，仅统一外观） */
.login-top, .login-bottom, .login-ext { border-color: var(--nxui-border); }

/* 图片头像等 */
#avatar img { border-radius: var(--nxui-radius-sm); }

/* ============================================================
 * 12. 响应式
 * ============================================================ */
@media (max-width: 991px) {
    .container.bs-docs-container { padding-top: 18px; }
    .navbar.navbar-default { position: static; }
    .navbar-default .navbar-nav > li > a { padding-top: 11px; padding-bottom: 11px; }
    .nxui-theme-toggle { margin-top: 0; margin-bottom: 10px; }
}

@media (max-width: 767px) {
    body { font-size: 14px; }
    .panel-body, .list-group-item { padding-left: 14px; padding-right: 14px; }
    .nxui-to-top { right: 12px; bottom: 16px; }
}

/* 打印：回到朴素黑字白底 */
@media print {
    .navbar, .nxui-to-top, .nxui-theme-toggle, .bs-sidebar { display: none !important; }
    body { background: #fff !important; color: #000; }
    .panel { box-shadow: none; border-color: #ccc; break-inside: avoid; }
}

/* 尊重系统的减少动效偏好 */
@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; animation: none !important; }
}
