/* ============================================================
   基础组件层（全版式共用：只提供原子组件，不定义页面骨架）
   ------------------------------------------------------------
   ★ 配色分两层：
     1) --ui-* 中性/主色层 —— 由各 layout-*.css 末尾的映射块覆盖，
        所以后台、登录、注册、发布、搜索、协议页会跟随当前版式配色。
     2) --ui-danger / success / warn —— 语义层，固定不随版式变
        （删除/驳回永远是红，通过永远是绿），避免误读。
   ★ 本文件正文禁止出现硬编码色值，只允许用上面两层变量。
   ============================================================ */
:root{
  /* —— 可被版式覆盖的层（默认中性深蓝，layout css 会重写） —— */
  --ui-accent:#1b3a6b;        /* 主强调：按钮、选中、链接 hover */
  --ui-accent-d:#12203a;      /* 主强调加深：hover */
  --ui-accent-s:#eef1f5;      /* 主强调浅底：徽章 */
  --ui-accent-line:#dfe4ec;   /* 主强调描边 */
  --ui-on-accent:#fff;        /* 主色底上的文字 */
  --ui-ink:#22272e;           /* 一级文字 */
  --ui-deep:#3c4657;          /* 二级文字 */
  --ui-muted:#7c8798;         /* 三级文字 */
  --ui-muted-2:#8b95a5;       /* 四级文字 / 辅助 */
  --ui-bg:#f5f6f8;            /* 页面底 */
  --ui-bg-2:#f7f9fb;          /* 次级底：表头、分区底 */
  --ui-card:#fff;             /* 卡片底 */
  --ui-card-2:#fcfdfe;        /* 输入框等近白底 */
  --ui-line:#dfe4ec;          /* 常规描边 */
  --ui-line-2:#eef1f5;        /* 浅分割线 */

  /* —— 语义层（固定，不随版式变） —— */
  --ui-danger:#c1121f; --ui-danger-bg:#fdeaea; --ui-danger-line:#f8ccd2; --ui-danger-d:#9c1d1d;
  --ui-success:#1e8a5f; --ui-success-bg:#e9f7ef; --ui-success-line:#bfe6d2; --ui-success-d:#166b49;
  --ui-warn:#b45309; --ui-warn-bg:#fff4e6; --ui-warn-line:#fde3c4; --ui-warn-d:#8a6d00;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;font-size:14px;color:var(--ui-ink);background:var(--ui-bg);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ---- 标签 / 徽章 ---- */
.tag{display:inline-block;font-size:11.5px;padding:2px 9px;border-radius:3px;background:var(--ui-line-2);color:var(--ui-deep);font-weight:600;white-space:nowrap}
.tag-ent{background:var(--ui-accent-s);color:color-mix(in srgb,var(--ui-accent) 58%,var(--ui-ink));font-weight:700}
.tag-per{background:var(--ui-line-2);color:var(--ui-deep);font-weight:700}

/* ---- 价格（跨版式语义：面议=暖色 / 电话=红，不随配色变） ---- */
.price{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12.5px;padding:2px 9px;border-radius:3px;background:var(--ui-warn-bg);color:var(--ui-warn);border:1px solid var(--ui-warn-line);white-space:nowrap}
.price-call{background:var(--ui-danger-bg);color:var(--ui-danger);border-color:var(--ui-danger-line)}

/* ---- 空态 ---- */
.empty{padding:44px 20px;text-align:center;color:var(--ui-muted-2);font-size:14px}
.empty a{color:var(--ui-accent);font-weight:700}

/* ---- 分页 ---- */
.pg{display:flex;gap:6px;justify-content:center;align-items:center;padding:22px 0 6px;flex-wrap:wrap}
.pg a,.pg span{padding:6px 13px;border:1px solid var(--ui-line);background:var(--ui-card);font-size:13px;color:var(--ui-deep);border-radius:3px}
.pg a:hover{border-color:var(--ui-accent);color:var(--ui-accent)}
.pg .cur{background:var(--ui-accent);border-color:var(--ui-accent);color:var(--ui-on-accent);font-weight:700}

/* ---- 表单（登录/注册/发布） ---- */
.form-page{max-width:460px;margin:36px auto;background:var(--ui-card);border:1px solid var(--ui-line);border-radius:4px;padding:30px 32px}
.form-page.wide{max-width:680px}
.form-page h1{font-size:22px;margin-bottom:6px;letter-spacing:1px;color:var(--ui-ink)}
.form-page .sub{color:var(--ui-muted);font-size:13px;margin-bottom:22px}
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:700;color:var(--ui-deep);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:10px 13px;border:1px solid var(--ui-line);border-radius:3px;font-size:14px;font-family:inherit;outline:none;background:var(--ui-card-2);color:var(--ui-ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ui-accent);background:var(--ui-card)}
.field textarea{min-height:130px;resize:vertical;line-height:1.7}
.field .hint{font-size:12px;color:var(--ui-muted-2);margin-top:5px}
.btn-main{width:100%;padding:12px;background:var(--ui-accent);color:var(--ui-on-accent);border:0;border-radius:3px;font-size:15px;font-weight:700;cursor:pointer;letter-spacing:2px}
.btn-main:hover{background:var(--ui-accent-d)}
.alert{padding:10px 14px;background:var(--ui-danger-bg);border-left:3px solid var(--ui-danger);color:var(--ui-danger-d);font-size:13px;margin-bottom:16px}
.alert-ok{background:var(--ui-success-bg);border-left-color:var(--ui-success);color:var(--ui-success-d)}

