/* Custom Admin CSS - Offline Fonts */

/* 
 * 使用系统字体，无需下载
 * 支持: 中文、英文、越南文、泰文
 */

/* 主字体 - 使用系统默认字体栈 */
body,
.sidebar,
.content-wrapper,
.main-sidebar,
.brand-text,
.nav-link,
.info-box-text,
.info-box-number,
table,
.form-control,
input,
select,
textarea,
button {
    font-family: 
        /* 中文字体 */
        "PingFang SC", "Microsoft YaHei", "微软雅黑", 
        /* 越南文字体 */
        "Inter", "Roboto",
        /* 泰文字体 */
        "Sarabun", "Kanit",
        /* 英文和通用字体 */
        -apple-system, BlinkMacSystemFont, 
        "Segoe UI", "Helvetica Neue", Arial,
        /* 后备字体 */
        sans-serif,
        /* Emoji 字体 */
        "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
}

/* 代码和等宽字体 */
code,
pre,
.monospace {
    font-family: 
        "SF Mono", "Monaco", "Cascadia Code", "Roboto Mono",
        "Source Code Pro", "Courier New", monospace !important;
}

/* 优化中文显示 */
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* 针对不同语言优化行高 */
html[lang="zh-hans"] body,
html[lang="zh-hans"] .content-wrapper {
    line-height: 1.6;
    letter-spacing: 0.02em;
}

html[lang="vi"] body,
html[lang="vi"] .content-wrapper {
    line-height: 1.5;
}

html[lang="th"] body,
html[lang="th"] .content-wrapper {
    line-height: 1.65;
}

/* 改进表格中的中文显示 */
.table {
    font-size: 14px;
}

.table th,
.table td {
    padding: 12px 8px;
    vertical-align: middle;
}

/* 改进表单标签 */
label {
    font-weight: 500;
    margin-bottom: 0.5rem;
}

/* 侧边栏字体大小优化 */
.nav-sidebar .nav-link {
    font-size: 14px;
}

/* 品牌文字 */
.brand-text {
    font-weight: 600;
}

/* 按钮文字 */
.btn {
    font-weight: 500;
}

/* 标题优化 */
h1, h2, h3, h4, h5, h6 {
    font-weight: 600;
    line-height: 1.4;
}

/* 面包屑导航 */
.breadcrumb-item {
    font-size: 13px;
}

/* 卡片标题 */
.card-title {
    font-weight: 600;
    font-size: 16px;
}

/* 下拉菜单 */
.dropdown-menu {
    font-size: 14px;
}

/* 表单帮助文字 */
.form-text,
.help-block,
small {
    font-size: 13px;
    color: #6c757d;
}

/* Dark mode readability tweaks (Jazzmin dark_mode_theme + our html[data-theme]) */
html[data-theme="dark"] .form-text,
html[data-theme="dark"] .help-block,
html[data-theme="dark"] small {
    color: rgba(255, 255, 255, 0.7);
}

/* Jazzmin navbar uses `navbar-white navbar-light` by default; make it dark when user/system chooses dark */
html[data-theme="dark"] #jazzy-navbar.navbar-white {
    background-color: #1f2d3d !important;
}

html[data-theme="dark"] #jazzy-navbar.navbar-white .nav-link,
html[data-theme="dark"] #jazzy-navbar.navbar-white .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.85) !important;
}

html[data-theme="dark"] #jazzy-navbar.navbar-white .nav-link:hover,
html[data-theme="dark"] #jazzy-navbar.navbar-white .navbar-nav .nav-link:hover {
    color: #ffffff !important;
}

/* AdminLTE content area: ensure the main content background and header strip are dark */
html[data-theme="dark"] .content-wrapper {
    background-color: #121a24 !important;
}

html[data-theme="dark"] body {
    background-color: #121a24 !important;
}

html[data-theme="dark"] .content-wrapper .content,
html[data-theme="dark"] .content-wrapper .content-header {
    background-color: transparent !important;
}

/* Some pages use a `.content.border-bottom...` header band; keep it dark/transparent */
html[data-theme="dark"] .content.border-bottom {
    background-color: transparent !important;
}

