:root {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', sans-serif;
  color: #303133;
  background: #f0f2f5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  /* Theme colors */
  --color-primary: #409eff;
  --color-primary-dark: #243447;
  --color-sidebar-bg: linear-gradient(180deg, #243447 0%, #1b2735 100%);
  --color-bg: #f0f2f5;
  --color-card-bg: #ffffff;
  --color-border: #e8edf2;
  --color-text-primary: #1a2535;
  --color-text-secondary: #6b7a8d;
  --color-text-muted: #a8b4c0;

  /* Shadows */
  --shadow-sm: 0 1px 4px rgba(36, 52, 71, 0.06);
  --shadow-md: 0 4px 16px rgba(36, 52, 71, 0.08);
  --shadow-lg: 0 8px 32px rgba(36, 52, 71, 0.12);

  /* Radius */
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;

  /* Select width */
  --app-select-width: 220px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body,
#app {
  width: 100%;
  min-height: 100%;
  margin: 0;
}

body {
  min-height: 100vh;
  background: var(--color-bg);
  color: var(--color-text-primary);
}

a {
  color: inherit;
}

/* ---- Card enhancements ---- */
.el-card {
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-sm) !important;
  transition: box-shadow 0.2s ease !important;
}

.el-card:hover {
  box-shadow: var(--shadow-md) !important;
}

/* ---- Button transitions ---- */
.el-button {
  transition: all 0.18s ease !important;
  border-radius: var(--radius-sm) !important;
}

/* ---- Table enhancements ---- */
.el-table {
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.el-table th.el-table__cell {
  background-color: #f7f9fb !important;
  color: var(--color-text-secondary) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}

.el-table__row:hover > td.el-table__cell {
  background-color: #f5f8ff !important;
}

/* 操作列保持单行，并允许列宽按按钮内容增长 */
.el-table .action-column .cell {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  white-space: nowrap;
  min-width: max-content;
}

.el-table .action-column .cell > * {
  flex-shrink: 0;
}

/* ---- Input enhancements ---- */
.el-input__wrapper {
  border-radius: var(--radius-sm) !important;
  transition: box-shadow 0.18s ease !important;
}

/* ---- Tag styles ---- */
.el-tag {
  border-radius: 4px !important;
  font-weight: 500 !important;
}

/* ---- Table wrapper ---- */
.table-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table-wrapper > .el-table {
  min-width: 680px;
}

.table-wrapper.compact > .el-table {
  min-width: 560px;
}

/* ---- Search form ---- */
.search-form {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  margin-bottom: 20px;
  padding: 16px;
  background: #f7f9fb;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}

.search-form .el-form-item {
  margin-right: 12px;
  margin-bottom: 12px;
}

.search-form.is-mobile {
  padding: 12px;
}

.search-form .el-select,
.el-dialog__body .el-form-item .el-select,
.page > .el-card > .el-form:not(.search-form) .el-select,
.materials-page .el-form:not(.search-form) .el-select {
  width: var(--app-select-width) !important;
  max-width: 100%;
}

.el-table .el-select,
.el-dialog__body .el-table .el-select {
  width: 100% !important;
  max-width: none;
}

/* ---- Breadcrumb ---- */
.el-breadcrumb__item .el-breadcrumb__inner {
  color: var(--color-text-muted) !important;
  font-size: 12px !important;
}

/* ---- Pagination ---- */
.el-pagination {
  margin-top: 16px;
  justify-content: flex-end;
}

/* ---- Dialog ---- */
.el-dialog {
  border-radius: var(--radius-lg) !important;
}

.el-dialog__header {
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 16px !important;
}

/* ---- Scrollbar ---- */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: rgba(36, 52, 71, 0.15);
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: rgba(36, 52, 71, 0.3);
}

/* ---- Mobile responsive ---- */
@media (max-width: 768px) {
  .page,
  .crud-page,
  .materials-page,
  .dashboard,
  .cattle-detail-page {
    padding: 12px !important;
  }

  .search-form {
    display: block;
    margin-bottom: 12px;
    padding: 12px;
  }

  .search-form .el-form-item {
    display: flex;
    width: 100%;
    margin-right: 0;
    margin-bottom: 10px;
  }

  .search-form .el-form-item__content,
  .search-form .el-input,
  .search-form .el-select,
  .search-form .el-date-editor,
  .search-form .el-input-number {
    width: 100%;
  }

  .el-dialog__body .el-form-item .el-select,
  .page > .el-card > .el-form:not(.search-form) .el-select,
  .materials-page .el-form:not(.search-form) .el-select {
    width: 100% !important;
  }

  .table-wrapper > .el-table {
    min-width: 560px;
  }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html,
body,
#app {
  width: 100%;
  height: 100%;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
    sans-serif;
}
