/*
 * 博凡光学 ERP · Precision Operations UI
 * Global source: design-system/博凡光学-erp/MASTER.md
 * Loaded last so every business page shares the same visual and interaction rules.
 */

:root {
    --erp-primary: #0369a1;
    --erp-primary-hover: #075985;
    --erp-primary-soft: #e0f2fe;
    --erp-navy: #0f172a;
    --erp-slate: #334155;
    --erp-text: #0f172a;
    --erp-text-secondary: #475569;
    --erp-text-muted: #64748b;
    --erp-bg: #f4f7fb;
    --erp-surface: #ffffff;
    --erp-surface-soft: #f8fafc;
    --erp-border: #dbe3ee;
    --erp-border-strong: #cbd5e1;
    --erp-success: #047857;
    --erp-success-soft: #ecfdf5;
    --erp-warning: #b45309;
    --erp-warning-soft: #fffbeb;
    --erp-danger: #b91c1c;
    --erp-danger-soft: #fef2f2;
    --erp-info: #0369a1;
    --erp-info-soft: #f0f9ff;
    --erp-radius-sm: 6px;
    --erp-radius: 10px;
    --erp-radius-lg: 14px;
    --erp-shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);
    --erp-shadow-md: 0 8px 24px rgba(15, 23, 42, .07);
    --erp-shadow-lg: 0 20px 45px rgba(15, 23, 42, .18);
    --erp-focus: 0 0 0 3px rgba(3, 105, 161, .2);
    --erp-duration-fast: 150ms;
    --erp-duration: 220ms;
    --erp-z-header: 1030;
    --erp-z-dropdown: 1060;
    --erp-z-modal: 1070;
    --erp-z-toast: 1090;

    /* Bridge legacy variables to one semantic system. */
    --ui-bg: var(--erp-bg);
    --ui-surface: var(--erp-surface);
    --ui-surface-2: var(--erp-surface-soft);
    --ui-text: var(--erp-text);
    --ui-text-2: var(--erp-text-secondary);
    --ui-text-3: var(--erp-text-muted);
    --ui-border: var(--erp-border);
    --ui-primary: var(--erp-primary);
    --ui-primary-hover: var(--erp-primary-hover);
    --ui-shadow: var(--erp-shadow-md);
    --atp-primary: var(--erp-primary);
    --atp-border: var(--erp-border);
    --atp-bg: var(--erp-bg);
    --atp-text: var(--erp-text-secondary);
    --atp-surface-soft: var(--erp-surface-soft);
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--erp-text);
    background: var(--erp-bg);
    font-family: "Fira Sans", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
    font-size: 14px;
    line-height: 1.55;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
    font: inherit;
}

a,
button,
[role="button"],
.custom-control-label,
.select2-results__option {
    cursor: pointer;
    touch-action: manipulation;
}

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.form-control:focus,
.custom-select:focus {
    outline: 0 !important;
    box-shadow: var(--erp-focus) !important;
}

.erp-skip-link {
    position: fixed;
    z-index: 1200;
    top: 8px;
    left: 12px;
    padding: 9px 14px;
    border-radius: var(--erp-radius-sm);
    color: #fff;
    background: var(--erp-navy);
    box-shadow: var(--erp-shadow-lg);
    transform: translateY(-150%);
    transition: transform var(--erp-duration-fast) ease-out;
}

.erp-skip-link:focus {
    color: #fff;
    transform: translateY(0);
}

#erp-page-progress {
    position: fixed;
    z-index: 1300;
    top: 0;
    left: 0;
    width: 0;
    height: 3px;
    opacity: 0;
    background: linear-gradient(90deg, #0284c7, #38bdf8);
    box-shadow: 0 0 10px rgba(14, 165, 233, .55);
    transition: width 280ms ease-out, opacity 160ms ease;
}

#erp-page-progress.is-loading {
    width: 78%;
    opacity: 1;
}

#erp-page-progress.is-complete {
    width: 100%;
    opacity: 0;
}

/* Shell and navigation */
.artd-pro .wrapper,
.artd-pro .content-wrapper,
.artd-pro .main-footer {
    background: var(--erp-bg) !important;
}