/* 注册模式切换 */
.mode-tabs{display:flex;border:1px solid var(--ui-line);border-radius:3px;overflow:hidden;margin-bottom:20px}
.mode-tabs a{flex:1;text-align:center;padding:11px;font-size:14px;font-weight:700;color:var(--ui-deep);background:var(--ui-bg-2)}
.mode-tabs a.on{background:var(--ui-accent);color:var(--ui-on-accent)}
.mode-tabs a+a{border-left:1px solid var(--ui-line)}

/* ---- 详情页通用（catalog / mosaic / portal 复用） ---- */
.dt-wrap{background:var(--ui-card);border:1px solid var(--ui-line)}
.dt-head{padding:22px 26px;border-bottom:1px solid var(--ui-line-2)}
.dt-title{font-size:24px;font-weight:800;line-height:1.45;margin:10px 0 12px;letter-spacing:.3px;color:var(--ui-ink)}
.dt-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--ui-muted)}
.dt-price{margin:18px 0 0;padding:13px 18px;background:var(--ui-warn-bg);border-left:4px solid var(--ui-warn);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dt-price b{font-size:19px;color:var(--ui-warn)}
.dt-price em{font-style:normal;font-size:12px;color:var(--ui-muted-2)}
.dt-body{padding:24px 26px;font-size:15px;line-height:2;color:var(--ui-deep);white-space:pre-wrap}
.dt-contact{margin:0 26px 26px;padding:20px;background:var(--ui-bg-2);border:1px solid var(--ui-line)}
.dt-contact h3{font-size:15px;margin-bottom:14px;color:var(--ui-accent);letter-spacing:1px}
.dt-contact h3::before{content:"◆";margin-right:8px;font-size:10px;vertical-align:2px}
.dt-contact p{font-size:13.5px;line-height:2.1;color:var(--ui-deep)}
.dt-contact .cid{font-weight:700;color:var(--ui-ink)}
.phone{font-size:17px;font-weight:800;color:var(--ui-danger);letter-spacing:1px}
.masked{color:var(--ui-deep);letter-spacing:2px;font-weight:700}
.mask-btn{display:inline-block;padding:4px 12px;background:var(--ui-accent);color:var(--ui-on-accent);border-radius:3px;font-size:12.5px;font-weight:700;margin-left:8px}
.tip-line{margin-top:10px;padding:10px 12px;background:var(--ui-warn-bg);border-left:3px solid var(--ui-warn);font-size:12.5px;line-height:1.8;color:var(--ui-warn-d)}
.dt-related{border-top:1px solid var(--ui-line-2);padding:20px 26px}
.dt-related h3{font-size:15px;margin-bottom:12px;color:var(--ui-ink)}
.dt-related ul{list-style:none}
.dt-related li{padding:8px 0;border-bottom:1px dashed var(--ui-line-2);font-size:13.5px}
.dt-related li::before{content:"›";color:var(--ui-accent);font-weight:700;margin-right:8px}
.dt-related li a:hover{color:var(--ui-accent)}

/* ---- 列表项通用（供各版式复用） ---- */
.row-item{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px dashed var(--ui-line-2)}
.row-item:last-child{border-bottom:0}
.row-item h3{font-size:15px;font-weight:700;line-height:1.5;margin-bottom:6px;color:var(--ui-ink)}
.row-item h3 a:hover{color:var(--ui-accent)}
.row-item p{font-size:13px;color:var(--ui-muted);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--ui-muted-2)}

/* ============================================================
   信息发布入口：全站统一强化（所有版式共用）
   目标：文案完整显示「信息发布」，视觉上明显突出于普通导航项
   ============================================================ */
a[href="/publish"]{
  font-weight:800 !important;
  white-space:nowrap;
  letter-spacing:.5px;
  box-shadow:0 3px 12px rgba(0,0,0,.20) !important;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
a[href="/publish"]:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(0,0,0,.28) !important;
  filter:brightness(1.08);
}
a[href="/publish"]:active{transform:translateY(0)}
/* 导航条内的按钮：字号不小于 13.5px，避免被压缩 */
a[href="/publish"]:not(.i-center){
  font-size:13.5px !important;
}
