/* 机机乐 全局样式 */
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:"Microsoft YaHei","PingFang SC",sans-serif; font-size:13px; color:#333; background:#f0f2f5; }
a { text-decoration:none; color:#1890ff; }
input,select,button { font-family:inherit; font-size:13px; }

/* ---- 按钮 ---- */
.btn { display:inline-block; padding:5px 14px; border:1px solid #d9d9d9; background:#fff; color:#333;
  border-radius:3px; cursor:pointer; line-height:1.5; white-space:nowrap; }
.btn:hover { color:#1890ff; border-color:#1890ff; }
.btn-primary { background:#1890ff; border-color:#1890ff; color:#fff; }
.btn-primary:hover { background:#40a9ff; color:#fff; }
.btn-danger { background:#ff4d4f; border-color:#ff4d4f; color:#fff; }
.btn-danger:hover { background:#ff7875; color:#fff; }
.btn-success { background:#52c41a; border-color:#52c41a; color:#fff; }
.btn-success:hover { background:#73d13d; color:#fff; }
.btn-warn { background:#faad14; border-color:#faad14; color:#fff; }
.btn-sm { padding:2px 8px; font-size:12px; }
.btn[disabled] { opacity:.5; cursor:not-allowed; }

/* ---- 表单 ---- */
.input, select.input { padding:5px 10px; border:1px solid #d9d9d9; border-radius:3px; height:30px; outline:none; }
.input:focus { border-color:#1890ff; }
.form-row { display:flex; align-items:center; margin-bottom:12px; }
.form-row label { width:80px; text-align:right; margin-right:10px; color:#666; flex-shrink:0; }
.form-row .input { flex:1; }

/* ---- 表格 ---- */
.table { width:100%; border-collapse:collapse; background:#fff; }
.table th, .table td { border:1px solid #e8e8e8; padding:8px 10px; text-align:left; white-space:nowrap; }
.table th { background:#fafafa; font-weight:600; color:#555; }
.table tr:hover td { background:#f5f9ff; }

/* ---- 面板 ---- */
.panel { background:#fff; border-radius:4px; padding:15px; margin-bottom:12px; box-shadow:0 1px 2px rgba(0,0,0,.05); }
.panel-title { font-size:14px; font-weight:600; margin-bottom:12px; padding-left:8px; border-left:3px solid #1890ff; }

/* ---- 弹窗 ---- */
.modal-mask { position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:100; display:none; }
.modal { position:fixed; z-index:101; background:#fff; border-radius:5px; display:none;
  top:50%; left:50%; transform:translate(-50%,-50%); min-width:360px; max-width:90vw; max-height:88vh; overflow:auto; }
.modal-head { padding:12px 16px; border-bottom:1px solid #eee; font-weight:600; display:flex; justify-content:space-between; }
.modal-head .x { cursor:pointer; color:#999; font-size:16px; }
.modal-body { padding:16px; }
.modal-foot { padding:12px 16px; border-top:1px solid #eee; text-align:right; }
.modal-foot .btn { margin-left:8px; }

/* ---- 消息提示 ---- */
.toast { position:fixed; top:60px; left:50%; transform:translateX(-50%); z-index:999;
  padding:8px 20px; border-radius:4px; color:#fff; display:none; box-shadow:0 2px 8px rgba(0,0,0,.2); }
.toast.ok { background:#52c41a; } .toast.err { background:#ff4d4f; }

/* ---- 标签 ---- */
.tag { display:inline-block; padding:1px 6px; border-radius:3px; font-size:12px; color:#fff; }
.tag-green{background:#52c41a;} .tag-blue{background:#1890ff;} .tag-red{background:#ff4d4f;}
.tag-orange{background:#fa8c16;} .tag-gray{background:#999;} .tag-yellow{background:#faad14;}

/* ---- 页签 ---- */
.tabs { display:flex; border-bottom:1px solid #e8e8e8; margin-bottom:15px; }
.tabs .tab { padding:8px 18px; cursor:pointer; border-bottom:2px solid transparent; color:#666; }
.tabs .tab.on { color:#1890ff; border-bottom-color:#1890ff; font-weight:600; }

.toolbar { margin-bottom:12px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.mt10{margin-top:10px;} .fr{float:right;} .tc{text-align:center;}
