/**
 * CrimpStandard Management System V1.0
 * 伍军 Angus Ng
 * 2026-07-10
 */

/* Common theme overrides */
.layui-input:focus,
.layui-select:focus,
.layui-textarea:focus {
    border-color: #155dfc !important;
}

.layui-btn:not(.layui-btn-primary):not(.layui-btn-danger):not(.layui-btn-warm),
.layui-btn-normal,
.layui-layer-btn0,
.layui-layer-btn a {
    background-color: #155dfc !important;
    border-color: #155dfc !important;
    color: #fff;
}

.layui-btn:not(.layui-btn-primary):not(.layui-btn-danger):not(.layui-btn-warm):hover,
.layui-btn-normal:hover,
.layui-layer-btn0:hover,
.layui-layer-btn a:hover {
    background-color: #0d4ad6 !important;
}

.layui-btn-primary {
    background-color: #fff !important;
    border-color: #c9c9c9 !important;
}

.layui-btn-primary:hover {
    border-color: #155dfc !important;
    color: #155dfc !important;
}

.layui-laypage a:hover {
    color: #155dfc;
    border-color: #155dfc;
}

.layui-laypage .layui-laypage-curr em {
    background-color: #155dfc !important;
}

.layui-table tr:hover {
    background: #f0f5ff;
}

.layui-table[lay-even] tr:nth-child(even):hover {
    background: #f0f5ff;
}

/* ── Unified layout ── */
.layout-page {
    height: 100%;
    overflow: hidden;
}

.layout-page body {
    background: #f0f2f6;
    display: flex;
    flex-direction: column;
    font-family: "Microsoft YaHei", -apple-system, sans-serif;
    color: #1e293b;
}

.layout-header {
    background: linear-gradient(135deg, #0f1724 0%, #1e3a5f 100%);
    padding: 0 28px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60px;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.layout-header .brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.layout-header .brand img {
    height: 30px;
    width: auto;
}

.layout-header .brand h2 {
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 0.5px;
}

.layout-header .nav {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
}

.layout-header .nav .user-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, 0.08);
    padding: 4px 12px 4px 8px;
    border-radius: 20px;
    margin-right: 8px;
}

.layout-header .nav .avatar {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #155dfc;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    color: #fff;
}

.layout-header .nav a {
    color: #94a3b8;
    padding: 6px 12px;
    border-radius: 6px;
    transition: all 0.15s;
    text-decoration: none;
}

.layout-header .nav a:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.08);
}

.layout-header .nav a.active {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

.layout-container {
    flex: 1;
    padding: 10px;
}

.layout-container::-webkit-scrollbar {
    width: 6px;
}

.layout-container::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

.layout-container::-webkit-scrollbar-track {
    background: transparent;
}

.layout-panel {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    overflow: hidden;
}

.layout-panel .panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px 0;
}

.layout-panel .panel-head h3 {
    font-size: 14px;
    font-weight: 600;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 6px;
}

.layout-panel .panel-head h3 .layui-icon {
    font-size: 16px;
    color: #155dfc;
}

.layout-panel .panel-head .more {
    font-size: 12px;
    color: #94a3b8;
    text-decoration: none;
}

.layout-panel .panel-head .more:hover {
    color: #155dfc;
}

.layout-panel .panel-body {
    padding: 12px 20px 16px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    html, body { overflow: auto !important; }
    .layout-header { flex-wrap: wrap; height: auto; padding: 0 12px; gap: 0; }
    .layout-header .brand { height: 48px; }
    .layout-header .brand h2 { font-size: 14px; }
    .layout-header .nav { overflow-x: auto; white-space: nowrap; padding: 4px 0 6px; width: 100%; order: 2; gap: 2px; -webkit-overflow-scrolling: touch; }
    .layout-header .nav::-webkit-scrollbar { display: none; }
    .layout-header .nav a { font-size: 12px; padding: 4px 8px; flex-shrink: 0; }
    .layout-header .nav .user-badge { flex-shrink: 0; padding: 2px 8px 2px 4px; margin-right: 4px; }
    .layout-header .nav .user-badge span { display: none; }
    .layout-container { padding: 8px; }
    .table-wrap { padding: 8px !important; }
    .tabs-wrap { border-radius: 8px !important; }
    .toolbar, .log-toolbar { flex-wrap: wrap; gap: 6px; }
    .toolbar .layui-input { width: 100% !important; }
    .tab-content { padding: 0 8px 8px !important; }
    .layui-tab-title li { font-size: 12px; }
    .layui-input { font-size: 13px; }
    .layui-table-cell { font-size: 12px; }
    .layui-table-page { font-size: 12px; }
    .layui-table-page .layui-inline { padding: 0 4px; }
    .tb-brand { display: none !important; }
}