.artd-pro .artd-topbar {
    min-height: 60px;
    padding-inline: 8px;
    border-bottom: 1px solid var(--erp-border) !important;
    background: rgba(255, 255, 255, .94) !important;
    box-shadow: 0 1px 0 rgba(15, 23, 42, .02);
    backdrop-filter: saturate(140%) blur(12px);
    z-index: var(--erp-z-header);
}

.artd-topbar .nav-link,
.artd-topbar .btn.nav-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-radius: 8px;
    color: var(--erp-text-secondary) !important;
    transition: color var(--erp-duration-fast) ease, background-color var(--erp-duration-fast) ease;
}

.artd-topbar .nav-link:hover,
.artd-topbar .btn.nav-link:hover {
    color: var(--erp-primary) !important;
    background: var(--erp-primary-soft);
}

.erp-global-search-link {
    padding-inline: 11px !important;
}

.erp-shortcut-hint {
    padding: 1px 5px;
    border: 1px solid var(--erp-border-strong);
    border-bottom-width: 2px;
    border-radius: 4px;
    color: var(--erp-text-muted);
    background: var(--erp-surface-soft);
    font-size: 10px;
    line-height: 1.4;
}

.artd-pro .main-sidebar {
    border-right: 1px solid var(--erp-border);
    background: var(--erp-surface) !important;
    box-shadow: 4px 0 18px rgba(15, 23, 42, .06) !important;
}

.artd-pro .artd-sidebar .brand-link,
.artd-pro .main-sidebar .brand-link {
    min-height: 60px;
    display: flex;
    align-items: center;
    border-bottom-color: var(--erp-border) !important;
    background: var(--erp-surface) !important;
}

.artd-pro .artd-brand-link .brand-text,
.artd-pro .main-sidebar .brand-text {
    color: var(--erp-text) !important;
    font-size: 16px;
    font-weight: 700 !important;
    letter-spacing: .04em !important;
}

.artd-pro .sidebar {
    padding: 9px 7px 18px;
}

.artd-pro .nav-sidebar .nav-link {
    position: relative;
    min-height: 42px;
    margin: 2px 3px;
    padding: 9px 11px;
    display: flex;
    align-items: center;
    border-radius: 8px !important;
    color: var(--erp-text-secondary) !important;
    transition: color var(--erp-duration-fast) ease, background-color var(--erp-duration-fast) ease;
}

.artd-pro .nav-sidebar .nav-link:hover {
    color: var(--erp-primary-hover) !important;
    background: var(--erp-primary-soft) !important;
}

.artd-pro .nav-sidebar .nav-link.active,
.artd-pro .nav-sidebar .nav-link.nav-parent-active,
.artd-pro .nav-sidebar .nav-link.nav-child-active {
    color: var(--erp-primary-hover) !important;
    background: var(--erp-primary-soft) !important;
    box-shadow: inset 3px 0 0 var(--erp-primary) !important;
    font-weight: 650;
}

.artd-pro .nav-sidebar .nav-icon {
    width: 22px;
    margin-right: 8px !important;
    color: var(--erp-text-muted);
    font-size: 14px !important;
    text-align: center;
}

.artd-pro .nav-sidebar .nav-link:hover .nav-icon,
.artd-pro .nav-sidebar .nav-link.active .nav-icon {
    color: var(--erp-primary) !important;
}

.artd-pro .nav-sidebar .nav-treeview {
    margin: 3px 0 7px 15px;
    padding-left: 7px;
    border-left: 1px solid var(--erp-border);
}

.artd-pro .nav-sidebar .nav-treeview .nav-link {
    min-height: 38px;
    padding-block: 7px;
    font-size: 13px;
}

.artd-pro .nav-badge-circle {
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 999px;
    color: #fff;
    background: #dc2626;
    font-size: 10px;
    font-variant-numeric: tabular-nums;
}

/* Page hierarchy */
.artd-pro .artd-page-header {
    padding: 14px 0 8px !important;
}

.artd-pro .page-title {
    color: var(--erp-text) !important;
    font-family: "Fira Code", "Fira Sans", "PingFang SC", sans-serif;
    font-size: 20px !important;
    font-weight: 700 !important;
    letter-spacing: -.015em;
}

.artd-pro .breadcrumb {
    padding: 5px 9px;
    border: 1px solid var(--erp-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, .68);
    font-size: 12px;
}

.artd-pro .breadcrumb-item + .breadcrumb-item::before {
    color: #94a3b8;
    content: "›";
}

