/* ============================================================
   艳朵统一设计规范层 ds_unify v20261016
   目的：把各模块散落的字号/圆角/按钮形状/间距拉齐成一套令牌。
   作用域：仅限 .portal-content 内（模块内容区），不碰 login/admin/数据表格内部。
   加载顺序：必须最后引入（在 style.css / portal.css / theme_*_goldblue.css 之后）。
   ============================================================ */
:root{
  /* 色板（金蓝） */
  --ds-blue:#1A3A5C; --ds-blue-d:#15314F; --ds-gold:#D4A835;
  --ds-gold-bg:#FBF3DD; --ds-gold-bd:#EAD9A8; --ds-gray:#F5F6F8;
  --ds-text:#2b2b2b; --ds-text2:#6a7684; --ds-text3:#9aa4b0; --ds-line:#e6ebf0;
  /* 字号阶梯（锁死 7 档，outlier 一律归并到最近档） */
  --fs-xs:11px; --fs-sm:12px; --fs-base:13px; --fs-md:14px;
  --fs-lg:16px; --fs-xl:18px; --fs-title:20px; --fs-stat:22px;
  /* 圆角阶梯（锁死 4 档） */
  --r-sm:6px; --r-md:8px; --r-lg:12px; --r-pill:999px;
  /* 间距阶梯 */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px;
}

/* ── 页面标题 / 分区标题 ── */
.portal-content .portal-page-title{font-size:var(--fs-title)!important;color:var(--ds-blue)!important;font-weight:700!important}
.portal-content .portal-section-title{font-size:var(--fs-lg)!important;color:var(--ds-blue)!important;font-weight:700!important;margin:var(--sp-4) 2px var(--sp-3)!important}

/* ── 卡片：统一圆角 12 + 阴影 + 标题/说明字号 ── */
.portal-content .card{border-radius:var(--r-lg)!important;border:1px solid var(--ds-line);box-shadow:0 2px 12px rgba(26,58,92,.06)!important;padding:var(--sp-4)!important;margin-bottom:var(--sp-3)!important}
.portal-content .card-title{font-size:var(--fs-lg)!important;color:var(--ds-blue)!important;font-weight:700!important;line-height:1.4!important;margin-bottom:var(--sp-1)!important}
.portal-content .card-desc{font-size:var(--fs-base)!important;color:var(--ds-text2)!important;line-height:1.6!important;margin-bottom:var(--sp-3)!important}

