/* ============================================================
   dsn-controls.css — 三类控件全站统一层（按钮 / 输入框 / 选择框）
   实测依据 07-Buttons.svg（1920 画布）：
   - 按钮 185x50 r5；填充态文字白色；线框态金字（hover 提亮 #FFB000）
   - 禁用：填充 #B7B7B7 底白字；线框 #B7B7B7 字灰描边
   - 选择器小型下拉 61x29 r4
   加载范围：Admin/User 后台全部页 + Home/Pay/User 登录三页（仅本文件+tokens）
   红线：本文件只允许出现按钮/输入框/选择框相关选择器，禁止波及布局容器
   ============================================================ */

/* ================= 按钮 ================= */

.btn,
.layui-btn {
  border-radius: var(--dsn-radius-btn);
  font-size: var(--dsn-fs-body);
  font-weight: 500;
  transition: background-color 0.15s ease, color 0.15s ease,
    border-color 0.15s ease, box-shadow 0.15s ease;
  box-shadow: none;
  text-shadow: none;
  background-image: none;
}

/* —— 金色主按钮（查询/提交/保存等主操作，用户拍板统一金色） —— */
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.layui-btn:not(.layui-btn-primary):not(.layui-btn-danger):not(.layui-btn-disabled) {
  background-color: var(--dsn-gold);
  border: 1px solid var(--dsn-gold);
  color: var(--dsn-text-1);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-success:hover,
.btn-success:focus,
.btn-info:hover,
.btn-info:focus,
.btn-warning:hover,
.btn-warning:focus,
.layui-btn:not(.layui-btn-primary):not(.layui-btn-danger):not(.layui-btn-disabled):hover {
  background-color: var(--dsn-gold-bright);
  border-color: var(--dsn-gold-bright);
  color: var(--dsn-text-1);
}

.btn-primary:active,
.btn-primary.active,
.btn-success:active,
.btn-success.active,
.btn-info:active,
.btn-info.active,
.btn-warning:active,
.btn-warning.active,
.layui-btn:not(.layui-btn-primary):not(.layui-btn-danger):not(.layui-btn-disabled):active {
  background-color: var(--dsn-gold-press);
  border-color: var(--dsn-gold-press);
  color: var(--dsn-text-1);
}

/* —— 次按钮（深底白字线框；hover 描边与文字转金） —— */
.btn-default,
.btn-white,
.btn-link,
.layui-btn-primary {
  background-color: transparent;
  border: 1px solid var(--dsn-border);
  color: var(--dsn-text-1);
}

.btn-default:hover,
.btn-default:focus,
.btn-white:hover,
.btn-white:focus,
.btn-link:hover,
.layui-btn-primary:hover {
  background-color: transparent;
  border-color: var(--dsn-gold);
  color: var(--dsn-gold);
}

.btn-default:active,
.btn-default.active,
.btn-white:active,
.layui-btn-primary:active {
  background-color: transparent;
  border-color: var(--dsn-gold-bright);
  color: var(--dsn-gold-bright);
}

/* —— 危险按钮（设计稿无红，延伸：粉描边粉字） —— */
.btn-danger,
.layui-btn-danger {
  background-color: transparent;
  border: 1px solid var(--dsn-danger);
  color: var(--dsn-danger);
}

.btn-danger:hover,
.btn-danger:focus,
.layui-btn-danger:hover {
  background-color: var(--dsn-danger);
  border-color: var(--dsn-danger);
  color: var(--dsn-text-1);
}

/* —— 禁用态（07-Buttons 实测：#B7B7B7 底白字） —— */
.btn.disabled,
.btn[disabled],
.btn:disabled,
.layui-btn-disabled,
.layui-btn-disabled:hover,
.layui-btn-disabled:active {
  background-color: var(--dsn-text-2);
  border-color: var(--dsn-text-2);
  color: var(--dsn-text-1);
  opacity: 1;
  cursor: not-allowed;
}

/* 线框禁用：灰描边灰字 */
.btn-default.disabled,
.btn-default[disabled],
.btn-white.disabled,
.btn-white[disabled],
.layui-btn-primary.layui-btn-disabled {
  background-color: transparent;
  border-color: var(--dsn-border);
  color: var(--dsn-text-2);
}

/* 按钮内图标随文字色 */
.btn .fa,
.btn [class*='layui-icon'],
.layui-btn .fa,
.layui-btn [class*='layui-icon'] {
  color: inherit;
}

/* ================= 输入框 ================= */

.form-control,
.layui-input,
.layui-textarea,
textarea,
input[type='text'],
input[type='password'],
input[type='number'],
input[type='email'],
input[type='tel'],
input[type='search'],
input[type='date'],
input[type='datetime-local'] {
  background-color: var(--dsn-bg-raised);
  border: 1px solid var(--dsn-border);
  border-radius: var(--dsn-radius-input);
  color: var(--dsn-text-1);
  font-size: var(--dsn-fs-body);
  box-shadow: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.form-control::placeholder,
.layui-input::placeholder,
.layui-textarea::placeholder,
textarea::placeholder,
input::placeholder {
  color: var(--dsn-text-3);
  opacity: 1;
}

.form-control:focus,
.layui-input:focus,
.layui-textarea:focus,
textarea:focus,
input[type='text']:focus,
input[type='password']:focus,
input[type='number']:focus,
input[type='email']:focus,
input[type='tel']:focus,
input[type='search']:focus,
input[type='date']:focus,
input[type='datetime-local']:focus {
  background-color: var(--dsn-bg-raised);
  border-color: var(--dsn-gold) !important;
  box-shadow: var(--dsn-focus-ring);
  outline: none;
  color: var(--dsn-text-1);
}

.form-control[disabled],
.form-control[readonly],
.layui-input[disabled],
.layui-input[readonly],
.layui-disabled,
textarea[disabled],
input[disabled] {
  background-color: var(--dsn-bg-surface);
  border-color: var(--dsn-divider);
  color: var(--dsn-text-disabled);
  cursor: not-allowed;
}

/* ================= 选择框 ================= */

select,
select.form-control,
.layui-select {
  background-color: var(--dsn-bg-raised);
  border: 1px solid var(--dsn-border);
  border-radius: var(--dsn-radius-input);
  color: var(--dsn-text-1);
  font-size: var(--dsn-fs-body);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23B7B7B7' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 28px;
}

select:focus,
select.form-control:focus {
  border-color: var(--dsn-gold);
  box-shadow: var(--dsn-focus-ring);
  outline: none;
}

select[disabled] {
  background-color: var(--dsn-bg-surface);
  color: var(--dsn-text-disabled);
  cursor: not-allowed;
}

select option {
  background-color: var(--dsn-bg-raised);
  color: var(--dsn-text-1);
}

/* select2 单选框体（下拉面板深色化在 dsn-admin.css d6） */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background-color: var(--dsn-bg-raised);
  border: 1px solid var(--dsn-border);
  border-radius: var(--dsn-radius-input);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--dsn-text-1);
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--dsn-gold);
  box-shadow: var(--dsn-focus-ring);
}