.artd-pro .breadcrumb-item a {
    color: var(--erp-text-muted);
}

.artd-pro .breadcrumb-item.active {
    color: var(--erp-text-secondary);
}

.artd-pro .artd-page-content {
    padding-top: 6px;
    padding-bottom: 22px;
}

.module-page,
.doc-view,
.report-page,
.erp-page {
    animation: erp-content-in 180ms ease-out both;
}

@keyframes erp-content-in {
    from { opacity: 0; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Surfaces and cards */
.artd-pro .card,
.artd-pro .module-card,
.artd-pro .form-card,
.artd-pro .info-box,
.artd-pro .search-filter-card {
    border: 1px solid var(--erp-border) !important;
    border-radius: var(--erp-radius-lg) !important;
    color: var(--erp-text-secondary);
    background: var(--erp-surface) !important;
    box-shadow: var(--erp-shadow-sm) !important;
}

.artd-pro .card:hover {
    border-color: var(--erp-border-strong) !important;
}

.artd-pro .card-header {
    min-height: 54px;
    padding: 11px 15px !important;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--erp-border) !important;
    border-radius: var(--erp-radius-lg) var(--erp-radius-lg) 0 0 !important;
    background: var(--erp-surface) !important;
}

.artd-pro .card-header > :first-child {
    min-width: 0;
    margin-right: auto;
}

.artd-pro .card-title,
.artd-pro .card-header h2,
.artd-pro .card-header h3,
.artd-pro .card-header h4,
.artd-pro .card-header h5 {
    color: var(--erp-text) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.35;
}

.artd-pro .card-header > div:first-child .card-title {
    float: none;
}

.artd-pro .card-header > div:first-child > small {
    margin-top: 2px;
    display: block;
}

.artd-pro .card-header p,
.artd-pro .card-header small {
    color: var(--erp-text-muted) !important;
}

.artd-pro .card-body,
.artd-pro .form-card-body {
    padding: 15px !important;
}

.artd-pro .card-footer {
    padding: 11px 15px;
    border-top: 1px solid var(--erp-border);
    background: var(--erp-surface-soft);
}

.artd-pro .form-section,
.artd-pro .doc-details-section,
.artd-pro .info-card-main,
.artd-pro .sale-details-section {
    border: 1px solid var(--erp-border) !important;
    border-radius: var(--erp-radius) !important;
    background: var(--erp-surface-soft) !important;
}

/* Toolbars and actions */
.erp-page-actions,
.artd-pro .card-header .btn-group,
.artd-pro .action-buttons-section,
.artd-pro .search-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}

.artd-pro .btn,
.login-page .btn {
    min-height: 36px;
    padding: 7px 12px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2;
    box-shadow: none !important;
    transition: color var(--erp-duration-fast) ease, background-color var(--erp-duration-fast) ease, border-color var(--erp-duration-fast) ease, box-shadow var(--erp-duration-fast) ease;
}

.artd-pro .btn:hover,
.login-page .btn:hover {
    text-decoration: none;
}

.artd-pro .btn:active,
.login-page .btn:active {
    filter: brightness(.96);
}

.artd-pro .btn-sm {
    min-height: 32px;
    padding: 5px 9px !important;
    font-size: 12px !important;
}

.artd-pro .btn-primary,
.login-page .btn-primary {
    color: #fff !important;
    border-color: var(--erp-primary) !important;
    background: var(--erp-primary) !important;
}

.artd-pro .btn-primary:hover,
.artd-pro .btn-primary:focus,
.login-page .btn-primary:hover,
.login-page .btn-primary:focus {
    border-color: var(--erp-primary-hover) !important;
    background: var(--erp-primary-hover) !important;
}

.artd-pro .btn-outline-primary {
    color: var(--erp-primary) !important;
    border-color: #7dd3fc !important;
    background: #fff !important;
}

.artd-pro .btn-outline-primary:hover {
    color: #075985 !important;
    border-color: #38bdf8 !important;
    background: var(--erp-primary-soft) !important;
}

.artd-pro .btn-secondary,
.artd-pro .btn-outline-secondary {
    color: var(--erp-text-secondary) !important;
    border-color: var(--erp-border-strong) !important;
    background: var(--erp-surface) !important;
}

