/* =========================================================
   春森菌业劳模创新工作室 — 绿色亮色主题
   主色：#2bb673  浅色：#e8f8f1  强调：#f5a623
   ========================================================= */
:root {
  --brand:        #2bb673;
  --brand-2:      #25a164;
  --brand-3:      #1d8a55;
  --brand-light:  #e8f8f1;
  --brand-soft:   #f4fbf7;
  --accent:       #f5a623;
  --accent-2:     #e89612;
  --info:         #3aa7ff;
  --warn:         #f0a23a;
  --danger:       #ef4f4f;
  --success:      #2bb673;
  --ink:          #1f2d3d;
  --ink-2:        #4a5a6c;
  --muted:        #8a98a8;
  --line:         #e3ece6;
  --line-2:       #d4e3d8;
  --bg:           #f4f9f6;
  --panel:        #ffffff;
  --shadow:       0 2px 12px rgba(43,182,115,.08);
  --radius:       10px;
  --radius-sm:    6px;
  --sidebar-w:    204px;
  --topbar-h:     60px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { font-family: "Microsoft YaHei","PingFang SC",system-ui,sans-serif; color: var(--ink); background: var(--bg); line-height: 1.6; }
a { color: var(--brand-2); text-decoration: none; }
a:hover { color: var(--brand-3); }

/* 通用组件 */
.lm-card { background: var(--panel); border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px; margin-bottom: 16px; border: 1px solid var(--line); }
.lm-card-title { font-size: 15px; font-weight: 600; color: var(--ink); margin-bottom: 14px; display:flex; align-items:center; gap:8px; }
.lm-card-title::before { content:""; width:4px; height:14px; background: var(--brand); border-radius:2px; }

.lm-btn { display:inline-block; padding: 7px 16px; background: var(--brand); color:#fff; border:0; border-radius: var(--radius-sm); cursor: pointer; font-size: 13.5px; transition: all .2s; }
.lm-btn:hover { background: var(--brand-2); }
.lm-btn-outline { background:#fff; color: var(--brand-2); border: 1px solid var(--brand); }
.lm-btn-outline:hover { background: var(--brand-light); }
.lm-btn-warn { background: var(--accent); }
.lm-btn-warn:hover { background: var(--accent-2); }
.lm-btn-danger { background: var(--danger); }
.lm-btn-danger:hover { background: #d93838; }
.lm-btn-sm { padding: 4px 10px; font-size: 12px; }

.lm-input, .lm-select, .lm-textarea {
  width: 100%; padding: 7px 10px; border: 1px solid var(--line-2); border-radius: var(--radius-sm); background:#fff; color: var(--ink); font-size: 13.5px; transition: border-color .2s;
}
.lm-input:focus, .lm-select:focus, .lm-textarea:focus { outline: 0; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(43,182,115,.12); }
.lm-textarea { min-height: 80px; resize: vertical; }
.lm-form-row { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.lm-form-row > .lm-field { flex: 1; min-width: 220px; }
.lm-field label { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 5px; }
.lm-field label .req { color: var(--danger); }

.lm-table { width: 100%; border-collapse: collapse; background:#fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.lm-table th { background: var(--brand-light); color: var(--ink); text-align: left; padding: 11px 12px; font-size: 13px; font-weight: 600; border-bottom: 2px solid var(--brand-soft); }
.lm-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); font-size: 13px; color: var(--ink-2); }
.lm-table tr:hover td { background: var(--brand-soft); }
.lm-table .op a { margin-right: 8px; }

.lm-tag { display: inline-block; padding: 2px 8px; border-radius: 12px; font-size: 12px; line-height: 1.5; }
.lm-tag-green { background: var(--brand-light); color: var(--brand-3); }
.lm-tag-amber { background: #fff5e6; color: var(--accent-2); }
.lm-tag-red   { background: #ffecec; color: var(--danger); }
.lm-tag-blue  { background: #e6f3ff; color: #1976d2; }
.lm-tag-gray  { background: #eef1f4; color: var(--muted); }

.lm-pager { display:flex; gap:6px; align-items:center; justify-content:flex-end; padding: 14px 0; }
.lm-pager a, .lm-pager span { padding: 4px 10px; border-radius: 4px; background:#fff; border: 1px solid var(--line); color: var(--ink-2); font-size: 12.5px; }
.lm-pager .current { background: var(--brand); color:#fff; border-color: var(--brand); }

.lm-stat-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.lm-stat { background: linear-gradient(135deg, #fff, var(--brand-soft)); border-radius: var(--radius); padding: 18px 20px; border: 1px solid var(--line); position: relative; overflow: hidden; }
.lm-stat::before { content:""; position:absolute; right:-12px; top:-12px; width:60px; height:60px; background: var(--brand-light); border-radius: 50%; opacity:.7; }
.lm-stat .num { font-size: 26px; font-weight: 700; color: var(--brand-3); }
.lm-stat .lbl { font-size: 12.5px; color: var(--muted); margin-top: 4px; }
.lm-stat .ico { position: absolute; right: 14px; top: 14px; font-size: 20px; opacity: .5; }

.lm-chip { display: inline-flex; align-items:center; padding: 4px 12px; background: var(--brand-light); color: var(--brand-3); border-radius: 20px; font-size: 12.5px; margin-left: 8px; }
.lm-chip-danger { background:#ffecec; color: var(--danger); }
.lm-chip:hover { background: var(--brand); color:#fff; }

.lm-toast-stack { position: fixed; right: 18px; top: 80px; z-index: 9999; display: flex; flex-direction: column; gap: 8px; }
.lm-toast { padding: 10px 18px; background: #fff; border-left: 4px solid var(--brand); border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,.1); min-width: 220px; font-size: 13.5px; }
.lm-toast-success { border-color: var(--brand); }
.lm-toast-error   { border-color: var(--danger); }
.lm-toast-warn    { border-color: var(--warn); }

.lm-bread { font-size: 12.5px; color: var(--muted); margin-bottom: 8px; }
.lm-bread a { color: var(--muted); }

.lm-empty { padding: 60px 20px; text-align:center; color: var(--muted); background:#fff; border-radius: var(--radius); border: 1px dashed var(--line-2); }
