/* ============================================
   进销存管理系统 主样式
   深蓝左侧导航 · 白色内容区 · 绿色操作按钮
   ============================================ */
* { margin:0; padding:0; box-sizing:border-box; }
:root{
    --nav-bg:#1e3a5f;            /* 深蓝导航 */
    --nav-bg-2:#16294a;
    --nav-active:#2563eb;
    --primary:#16a34a;           /* 绿色操作按钮 */
    --primary-dark:#15803d;
    --blue:#2563eb;
    --orange:#f97316;
    --purple:#7c3aed;
    --text:#1e293b;
    --text-2:#64748b;
    --border:#e2e8f0;
    --bg:#f0f4f8;
    --white:#fff;
    --radius:10px;
    --shadow:0 2px 12px rgba(15,23,42,.06);
}
html,body{ height:100%; }
body{
    font-family:"Microsoft YaHei","微软雅黑",-apple-system,"Segoe UI",Roboto,sans-serif;
    background:var(--bg); color:var(--text); font-size:14px; line-height:1.6;
}
a{ text-decoration:none; color:inherit; }
code{ font-family:Consolas,monospace; background:#f1f5f9; padding:1px 6px; border-radius:4px; color:#475569; font-size:14px; }

/* ============================================
   主框架（企云乐风格）
   顶部栏：白色 · logo + 商户下拉 + 到期日期 + 快捷入口
   左侧：70px 蓝色渐变窄导航（7 模块垂直均分），悬停弹出白色二级面板
   ============================================ */
.app{ min-height:100vh; display:flex; flex-direction:column; }

/* ---------- 顶部栏 ---------- */
.topbar{
    height:40px; background:#fff; border-bottom:1px solid #e8edf5;
    display:flex; align-items:center; justify-content:space-between;
    padding:0 18px; position:sticky; top:0; z-index:9990;
    box-shadow:0 1px 6px rgba(15,23,42,.05);
}
.topbar-left{ display:flex; align-items:center; gap:14px; min-width:0; }
.brand{ display:flex; align-items:center; gap:9px; flex-shrink:0; }
.brand-logo{
    width:26px; height:26px; border-radius:7px; color:#fff;
    background:linear-gradient(135deg,#1e5fff 0%,#00c6ff 100%);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 2px 6px rgba(30,95,255,.35);
}
.brand-name{ font-size:16px; font-weight:700; color:#1e5fff; letter-spacing:1px; }

/* 商户名下拉 */
.merchant-wrap{ position:relative; }
.merchant-btn{
    display:flex; align-items:center; gap:7px;
    background:#f1f5fb; border:1px solid #e2e8f0; border-radius:7px;
    padding:4px 10px; font-size:13.5px; color:#334155; cursor:pointer;
    font-family:inherit; transition:.15s; max-width:220px;
}
.merchant-btn span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.merchant-btn:hover{ border-color:#1e5fff; color:#1e5fff; }
.merchant-btn .caret{ opacity:.6; flex-shrink:0; }
.merchant-drop{
    display:none; position:absolute; top:calc(100% + 8px); left:0; width:250px;
    background:#fff; border:1px solid #e5eaf3; border-radius:10px;
    box-shadow:0 10px 30px rgba(15,23,42,.12); padding:6px; z-index:210;
}
.merchant-drop.show{ display:block; }
.md-row{ display:flex; justify-content:space-between; align-items:center; padding:9px 12px; font-size:14px; color:#64748b; }
.md-row b{ color:#1e293b; font-weight:600; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* 到期日期徽章 */
.expire-badge{
    font-size:13px; color:#16a34a; background:#ecfdf5;
    border:1px solid #bbf7d0; padding:3px 10px; border-radius:12px; flex-shrink:0;
}

/* 顶部右侧快捷入口 */
.topbar-right{ display:flex; align-items:center; gap:2px; flex-shrink:0; }
.top-link{
    display:flex; align-items:center; gap:5px; font-size:13.5px; color:#52627a;
    padding:5px 8px; border-radius:7px; transition:.15s; white-space:nowrap;
}
.top-link:hover{ background:#f1f5fb; color:#1e5fff; }
.top-link svg{ opacity:.75; }
.top-sep{ width:1px; height:16px; background:#e2e8f0; margin:0 8px; }
.top-link.top-logout{ color:#e11d48; }
.top-link.top-logout:hover{ background:#fff1f2; color:#be123c; }

/* ---------- 左侧导航（70px 蓝色渐变 + 悬停白色弹层） ---------- */
.body{ display:flex; flex:1; align-items:flex-start; }
.sidebar{
    position:sticky; top:40px;
    width:70px; flex-shrink:0;
    height:calc(100vh - 40px);
    background:linear-gradient(180deg,#1e5fff 0%,#1f6bf2 55%,#00b0ff 100%);
    display:flex; flex-direction:column;
    z-index:9998; /* sticky 创建层叠上下文，整体提升，否则内部弹层被内容区卡片盖住 */
}
.nav{ flex:1; display:flex; flex-direction:column; padding:6px 0; }
.nav-group{ flex:0 0 auto; display:flex; position:relative; }
.nav-item{
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:4px; color:rgba(255,255,255,.88); font-size:14px; letter-spacing:1px;
    transition:background .15s, color .15s; position:relative; padding:10px 0;
}
.nav-item svg{ width:20px; height:20px; }
.nav-group:hover > .nav-item{ background:rgba(0,40,120,.28); color:#fff; }
.nav-group.active > .nav-item{ background:rgba(0,32,96,.38); color:#fff; font-weight:600; }
.nav-group.active > .nav-item::before{
    content:""; position:absolute; left:0; top:6px; bottom:6px;
    width:3px; border-radius:0 2px 2px 0; background:#4ade80;
}

/* 二级菜单弹层（白色面板）：fixed 相对视口定位，由 JS 智能计算 top（防上下截断），left 紧贴 70px 导航右缘 */
.flyout{
    display:none; position:fixed; left:70px; top:40px;
    width:180px; background:#fff; border-radius:0 8px 8px 8px;
    box-shadow:0 8px 24px rgba(15,23,42,.18);
    padding:0; z-index:9999;
    max-height:calc(100vh - 40px); overflow-y:auto;
}
/* 显示完全交给 CSS 悬停：即使页面 JS 出错，二级菜单也能正常弹出（JS 只补位置） */
.nav-group:hover > .flyout{ display:block; }
.flyout-title{
    padding:10px 16px 9px; font-size:14px; color:#334155; font-weight:700;
    border-bottom:1px solid #eef2f7; margin-bottom:2px;
}
.flyout a{
    display:block; color:#334155; text-decoration:none;
}

/* 二级菜单项行：文字 + 报表标签 */
.flyout-row{ display:flex; align-items:center; position:relative; padding:0 12px; }
.flyout-row .flyout-link{
    flex:1; padding:8px 4px; font-size:14px; color:#334155;
    transition:background .13s;
}
/* 悬停：浅灰背景，不改变文字颜色 */
.flyout-row:hover{ background:#f2f3f5; }
.flyout-row:hover .flyout-link{ color:#334155; }
/* 当前选中：橙色/红色文字，无背景 */
.flyout-row.active .flyout-link{ color:#ff6305; font-weight:600; }
.flyout-row.active:hover{ background:#f2f3f5; }
.flyout-row.active:hover .flyout-link{ color:#ff6305; }

/* 分组标题：居中加粗黑色，上下分隔线 */
.flyout-group-title{
    position:relative; text-align:center; margin:10px 12px 6px;
    font-size:13px; font-weight:700; color:#1e293b;
}
.flyout-group-title::before,
.flyout-group-title::after{
    content:''; position:absolute; top:50%; width:34%; height:1px;
    background:#e5e7eb;
}
.flyout-group-title::before{ left:0; }
.flyout-group-title::after{ right:0; }
.flyout-group-title span{ position:relative; background:#fff; padding:0 10px; }

/* 绿色「报表」小标签 */
.flyout a.flyout-report{
    display:inline-flex; align-items:center; height:18px; padding:0 8px;
    background:#00b83f; color:#fff; font-size:12px; border-radius:3px;
    line-height:1; white-space:nowrap; transition:background .13s;
    margin-left:6px; font-weight:400;
}
.flyout a.flyout-report:hover{ background:#009935; color:#fff; }
.flyout-row.active .flyout-report{ background:#00b83f; }

.content{ flex:1; padding:24px 28px; min-width:0; }

/* ---------- 弹窗（修改密码等） ---------- */
.modal-mask{
    display:none; position:fixed; inset:0; background:rgba(15,23,42,.45);
    z-index:10002; align-items:center; justify-content:center;
}
.modal-mask.show{ display:flex; }
.modal-box{
    width:420px; max-width:calc(100vw - 40px); background:#fff; border-radius:12px;
    box-shadow:0 20px 50px rgba(15,23,42,.25); overflow:hidden;
    animation:modalIn .18s ease;
}
@keyframes modalIn{ from{ transform:translateY(-14px); opacity:0; } to{ transform:none; opacity:1; } }
.modal-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 20px; border-bottom:1px solid #eef2f7;
}
.modal-head h3{ font-size:16px; font-weight:600; color:#1e293b; }
.modal-close{
    border:none; background:none; font-size:22px; line-height:1; color:#94a3b8;
    cursor:pointer; padding:0 2px; transition:.15s;
}
.modal-close:hover{ color:#475569; }
.modal-body{ padding:20px; }
.modal-form{ display:flex; flex-direction:column; gap:14px; }
.modal-row{ display:flex; flex-direction:column; gap:6px; }
.modal-row label{ font-size:14px; color:#475569; }
.modal-row input{
    padding:9px 12px; border:1px solid var(--border); border-radius:8px;
    font-size:14px; outline:none; transition:.15s; font-family:inherit;
}
.modal-row input:focus{ border-color:#1e5fff; box-shadow:0 0 0 3px rgba(30,95,255,.1); }
.modal-msg{ font-size:14px; min-height:18px; }
.modal-msg.ok{ color:#16a34a; }
.modal-msg.err{ color:#dc2626; }
.modal-foot{
    display:flex; justify-content:flex-end; gap:10px;
    padding:14px 20px; border-top:1px solid #eef2f7; background:#fafbfd;
}

/* ---------- 占位页（页面建设中） ---------- */
.building-box{ display:flex; flex-direction:column; align-items:center; justify-content:center; padding:70px 20px; }
.building-icon{
    width:78px; height:78px; border-radius:20px; background:#eff6ff; color:#3b7bff;
    display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.building-title{ font-size:19px; font-weight:700; color:#1e293b; margin-bottom:7px; }
.building-sub{ font-size:14.5px; color:#64748b; margin-bottom:24px; }
.building-actions{ display:flex; gap:12px; }

/* ---------- 页头 ---------- */
.page-head{ margin-bottom:20px; }
.page-head-row{ display:flex; justify-content:space-between; align-items:flex-end; }
.page-title{ font-size:20px; font-weight:600; color:var(--text); }
.page-sub{ font-size:14px; color:var(--text-2); margin-top:2px; }

/* ---------- 通用按钮 ---------- */
.btn{
    display:inline-flex; align-items:center; gap:6px;
    padding:8px 16px; border-radius:8px; font-size:14px; font-weight:500;
    border:none; cursor:pointer; transition:all .18s; white-space:nowrap;
}
.btn-primary{ background:var(--primary); color:#fff; }
.btn-primary:hover{ background:var(--primary-dark); transform:translateY(-1px); box-shadow:0 4px 12px rgba(22,163,74,.3); }
.btn-search{ background:var(--blue); color:#fff; }
.btn-search:hover{ background:#1d4ed8; }
.btn-ghost{ background:#fff; color:var(--text-2); border:1px solid var(--border); }
.btn-ghost:hover{ background:#f8fafc; color:var(--text); }

/* ---------- 面板 ---------- */
.panel{
    background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow);
    margin-bottom:20px; border:1px solid #eef2f6;
}
.panel-body{ padding:20px 24px; }
.panel-head{ display:flex; align-items:center; justify-content:space-between; padding:16px 24px; border-bottom:1px solid var(--border); }
.panel-head h3{ font-size:15.5px; font-weight:600; }
.panel-sub{ font-size:13px; color:var(--text-2); }
.dashboard-row{ display:flex; gap:20px; align-items:stretch; }
.panel-flex{ flex:1; }
.panel-side{ width:300px; flex-shrink:0; }

/* ---------- 数据卡片 ---------- */
.stat-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:20px; }
.stat-card{
    border-radius:var(--radius); padding:20px 22px; color:#fff;
    display:flex; align-items:center; gap:16px; box-shadow:0 6px 18px rgba(15,23,42,.08);
    position:relative; overflow:hidden;
}
.stat-card::after{ content:""; position:absolute; right:-20px; top:-20px; width:90px; height:90px; border-radius:50%; background:rgba(255,255,255,.12); }
.stat-blue{ background:linear-gradient(135deg,#2563eb,#1e40af); }
.stat-green{ background:linear-gradient(135deg,#16a34a,#15803d); }
.stat-orange{ background:linear-gradient(135deg,#f97316,#ea580c); }
.stat-purple{ background:linear-gradient(135deg,#7c3aed,#6d28d9); }
.stat-icon{ width:54px; height:54px; border-radius:12px; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.stat-label{ font-size:14px; opacity:.9; }
.stat-value{ font-size:26px; font-weight:700; margin-top:2px; }
.stat-unit{ font-size:14px; font-weight:400; }

/* ---------- 小统计 ---------- */
.mini-stat{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px dashed var(--border); }
.mini-stat:last-of-type{ border-bottom:none; }
.mini-label{ color:var(--text-2); font-size:14px; }
.mini-value{ font-size:22px; font-weight:700; color:var(--text); }
.mini-unit{ font-size:14px; font-weight:400; color:var(--text-2); }
.mini-warn .mini-value{ color:var(--orange); }
.warn-list{ margin-top:16px; }
.warn-title{ font-size:14px; color:var(--text-2); margin-bottom:10px; font-weight:600; }
.warn-item{ display:flex; justify-content:space-between; padding:8px 10px; background:#fff7ed; border-radius:6px; margin-bottom:6px; font-size:14px; }
.warn-name{ color:var(--text); }
.warn-stock{ color:var(--orange); font-weight:600; }
.warn-empty{ font-size:14px; color:var(--text-2); padding:8px 0; }

/* ---------- 表格 ---------- */
.table-wrap{ overflow-x:auto; margin-top:4px; }
.data-table{ width:100%; border-collapse:collapse; font-size:14.5px; }
.data-table thead th{
    background:#f8fafc; color:var(--text-2); font-weight:600; text-align:left;
    padding:12px 14px; border-bottom:2px solid var(--border); white-space:nowrap;
}
.data-table tbody td{ padding:12px 14px; border-bottom:1px solid #f1f5f9; }
.data-table tbody tr:hover{ background:#f8fafc; }
.data-table tfoot td{ padding:12px 14px; border-top:2px solid var(--border); font-weight:600; background:#f8fafc; }
.ta-r{ text-align:right; } .ta-c{ text-align:center; }
.strong{ font-weight:600; }
.price{ color:var(--blue); font-weight:600; }
.profit{ color:var(--primary); font-weight:700; }
.stock-ok{ color:var(--primary); font-weight:600; }
.stock-warn{ color:var(--orange); font-weight:700; }
.empty-row{ text-align:center; color:var(--text-2); padding:36px 0 !important; }
.empty-row-static{ display:none; }
.empty-row-static.show{ display:table-row; }

/* 表格内操作按钮 */
.btn-link{ font-size:14px; padding:4px 10px; border-radius:6px; display:inline-block; margin:0 2px; }
.btn-edit{ background:#eff6ff; color:var(--blue); }
.btn-edit:hover{ background:#dbeafe; }
.btn-del{ background:#fef2f2; color:#dc2626; }
.btn-del:hover{ background:#fee2e2; }

/* 徽章 */
.badge{ font-size:13px; padding:3px 10px; border-radius:20px; }
.badge-ok{ background:#dcfce7; color:#15803d; }
.badge-warn{ background:#ffedd5; color:#c2410c; }

/* ---------- 筛选栏 ---------- */
.filter-bar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.filter-input,.filter-date{ padding:9px 14px; border:1px solid var(--border); border-radius:8px; font-size:14px; width:240px; outline:none; transition:.15s; }
.filter-input:focus,.filter-date:focus{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(37,99,235,.1); }
.filter-label{ font-size:14px; color:var(--text-2); }
.filter-sep{ color:var(--text-2); }

/* ---------- 分页 ---------- */
.pagination{ display:flex; justify-content:flex-end; align-items:center; gap:6px; margin-top:16px; flex-wrap:wrap; }
.page-btn{ padding:6px 12px; border:1px solid var(--border); border-radius:6px; background:#fff; color:var(--text-2); font-size:14px; transition:.15s; }
.page-btn:hover{ border-color:var(--blue); color:var(--blue); }
.page-btn.cur{ background:var(--blue); color:#fff; border-color:var(--blue); }
.page-info{ color:var(--text-2); font-size:14px; margin-left:10px; }

/* ---------- 表单 ---------- */
.form-grid{ max-width:860px; }
.form-row{ display:flex; gap:20px; margin-bottom:18px; }
.form-col{ flex:1; }
.form-col-2{ flex:2; }
.form-row label{ display:block; font-size:14.5px; color:var(--text-2); margin-bottom:6px; font-weight:500; }
.req{ color:#dc2626; }
.form-row input,.form-row select,.form-col input,.form-col select{
    width:100%; padding:9px 12px; border:1px solid var(--border); border-radius:8px; font-size:14px; outline:none; transition:.15s; background:#fff;
}
.form-row input:focus,.form-row select:focus,.form-col input:focus,.form-col select:focus{
    border-color:var(--blue); box-shadow:0 0 0 3px rgba(37,99,235,.1);
}
.form-actions{ display:flex; gap:12px; margin-top:24px; padding-top:18px; border-top:1px solid var(--border); }

/* ---------- 销售开单 ---------- */
.sale-add{ background:#f8fafc; border-radius:8px; padding:14px 16px; margin:18px 0; }
.sale-add-head{ display:flex; align-items:center; gap:14px; }
.sale-add-head label{ font-size:14px; font-weight:600; color:var(--text); white-space:nowrap; }
.prod-search{ position:relative; flex:1; }
.prod-search input{ width:100%; padding:9px 14px; border:1px solid var(--border); border-radius:8px; font-size:14px; outline:none; background:#fff; }
.prod-list{
    position:absolute; top:calc(100% + 4px); left:0; right:0; background:#fff;
    border:1px solid var(--border); border-radius:8px; box-shadow:0 8px 20px rgba(0,0,0,.1);
    max-height:260px; overflow-y:auto; z-index:30;
}
.prod-option{ padding:10px 14px; border-bottom:1px solid #f1f5f9; cursor:pointer; display:flex; justify-content:space-between; }
.prod-option:last-child{ border-bottom:none; }
.prod-option:hover{ background:#eff6ff; }
.prod-opt-name{ font-weight:500; }
.prod-opt-meta{ color:var(--text-2); font-size:13px; }
.prod-opt-price{ color:var(--blue); font-weight:600; }
.prod-opt-stock{ color:var(--primary); }

.sale-table input.qty-input{ width:90px; padding:6px 10px; border:1px solid var(--border); border-radius:6px; text-align:center; }
.sale-table .row-del{ color:#dc2626; font-size:14px; padding:4px 10px; border-radius:6px; background:#fef2f2; }
.sale-table .row-del:hover{ background:#fee2e2; }
.tfoot-label{ text-align:right; font-weight:600; color:var(--text-2); }
.tfoot-total{ font-weight:700; font-size:15px; color:var(--text); }
.report-table tfoot td{ font-size:14px; }

/* ---------- 登录页 ---------- */
.login-body{
    min-height:100vh; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,#1e3a5f 0%,#0f172a 100%);
    position:relative; overflow:hidden;
}
.login-body::before{
    content:""; position:absolute; width:600px; height:600px; border-radius:50%;
    background:radial-gradient(circle,rgba(37,99,235,.25),transparent 60%);
    top:-200px; right:-100px;
}
.login-body::after{
    content:""; position:absolute; width:500px; height:500px; border-radius:50%;
    background:radial-gradient(circle,rgba(22,163,74,.18),transparent 60%);
    bottom:-150px; left:-100px;
}
.login-wrap{ position:relative; z-index:2; width:100%; max-width:400px; padding:0 20px; }
.login-card{
    background:rgba(255,255,255,.98); border-radius:16px; padding:40px 36px;
    box-shadow:0 20px 60px rgba(0,0,0,.25); backdrop-filter:blur(10px);
}
.login-header{ text-align:center; margin-bottom:28px; }
.login-logo{
    width:64px; height:64px; margin:0 auto 14px; border-radius:16px;
    background:linear-gradient(135deg,#2563eb,#1e3a5f);
    display:flex; align-items:center; justify-content:center; color:#fff;
    box-shadow:0 8px 20px rgba(37,99,235,.4);
}
.login-header h1{ font-size:22px; color:var(--text); margin-bottom:4px; }
.login-header p{ font-size:13px; color:var(--text-2); letter-spacing:1px; }
.login-error{
    background:#fef2f2; border:1px solid #fecaca; color:#dc2626; padding:10px 14px;
    border-radius:8px; font-size:14px; margin-bottom:16px; display:flex; align-items:center; gap:8px;
}
.login-form .form-group{ margin-bottom:18px; }
.login-form label{ display:block; font-size:14.5px; color:var(--text-2); margin-bottom:6px; }
.login-form input{
    width:100%; padding:11px 14px; border:1px solid var(--border); border-radius:8px; font-size:14px; outline:none; transition:.15s;
}
.login-form input:focus{ border-color:var(--blue); box-shadow:0 0 0 3px rgba(37,99,235,.1); }
.btn-login{
    width:100%; padding:12px; background:linear-gradient(135deg,#16a34a,#15803d); color:#fff;
    border:none; border-radius:8px; font-size:15px; font-weight:600; cursor:pointer; transition:.18s; letter-spacing:4px;
}
.btn-login:hover{ transform:translateY(-1px); box-shadow:0 8px 20px rgba(22,163,74,.4); }
.login-tip{ text-align:center; margin-top:20px; font-size:13px; color:var(--text-2); }

/* ---------- 提示弹层 ---------- */
.toast{
    position:fixed; top:24px; left:50%; transform:translateX(-50%);
    background:#fff; border-radius:10px; box-shadow:0 8px 30px rgba(0,0,0,.18);
    padding:16px 22px; display:flex; align-items:center; gap:10px; z-index:9999;
    border-left:4px solid var(--primary); animation:slideIn .25s; min-width:280px;
}
.toast.err{ border-left-color:#dc2626; }
.toast-icon{ width:26px; height:26px; border-radius:50%; background:#dcfce7; color:var(--primary); display:flex; align-items:center; justify-content:center; font-weight:bold; }
.toast.err .toast-icon{ background:#fee2e2; color:#dc2626; }
@keyframes slideIn{ from{ opacity:0; transform:translateX(-50%) translateY(-20px); } to{ opacity:1; transform:translateX(-50%) translateY(0); } }

/* ---------- 响应式 ---------- */
@media (max-width:1100px){
    .stat-cards{ grid-template-columns:repeat(2,1fr); }
    .dashboard-row{ flex-direction:column; }
    .panel-side{ width:100%; }
}
@media (max-width:900px){
    .top-link .top-txt{ display:none; }
    .top-link{ padding:7px 9px; }
    .expire-badge{ display:none; }
    .merchant-btn{ max-width:130px; }
}
@media (max-width:760px){
    .sidebar{ width:56px; }
    .nav-item span{ display:none; }
    .nav-item{ padding:13px 0; }
    .stat-cards{ grid-template-columns:1fr; }
    .form-row{ flex-direction:column; gap:0; }
    .content{ padding:16px 14px; }
    .brand-name{ display:none; }
}

/* ============================================================
   对齐企云乐：表格字号 / 行内按钮
   背景：layui.css 自带 .layui-table-body td,.layui-table-body,tr{font-size:12px}
        把表体压成 12px；企云乐用自己的内联样式覆盖成 14px，金衣此前没做这个覆盖。
        本文件在 <head> 加载、layui.css 在正文里加载（后者更靠后），故这里必须加 !important。
   ============================================================ */
.layui-table-body td, .layui-table-body, .layui-table-body tr,
.layui-table-main td, .layui-table-main tr{ font-size:14px !important; }
.layui-table-view .layui-table-cell{ font-size:14px !important; font-weight:normal; }
.layui-table-header td, .layui-table-header th{ font-size:14px !important; }
/* 行内操作按钮（如「库存详情」）：layui-btn-xs 默认 12px/22px，放大到 14px */
.layui-table-cell .layui-btn, .layui-table-cell .layui-btn-xs, .layui-table-cell .layui-btn-sm{
    font-size:14px !important; height:auto !important; line-height:1.7 !important; padding:4px 10px !important;
}
.layui-table-page{ font-size:14px !important; }
.layui-laypage a, .layui-laypage span, .layui-laypage em, .layui-laypage input{ font-size:14px !important; }
/* 明细表等自绘表格 */
.data-table{ font-size:14px; }
.data-table th, .data-table td{ font-size:14px; }