.artd-pro .btn-secondary:hover,
.artd-pro .btn-outline-secondary:hover {
    color: var(--erp-text) !important;
    border-color: #94a3b8 !important;
    background: var(--erp-surface-soft) !important;
}

.artd-pro .btn-success {
    border-color: var(--erp-success) !important;
    background: var(--erp-success) !important;
}

.artd-pro .btn-danger,
.artd-pro .btn-outline-danger {
    color: var(--erp-danger) !important;
    border-color: #fecaca !important;
    background: var(--erp-danger-soft) !important;
}

.artd-pro .btn-danger:hover,
.artd-pro .btn-outline-danger:hover {
    color: #fff !important;
    border-color: var(--erp-danger) !important;
    background: var(--erp-danger) !important;
}

.artd-pro .btn[disabled],
.artd-pro .btn.disabled,
.login-page .btn[disabled] {
    cursor: not-allowed !important;
    opacity: .5 !important;
}

.erp-icon-button,
.artd-pro .btn-icon {
    min-width: 36px;
    padding-inline: 8px !important;
}

/* Forms */
.artd-pro .form-group {
    margin-bottom: 14px;
}

.artd-pro .form-group label,
.artd-pro .control-label,
.artd-pro legend {
    color: var(--erp-text-secondary) !important;
    font-size: 13px !important;
    font-weight: 650 !important;
}

.artd-pro .form-control,
.artd-pro .custom-select,
.artd-pro .select2-container--bootstrap4 .select2-selection,
.login-page .form-control {
    min-height: 40px;
    height: 40px;
    padding: 8px 11px;
    border: 1px solid var(--erp-border-strong) !important;
    border-radius: 8px !important;
    color: var(--erp-text) !important;
    background: var(--erp-surface) !important;
    font-size: 14px !important;
    box-shadow: none !important;
    transition: border-color var(--erp-duration-fast) ease, box-shadow var(--erp-duration-fast) ease, background-color var(--erp-duration-fast) ease;
}

.artd-pro textarea.form-control {
    min-height: 92px;
    height: auto;
    line-height: 1.6;
    resize: vertical;
}

.artd-pro .form-control:hover,
.artd-pro .custom-select:hover,
.login-page .form-control:hover {
    border-color: #94a3b8 !important;
}

.artd-pro .form-control:focus,
.artd-pro .custom-select:focus,
.artd-pro .select2-container--bootstrap4.select2-container--focus .select2-selection,
.login-page .form-control:focus {
    border-color: var(--erp-primary) !important;
    box-shadow: var(--erp-focus) !important;
}

.artd-pro .form-control::placeholder,
.login-page .form-control::placeholder {
    color: #94a3b8;
    opacity: 1;
    transition: opacity var(--erp-duration-fast) ease;
}

/* 点击输入框后立即隐藏提示文字；为空且失去焦点时由浏览器自动恢复。 */
.artd-pro input.form-control:focus::placeholder,
.artd-pro textarea.form-control:focus::placeholder,
.login-page input.form-control:focus::placeholder,
.login-page textarea.form-control:focus::placeholder {
    color: transparent !important;
    opacity: 0;
}

.artd-pro .form-control:disabled,
.artd-pro .form-control[readonly],
.artd-pro .custom-select:disabled {
    cursor: not-allowed;
    color: var(--erp-text-muted) !important;
    background: #eef2f7 !important;
    opacity: 1;
}

.artd-pro .help-block,
.artd-pro .form-text,
.artd-pro .hint-block {
    margin-top: 5px;
    color: var(--erp-text-muted) !important;
    font-size: 12px;
    line-height: 1.45;
}

.artd-pro .has-error .form-control,
.artd-pro .is-invalid {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, .12) !important;
}

.artd-pro .has-error .help-block,
.artd-pro .invalid-feedback {
    color: var(--erp-danger) !important;
}

.erp-required-mark {
    margin-left: 3px;
    color: var(--erp-danger);
    font-weight: 700;
}

.erp-password-field {
    position: relative;
}

.erp-password-field .form-control {
    padding-right: 48px !important;
}

.erp-password-toggle {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 40px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 7px;
    color: var(--erp-text-muted);
    background: transparent;
}

.erp-password-toggle:hover,
.erp-password-toggle:focus-visible {
    color: var(--erp-primary);
    background: var(--erp-primary-soft);
}