html[data-theme="dark"] .content.border-bottom .container-fluid,
html[data-theme="dark"] section.content {
    background-color: transparent !important;
}

/* Bootstrap border utility classes use light-mode colors; override in dark mode */
html[data-theme="dark"] .border-bottom {
    border-bottom-color: rgba(255, 255, 255, 0.14) !important;
}

html[data-theme="dark"] .border-right {
    border-right-color: rgba(255, 255, 255, 0.14) !important;
}

/* AdminLTE footer */
html[data-theme="dark"] .main-footer {
    background-color: #121a24 !important;
    border-top-color: rgba(255, 255, 255, 0.14) !important;
    color: rgba(255, 255, 255, 0.75) !important;
}

html[data-theme="dark"] .main-footer a {
    color: rgba(255, 255, 255, 0.85) !important;
}

html[data-theme="dark"] .main-footer a:hover {
    color: #ffffff !important;
}

/* AdminLTE timeline */
html[data-theme="dark"] .timeline:before {
    background-color: rgba(255, 255, 255, 0.14) !important;
}

html[data-theme="dark"] .timeline > div > .timeline-item {
    background-color: #1b2635 !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    color: rgba(255, 255, 255, 0.85) !important;
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.6), 0 1px 3px rgba(0, 0, 0, 0.8) !important;
}

html[data-theme="dark"] .timeline > div > .timeline-item > .timeline-header {
    border-bottom-color: rgba(255, 255, 255, 0.14) !important;
}

html[data-theme="dark"] .timeline > div > .timeline-item > .time {
    color: rgba(255, 255, 255, 0.65) !important;
}

html[data-theme="dark"] .timeline > div > i {
    background-color: #1b2635 !important;
    color: rgba(255, 255, 255, 0.8) !important;
}

/* Dark mode form controls (override Jazzmin main.css v*Field light defaults) */
html[data-theme="dark"] {
    --crystal-input-bg: #0f1722;
    --crystal-input-fg: rgba(255, 255, 255, 0.9);
    --crystal-input-border: rgba(255, 255, 255, 0.18);
    --crystal-input-border-focus: rgba(59, 130, 246, 0.8);
    --crystal-input-placeholder: rgba(255, 255, 255, 0.55);
}

html[data-theme="dark"] .vTextField,
html[data-theme="dark"] .vLargeTextField,
html[data-theme="dark"] .vURLField,
html[data-theme="dark"] .vIntegerField,
html[data-theme="dark"] .vBigIntegerField,
html[data-theme="dark"] .vForeignKeyRawIdAdminField,
html[data-theme="dark"] .vDateField,
html[data-theme="dark"] .vTimeField,
html[data-theme="dark"] input[type="text"],
html[data-theme="dark"] input[type="number"],
html[data-theme="dark"] input[type="password"],
html[data-theme="dark"] input[type="email"],
html[data-theme="dark"] input[type="url"],
html[data-theme="dark"] input[type="search"],
html[data-theme="dark"] textarea,
html[data-theme="dark"] select,
html[data-theme="dark"] .form-control {
    color: var(--crystal-input-fg) !important;
    background-color: var(--crystal-input-bg) !important;
    border-color: var(--crystal-input-border) !important;
    box-shadow: inset 0 0 0 transparent !important;
}

html[data-theme="dark"] textarea.vLargeTextField {
    /* Jazzmin sets its own textarea palette; keep it consistent with other inputs */
    color: var(--crystal-input-fg) !important;
    background-color: var(--crystal-input-bg) !important;
    border-color: var(--crystal-input-border) !important;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: var(--crystal-input-placeholder) !important;
}