@media (max-width: 480px) {
    .layout-header .brand h2 { font-size: 13px; }
    .layout-header .nav a { font-size: 11px; padding: 3px 6px; }
    .layout-container { padding: 6px; }
    .table-wrap { padding: 6px !important; border-radius: 6px !important; }
    .layui-table-page .layui-laypage-limits { display: none; }
    .layui-table-page .layui-laypage-skip { display: none; }
    .layui-btn-sm { font-size: 12px; padding: 0 8px; height: 26px; }
    .layui-btn-xs { font-size: 11px; padding: 0 6px; height: 22px; }
    .count-label { font-size: 11px; }
}

/* ── Rounded buttons ── */
.layui-btn,
.layui-layer-btn a {
    border-radius: 6px !important;
}

.layui-btn-sm {
    border-radius: 5px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 4px;
}
.layui-btn-sm .layui-icon { margin: 0; }

.layui-btn-xs {
    border-radius: 4px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.layui-layer-btn .layui-layer-btn0 {
    border-radius: 6px !important;
}

/* ── Bold msg popups ── */
.layui-layer-msg .layui-layer-content { font-weight: 700; }
/* ���� icomoon ͼ������ ���� */
@font-face {
  font-family: 'icomoon';
  src:  url('../font/icomoon.eot');
  src:  url('../font/icomoon.eot#iefix') format('embedded-opentype'),
    url('../font/icomoon.ttf') format('truetype'),
    url('../font/icomoon.woff') format('woff'),
    url('../font/icomoon.svg#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"], [class*=" icon-"] {
  font-family: 'icomoon' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-home:before { content: "\e97b"; }
.icon-file-text2:before { content: "\e97c"; }
.icon-file-picture:before { content: "\e97d"; }
.icon-location2:before { content: "\e97e"; }
.icon-alarm:before { content: "\e97f"; }
.icon-bubbles2:before { content: "\e980"; }
.icon-user:before { content: "\e981"; }
.icon-users:before { content: "\e982"; }
.icon-key:before { content: "\e98d"; }
.icon-wuyi:before { content: "\e900"; }

/* ── 微信二维码推广浮窗 ── */
.wechat-qrcode-float {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 9999;
    background: #fff;
    border-radius: 8px 0 0 8px;
    box-shadow: -2px 0 15px rgba(0,0,0,0.1);
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wechat-qrcode-float:hover {
    transform: translateY(-50%) scale(1.03);
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
}

.wechat-qrcode-float.collapsed {
    transform: translateY(-50%) translateX(calc(100% - 36px));
}

.wechat-qrcode-float.collapsed:hover {
    transform: translateY(-50%) translateX(calc(100% - 36px)) scale(1.05);
    box-shadow: -4px 0 20px rgba(0,0,0,0.15);
}

.wechat-qrcode-float.collapsed .qr-body {
    display: none;
}

.wechat-qrcode-float.collapsed .qr-toggle {
    display: flex;
}

.wechat-qrcode-float img {
    width: 100px;
    height: 100px;
    border-radius: 4px;
}

.wechat-qrcode-float .qr-text {
    font-size: 14px;
    color: #666;
    text-align: center;
    line-height: 1.3;
    max-width: 100px;
}

.wechat-qrcode-float .qr-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.wechat-qrcode-float .qr-close {
    position: absolute;
    top: 4px;
    left: 4px;
    width: 16px;
    height: 16px;
    background: #f56c6c;
    color: #fff;
    border-radius: 50%;
    font-size: 12px;
    line-height: 16px;
    text-align: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.2s;
    z-index: 1;
}

.wechat-qrcode-float:hover .qr-close {
    opacity: 1;
}

.wechat-qrcode-float .qr-close:hover {
    background: #e04040;
}

.wechat-qrcode-float .qr-toggle {
    display: none;
    width: 36px;
    height: 36px;
    background: #07c160;
    border-radius: 6px 0 0 6px;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
}

.wechat-qrcode-float .qr-toggle:hover {
    background: #06ad56;
}

.wechat-qrcode-float .qr-toggle svg {
    width: 22px;
    height: 22px;
    fill: #fff;
}

@media (max-width: 768px) {
    .wechat-qrcode-float { padding: 8px; }
    .wechat-qrcode-float img { width: 80px; height: 80px; }
    .wechat-qrcode-float .qr-text { font-size: 10px; max-width: 80px; }
}

@media (max-width: 480px) {
    .wechat-qrcode-float { padding: 6px; border-radius: 6px 0 0 6px; }
    .wechat-qrcode-float img { width: 70px; height: 70px; }
    .wechat-qrcode-float .qr-text { font-size: 9px; max-width: 70px; }
    .wechat-qrcode-float.collapsed { transform: translateY(-50%) translateX(calc(100% - 30px)); }
    .wechat-qrcode-float .qr-toggle { width: 30px; height: 30px; }
    .wechat-qrcode-float .qr-toggle svg { width: 18px; height: 18px; }
}