.artd-pro .custom-control-label::before,
.artd-pro .custom-control-label::after {
    top: .15rem;
    width: 18px;
    height: 18px;
}

.artd-pro .custom-control-input:checked ~ .custom-control-label::before {
    border-color: var(--erp-primary);
    background: var(--erp-primary);
}

.artd-pro .input-group-text {
    border-color: var(--erp-border-strong);
    border-radius: 8px;
    color: var(--erp-text-secondary);
    background: var(--erp-surface-soft);
}

.artd-pro form.mb-3,
.artd-pro .module-page .card-body > form:first-child,
.artd-pro .report-filter-form,
.artd-pro .search-filter-card {
    border: 1px solid var(--erp-border) !important;
    border-radius: var(--erp-radius) !important;
    background: var(--erp-surface-soft) !important;
}

.erp-form-actions {
    padding-top: 13px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    border-top: 1px solid var(--erp-border);
}

.artd-pro .form-card-footer {
    padding: 12px 15px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    border-top: 1px solid var(--erp-border);
    border-radius: 0 0 var(--erp-radius-lg) var(--erp-radius-lg);
    background: var(--erp-surface-soft);
}

/* Tables and data */
.artd-pro .table-responsive,
.erp-table-wrap {
    overflow-x: auto;
    border-radius: 0 0 var(--erp-radius-lg) var(--erp-radius-lg);
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 transparent;
    -webkit-overflow-scrolling: touch;
}

.artd-pro .table {
    width: 100%;
    margin: 0;
    color: var(--erp-text-secondary) !important;
    background: var(--erp-surface);
    font-variant-numeric: tabular-nums;
}

.artd-pro .table thead th {
    padding: 10px 11px !important;
    border-top: 0 !important;
    border-bottom: 1px solid var(--erp-border-strong) !important;
    color: var(--erp-text-secondary) !important;
    background: #f1f5f9 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.35;
    letter-spacing: .015em;
    white-space: nowrap;
}

.artd-pro .table tbody td,
.artd-pro .table tbody th {
    padding: 10px 11px !important;
    border-color: #e8edf4 !important;
    color: var(--erp-text-secondary) !important;
    font-size: 13px !important;
    line-height: 1.45;
    vertical-align: middle !important;
}

.artd-pro .table-hover tbody tr {
    transition: background-color var(--erp-duration-fast) ease;
}

.artd-pro .table-hover tbody tr:hover {
    background: #f0f9ff !important;
}

.artd-pro .table tbody tr.is-selected,
.artd-pro .table tbody tr.table-active {
    background: #e0f2fe !important;
}

.artd-pro .table .text-right,
.artd-pro .table [data-number],
.artd-pro .number-cell,
.artd-pro .money-cell {
    font-variant-numeric: tabular-nums;
}

.artd-pro .table tbody td.erp-actions-cell,
.artd-pro .table tbody td:last-child {
    white-space: nowrap;
}

.artd-pro .table tbody td.erp-actions-cell .btn,
.artd-pro .table tbody td:last-child .btn {
    margin: 2px;
}

.artd-pro .table .empty,
.artd-pro .grid-view .empty {
    height: 132px;
    color: var(--erp-text-muted) !important;
    background: var(--erp-surface-soft);
    text-align: center;
}

.artd-pro .summary {
    color: var(--erp-text-muted) !important;
    font-size: 12px !important;
}

.artd-pro .pagination {
    margin: 0;
    gap: 4px;
}

.artd-pro .pagination .page-link {
    min-width: 34px;
    min-height: 34px;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--erp-border) !important;
    border-radius: 7px !important;
    color: var(--erp-text-secondary) !important;
    background: var(--erp-surface);
}

.artd-pro .pagination .page-item.active .page-link {
    color: #fff !important;
    border-color: var(--erp-primary) !important;
    background: var(--erp-primary) !important;
}

.artd-pro .pagination .page-item.disabled .page-link {
    color: #94a3b8 !important;
    background: var(--erp-surface-soft);
}

/* Status, messages and feedback */
.artd-pro .badge {
    padding: 4px 8px !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-radius: 999px !important;
    font-size: 11px;
    font-weight: 700 !important;
    line-height: 1.25;
}