html[data-theme="dark"] .vTextField:focus,
html[data-theme="dark"] .vLargeTextField:focus,
html[data-theme="dark"] .vURLField:focus,
html[data-theme="dark"] .vIntegerField:focus,
html[data-theme="dark"] .vBigIntegerField:focus,
html[data-theme="dark"] .vForeignKeyRawIdAdminField:focus,
html[data-theme="dark"] .vDateField:focus,
html[data-theme="dark"] .vTimeField:focus,
html[data-theme="dark"] input[type="text"]:focus,
html[data-theme="dark"] input[type="number"]:focus,
html[data-theme="dark"] input[type="password"]:focus,
html[data-theme="dark"] input[type="email"]:focus,
html[data-theme="dark"] input[type="url"]:focus,
html[data-theme="dark"] input[type="search"]:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] .form-control:focus {
    border-color: var(--crystal-input-border-focus) !important;
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgba(59, 130, 246, 0.25) !important;
}

html[data-theme="dark"] input:disabled,
html[data-theme="dark"] textarea:disabled,
html[data-theme="dark"] select:disabled,
html[data-theme="dark"] .form-control:disabled {
    opacity: 0.75;
    background-color: rgba(15, 23, 34, 0.75) !important;
}

/* 确保所有图标使用 Font Awesome */
.fa, .fas, .far, .fal, .fab {
    font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands" !important;
}

/* 隐藏版本号 */
/* 匹配包含版本号的文本节点（如 "3.0.1"） */
footer .float-right {
    font-size: 0 !important;
}

footer .float-right a {
    font-size: 0.875rem !important;
}

/* WorkOrder change form layout: full width + actions under tabs */
body.app-tracking.model-workorder.change-form.workorder-actions-moved .content-wrapper .content,
body.app-tracking.model-workorder.change-form.workorder-actions-moved .content-wrapper .container-fluid {
    max-width: none;
}

/* When actions are moved, let the main column take full width and hide the (now empty) sidebar column */
body.app-tracking.model-workorder.change-form.workorder-actions-moved .content-wrapper .row > .col-lg-9,
body.app-tracking.model-workorder.change-form.workorder-actions-moved .content-wrapper .row > .col-md-9 {
    flex: 0 0 100%;
    max-width: 100%;
}

body.app-tracking.model-workorder.change-form.workorder-actions-moved .content-wrapper .row > .col-lg-3,
body.app-tracking.model-workorder.change-form.workorder-actions-moved .content-wrapper .row > .col-md-3 {
    display: none;
}

#workorder-actions-under-tabs.workorder-actions-under-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 10px 0 14px;
}

/* Make object tools (History/View) and submit buttons line up as a row */
#workorder-actions-under-tabs .object-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Don't override Bootstrap/Jazzmin button colors; only ensure inline layout */
#workorder-actions-under-tabs .object-tools a.btn {
    display: inline-flex;
    align-items: center;
    /* Match Jazzmin action button sizing (similar to .form-control buttons) */
    font-size: 1rem;
    line-height: 1.5;
    padding: 0.375rem 0.75rem;
    height: calc(1.5em + 0.75rem + 2px);
}

/* Jazzmin's action buttons live under #jazzy-actions as .form-group + .form-control; make them inline. */
#workorder-actions-under-tabs #jazzy-actions {
    /* Keep container neutral; the inner div holds the actual .form-group blocks. */
    display: block;
}

#workorder-actions-under-tabs #jazzy-actions > div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

#workorder-actions-under-tabs #jazzy-actions .form-group {
    margin: 0;
}

#workorder-actions-under-tabs #jazzy-actions .form-control {
    width: auto;
    display: inline-flex;
    align-items: center;
}

/* If a button/link is styled as block, undo it inside our row */
#workorder-actions-under-tabs .btn,
#workorder-actions-under-tabs .btn-block {
    width: auto;
}

/* Bootstrap 4: .btn-block forces display:block + width:100% */
#workorder-actions-under-tabs .btn-block {
    display: inline-flex !important;
    width: auto !important;
}

/* Also ensure object-tools buttons don't stretch full-width */
#workorder-actions-under-tabs .object-tools .btn {
    display: inline-flex !important;
    width: auto !important;
}

/* WorkOrder -> Segments inline: move "Add another Segment" to the left and keep it as a button */
body.app-tracking.model-workorder.change-form #segments-group .add-row td {
    text-align: left;
}

body.app-tracking.model-workorder.change-form #segments-group .add-row a.addlink {
    float: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
}

#workorder-actions-under-tabs .submit-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
