/* es_market 全局样式（dcxin同款视觉） */
* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
:root {
  --main:#07C160; --main-d:#06a050; --bg:#f5f6f8; --card:#fff; --text:#1a1a1a; --sub:#888;
  --line:#ebedf0; --danger:#ee0a24; --warn:#ff976a; --blue:#1989fa;
  --sidebar:#14202e; --sidebar-on:#1f3044;
}
html[dir="rtl"] body { font-family:"UKIJ Tuz Tom","Noto Naskh Arabic","Segoe UI",sans-serif; }
body { font-family:-apple-system,"PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;
  background:var(--bg); color:var(--text); font-size:15px; }
a { text-decoration:none; color:inherit; }
button { cursor:pointer; border:none; background:none; font-size:inherit; font-family:inherit; }
input,select,textarea { font-size:15px; border:1px solid var(--line); border-radius:8px; padding:10px 12px;
  width:100%; background:#fff; outline:none; font-family:inherit; }
input:focus,select:focus { border-color:var(--main); }
.ltr-num { direction:ltr; unicode-bidi:embed; text-align:start; }
html[dir="rtl"] input, html[dir="rtl"] select, html[dir="rtl"] textarea { text-align:right; }
html[dir="rtl"] .ltr-num { text-align:right; }

.topbar { position:sticky; top:0; z-index:50; background:var(--main); color:#fff;
  display:flex; align-items:center; justify-content:space-between; padding:0 14px; height:48px; }
.topbar-title { font-weight:600; font-size:16px; }
.lang-btn { color:#fff; border:1px solid rgba(255,255,255,.6); border-radius:14px; padding:3px 12px; font-size:13px; }
.lang-btn:active { background:rgba(255,255,255,.2); }

.page { max-width:640px; margin:0 auto; padding:12px 12px 70px; }

.bottom-nav { position:fixed; bottom:0; left:0; right:0; z-index:50; background:#fff;
  border-top:1px solid var(--line); display:flex; max-width:640px; margin:0 auto; }
.bottom-nav a { flex:1; text-align:center; padding:6px 0 8px; color:var(--sub); font-size:12px; }
.bottom-nav a i { display:block; font-style:normal; font-size:20px; line-height:1.4; }
.bottom-nav a.on { color:var(--main); }

.search-bar { display:flex; gap:8px; margin-bottom:10px; }
.search-bar button { background:var(--main); color:#fff; border-radius:8px; padding:0 16px; }
.cat-scroll { display:flex; gap:8px; overflow-x:auto; padding-bottom:8px; scrollbar-width:none; }
.cat-chip { flex:0 0 auto; background:#fff; border-radius:16px; padding:6px 14px; font-size:13px; color:var(--sub); }
.cat-chip.on { background:var(--main); color:#fff; }

.goods-card { display:flex; background:var(--card); border-radius:12px; padding:10px; margin-bottom:10px; gap:10px; }
.goods-card img, .no-img { width:96px; height:96px; border-radius:8px; object-fit:cover; background:#eee; flex:0 0 auto; }
.g-info { flex:1; min-width:0; display:flex; flex-direction:column; }
.g-title { font-size:15px; line-height:1.35; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.g-meta { display:flex; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap; }
.g-price { color:var(--danger); font-weight:700; font-size:17px; }
.g-cat { font-size:12px; color:var(--sub); background:#f2f3f5; padding:2px 8px; border-radius:8px; }
.g-addr { font-size:12px; color:var(--sub); margin-top:auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.list-tip { text-align:center; color:var(--sub); padding:18px 0; font-size:13px; }

.form-card { background:var(--card); border-radius:12px; padding:16px; }
.form-title { font-size:18px; margin-bottom:14px; }
.form-card label { display:block; font-size:14px; margin:12px 0 6px; font-weight:500; }
.form-card small { color:var(--sub); font-weight:400; }
.code-row { display:flex; gap:8px; }
.code-row input { flex:1; }
.btn-plain { border:1px solid var(--main); color:var(--main); border-radius:8px; padding:0 14px; white-space:nowrap; height:44px; }
.btn-main { display:block; width:100%; background:var(--main); color:#fff; border-radius:24px;
  height:46px; line-height:46px; text-align:center; font-size:16px; margin-top:20px; }
.btn-main:active { background:var(--main-d); }
.btn-main:disabled { opacity:.5; }
.btn-main.half { width:48%; display:inline-block; margin-top:10px; }
.form-tip { color:var(--sub); font-size:12px; margin-top:12px; text-align:center; }
.row2 { display:flex; gap:10px; } .row2>div { flex:1; }
.row3 { display:flex; gap:8px; } .row3>input { flex:1; }
.fee-box { margin-top:8px; background:#fffbe8; color:#b26a00; border-radius:8px; padding:8px 10px; font-size:13px; }
.fee-box:empty { display:none; }

.up-row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.up-add { width:80px; height:80px; border:1px dashed #c8c9cc; border-radius:8px; display:flex;
  align-items:center; justify-content:center; font-size:28px; color:#c8c9cc; }
.up-item { width:80px; height:80px; position:relative; }
.up-item img { width:100%; height:100%; border-radius:8px; object-fit:cover; }
.up-del { position:absolute; top:-6px; inset-inline-end:-6px; background:var(--danger); color:#fff;
  border-radius:50%; width:20px; height:20px; line-height:20px; text-align:center; font-size:14px; }
.up-video { width:180px; border-radius:8px; }
.up-tip { color:var(--sub); }

.detail-card { background:var(--card); border-radius:12px; overflow:hidden; }
.d-imgs { display:flex; overflow-x:auto; }
.d-imgs img { width:100%; max-height:340px; object-fit:contain; background:#000; flex:0 0 100%; }
.d-video { width:100%; max-height:300px; background:#000; }
.d-body { padding:14px; }
.d-title { font-size:18px; font-weight:600; }
.d-price { color:var(--danger); font-size:22px; font-weight:700; margin-top:8px; }
.d-num { color:var(--sub); font-size:14px; font-weight:400; }
.d-meta { color:var(--sub); font-size:13px; margin-top:8px; }
.d-contact { padding:14px; border-top:1px solid var(--line); }
.c-row { display:flex; justify-content:space-between; align-items:center; padding:8px 0; font-size:15px; }
.c-row a { color:var(--blue); }
.lock-tip { background:#fffbe8; color:#b26a00; border-radius:8px; padding:8px 10px; font-size:12px; margin-top:8px; }
.c-btns { display:flex; justify-content:space-between; }

.my-head { display:flex; justify-content:space-between; align-items:center; background:var(--card); border-radius:12px; padding:16px; }
.sec-title { margin:16px 4px 10px; font-size:16px; }
.my-card { display:flex; background:var(--card); border-radius:12px; padding:10px; margin-bottom:10px; gap:10px; }
.my-card img, .my-card .no-img { width:80px; height:80px; border-radius:8px; object-fit:cover; }
.st { font-size:12px; padding:2px 8px; border-radius:8px; }
.st0 { background:#fff7e8; color:#ed6a0c; } .st1 { background:#e8fff3; color:var(--main); }
.st2 { background:#f2f3f5; color:var(--sub); } .st3 { background:#ffece8; color:var(--danger); }
.reject { font-size:12px; color:var(--danger); margin-top:6px; }
.reject a { color:var(--blue); }
.g-ops { display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.g-ops button { border:1px solid var(--line); border-radius:14px; padding:3px 12px; font-size:12px; }
.g-ops button.danger { color:var(--danger); border-color:#ffd6d6; }

#es-toast { position:fixed; top:40%; left:50%; transform:translate(-50%,-50%); background:rgba(0,0,0,.75);
  color:#fff; padding:12px 20px; border-radius:8px; z-index:999; font-size:14px; max-width:80%; }

/* ===== 后台布局（脚本4用） ===== */
.admin-wrap { display:flex; min-height:100vh; }
.sidebar { width:220px; background:var(--sidebar); color:#c9d1d9; flex:0 0 auto; transition:width .2s; overflow:hidden; }
.sidebar.collapsed { width:56px; }
.side-logo { height:52px; display:flex; align-items:center; padding:0 16px; color:#fff; font-weight:600; font-size:16px; white-space:nowrap; }
.menu-group > .menu-t { display:flex; align-items:center; justify-content:space-between; padding:12px 16px;
  cursor:pointer; white-space:nowrap; user-select:none; }
.menu-group > .menu-t:hover { background:var(--sidebar-on); color:#fff; }
.menu-arrow { transition:transform .2s; font-size:12px; }
.menu-group.open > .menu-t .menu-arrow { transform:rotate(90deg); }
html[dir="rtl"] .menu-arrow { transform:scaleX(-1); }
html[dir="rtl"] .menu-group.open > .menu-t .menu-arrow { transform:scaleX(-1) rotate(90deg); }
.menu-sub { display:none; }
.menu-group.open > .menu-sub { display:block; }
.menu-sub a { display:block; padding:10px 16px 10px 34px; color:#c9d1d9; white-space:nowrap; font-size:14px; }
html[dir="rtl"] .menu-sub a { padding:10px 34px 10px 16px; }
.menu-sub a:hover { background:var(--sidebar-on); color:#fff; }
.menu-sub a.on { background:var(--main); color:#fff; }
.sidebar.collapsed .menu-t span.t, .sidebar.collapsed .menu-sub, .sidebar.collapsed .menu-arrow { display:none; }
.main-col { flex:1; min-width:0; display:flex; flex-direction:column; }
.admin-top { height:52px; background:#fff; border-bottom:1px solid var(--line); display:flex;
  align-items:center; justify-content:space-between; padding:0 16px; position:sticky; top:0; z-index:20; }
.hamburger { font-size:20px; padding:4px 8px; }
.admin-body { padding:16px; }
.panel { background:#fff; border-radius:10px; padding:16px; margin-bottom:16px; }
.panel h3 { margin-bottom:12px; font-size:16px; }
table.tb { width:100%; border-collapse:collapse; font-size:14px; }
table.tb th, table.tb td { padding:10px 8px; border-bottom:1px solid var(--line); text-align:start; }
table.tb th { color:var(--sub); font-weight:500; background:#fafafa; }
.tb img { width:46px; height:46px; border-radius:6px; object-fit:cover; }
.tb video { width:80px; border-radius:6px; }
.tabs { display:flex; gap:4px; margin-bottom:14px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.tabs span { padding:8px 16px; cursor:pointer; color:var(--sub); border-bottom:2px solid transparent; }
.tabs span.on { color:var(--main); border-color:var(--main); }
.btn-s { background:var(--main); color:#fff; border-radius:6px; padding:6px 14px; font-size:13px; display:inline-block; }
.btn-s.gray { background:#f2f3f5; color:var(--text); } .btn-s.red { background:var(--danger); } .btn-s.blue { background:var(--blue); }
.tag { display:inline-block; padding:2px 8px; border-radius:8px; font-size:12px; background:#f2f3f5; }
.form-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.form-grid label { font-size:13px; color:var(--sub); display:block; margin-bottom:4px; }
.stat-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; }
.stat-card { background:#fff; border-radius:10px; padding:16px; }
.stat-card b { font-size:24px; display:block; margin-top:6px; color:var(--main); }
.login-box { max-width:360px; margin:10vh auto; background:#fff; border-radius:12px; padding:28px; }
.login-box h2 { text-align:center; margin-bottom:18px; }
#mapBox { height:380px; border-radius:10px; border:1px solid var(--line); }
.msg-badge { background:var(--danger); color:#fff; border-radius:10px; font-size:12px; padding:0 6px; margin-inline-start:6px; }
.pager { display:flex; gap:6px; margin-top:12px; }
.pager button { border:1px solid var(--line); border-radius:6px; padding:4px 12px; }
.pager button.on { background:var(--main); color:#fff; border-color:var(--main); }

/* 覆盖 dcxin_base 的 .panel 隐藏 */
.panel{display:block !important;}
.panel.active{display:block !important;}

/* 语言切换开关 */
.lang-switch{display:inline-flex;border:1px solid var(--main,#07C160);border-radius:14px;overflow:hidden;font-size:12px;line-height:1;vertical-align:middle}
.lang-switch a{padding:5px 9px;color:var(--main,#07C160);text-decoration:none!important;font-size:12px}
.lang-switch a.on{background:var(--main,#07C160);color:#fff}
.topbar .lang-switch{border-color:rgba(255,255,255,.85)}
.topbar .lang-switch a{color:#fff}
.topbar .lang-switch a.on{background:#fff;color:var(--main,#07C160)}

/* 维文字体 BasmaTom */
@font-face{font-family:'BasmaTom';src:url('/static/fonts/BasmaTom.ttf') format('truetype');font-display:swap;}
html[dir="rtl"] body,html[dir="rtl"] input,html[dir="rtl"] textarea,html[dir="rtl"] button,html[dir="rtl"] select{font-family:'BasmaTom','UKIJ Tuz Tom','Noto Naskh Arabic',sans-serif!important;}

/* 首页左侧分类树 */
.home-wrap{display:flex;gap:10px;padding:10px 10px 76px;max-width:1280px;margin:0 auto;align-items:flex-start}
.cat-side{width:168px;flex:0 0 auto;background:#fff;border-radius:10px;overflow:hidden;position:sticky;top:56px;max-height:calc(100vh - 130px);overflow-y:auto}
.cat-side.collapsed{display:none}
.cat-hd{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px;font-weight:600;color:#333}
.cat-mini{border:none;background:none;color:var(--sub);font-size:16px;cursor:pointer;line-height:1}
.cat-tree{padding:4px 0}
.ct-node{padding:10px 12px;font-size:14px;color:#333;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-node:hover{background:#f7f8fa}
.ct-node.on{background:var(--main);color:#fff}
.home-main{flex:1;min-width:0;max-width:none;padding:0;margin:0}
.cat-open{display:none;margin:0 0 8px;padding:6px 12px;border-radius:16px;background:#fff;color:var(--main);border:1px solid var(--main);font-size:13px;align-items:center;gap:4px}
@media(max-width:768px){
  .home-wrap{padding:8px 8px 76px}
  .cat-side{position:fixed;left:0;top:0;bottom:0;z-index:200;width:210px;height:100%;max-height:none;border-radius:0;box-shadow:2px 0 14px rgba(0,0,0,.18)}
  .cat-side.show{display:block}
}

@media(max-width:768px){ .cat-open{display:inline-flex!important} }

/* 维文字体全局后备：中文走系统字体，维文字符自动用 BasmaTom */
body,input,textarea,button,select,table,.tb,.tb td,.tb th{font-family:-apple-system,"PingFang SC","Helvetica Neue","Microsoft YaHei",'BasmaTom',sans-serif}
/* 维文界面整体使用 BasmaTom */
html[dir="rtl"] body,html[dir="rtl"] input,html[dir="rtl"] textarea,html[dir="rtl"] button,html[dir="rtl"] select,html[dir="rtl"] table{font-family:'BasmaTom','UKIJ Tuz Tom','Noto Naskh Arabic',sans-serif!important}