.artd-pro .badge-success { color: #065f46; background: #d1fae5; }
.artd-pro .badge-warning { color: #92400e; background: #fef3c7; }
.artd-pro .badge-danger { color: #991b1b; background: #fee2e2; }
.artd-pro .badge-info,
.artd-pro .badge-primary { color: #075985; background: #e0f2fe; }
.artd-pro .badge-secondary { color: #475569; background: #e2e8f0; }

.artd-pro .alert {
    padding: 11px 13px;
    border-width: 1px;
    border-radius: var(--erp-radius) !important;
    line-height: 1.5;
}

.artd-pro .alert-info { color: #075985; border-color: #bae6fd; background: var(--erp-info-soft); }
.artd-pro .alert-success { color: #065f46; border-color: #a7f3d0; background: var(--erp-success-soft); }
.artd-pro .alert-warning { color: #92400e; border-color: #fde68a; background: var(--erp-warning-soft); }
.artd-pro .alert-danger { color: #991b1b; border-color: #fecaca; background: var(--erp-danger-soft); }

.empty-state {
    min-height: 190px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--erp-border-strong);
    border-radius: var(--erp-radius);
    background: var(--erp-surface-soft);
}

.empty-state-icon {
    font-size: 32px;
    color: #94a3b8 !important;
}

.empty-state-text {
    max-width: 460px;
    color: var(--erp-text-muted) !important;
}

.yii-toast-container {
    z-index: var(--erp-z-toast) !important;
    max-width: min(380px, calc(100vw - 24px));
}

.yii-toast-item {
    min-height: 48px;
    margin-bottom: 8px;
    padding: 11px 14px !important;
    border: 1px solid var(--erp-border);
    border-radius: var(--erp-radius) !important;
    color: var(--erp-text-secondary);
    background: var(--erp-surface);
    box-shadow: var(--erp-shadow-lg) !important;
}

/* Dropdowns, tabs and modals */
.artd-pro .dropdown-menu,
.artd-pro .select2-dropdown {
    z-index: var(--erp-z-dropdown);
    padding: 6px;
    border: 1px solid var(--erp-border) !important;
    border-radius: var(--erp-radius) !important;
    background: var(--erp-surface) !important;
    box-shadow: var(--erp-shadow-lg) !important;
}

.artd-pro .dropdown-item,
.artd-pro .select2-results__option {
    min-height: 38px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    border-radius: 7px !important;
    color: var(--erp-text-secondary);
}

.artd-pro .dropdown-item:hover,
.artd-pro .dropdown-item:focus,
.artd-pro .select2-results__option--highlighted {
    color: #075985 !important;
    background: var(--erp-primary-soft) !important;
}

.artd-pro .nav-tabs {
    gap: 4px;
    border-bottom: 1px solid var(--erp-border);
}

.artd-pro .nav-tabs .nav-link {
    min-height: 40px;
    padding: 8px 12px;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 7px 7px 0 0 !important;
    color: var(--erp-text-muted);
    background: transparent;
    font-weight: 600;
}

.artd-pro .nav-tabs .nav-link:hover {
    color: var(--erp-text);
    background: var(--erp-surface-soft);
}

.artd-pro .nav-tabs .nav-link.active {
    color: var(--erp-primary) !important;
    border-bottom-color: var(--erp-primary) !important;
    background: var(--erp-primary-soft) !important;
}

.modal-backdrop.show {
    opacity: .48;
}

.artd-pro .modal-dialog {
    margin-top: 4vh;
    margin-bottom: 4vh;
}

.artd-pro .modal-content {
    overflow: hidden;
    border: 1px solid var(--erp-border) !important;
    border-radius: var(--erp-radius-lg) !important;
    background: var(--erp-surface) !important;
    box-shadow: var(--erp-shadow-lg) !important;
}

.artd-pro .modal-header,
.artd-pro .modal-footer {
    min-height: 56px;
    padding: 11px 15px !important;
    border-color: var(--erp-border) !important;
    background: var(--erp-surface) !important;
}

.artd-pro .modal-title {
    color: var(--erp-text) !important;
    font-size: 16px;
    font-weight: 700;
}

.artd-pro .modal-body {
    padding: 16px !important;
}

.artd-pro .close {
    min-width: 40px;
    min-height: 40px;
    margin: -6px -8px -6px auto !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: var(--erp-text-muted);
}

.artd-pro .close:hover {
    color: var(--erp-text);
    background: var(--erp-surface-soft);
}

/* Reports and metrics */
.artd-pro .info-box,
.artd-pro .summary-card,
.artd-pro .dashboard-card {
    min-height: 94px;
    overflow: hidden;
}

.artd-pro .info-box-number,
.artd-pro .metric-value,
.artd-pro .kpi-value {
    color: var(--erp-text) !important;
    font-family: "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.report-page-head .card-body {
    background: linear-gradient(135deg, #fff 0%, #f0f9ff 100%) !important;
}

.business-report-index .list-group-item,
.erp-report-index .list-group-item {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-color: var(--erp-border);
    color: var(--erp-text-secondary);
}

.business-report-index .list-group-item:hover,
.erp-report-index .list-group-item:hover {
    color: var(--erp-primary);
    background: var(--erp-primary-soft);
}

/* Login */
.login-page {
    min-height: 100dvh;
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at 12% 16%, rgba(14, 165, 233, .2), transparent 34%),
        radial-gradient(circle at 88% 84%, rgba(56, 189, 248, .12), transparent 32%),
        #07111f !important;
}

.login-page .site-login {
    width: 100%;
    max-width: 430px;
}

.login-page .auth-card {
    padding: 28px;
    border: 1px solid rgba(148, 163, 184, .25);
    border-radius: 18px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .32);
}

.login-page .auth-header {
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 13px;
}

.login-page .auth-logo {
    width: 50px;
    height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    color: #fff;
    background: linear-gradient(145deg, #075985, #0284c7);
    box-shadow: 0 8px 18px rgba(3, 105, 161, .28);
    font-weight: 800;
}

.login-page .auth-card-title {
    color: var(--erp-text);
    font-size: 20px;
    font-weight: 750;
}

.login-page .auth-card-subtitle {
    margin-top: 2px;
    color: var(--erp-text-muted);
    font-size: 12px;
    line-height: 1.45;
}

.login-page .form-group label {
    color: var(--erp-text-secondary);
    font-size: 13px;
    font-weight: 650;
}

/* Dark mode */
html.artd-theme-dark {
    --erp-primary: #38bdf8;
    --erp-primary-hover: #7dd3fc;
    --erp-primary-soft: rgba(14, 165, 233, .15);
    --erp-navy: #070d18;
    --erp-text: #f1f5f9;
    --erp-text-secondary: #cbd5e1;
    --erp-text-muted: #94a3b8;
    --erp-bg: #080f1d;
    --erp-surface: #111a2a;
    --erp-surface-soft: #162033;
    --erp-border: #29364c;
    --erp-border-strong: #3b4a63;
    --erp-focus: 0 0 0 3px rgba(56, 189, 248, .25);
    color-scheme: dark;
}

html.artd-theme-dark .artd-pro .artd-topbar {
    background: rgba(17, 26, 42, .94) !important;
}

html.artd-theme-dark .artd-pro .card,
html.artd-theme-dark .artd-pro .card-header,
html.artd-theme-dark .artd-pro .card-footer,
html.artd-theme-dark .artd-pro .module-card,
html.artd-theme-dark .artd-pro .form-card,
html.artd-theme-dark .artd-pro .modal-content,
html.artd-theme-dark .artd-pro .modal-header,
html.artd-theme-dark .artd-pro .modal-footer,
html.artd-theme-dark .artd-pro .dropdown-menu,
html.artd-theme-dark .artd-pro .table {
    color: var(--erp-text-secondary) !important;
    background: var(--erp-surface) !important;
    border-color: var(--erp-border) !important;
}

html.artd-theme-dark .artd-pro .table thead th {
    color: #dbe7f5 !important;
    background: #182338 !important;
}

html.artd-theme-dark .artd-pro .table tbody td,
html.artd-theme-dark .artd-pro .table tbody th {
    color: var(--erp-text-secondary) !important;
    border-color: var(--erp-border) !important;
}

html.artd-theme-dark .artd-pro .table-hover tbody tr:hover {
    background: rgba(14, 165, 233, .1) !important;
}

html.artd-theme-dark .artd-pro .form-control,
html.artd-theme-dark .artd-pro .custom-select,
html.artd-theme-dark .artd-pro .select2-container--bootstrap4 .select2-selection,
html.artd-theme-dark .artd-pro .input-group-text {
    color: var(--erp-text-secondary) !important;
    background: #0d1625 !important;
    border-color: var(--erp-border-strong) !important;
}

html.artd-theme-dark .artd-pro .breadcrumb,
html.artd-theme-dark .artd-pro .btn-outline-primary,
html.artd-theme-dark .artd-pro .btn-secondary,
html.artd-theme-dark .artd-pro .btn-outline-secondary {
    background: var(--erp-surface) !important;
}

html.artd-theme-dark .artd-pro .form-section,
html.artd-theme-dark .artd-pro form.mb-3,
html.artd-theme-dark .artd-pro .module-page .card-body > form:first-child,
html.artd-theme-dark .artd-pro .search-filter-card,
html.artd-theme-dark .empty-state {
    background: var(--erp-surface-soft) !important;
}

/* Responsive and touch */
@media (max-width: 991.98px) {
    .artd-pro .artd-page-header .row {
        gap: 8px;
    }

    .artd-pro .breadcrumb {
        display: none;
    }

    .artd-pro .card-header {
        align-items: flex-start;
    }

    .artd-pro .card-header > .btn-group,
    .artd-pro .card-header > .erp-page-actions {
        width: 100%;
        margin-left: 0 !important;
    }
}

@media (max-width: 767.98px) {
    :root {
        --artd-content-gutter-x: 10px;
    }

    body {
        font-size: 15px;
    }

    .artd-pro .artd-topbar {
        min-height: 56px;
    }

    .artd-pro .artd-page-header {
        padding-top: 10px !important;
    }

    .artd-pro .page-title {
        font-size: 18px !important;
    }

    .artd-pro .card-header,
    .artd-pro .card-body,
    .artd-pro .form-card-body {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .artd-pro .btn,
    .login-page .btn,
    .artd-pro .btn-sm,
    .artd-pro .pagination .page-link {
        min-height: 44px;
        padding: 9px 12px !important;
    }

    .artd-pro .form-control,
    .artd-pro .custom-select,
    .artd-pro .select2-container--bootstrap4 .select2-selection,
    .login-page .form-control {
        min-height: 44px;
        height: 44px;
        font-size: 16px !important;
    }

    .artd-pro textarea.form-control {
        min-height: 104px;
        height: auto;
    }

    .erp-password-toggle {
        width: 42px;
        height: 40px;
    }

    .artd-pro .card-header .btn-group,
    .artd-pro .erp-page-actions,
    .artd-pro .search-actions {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .artd-pro .card-header .btn-group > .btn,
    .artd-pro .erp-page-actions > .btn,
    .artd-pro .search-actions > .btn {
        width: 100%;
        margin: 0 !important;
    }

    .artd-pro .table {
        min-width: 680px;
    }

    .artd-pro .list-table-mobile-cards .table {
        min-width: 0;
    }

    .erp-form-actions {
        margin-inline: -12px;
        margin-bottom: -12px;
        padding: 11px 12px;
        position: sticky;
        z-index: 20;
        bottom: 0;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 -8px 20px rgba(15, 23, 42, .08);
        backdrop-filter: blur(10px);
    }


    .artd-pro .form-card-footer {
        position: sticky;
        z-index: 20;
        bottom: 0;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 -8px 20px rgba(15, 23, 42, .08);
        backdrop-filter: blur(10px);
    }

    .artd-pro .form-card-footer .btn {
        width: 100%;
    }

    html.artd-theme-dark .artd-pro .form-card-footer {
        background: rgba(17, 26, 42, .96);
    }

    html.artd-theme-dark .erp-form-actions {
        background: rgba(17, 26, 42, .96);
    }

    .yii-toast-container {
        top: 66px !important;
        right: 10px !important;
        left: 10px;
        max-width: none;
    }

    .login-page {
        padding: 14px;
        align-items: flex-start;
    }

    .login-page .auth-card {
        margin-top: 6vh;
        padding: 22px 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

@media print {
    #erp-page-progress,
    .erp-skip-link,
    .main-header,
    .main-sidebar,
    .main-footer,
    .content-header,
    .no-print {
        display: none !important;
    }

    .content-wrapper {
        margin-left: 0 !important;
        background: #fff !important;
    }

    .card {
        border-color: #bbb !important;
        box-shadow: none !important;
    }
}