/* ── 按钮：统一形状(圆角8)+字号+内距，三种尺寸 ── */
.portal-content .btn{border-radius:var(--r-md)!important;font-size:var(--fs-md)!important;font-weight:600!important;padding:10px 18px!important;line-height:1.4!important;transition:transform .12s,box-shadow .12s,filter .12s,background .12s!important;cursor:pointer}
.portal-content .btn:active{transform:translateY(1px)}
/* 全站统一按钮悬停反馈：不分类型，上浮1px+阴影+微亮（覆盖 btn-full/sm/xs/row 等全部） */
@media(hover:hover){
  .portal-content .btn:hover{transform:translateY(-1px)!important;box-shadow:0 4px 12px rgba(26,58,92,.18)!important;filter:brightness(1.06)!important}
}
.portal-content .btn-sm{font-size:var(--fs-base)!important;padding:7px 13px!important}
.portal-content .btn-xs{font-size:var(--fs-sm)!important;padding:5px 10px!important}
.portal-content .btn-green{background:var(--ds-blue)!important;color:#fff!important}
.portal-content .btn-green:hover{filter:brightness(1.08)}
.portal-content .btn-outline{background:#fff!important;color:var(--ds-blue)!important;border:1.5px solid var(--ds-gold)!important}
.portal-content .btn-outline:hover{background:var(--ds-gold-bg)!important}
/* 残留粉色按钮 btn-pink 收编成金蓝 */
.portal-content .btn-pink{background:var(--ds-blue)!important;color:#fff!important;border:none!important}

/* ── 表单：统一标签/输入框字号+圆角(8)+聚焦金描边 ── */
.portal-content .form-label{font-size:var(--fs-base)!important;color:var(--ds-text2)!important;font-weight:600!important;margin-bottom:var(--sp-1)!important}
.portal-content .form-input,
.portal-content .form-select{font-size:var(--fs-md)!important;border-radius:var(--r-md)!important;border:1px solid var(--ds-line)!important;padding:9px 11px!important;background:#fafbfc!important}
.portal-content .form-input:focus,
.portal-content .form-select:focus{border-color:var(--ds-gold)!important;box-shadow:0 0 0 3px rgba(212,168,53,.16)!important;background:#fff!important}

/* ── 统计块：统一圆角(12)+数字/标签字号 ── */
.portal-content .stat-box,
.portal-content .stock-summary .stat-cell{border-radius:var(--r-lg)!important}
.portal-content .stat-num{font-size:var(--fs-stat)!important;color:var(--ds-blue)!important;font-weight:700!important}
.portal-content .stat-label{font-size:var(--fs-xs)!important;color:var(--ds-text3)!important}

/* ── 标签/文件签/小chip：统一圆角(6) ── */
.portal-content .file-tag,
.portal-content .chips span{border-radius:var(--r-sm)!important}

/* ── 弹窗：统一圆角(12) ── */
.portal-content .sec-modal-box{border-radius:var(--r-lg)!important}

/* ── 结果/提示文字字号归档 ── */
.portal-content .text-success,
.portal-content .text-error,
.portal-content .text-muted{font-size:var(--fs-base)!important}

/* ── 卡片统一悬停反馈（金蓝质感，与官网一致） ── */
@media(hover:hover){
  .portal-content .card{transition:transform .15s,box-shadow .15s,border-color .15s}
  .portal-content .card:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(26,58,92,.12)!important;border-color:var(--ds-gold-bd)}
}

/* ============================================================
   全局外壳件统一（这些在 .portal-content 之外，必须全局选中）
   覆盖：左侧导航 / 左上角商标 / 顶部logo与标题 / 返回按钮 / 关闭按钮
   ============================================================ */

/* ── 左上角商标（侧边栏品牌区）：尺寸+圆角+字号锁死 ── */
.portal-brand{display:none!important}
/* 老板要求：去掉左侧导航顶部的商标logo（顶部header已有logo，此处冗余） */



/* ── 顶部 header：logo 高度与标题字号全站锁一个值 ── */
.header-logo,
.portal-main>.header .header-logo,
.top-header img{height:38px!important;border-radius:var(--r-md)!important}
.header-title,
.portal-main>.header .header-title{font-size:var(--fs-xl)!important;color:var(--ds-blue)!important;font-weight:700!important}
@media(max-width:768px){
  .header-logo,.portal-main>.header .header-logo,.top-header img{height:34px!important}
  .header-title,.portal-main>.header .header-title{font-size:var(--fs-lg)!important}
}

/* ── 左侧导航：字号/行高/圆角/颜色全站一致（inventory 原本色值跑偏，一并纠正） ── */
.portal-sidebar-item,
.portal-sidebar-item:link,
.portal-sidebar-item:visited,
a.portal-sidebar-item,
button.portal-sidebar-item,
.sidebar-item{font-size:14px!important;line-height:1.45!important;padding:10px 13px!important;border-radius:8px!important;color:#1A3A5C!important;font-weight:400!important;background:transparent!important;background-color:transparent!important;background-image:none!important;border:0!important;box-shadow:none!important;text-decoration:none!important;text-align:left!important;cursor:pointer!important;-webkit-text-fill-color:#1A3A5C!important;transition:background-color .15s,color .15s!important}
.portal-sidebar-item:hover,
a.portal-sidebar-item:hover,
button.portal-sidebar-item:hover,
.sidebar-item:hover{background-color:#FBF3DD!important;color:#1A3A5C!important;-webkit-text-fill-color:#1A3A5C!important;font-weight:600!important}
.portal-sidebar-item:active,
.sidebar-item:active{background-color:#EAD9A8!important;color:#1A3A5C!important;-webkit-text-fill-color:#1A3A5C!important}
.portal-sidebar-item.active,
a.portal-sidebar-item.active,
button.portal-sidebar-item.active,
.sidebar-item.active{background-color:#D4A835!important;color:#15314F!important;-webkit-text-fill-color:#15314F!important;font-weight:700!important;border-radius:8px!important}
/* 导航分组标题 */
.portal-sidebar-group{font-size:11px!important;color:#8A6A1F!important;font-weight:600!important;letter-spacing:.3px!important;margin:16px 0 4px!important;padding:0 18px!important}
/* 侧边栏页脚 */
.portal-sidebar-foot{font-size:11px!important;color:#9aa4b0!important;line-height:1.7!important}

/* ── 返回按钮：并入 8px 圆角阶梯，金蓝描边统一 ── */
.portal-back{border-radius:var(--r-md)!important;font-size:var(--fs-base)!important;font-weight:600!important;padding:8px 13px!important;color:var(--ds-blue)!important;background:#fff!important;border:1px solid var(--ds-gold)!important;box-shadow:0 1px 4px rgba(26,58,92,.07)!important;text-decoration:none!important}
.portal-back:hover{background:var(--ds-gold-bg)!important}

/* ── 关闭按钮（弹窗/菜单）：统一形状与字号 ── */
.modal-close,
.sec-modal-close{min-width:56px!important;height:32px!important;padding:0 14px!important;border-radius:var(--r-md)!important;font-size:var(--fs-base)!important;font-weight:600!important;line-height:30px!important;background:var(--ds-gold-bg)!important;border:1px solid var(--ds-gold-bd)!important;color:var(--ds-blue)!important}
.modal-close:hover,
.sec-modal-close:hover{background:var(--ds-gold-bd)!important}
/* 用户菜单里的小关闭叉 */
.menu-close{width:24px!important;height:24px!important;border-radius:var(--r-pill)!important;font-size:var(--fs-sm)!important;line-height:24px!important;background:var(--ds-gold-bg)!important;color:var(--ds-blue)!important}

/* ── 用户菜单按钮与菜单项字号统一 ── */
.user-menu-btn{width:36px!important;height:36px!important;border-radius:var(--r-pill)!important;background:var(--ds-blue)!important;font-size:var(--fs-xl)!important}
.menu-item{font-size:var(--fs-md)!important;padding:10px var(--sp-4)!important}
.menu-phone{font-size:var(--fs-base)!important}

/* ── 弹窗标题 ── */
.sec-modal-title{font-size:var(--fs-xl)!important;color:var(--ds-blue)!important;font-weight:700!important}

/* ── 底部 tab（手机端）字号统一 ── */
.portal-tab{font-size:var(--fs-xs)!important}
.portal-tab .ico{font-size:var(--fs-title)!important}

/* ── 状态条 ── */
.status-bar{font-size:var(--fs-sm)!important;color:var(--ds-text3)!important}

/* 说明：数据表格(table/th/td/.table-input/#costTable/#quoteTable/.stock-table 等)
   的列宽与紧凑字号是逐列调校过的，本规范层一律不介入，避免打乱对齐。 */
.portal-sidebar-nav{padding-top:14px!important}

/* ===== INFOWALL-HOVER 信息墙按钮统一悬停（不覆盖背景/字色） ===== */
.iw-mtab,.iw-tab{border-radius:8px!important;font-size:14px!important;font-weight:600!important;transition:box-shadow .15s,transform .12s,filter .12s!important}
.iw-tab{border-radius:6px!important}
@media(hover:hover){
  .iw-mtab:hover,.iw-tab:hover{transform:translateY(-1px)!important;box-shadow:0 4px 12px rgba(26,58,92,.18)!important;filter:brightness(1.05)!important}
}
.iw-mtab:active,.iw-tab:active{transform:translateY(1px)!important}
.iw-mtab:focus-visible,.iw-tab:focus-visible{outline:2px solid #D4A835!important;outline-offset:2px!important}
.portal-sidebar-item:focus-visible{outline:2px solid #D4A835!important;outline-offset:-2px!important}


/* ===== v6: buttons gold bg + chips scroll + hover (2026-10-16) ===== */
.portal-back{background:#D4A835!important;color:#15314F!important;border:1px solid #C4972E!important}
.portal-back:hover{background:#C4972E!important;color:#15314F!important;transform:translateY(-1px)!important;box-shadow:0 4px 12px rgba(26,58,92,.22)!important}
.modal-close,.sec-modal-close{background:#D4A835!important;border:1px solid #C4972E!important;color:#15314F!important}
.modal-close:hover,.sec-modal-close:hover{background:#C4972E!important;color:#15314F!important;transform:translateY(-1px)!important;box-shadow:0 4px 12px rgba(26,58,92,.22)!important}
.menu-close{background:#D4A835!important;color:#15314F!important}
.chips{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-x pan-y!important;scrollbar-width:none!important;-ms-overflow-style:none!important}
.chips::-webkit-scrollbar{display:none!important}
.chips span{flex:0 0 auto!important;white-space:nowrap!important;transition:transform .12s,box-shadow .15s,color .15s!important}
@media(hover:hover){.chips span:hover{transform:translateY(-1px)!important;box-shadow:0 0 0 1px #D4A835,0 3px 10px rgba(26,58,92,.16)!important}.chips span.on:hover{box-shadow:0 3px 10px rgba(26,58,92,.2)!important}}
.iw-chip{transition:transform .12s,box-shadow .15s,color .15s!important}
@media(hover:hover){.iw-chip:hover:not(.on){transform:translateY(-1px)!important;box-shadow:0 0 0 1px #D4A835,0 3px 10px rgba(26,58,92,.16)!important;color:#1A3A5C!important}.iw-chip.on:hover{transform:translateY(-1px)!important;box-shadow:0 3px 10px rgba(26,58,92,.2)!important}}
.portal-main>.header .header-bar{justify-content:center!important;position:relative!important}
.portal-main>.header .user-menu-container{position:absolute!important;right:16px!important;top:50%!important;transform:translateY(-50%)!important}


/* ===== v7: sidebar nav unified gold-blue (2026-10-16) ===== */
.portal-sidebar-item{transition:transform .12s,box-shadow .15s,background .15s,color .15s!important}
@media(hover:hover){.portal-sidebar-item:hover:not(.active){background:#F7F1DE!important;color:#1A3A5C!important;box-shadow:0 0 0 1px #D4A835,0 3px 10px rgba(26,58,92,.14)!important;transform:translateX(3px)!important}}
.portal-sidebar-item.active{background:linear-gradient(90deg,#D4A835,#C4972E)!important;color:#15314F!important;font-weight:600!important;box-shadow:0 2px 8px rgba(212,168,53,.32)!important}
.portal-sidebar-item.active:hover{background:linear-gradient(90deg,#C4972E,#B8860B)!important;transform:translateX(3px)!important}
.portal-sidebar-group{color:#B8860B!important;letter-spacing:1px}


/* ===== v9: 返回按钮字号调大+金底强化 (2026-10-16) ===== */
.portal-back{background:#D4A835!important;color:#15314F!important;border:1px solid #C4972E!important;font-size:15px!important;font-weight:700!important;padding:9px 16px!important;border-radius:8px!important}
.portal-back:hover{background:#C4972E!important;color:#15314F!important;transform:translateY(-1px)!important;box-shadow:0 4px 12px rgba(26,58,92,.22)!important}


/* ===== v10: 侧边栏滚动条始终显示 (2026-10-16) ===== */
.portal-sidebar{overflow-y:scroll!important}
/* 美化滚动条（Webkit） */
.portal-sidebar::-webkit-scrollbar{width:6px}
.portal-sidebar::-webkit-scrollbar-track{background:#F5F6F8}
.portal-sidebar::-webkit-scrollbar-thumb{background:#D4A835;border-radius:3px}
.portal-sidebar::-webkit-scrollbar-thumb:hover{background:#C4972E}


/* ===== v11: 修「按钮标签看不见」低对比度金字 (2026-10-16) ===== */
/* 底部导航激活项：原金字#D4A835压浅底(对比~2:1) -> 金底胶囊+深蓝字 */
.portal-tab.active{color:#15314F!important;font-weight:700!important}
.portal-tab.active .ico{color:#15314F!important}
.portal-tab{color:#1A3A5C!important}
.portal-tab.active:after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:2px;width:22px;height:3px;border-radius:2px;background:#D4A835}
.portal-tab{position:relative!important}
/* 兜底：任何金字配浅底的小标签统一压深 */
.portal-stat strong{color:#1A3A5C!important}


/* ===== v12: 修 card-title 深底深字（真凶） (2026-10-16) ===== */
/* theme_*_goldblue.css:17 给 .card-title 配深蓝渐变底(白字)，
   但 ds_unify.css:27 后加载把 color 覆盖成深蓝 -> 深底深字=看不见。
   统一改白字，保持金蓝深底小标签风格。 */
.portal-content .card-title{color:#fff!important}


/* ===== v13: 侧边栏滚动条始终可见（任何模块、是否溢出都有） (2026-10-16) ===== */
@media(min-width:900px){
  .portal-sidebar{
    overflow-y:scroll!important;
    scrollbar-width:thin!important;
    scrollbar-color:#D4A835 #F0F2F5!important;
    scrollbar-gutter:stable!important;
  }
  .portal-sidebar::-webkit-scrollbar{width:10px!important;background:#F0F2F5!important;display:block!important}
  .portal-sidebar::-webkit-scrollbar-track{
    background:#F0F2F5!important;
    border-left:1px solid #EAD9A8!important;
    border-radius:0!important;
  }
  .portal-sidebar::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,#D4A835,#C4972E)!important;
    border-radius:5px!important;
    min-height:48px!important;
    border:2px solid #F0F2F5!important;
  }
  .portal-sidebar::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#C4972E,#B8860B)!important}
  /* 保证内容高度触发滚动区：nav 占满并可滚 */
  .portal-sidebar-nav{min-height:calc(100vh - 150px)!important}
}


/* ===== v14: 删按钮改白字（红底白字，对比度5.9:1） (2026-10-16) ===== */
.btn-row-del,
.portal-content .btn-row-del,
td .btn-row-del{
  background:#C0392B!important;
  color:#fff!important;
  border:1px solid #A5281B!important;
  font-weight:700!important;
}
.btn-row-del:hover{background:#A5281B!important;color:#fff!important}
/* 纯文字型删除按钮（无底色）也给深底白字 */
.btn-del-row,
.portal-content .btn-del-row{
  background:#C0392B!important;
  color:#fff!important;
  border-radius:6px!important;
  padding:2px 8px!important;
  font-size:14px!important;
  font-weight:700!important;
}
.btn-del-row:hover{background:#A5281B!important;color:#fff!important}


/* ===== v15: 侧边栏滚动条真正始终出现（强制溢出，滑块必现可拖） (2026-10-16) ===== */
/* 撤销 v13 的「刚好装满」高度（它导致不溢出 -> 只有灰轨道没有滑块） */
.portal-sidebar-nav{min-height:auto!important}
/* 用底部留白垫出真实滚动范围：任何模块、任何屏高都必定溢出 */
.portal-sidebar .portal-sidebar-nav{padding-bottom:180px!important}
/* 轨道常驻 + 预留滚动槽 */
.portal-sidebar{
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
  scrollbar-width:thin!important;
  scrollbar-color:#D4A835 #F0F2F5!important;
}
.portal-sidebar::-webkit-scrollbar{width:10px!important;display:block!important;background:#F0F2F5!important}
.portal-sidebar::-webkit-scrollbar-track{background:#F0F2F5!important;border-left:1px solid #EAD9A8!important}
.portal-sidebar::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#D4A835,#C4972E)!important;
  border-radius:5px!important;
  min-height:48px!important;
  border:2px solid #F0F2F5!important;
}
.portal-sidebar::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#C4972E,#B8860B)!important}


/* ===== v16: 「我的数据」5页排版修正 (2026-10-16) ===== */
/* 1) 这5页外层 .card 不再加内边距/边框，避免与原页 .content 双层留白 */
.portal-content .card:has(> .mydata-wrap){padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important}
/* 2) 包裹层撑满右侧区，去掉窄屏的居中窄栏感 */
.mydata-wrap{max-width:none!important;width:100%!important;margin:0!important;background:transparent!important}
/* 3) 原页 .content 内边距收掉（外层已有 portal-content 的留白） */
.mydata-wrap .content{padding:0!important}
/* 4) 相册：宽屏自适应多列，不再死锁3列把图拉大 */
.mydata-wrap .grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))!important;gap:10px!important}
/* 5) 列表/卡片统一金蓝描边与圆角 */
.mydata-wrap .file-item,.mydata-wrap .draft-item,.mydata-wrap .hist-item,
.mydata-wrap .photo-item{border-radius:10px!important}
/* 6) 时间线：收掉过大的左缩进，内容左对齐 */
.mydata-wrap #timeline{padding-left:0!important;margin-left:0!important}
.mydata-wrap #timeline > *{margin-left:0!important}
/* 7) 空状态更居中好看 */
.mydata-wrap .empty{padding:48px 16px!important;color:#8a94a0!important}


/* ===== v17: 右侧内容区滚动条金色（与左侧一致）+ 页头操作区 (2026-10-16) ===== */
/* 右侧滚动条实际在 .portal-main / 文档流上，统一给 html/body 与内容区金色滚动条 */
.portal-main{scrollbar-width:thin!important;scrollbar-color:#D4A835 #F0F2F5!important}
html,body{scrollbar-width:thin!important;scrollbar-color:#D4A835 #F0F2F5!important}
html::-webkit-scrollbar,body::-webkit-scrollbar,
.portal-main::-webkit-scrollbar,.portal-content::-webkit-scrollbar{width:10px!important;background:#F0F2F5!important}
html::-webkit-scrollbar-track,body::-webkit-scrollbar-track,
.portal-main::-webkit-scrollbar-track,.portal-content::-webkit-scrollbar-track{background:#F0F2F5!important;border-left:1px solid #EAD9A8!important}
html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,
.portal-main::-webkit-scrollbar-thumb,.portal-content::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#D4A835,#C4972E)!important;border-radius:5px!important;min-height:48px!important;border:2px solid #F0F2F5!important}
html::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover,
.portal-main::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#C4972E,#B8860B)!important}
/* 页头操作区（上传按钮）排版 */
.portal-page-head{display:flex!important;align-items:center!important;gap:10px!important}
.portal-page-actions .btn{white-space:nowrap!important}


/* ===== v19: 右上角三横按钮金边全站统一 (2026-10-16) ===== */
.user-menu-btn{
  background:#1A3A5C!important;
  color:#fff!important;
  border:2px solid #D4A835!important;
  border-radius:50%!important;
  width:36px!important;height:36px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  font-size:18px!important;cursor:pointer!important;
  box-sizing:border-box!important;
  transition:box-shadow .15s,transform .12s!important;
}
.user-menu-btn:hover{box-shadow:0 0 0 3px rgba(212,168,53,.28)!important;transform:translateY(-1px)!important}


/* ===== v22: header logo 与标题排版优化 (2026-10-16) ===== */
.header-logo,
.portal-main>.header .header-logo{
  height:36px!important;
  width:auto!important;
  border-radius:8px!important;
  box-shadow:0 1px 4px rgba(26,58,92,.14)!important;
  display:block!important;
}
.portal-main>.header .header-bar{gap:10px!important}
.header-title,
.portal-main>.header .header-title{
  font-size:19px!important;
  color:#1A3A5C!important;
  font-weight:700!important;
  letter-spacing:.5px!important;
  line-height:1.2!important;
}
@media(max-width:480px){
  .header-logo,.portal-main>.header .header-logo{height:30px!important;border-radius:6px!important}
  .header-title,.portal-main>.header .header-title{font-size:17px!important}
  .portal-main>.header .header-bar{gap:8px!important}
}


/* ===== v23: 方案3 品牌归位侧边栏（圆形 logo） (2026-10-16) ===== */
/* 侧边栏品牌区：圆形 logo 居中 + 品牌名 */
.portal-brand{
  display:flex!important;flex-direction:column!important;
  align-items:center!important;justify-content:center!important;
  gap:7px!important;padding:14px 10px 12px!important;
  border-bottom:1px solid #EAD9A8!important;margin-bottom:4px!important;
}
.portal-brand .sidebar-logo{
  width:54px!important;height:54px!important;
  border-radius:50%!important;display:block!important;
  box-shadow:0 2px 8px rgba(26,58,92,.18)!important;
}
.portal-brand b{
  font-size:15px!important;color:#1A3A5C!important;
  font-weight:700!important;letter-spacing:.5px!important;line-height:1.2!important;
}
/* header：只留文字，居中 */
.portal-main>.header .header-bar{justify-content:center!important;position:relative!important}
.header-title,.portal-main>.header .header-title{
  font-size:20px!important;color:#1A3A5C!important;
  font-weight:700!important;letter-spacing:.6px!important;
}
.portal-main>.header .user-menu-container{
  position:absolute!important;right:16px!important;top:50%!important;
  transform:translateY(-50%)!important;
}
@media(max-width:480px){
  .portal-brand .sidebar-logo{width:44px!important;height:44px!important}
  .portal-brand b{font-size:14px!important}
  .header-title,.portal-main>.header .header-title{font-size:18px!important}
}


/* ===== v24: logo 放大 + 金蓝配比调衡 + 层级区分 (2026-10-16) ===== */

/* 1) 侧栏 logo 54 -> 64px（原 YANDUO 仅 5.9px 高、糊；放大后约 7px 可辨） */
.portal-brand .sidebar-logo{width:64px!important;height:64px!important}
.portal-brand{padding:16px 10px 13px!important;gap:8px!important}
.portal-brand b{font-size:15.5px!important}

/* 2) 轮播条减重：浅金底 + 深蓝字（CSS 兜底，HTML 已改内联） */
.iw-marquee{
  background:#FBF3DD!important;color:#1A3A5C!important;
  border:1px solid #EAD9A8!important;font-weight:600!important;
  border-radius:10px!important;
}

/* 3) 第二层「供应信息/采购需求」做成分段控件：选中深蓝、未选白底金边 */
.iw-tab{
  padding:8px 0!important;border-radius:7px!important;
  background:#fff!important;color:#1A3A5C!important;
  border:1px solid #EAD9A8!important;font-weight:600!important;
  font-size:13.5px!important;
}
.iw-tab.iw-tab-on{
  background:#1A3A5C!important;color:#fff!important;
  border:1px solid #15314F!important;
  box-shadow:0 2px 8px rgba(26,58,92,.22)!important;
}
@media(hover:hover){
  .iw-tab:hover:not(.iw-tab-on){
    background:#FBF3DD!important;border-color:#D4A835!important;
    transform:translateY(-1px)!important;
  }
}

/* 4) 第一层三大标签：未选态加金边，和第二层区分主次 */
.iw-mtab{border:1px solid #EAD9A8!important}
.iw-mtab.on{
  background:linear-gradient(135deg,#15314F,#1A3A5C)!important;color:#fff!important;
  border:1px solid #15314F!important;box-shadow:0 2px 10px rgba(26,58,92,.24)!important;
}
@media(hover:hover){
  .iw-mtab:hover:not(.on){background:#FBF3DD!important;border-color:#D4A835!important}
}

/* 5) 金色补位：小标题左侧金条 + 分隔线 + chip 选中态 */
.portal-content .portal-section-title{
  border-left:3px solid #D4A835!important;padding-left:9px!important;
}
.portal-content .card-title{
  border-left:3px solid #D4A835!important;padding-left:10px!important;
}
.iw-chip.on{
  background:#1A3A5C!important;color:#fff!important;
  border:1px solid #15314F!important;
}
.iw-chip:not(.on){border:1px solid #EAD9A8!important}
/* 卡片底部细金线，增加金色占比又不抢眼 */
.portal-content .card{border-bottom:2px solid #F3E6C4!important}


/* ===== v25: 页脚归位 + 空状态加高 + 操作按钮金色 (2026-10-16) ===== */

/* 1) 内容区撑满视口，页脚自然落到底部（不再吊在页面中间） */
.portal-content{min-height:calc(100vh - 150px)!important}

/* 2) 信息墙列表空状态：加高 + 垂直居中，避免下方一大片空白 */
#iwSupList,#iwJobList,#iwShList{min-height:170px!important}
#iwSupList:empty,#iwJobList:empty,#iwShList:empty{
  display:flex!important;align-items:center!important;justify-content:center!important;
}
.iw-empty,.portal-content .empty{
  min-height:150px!important;display:flex!important;
  flex-direction:column!important;align-items:center!important;justify-content:center!important;
  color:#8a94a0!important;
}

/* 3) 信息墙「搜索」按钮改金色实底（按 onclick 精确限定，不影响全站 .btn-green） */
button[onclick*="iwSupplyDo"],
button[onclick*="iwJobDo"],
button[onclick*="iwShDo"],
button[onclick*="homeSearchGo"]{
  background:#D4A835!important;color:#15314F!important;
  border:1px solid #C4972E!important;font-weight:700!important;
  box-shadow:0 2px 6px rgba(212,168,53,.28)!important;
}
button[onclick*="iwSupplyDo"]:hover,
button[onclick*="iwJobDo"]:hover,
button[onclick*="iwShDo"]:hover,
button[onclick*="homeSearchGo"]:hover{
  background:#C4972E!important;color:#15314F!important;
  transform:translateY(-1px)!important;
}

/* 4) 信息墙「发布」类按钮同样改金色（iwGo/发布入口） */
button[onclick*="showPublish"],
button[onclick*="iwPublish"],
.iw-pub,.iw-sub{
  background:#D4A835!important;color:#15314F!important;
  border:1px solid #C4972E!important;font-weight:700!important;
}
button[onclick*="showPublish"]:hover,
button[onclick*="iwPublish"]:hover,
.iw-pub:hover,.iw-sub:hover{
  background:#C4972E!important;color:#15314F!important;transform:translateY(-1px)!important;
}

/* v25b: 空状态容器加高（iw-feed 是真实容器） */
.iw-feed{min-height:170px!important}
.iw-feed:has(> div:empty){display:flex!important;align-items:center!important;justify-content:center!important}
.iw-feed > div:empty::before{content:'暂无信息，欢迎发布'!important;color:#8a94a0!important;font-size:13px!important}


/* ===== v26: 修搜索按钮金色（特异性胜过 .portal-content .btn-green）+ 空状态收白 (2026-10-16) ===== */

/* 1) 搜索按钮改金色。
   上版 button[onclick*="x"] 特异性 (0,1,1) 输给 .portal-content .btn-green (0,2,0)，
   这里用 .portal-content button.btn-green[onclick*="x"] = (0,3,1) 稳胜。 */
.portal-content button.btn-green[onclick*="iwSupplyDo"],
.portal-content button.btn-green[onclick*="iwJobDo"],
.portal-content button.btn-green[onclick*="iwShDo"],
.portal-content button.btn-green[onclick*="homeSearchGo"],
button.btn-green[onclick*="iwSupplyDo"],
button.btn-green[onclick*="iwJobDo"],
button.btn-green[onclick*="iwShDo"],
button.btn-green[onclick*="homeSearchGo"]{
  background:#D4A835!important;color:#15314F!important;
  border:1px solid #C4972E!important;font-weight:700!important;
  box-shadow:0 2px 6px rgba(212,168,53,.28)!important;
}
.portal-content button.btn-green[onclick*="iwSupplyDo"]:hover,
.portal-content button.btn-green[onclick*="iwJobDo"]:hover,
.portal-content button.btn-green[onclick*="iwShDo"]:hover,
.portal-content button.btn-green[onclick*="homeSearchGo"]:hover{
  background:#C4972E!important;color:#15314F!important;transform:translateY(-1px)!important;
}

/* 2) 空状态收白：
   上版用 :empty 无效（div 里有 JS 塞的提示文字，不是空元素）。
   改为限制 iw-feed 高度自适应，并给提示文字足够但不过量的高度。 */
.iw-feed{
  min-height:auto!important;
  max-height:65vh!important;
  padding-top:8px!important;
}
/* JS 生成的空提示：居中 + 适中高度（原 padding:14px 0 太矮，外层又留太多白） */
.iw-feed > div > div[style*="text-align:center"][style*="color:#999"]{
  padding:34px 0!important;color:#8a94a0!important;font-size:13px!important;
}


/* ===== v27: 侧栏 logo 加 CSS 金边（与三横按钮同为 2px）+ 去虚 (2026-10-16) ===== */
/* 图内自带金环在 64px 显示时只剩 0.64px（实测），必须用 CSS border 固定物理像素 */
.portal-brand .sidebar-logo{
  border:2px solid #D4A835!important;
  box-sizing:border-box!important;
  background:#102448!important;              /* 兜底底色，避免边与图之间透出白缝 */
  box-shadow:0 2px 10px rgba(26,58,92,.22),  /* 外阴影：与白侧栏分离，不再发虚 */
             0 0 0 1px rgba(255,255,255,.9) inset!important;  /* 内白环：边界更利 */
  transition:box-shadow .15s,transform .12s!important;
}
@media(hover:hover){
  .portal-brand .sidebar-logo:hover{
    box-shadow:0 0 0 3px rgba(212,168,53,.30),
               0 3px 12px rgba(26,58,92,.26)!important;
    transform:translateY(-1px)!important;
  }
}
/* 品牌名也略加重，和 logo 一起立起来 */
.portal-brand b{font-weight:700!important;text-shadow:0 1px 0 rgba(255,255,255,.6)!important}
@media(max-width:480px){
  .portal-brand .sidebar-logo{border-width:1.5px!important}
}


/* ===== v30: 修 .modal 缺居中定位（客服弹窗跑到页面上方） (2026-10-16) ===== */
/* 根因：居中规则只写给了 .sec-modal，客服弹窗用的是 class="modal"，
   没有 position:fixed 就被排进文档流、跑到页面上方，需要上滑才看见。 */
.modal{
  display:none;
  position:fixed!important;
  top:0!important;left:0!important;right:0!important;bottom:0!important;
  background:rgba(0,0,0,.45)!important;
  z-index:300!important;
  align-items:center!important;justify-content:center!important;
  padding:16px!important;box-sizing:border-box!important;
}
.modal.show{display:flex!important}
.modal .modal-box{
  position:relative!important;background:#fff!important;
  border-radius:12px!important;padding:52px 24px 24px!important;
  width:auto!important;max-width:min(92vw,360px)!important;
  max-height:88vh!important;overflow-y:auto!important;
  text-align:center!important;
  box-shadow:0 10px 40px rgba(0,0,0,.28)!important;
}
/* 弹窗内二维码自适应，避免小屏溢出 */
.modal .modal-box img{max-width:100%!important;height:auto!important}
/* 关闭按钮沿用全站金底样式 */
.modal .modal-close{
  position:absolute!important;top:10px!important;right:12px!important;
  background:#D4A835!important;color:#15314F!important;
  border:1px solid #C4972E!important;
}


/* ===== v36: 侧栏品牌区做大，logo 96px（三行内容有呼吸空间） (2026-10-16) ===== */
/* 64px 下三行各仅约15px、YANDUO 仅7px 必糊；96px 下 YANDUO 约10.5px 可辨 */
.portal-brand{
  padding:18px 10px 15px!important;
  gap:10px!important;
  border-bottom:1px solid #EAD9A8!important;
}
.portal-brand .sidebar-logo{
  width:96px!important;height:96px!important;
  border:2px solid #D4A835!important;
  box-sizing:border-box!important;
  border-radius:50%!important;
  background:#102448!important;
  box-shadow:0 3px 14px rgba(26,58,92,.26),
             0 0 0 1px rgba(255,255,255,.9) inset!important;
}
.portal-brand b{
  font-size:16.5px!important;
  letter-spacing:1px!important;
  color:#1A3A5C!important;font-weight:700!important;
}
@media(hover:hover){
  .portal-brand .sidebar-logo:hover{
    box-shadow:0 0 0 4px rgba(212,168,53,.30),
               0 4px 16px rgba(26,58,92,.30)!important;
    transform:translateY(-1px)!important;
  }
}
/* 窄屏：侧栏隐藏，此处仅兜底 */
@media(max-width:480px){
  .portal-brand .sidebar-logo{width:72px!important;height:72px!important;border-width:1.5px!important}
  .portal-brand b{font-size:15px!important}
}


/* ===== v39: 客服二维码弹窗改轻量浮层（去雾罩 + 就近弹出） (2026-10-16) ===== */
/* 说明：v30 给 .modal 加的全屏雾罩导致会员中心弹窗有雾罩且位置远。
   这里只针对 #kefuModal 覆盖，不影响其它 .modal 使用者。 */
#kefuModal{
  display:none;
  position:fixed!important;
  top:auto!important;
  right:auto!important;
  bottom:84px!important;          /* 就在底部按钮上方一点 */
  left:50%!important;
  transform:translateX(-50%)!important;
  width:auto!important;
  height:auto!important;
  background:transparent!important;  /* 去雾罩 */
  padding:0!important;
  z-index:420!important;
  align-items:unset!important;
  justify-content:unset!important;
  pointer-events:none!important;     /* 容器不挡点击 */
}
#kefuModal.show{display:block!important}
#kefuModal .modal-box{
  pointer-events:auto!important;     /* 浮层本体可交互 */
  position:relative!important;
  background:#fff!important;
  border:1px solid #EAD9A8!important;
  border-radius:14px!important;
  box-shadow:0 8px 30px rgba(26,58,92,.28)!important;
  padding:52px 18px 16px!important;
  width:auto!important;
  max-width:min(88vw,300px)!important;
  max-height:none!important;
  overflow:visible!important;
  text-align:center!important;
}
#kefuModal .modal-box img{
  width:200px!important;height:200px!important;
  max-width:70vw!important;border-radius:8px!important;
}
/* 浮层下方小尖角，指向按钮，更像「从按钮弹出」 */
#kefuModal .modal-box:after{
  content:''!important;
  position:absolute!important;
  left:50%!important;bottom:-9px!important;
  transform:translateX(-50%) rotate(45deg)!important;
  width:16px!important;height:16px!important;
  background:#fff!important;
  border-right:1px solid #EAD9A8!important;
  border-bottom:1px solid #EAD9A8!important;
}
/* v78：旧的 48x28/14px 规则已删，统一走下方 v70 全站规则（56x32/16px）
   老板 2026-10-17 指出帮助页与会员中心客服弹窗关闭按钮不一致，根因就是这条 */
@media(max-width:480px){
  #kefuModal{bottom:76px!important}
  #kefuModal .modal-box img{width:170px!important;height:170px!important}
}


/* ===== v40: 城市下拉定位修正 + 风格统一 (2026-10-16) ===== */
/* 根因：面板 position:absolute 但父容器无 position:relative，
   导致相对整个页面定位 -> 弹到最左侧。 */
#homeCityMenu{
  position:absolute!important;
  top:calc(100% + 6px)!important;
  left:0!important;right:auto!important;
  border:1px solid #EAD9A8!important;
  border-radius:10px!important;
  box-shadow:0 6px 20px rgba(26,58,92,.18)!important;
  min-width:110px!important;
  z-index:320!important;
}
#homeCityMenu > div{
  padding:9px 13px!important;border-radius:7px!important;
  font-size:13.5px!important;transition:background .12s!important;
}
@media(hover:hover){
  #homeCityMenu > div:hover{background:#FBF3DD!important;color:#1A3A5C!important}
}
/* 按钮统一金蓝：浅灰底换成白底金边 */
#homeCityBtn{
  background:#fff!important;
  border:1px solid #EAD9A8!important;
  color:#1A3A5C!important;
  border-radius:18px!important;
  font-size:13.5px!important;
  transition:border-color .15s,background .15s!important;
}
@media(hover:hover){
  #homeCityBtn:hover{border-color:#D4A835!important;background:#FBF3DD!important}
}


/* ===== v41: 城市选择下拉样式 (2026-10-16) ===== */
.city-quick{
  display:inline-block;padding:5px 11px;border-radius:14px;
  border:1px solid #EAD9A8;background:#fff;color:#1A3A5C;
  font-size:12.5px;cursor:pointer;transition:background .12s,border-color .12s;
}
@media(hover:hover){
  .city-quick:hover{background:#FBF3DD;border-color:#D4A835}
}
#homeCityMenu select:focus{outline:2px solid #D4A835;outline-offset:-1px}
#homeCityMenu::-webkit-scrollbar{width:7px;background:#F0F2F5}
#homeCityMenu::-webkit-scrollbar-thumb{background:#D4A835;border-radius:4px}

/* ===== v65: 自绘 SVG 图标基础（替代 emoji）===== */
.ic-svg{width:1em;height:1em;display:inline-block;vertical-align:-.13em;flex:0 0 auto;pointer-events:none}
.user-menu-btn .ic-svg{width:19px!important;height:19px!important;vertical-align:0!important}
.eye .ic-svg,.pwd-toggle .ic-svg{width:19px!important;height:19px!important}
.eye,.pwd-toggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;color:#6b7988!important;transition:color .15s!important}
.eye:hover,.pwd-toggle:hover{color:#C4972E!important}
.cap-handle .ic-svg{width:20px!important;height:20px!important;color:#fff!important}


/* ===== v67 修复：深蓝底表头文字看不见（深底深字） ===== */
/* 根因：thead <tr style="background:#1A3A5C"> 有深蓝底，但 th 没设白字，
   继承 body #333 导致深底深字。此处统一给深蓝底表头的 th 设白字。 */
#feeTable thead th,
#delTable thead th,
thead tr[style*="1A3A5C"] th,
thead tr[style*="1a3a5c"] th{
  color:#FFFFFF !important;
  font-weight:700 !important;
}
/* #delTable 表头被 style.css:228 强制刷成白底，那里就该用深字 */
#delTable thead th{
  background:#1A3A5C !important;
  color:#FFFFFF !important;
}
/* 费用表头明确带底色，防止被别处覆盖 */
#feeTable thead th{
  background:#1A3A5C !important;
}
/* 合计行输入框：深蓝底白字，去掉输入框边框感，居中 */
.del-total-row input,
.del-total-row .table-input{
  background:transparent !important;
  border:none !important;
  color:#FFFFFF !important;
  font-weight:700 !important;
  text-align:center !important;
  box-shadow:none !important;
}


/* ===== v68 关闭按钮统一（老板 2026-10-17 要求） ===== */
/* 1) member/orders 等独立页右上角关闭按钮：金底深蓝字圆形 */
.portal-page-close{
  margin-left:auto !important;
  flex:0 0 auto !important;
  width:34px; height:34px;
  display:inline-flex !important;
  align-items:center; justify-content:center;
  background:#D4A835 !important;
  color:#15314F !important;
  border:1px solid #C4972E !important;
  border-radius:50% !important;
  font-size:17px; font-weight:700;
  line-height:1; text-decoration:none !important;
  box-shadow:0 1px 4px rgba(26,58,92,.18);
  cursor:pointer;
  transition:background .15s, transform .15s, box-shadow .15s;
}
.portal-page-close:hover{
  background:#C4972E !important;
  color:#15314F !important;
  transform:translateY(-1px) rotate(90deg);
  box-shadow:0 4px 12px rgba(26,58,92,.22);
}
.portal-page-close:visited{color:#15314F !important}
/* 移动端 portal.css 把 .portal-back 隐藏了，关闭按钮必须保持可见 */
@media(max-width:768px){
  .portal-page-close{display:inline-flex !important}
}

/* 2) 使用帮助页：标题独占左侧，关闭按钮靠右，不再和返回挤一行 */
.topbar .topbar-title{
  flex:1 1 auto;
  color:#fff !important;
  font-size:17px; font-weight:700;
}
.topbar a.topbar-close{
  margin-left:auto !important;
  flex:0 0 auto !important;
  width:34px; height:34px;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center; justify-content:center;
  background:#D4A835 !important;
  color:#15314F !important;
  border:1px solid #C4972E !important;
  border-radius:50% !important;
  font-size:17px !important; font-weight:700 !important;
  line-height:1 !important; text-decoration:none !important;
  box-shadow:0 1px 4px rgba(0,0,0,.18);
  transition:background .15s, transform .15s, box-shadow .15s;
}
.topbar a.topbar-close:hover{
  background:#C4972E !important;
  transform:translateY(-1px) rotate(90deg);
  box-shadow:0 4px 12px rgba(0,0,0,.25);
}
.topbar a.topbar-close:visited{color:#15314F !important}


/* ===== v69 关闭按钮样式对齐「个人中心」.modal-close（老板 2026-10-17 要求） ===== */
/* 个人中心样板：胶囊 56x32 / 金底 #D4A835 / 深蓝字 #15314F / 金边 #C4972E / 文案「关闭」 */
.portal-page-close,
.topbar a.topbar-close{
  margin-left:auto !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:56px !important;
  height:32px !important;
  padding:0 14px !important;
  border-radius:16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#D4A835 !important;
  color:#15314F !important;
  border:1px solid #C4972E !important;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:30px !important;
  text-align:center !important;
  text-decoration:none !important;
  box-shadow:none !important;
  cursor:pointer;
  transition:background .15s, transform .15s, box-shadow .15s;
}
.portal-page-close:hover,
.topbar a.topbar-close:hover{
  background:#C4972E !important;
  color:#15314F !important;
  transform:translateY(-1px) !important;   /* 不旋转，和个人中心一致 */
  box-shadow:0 4px 12px rgba(26,58,92,.22) !important;
}
.portal-page-close:visited,
.topbar a.topbar-close:visited{color:#15314F !important}
/* 移动端 portal.css 隐藏了 .portal-back，关闭按钮须保持可见 */
@media(max-width:768px){
  .portal-page-close{display:inline-flex !important}
}


/* ===== v70 关闭按钮圆角统一胶囊（老板 2026-10-17 指出不统一） ===== */
/* 个人中心/安全中心等弹层的 .modal-close 原为 var(--r-md)=8px 方角带点圆，
   与会员中心/我的订单/使用帮助的 16px 胶囊不一致。此处统一为胶囊。 */
.modal-close,
.sec-modal-close,
.modal .modal-close,
#kefuModal .modal-close,
.portal-page-close,
.topbar a.topbar-close{
  border-radius:16px !important;
  min-width:56px !important;
  height:32px !important;
  padding:0 14px !important;
  font-size:14px !important;
  font-weight:600 !important;
  line-height:30px !important;
  background:#D4A835 !important;
  color:#15314F !important;
  border:1px solid #C4972E !important;
  box-shadow:none !important;
  text-decoration:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer;
  transition:background .15s, transform .15s, box-shadow .15s;
}
.modal-close:hover,
.sec-modal-close:hover,
.modal .modal-close:hover,
#kefuModal .modal-close:hover,
.portal-page-close:hover,
.topbar a.topbar-close:hover{
  background:#C4972E !important;
  color:#15314F !important;
  transform:translateY(-1px) !important;
  box-shadow:0 4px 12px rgba(26,58,92,.22) !important;
}
/* 弹层里的关闭按钮保持绝对定位在右上角（原 style.css 行为，别被上面覆盖掉） */
.modal-close,
.sec-modal-close,
.modal .modal-close,
#kefuModal .modal-close{
  position:absolute !important;
  top:10px !important;
  right:12px !important;
  z-index:5 !important;
}
