/* ==================== 蜻蜓大学生就业网 v3 — 品牌设计系统 ==================== */
:root {
    /* 主色调：翡翠绿（参考查院校/查专业 3D 图标色系） */
    --primary: #58BE6B;
    --primary-600: #49A25F;
    --primary-700: #3B8551;
    --primary-50: #EDFFF0;
    --primary-100: #C0F1CC;
    --primary-200: #9AE4AD;

    /* 品牌渐变 */
    --grad-brand: linear-gradient(135deg, #58BE6B 0%, #49A25F 100%);
    --grad-hero: linear-gradient(160deg, #0E2E1C 0%, #2D6942 38%, #49A25F 72%, #65CA7D 100%);
    --grad-gold: linear-gradient(135deg, #f59e0b, #f97316);

    /* 辅助色 */
    --accent: #f59e0b;
    --accent-50: #fffbeb;
    --emerald: #58BE6B;
    --emerald-50: #EDFFF0;
    --rose: #f43f5e;
    --rose-50: #fff1f2;
    --sky: #0ea5e9;
    --sky-50: #f0f9ff;
    --violet: #65CA7D;

    /* 中性色 */
    --bg: #f3f5fa;
    --bg-card: #ffffff;
    --text: #0f172a;
    --text-600: #475569;
    --text-400: #94a3b8;
    --text-300: #cbd5e1;
    --border: #e2e8f0;
    --border-light: #eef2f7;

    /* 阴影系统 */
    --shadow-xs: 0 1px 2px rgba(15,23,42,0.04);
    --shadow-sm: 0 1px 3px rgba(15,23,42,0.06), 0 1px 2px rgba(15,23,42,0.04);
    --shadow: 0 4px 6px -1px rgba(15,23,42,0.06), 0 2px 4px -2px rgba(15,23,42,0.04);
    --shadow-md: 0 10px 15px -3px rgba(15,23,42,0.07), 0 4px 6px -4px rgba(15,23,42,0.04);
    --shadow-lg: 0 20px 25px -5px rgba(15,23,42,0.09), 0 8px 10px -6px rgba(15,23,42,0.04);
    --shadow-xl: 0 25px 50px -12px rgba(15,23,42,0.18);
    --shadow-glow: 0 8px 24px rgba(88,190,107,0.28);

    /* 圆角 */
    --r: 16px;
    --r-sm: 12px;
    --r-xs: 8px;
    --r-full: 9999px;

    /* 过渡 */
    --t: 0.2s cubic-bezier(0.4,0,0.2,1);
    --t-slow: 0.35s cubic-bezier(0.4,0,0.2,1);

    /* 字体 */
    --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", sans-serif;

    /* 兼容别名（旧模板引用） */
    --bg-white: #ffffff;
    --radius: var(--r);
    --radius-sm: var(--r-sm);
    --text-secondary: var(--text-600);
    --text-light: var(--text-400);
    --text-dark: var(--text);
    --primary-light: var(--primary-50);
    --border-color: var(--border);
}

* { margin:0; padding:0; box-sizing:border-box; }

html { scroll-behavior: smooth; }

body {
    font-family: var(--font);
    background: var(--bg);
    color: var(--text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a { color: var(--primary); text-decoration:none; transition: color var(--t); }
a:hover { color: var(--primary-600); }
img { max-width: 100%; }
::selection { background: var(--primary-100); color: var(--primary-700); }

/* ==================== 导航栏 — 玻璃态 ==================== */
.navbar {
    position: sticky; top:0; z-index:100;
    background: rgba(255,255,255,0.85);
    backdrop-filter: saturate(180%) blur(20px);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    border-bottom: 1px solid rgba(226,232,240,0.65);
}
.nav-container {
    max-width:1400px; margin:0 auto; padding:0 24px;
    display:flex; align-items:center; height:64px; gap:8px;
}
@media(max-width:768px){ .nav-container{padding:0 16px; height:56px} }

.nav-logo {
    display:flex; align-items:center; gap:10px;
    font-size:20px; font-weight:800; color:var(--primary-700);
    text-decoration:none; white-space:nowrap; letter-spacing:-0.3px;
}
.nav-logo img { height:34px; width:auto; object-fit:contain; border-radius:8px; }
.nav-logo .logo-sub { font-size:10px; font-weight:600; color:var(--text-400); letter-spacing:1.5px; display:block; line-height:1.1; }
.nav-logo .nav-wordmark { height:25px; width:auto; display:block; border-radius:0; }
.nav-wm-wrap { position:relative; display:flex; }
/* 规划师版：角标tips（附于字标右上角的气泡小标签） */
.nav-logo .logo-sub-pill { position:absolute; top:-11px; right:-23px; font-size:8.5px; font-weight:600;
    color:#fff; background:linear-gradient(135deg,#15c872,#0ba19c); border:none; border-radius:4px;
    padding:1px 4px; letter-spacing:.5px; line-height:1.4; white-space:nowrap;
    box-shadow:0 2px 6px rgba(11,161,156,.35); }
.nav-logo .logo-sub-pill::after { content:''; position:absolute; left:5px; bottom:-3px; width:0; height:0;
    border-left:3px solid transparent; border-right:3px solid transparent; border-top:3.5px solid #0ba19c; }
/* Beta 测试期小徽章：琥珀色 pill，跟在功能入口卡片标题旁，全站统一 */
.beta-badge { display:inline-block; font-size:10px; font-weight:700; line-height:1.5; letter-spacing:.5px;
    color:#b45309; background:linear-gradient(135deg,#fef3c7,#fde68a); border:1px solid #f59e0b33;
    border-radius:6px; padding:0 5px; vertical-align:2px; margin-left:4px; white-space:nowrap; }
@media(max-width:768px){ .nav-logo{font-size:17px; gap:6px} .nav-logo img{height:28px} .nav-logo .nav-wordmark{height:19px}
    .nav-logo .logo-sub-pill{font-size:7.5px;top:-10px;right:-21px} }

.nav-links { display:flex; gap:2px; margin-left:42px; flex:1; align-items:center; }
.nav-links > a, .nav-drop > .nav-drop-btn {
    padding:8px 14px; border-radius: var(--r-xs); color:var(--text-600);
    font-size:13.5px; font-weight:500; transition:all var(--t); white-space:nowrap;
    letter-spacing: 0.1px; cursor:pointer; display:inline-flex; align-items:center; gap:4px;
    background:none; border:none; font-family:var(--font);
}
.nav-links > a:hover, .nav-drop:hover > .nav-drop-btn { color:var(--primary); background:var(--primary-50); }
.nav-links > a.active { color:var(--primary); background:var(--primary-50); font-weight:600; }
.nav-hot {
    background: linear-gradient(135deg,#ff3b30,#ff6b5b); color: #fff; font-size: 10px; padding: 1px 6px;
    border-radius: 8px; font-weight: 700; margin-left: 4px;
    animation: navPulse 2s infinite; vertical-align: top;
}
@keyframes navPulse { 0%,100% { opacity: 1; transform:scale(1);} 50% { opacity: .7; transform:scale(0.94);} }

/* 导航下拉 */
.nav-drop { position:relative; }
.nav-drop-btn .caret { font-size:9px; transition:transform var(--t); opacity:.6; }
.nav-drop:hover .nav-drop-btn .caret { transform:rotate(180deg); }
.nav-drop-menu {
    position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(6px);
    min-width:190px; background:#fff; border-radius:var(--r-sm); box-shadow:var(--shadow-lg);
    border:1px solid var(--border-light); padding:6px; opacity:0; visibility:hidden;
    transition:all var(--t); z-index:200;
}
.nav-drop:hover .nav-drop-menu, .nav-drop.open .nav-drop-menu { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.nav-drop-menu a {
    display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:var(--r-xs);
    color:var(--text-600); font-size:13.5px; font-weight:500; transition:all var(--t);
}
.nav-drop-menu a:hover { background:var(--primary-50); color:var(--primary); }
.nav-drop-menu a .dm-ico { font-size:16px; width:22px; text-align:center; }
.nav-drop-menu .dm-desc { display:block; font-size:11px; color:var(--text-400); font-weight:400; }

/* ==================== 按钮系统 ==================== */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    padding:10px 20px; border-radius: var(--r-xs); font-size:14px; font-weight:500;
    cursor:pointer; border:none; transition:all var(--t); font-family:var(--font);
    letter-spacing:0.1px; text-decoration:none;
}
.btn-primary { background:var(--primary); color:#fff; box-shadow:0 1px 2px rgba(88,190,107,0.3); }
.btn-primary:hover { background:var(--primary-600); transform:translateY(-1px); box-shadow:var(--shadow-glow); color:#fff; }
.btn-outline { background:transparent; color:var(--primary); border:1.5px solid var(--primary-100); }
.btn-outline:hover { background:var(--primary-50); border-color:var(--primary); }
.btn-accent { background:var(--accent); color:#fff; }
.btn-accent:hover { background:#d97706; }
.btn-white { background:#fff; color:var(--primary-700); box-shadow:var(--shadow-sm); }
.btn-white:hover { transform:translateY(-1px); box-shadow:var(--shadow-md); }
.btn-sm { padding:6px 14px; font-size:13px; border-radius:var(--r-xs); }
.btn-lg { padding:14px 28px; font-size:16px; border-radius:var(--r-sm); }

/* ==================== Hero — 品牌主视觉 ==================== */
.hero-v3 {
    position:relative; overflow:hidden; color:#fff;
    background: var(--grad-hero);
    padding: 72px 24px 96px; text-align:center;
}
.hero-v3::before {
    content:''; position:absolute; inset:0;
    background-image: url('../img/web/hero_bg.jpg');
    background-size: cover; background-position: center 30%;
    opacity: 0.55;
}
.hero-v3::after {
    content:''; position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(23,18,74,0.35) 0%, rgba(23,18,74,0.15) 45%, rgba(23,18,74,0.75) 100%);
}
.hero-v3 > * { position:relative; z-index:2; }
.hero-badge {
    display:inline-flex; align-items:center; gap:6px; padding:6px 16px; margin-bottom:18px;
    background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.22);
    border-radius:var(--r-full); font-size:12.5px; font-weight:500; backdrop-filter:blur(6px);
}
.hero-badge .dot { width:7px; height:7px; border-radius:50%; background:#4ade80; box-shadow:0 0 8px #4ade80; animation:navPulse 2s infinite; }
.hero-v3 h1 { font-size:42px; font-weight:800; margin-bottom:14px; letter-spacing:-0.5px; text-shadow:0 2px 20px rgba(23,18,74,0.4); }
.hero-v3 .hero-sub { font-size:17px; opacity:0.92; margin-bottom:32px; text-shadow:0 1px 8px rgba(23,18,74,0.35); }
.hero-v3 .hero-sub b { color:#fde68a; font-weight:700; }
@media(max-width:768px){ .hero-v3{padding:40px 16px 72px} .hero-v3 h1{font-size:26px} .hero-v3 .hero-sub{font-size:14px} }

/* 搜索框（Hero 内） */
.search-box {
    max-width:680px; margin:0 auto; display:flex; gap:8px; background:rgba(255,255,255,0.16);
    border-radius: var(--r-full); padding:5px; backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,0.25); position:relative;
    box-shadow: 0 8px 32px rgba(15,10,60,0.25);
}
.search-box input {
    flex:1; border:none; outline:none; padding:14px 22px; font-size:16px;
    border-radius: var(--r-full); font-family:var(--font); background:rgba(255,255,255,0.96);
    color:var(--text); transition:all var(--t);
}
.search-box input:focus { background:#fff; box-shadow:0 0 0 3px rgba(88,190,107,0.35); }
.search-box button {
    padding:14px 30px; background:var(--grad-gold); color:#fff; border:none;
    border-radius: var(--r-full); font-size:15px; font-weight:700; cursor:pointer;
    transition:all var(--t); font-family:var(--font); white-space:nowrap;
    box-shadow: 0 4px 14px rgba(245,158,11,0.4);
}
.search-box button:hover { transform:scale(1.04); filter:brightness(1.05); }
@media(max-width:768px){ .search-box{flex-direction:column; gap:6px; border-radius:var(--r-sm); padding:8px}
    .search-box input{border-radius:var(--r-sm); padding:14px 16px}
    .search-box button{border-radius:var(--r-sm); padding:14px} }

.search-suggestions {
    max-width:720px; margin:16px auto 0; display:flex; gap:8px; flex-wrap:wrap; justify-content:center; position:relative;
    align-items:center;
}
.search-suggestions .ss-label { font-size:12.5px; color:rgba(255,255,255,0.75); }
.search-suggestions a {
    padding:6px 16px; background:rgba(255,255,255,0.14); border-radius:var(--r-full);
    font-size:13px; color:rgba(255,255,255,0.92); backdrop-filter:blur(4px);
    transition:all var(--t); border:1px solid rgba(255,255,255,0.1);
}
.search-suggestions a:hover { background:rgba(255,255,255,0.26); color:#fff; border-color:rgba(255,255,255,0.35); transform:translateY(-1px); }

/* search-hero（搜索页，与全站专题页统一的渐变语言） */
.search-hero {
    background: linear-gradient(120deg,#0d4d2b 0%,#159a56 52%,#3b82f6 135%);
    padding:52px 24px 64px; text-align:center; color:#fff; position:relative; overflow:hidden;
}
.search-hero::before {
    content:''; position:absolute; inset:0;
    background:
        radial-gradient(560px 260px at 15% 0%, rgba(255,255,255,.14), transparent 60%),
        radial-gradient(620px 300px at 85% 20%, rgba(255,217,120,.16), transparent 60%),
        radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.6px);
    background-size:auto, auto, 24px 24px;
}
.search-hero > * { position:relative; z-index:2; }
.search-hero h1 { font-size:32px; font-weight:800; margin-bottom:10px; letter-spacing:0; }
.search-hero p { font-size:16px; opacity:0.88; margin-bottom:26px; }
@media(max-width:768px){ .search-hero{padding:36px 16px 52px} .search-hero h1{font-size:23px} .search-hero p{font-size:13.5px} }

/* Hero 数据统计条 */
.hero-stats {
    display:flex; justify-content:center; gap:48px; margin-top:36px; flex-wrap:wrap;
}
.hero-stats .hs-item { text-align:center; }
.hero-stats .hs-num { font-size:30px; font-weight:800; letter-spacing:-0.5px; color:#fff; }
.hero-stats .hs-num em { font-style:normal; font-size:15px; opacity:.7; margin-left:2px; }
.hero-stats .hs-label { font-size:12.5px; color:rgba(255,255,255,0.75); margin-top:2px; }
@media(max-width:768px){ .hero-stats{gap:24px} .hero-stats .hs-num{font-size:22px} }

/* ==================== 统计卡片 ==================== */
.stats-grid {
    display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
    gap:14px; max-width:1400px; margin:-40px auto 0; padding:0 24px; position:relative; z-index:10;
}
.stat-card {
    background:var(--bg-card); border-radius:var(--r); padding:20px 22px;
    box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:14px;
    transition:all var(--t-slow); cursor:pointer; border:1px solid transparent;
}
.stat-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--primary-100); }
.stat-icon {
    width:46px; height:46px; border-radius:12px; display:flex; align-items:center;
    justify-content:center; font-size:20px; flex-shrink:0;
}
.stat-info h3 { font-size:26px; font-weight:700; line-height:1.2; letter-spacing:-0.5px; }
.stat-info p { font-size:12.5px; color:var(--text-400); font-weight:500; margin-top:1px; }
@media(max-width:768px){ .stats-grid{margin:-24px 12px 0; padding:0; grid-template-columns:repeat(3,1fr); gap:8px}
    .stat-card{padding:14px 10px; gap:8px; border-radius:var(--r-sm)}
    .stat-icon{width:34px; height:34px; font-size:16px; border-radius:8px}
    .stat-info h3{font-size:18px} .stat-info p{font-size:10px} }
@media(max-width:480px){ .stats-grid{grid-template-columns:repeat(2,1fr)} }

/* ==================== 布局容器 ==================== */
.container { max-width:1400px; margin:0 auto; padding:0 24px; }
@media(max-width:768px){ .container{padding:0 12px} }
.section { margin:52px 0; }
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.section-header h2 { font-size:22px; font-weight:700; display:flex; align-items:center; gap:8px; letter-spacing:-0.3px; }
.section-header h2 .sh-deco { width:5px; height:22px; border-radius:3px; background:var(--grad-brand); display:inline-block; }
.section-header .badge { font-size:11px; padding:3px 10px; border-radius:var(--r-full); background:var(--primary-50); color:var(--primary); font-weight:600; }
.section-sub { font-size:13.5px; color:var(--text-400); margin:-14px 0 20px; }
@media(max-width:768px){ .section{margin:30px 0} .section-header h2{font-size:18px} }

/* ==================== 分类卡片（插图版） ==================== */
.cat-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:14px; }
.cat-card {
    background:var(--bg-card); border-radius:var(--r); padding:22px 14px 18px; text-align:center;
    border:1px solid var(--border-light); box-shadow:var(--shadow-xs);
    transition:all var(--t-slow); cursor:pointer; display:block; color:var(--text);
    position:relative; overflow:hidden;
}
.cat-card::after {
    content:''; position:absolute; inset:0; opacity:0; transition:opacity var(--t-slow);
    background:linear-gradient(180deg, rgba(88,190,107,0.05), rgba(73,162,95,0.08));
}
.cat-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--primary-100); }
.cat-card:hover::after { opacity:1; }
.cat-card .cc-img { width:76px; height:76px; margin:0 auto 10px; transition:transform var(--t-slow); position:relative; z-index:1; }
.cat-card:hover .cc-img { transform:scale(1.1) rotate(-2deg); }
.cat-card .cc-img img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 6px 12px rgba(88,190,107,0.18)); }
.cat-card .cc-name { font-weight:700; font-size:14.5px; position:relative; z-index:1; }
.cat-card .cc-count { font-size:11.5px; color:var(--text-400); margin-top:2px; position:relative; z-index:1; }
@media(max-width:768px){ .cat-grid{grid-template-columns:repeat(3,1fr); gap:8px} .cat-card{padding:14px 6px 12px; border-radius:var(--r-sm)}
    .cat-card .cc-img{width:52px;height:52px} .cat-card .cc-name{font-size:12.5px} .cat-card .cc-count{font-size:10px} }
@media(max-width:400px){ .cat-grid{grid-template-columns:repeat(2,1fr)} }

/* ==================== 职位卡片 ==================== */
.job-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:14px; }
@media(max-width:768px){ .job-grid{grid-template-columns:1fr; gap:10px} }

.job-card {
    background:var(--bg-card); border-radius:var(--r); padding:20px;
    box-shadow:0 2px 10px rgba(15,35,25,.08); border:1.5px solid #d8e2da;
    transition:all var(--t-slow); cursor:pointer; position:relative; overflow:hidden;
}
.job-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, var(--primary), var(--violet));
    opacity:0; transition:opacity var(--t-slow);
}
.job-card:hover { box-shadow:var(--shadow-md); border-color:var(--primary-100); transform:translateY(-2px); }
.job-card:hover::before { opacity:1; }
.job-card.expired { opacity:0.55; }

/* 岗位卡片 · 信息重排（52px 渐变首字 logo + 右上角截止状态） */
.job-card { display:flex; flex-direction:column; }
.jc-top { display:flex; align-items:center; gap:12px; margin-bottom:11px; }
.jc-logo { width:52px; height:52px; border-radius:13px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:21px; font-weight:800; overflow:hidden; box-shadow:0 3px 10px rgba(15,35,25,.14); }
.jc-logo.has-img { background:#fff !important; border:1px solid #edf0f4; padding:4px; box-shadow:0 2px 6px rgba(15,35,25,.07); }
.jc-logo img { width:100%; height:100%; object-fit:contain; border-radius:8px; }
.jc-head { flex:1; min-width:0; }
.jc-company { font-size:13.5px; font-weight:700; color:#3a4453; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:5px; }
.jc-dl { font-size:11px; font-weight:700; padding:3px 9px; border-radius:999px; flex-shrink:0; white-space:nowrap; }
.jc-dl.ok { background:#EDFFF0; color:#3B8551; }
.jc-dl.urgent { background:#FFF1E3; color:#e8590c; }
.jc-dl.exp { background:#f1f3f5; color:#9ca3af; }
.job-card .job-position { font-size:16px; font-weight:800; color:#101828; line-height:1.45; margin-bottom:10px;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:44px; }
.job-card .job-meta { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.job-card .job-meta .job-tag { max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.job-card .job-footer { margin-top:auto; display:flex; justify-content:space-between; align-items:center;
    border-top:1px solid #f2f4f3; padding-top:10px; }
.job-card .job-footer .time { font-size:12px; color:#9aa3ad; }
.job-card .jc-go { font-size:12.5px; color:var(--primary); font-weight:700; }
.job-card:hover .jc-go { text-decoration:underline; }
.job-card.expired:hover { opacity:0.8; }
@media(max-width:768px){ .job-card{padding:16px; border-radius:var(--r-sm)} }

.job-card .company-info { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.company-avatar {
    width:44px; height:44px; border-radius:10px; display:flex; align-items:center;
    justify-content:center; color:#fff; font-size:17px; font-weight:700; flex-shrink:0;
    background: linear-gradient(135deg, #58BE6B, #3B8551);
    overflow:hidden;
}
.company-name {
    font-weight:600; font-size:14.5px; color:var(--text);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:220px;
}
.company-type-badge { font-size:10.5px; padding:2px 8px; border-radius:4px; font-weight:600; letter-spacing:0.2px; }
.badge-soe { background:#fef3c7; color:#92400e; }
.badge-central { background:#fef2f2; color:#dc2626; font-weight:700; border:1px solid #fecaca; }
.badge-private { background:var(--primary-50); color:var(--primary-600); }
.badge-foreign { background:var(--rose-50); color:#be123c; }
.badge-bank { background:var(--emerald-50); color:#3B8551; }

.job-position {
    font-size:15.5px; font-weight:600; margin-bottom:10px; color:var(--text);
    overflow:hidden; text-overflow:ellipsis; display:-webkit-box;
    -webkit-line-clamp:2; -webkit-box-orient:vertical; line-height:1.5;
}

.job-meta { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:14px; }
.job-tag {
    font-size:11.5px; padding:3px 10px; border-radius:var(--r-full);
    background:var(--bg); color:var(--text-600); border:1px solid var(--border);
    font-weight:500; letter-spacing:0.1px; display:inline-flex; align-items:center; gap:3px;
}
.job-tag.city { background:#EDFFF0; color:#3B8551; border-color:#9AE4AD; }
.job-tag.deadline { background:var(--accent-50); color:#92400e; border-color:#fde68a; }
.job-tag.deadline.deadline-urgent { background:#fff1f2; color:#e11d48; border-color:#fecdd3; font-weight:700; animation:pulse 1.5s infinite; }
.job-tag.education { background:var(--emerald-50); color:#3B8551; border-color:#9AE4AD; }

.job-footer {
    display:flex; align-items:center; justify-content:space-between;
    border-top:1px solid var(--border-light); padding-top:12px; gap:8px;
}
.job-footer .time { font-size:12px; color:var(--text-400); }

@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.55} }

/* ==================== 工具卡片（AI 工具 / 插图版） ==================== */
.tool-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; }
.tool-card {
    position:relative; border-radius:var(--r); overflow:hidden; display:block; color:var(--text);
    background:var(--bg-card); border:1px solid var(--border-light); box-shadow:var(--shadow-xs);
    transition:all var(--t-slow); padding:26px 22px;
}
.tool-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--primary-100); }
.tool-card .tc-top { display:flex; align-items:flex-start; justify-content:space-between; }
.tool-card .tc-img { width:88px; height:88px; flex-shrink:0; transition:transform var(--t-slow); }
.tool-card:hover .tc-img { transform:scale(1.08) rotate(2deg); }
.tool-card .tc-img img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 8px 16px rgba(88,190,107,0.2)); }
.tool-card h3 { font-size:17px; font-weight:700; margin-top:14px; }
.tool-card p { font-size:13px; color:var(--text-600); margin-top:6px; line-height:1.6; }
.tool-card .tc-go {
    display:inline-flex; align-items:center; gap:4px; margin-top:14px; font-size:13px; font-weight:600;
    color:var(--primary); transition:gap var(--t);
}
.tool-card:hover .tc-go { gap:9px; }
.tool-card .tc-tag {
    position:absolute; top:16px; right:16px; font-size:10.5px; font-weight:700; padding:3px 10px;
    border-radius:var(--r-full); background:var(--grad-gold); color:#fff; box-shadow:0 2px 8px rgba(245,158,11,0.35);
}
.tool-card.tc-feature { background:linear-gradient(135deg,#0E2E1C,#2D6942 60%,#58BE6B); border:none; }
.tool-card.tc-feature h3, .tool-card.tc-feature .tc-go { color:#fff; }
.tool-card.tc-feature p { color:rgba(255,255,255,0.75); }
@media(max-width:768px){ .tool-grid{grid-template-columns:1fr 1fr; gap:10px} .tool-card{padding:18px 14px}
    .tool-card .tc-img{width:64px;height:64px} .tool-card h3{font-size:14.5px} .tool-card p{font-size:11.5px} }
@media(max-width:480px){ .tool-grid{grid-template-columns:1fr} }

/* ==================== 筛选面板 ==================== */
.filter-panel {
    background:var(--bg-card); border-radius:var(--r); padding:18px 20px;
    box-shadow:var(--shadow-xs); border:1px solid var(--border-light); margin-bottom:20px;
}
.filter-row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.filter-group { display:flex; align-items:center; gap:8px; }
.filter-group label { font-size:12.5px; color:var(--text-600); font-weight:600; white-space:nowrap; letter-spacing:0.2px; }
.filter-group select, .filter-group input {
    padding:8px 12px; border:1.5px solid var(--border); border-radius:var(--r-xs);
    font-size:13px; font-family:var(--font); background:var(--bg-card); min-width:110px;
    transition:all var(--t); color:var(--text);
}
.filter-group select:focus, .filter-group input:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 3px var(--primary-50); }

/* 时间筛选条 */
.time-filters { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 0 0; border-top:1px dashed var(--border); margin-top:8px; }
.time-preset {
    padding:5px 14px; border-radius:var(--r-full); font-size:12px; border:1.5px solid var(--border);
    cursor:pointer; white-space:nowrap; background:var(--bg-card); transition:all var(--t); font-weight:500;
}
.time-preset:hover { border-color:var(--primary); background:var(--primary-50); }
.time-preset.active { background:var(--primary); color:#fff; border-color:var(--primary); font-weight:600; }
.time-divider { color:var(--text-300); font-size:13px; }
.time-custom { display:flex; align-items:center; gap:5px; font-size:12px; }
.time-custom input { width:120px; padding:5px 10px; border:1.5px solid var(--border); border-radius:var(--r-xs); font-size:12px; font-family:var(--font); }
.time-custom label { color:var(--text-400); white-space:nowrap; font-size:12px; }
.expired-check { display:flex; align-items:center; gap:5px; font-size:12.5px; color:var(--text-600); cursor:pointer; font-weight:500; }

/* 结果头 */
.result-header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.result-header .result-count { color:var(--text-400); font-size:13.5px; font-weight:500; }
.sort-group { display:flex; align-items:center; gap:8px; }
.sort-group select { padding:7px 10px; border:1.5px solid var(--border); border-radius:var(--r-xs); font-size:13px; background:var(--bg-card); font-family:var(--font); }

/* ==================== 倒计时 ==================== */
.countdown-tag { display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius:var(--r-full); font-size:11px; font-weight:700; }
.countdown-tag.urgent { background:#fff1f2; color:#e11d48; border:1px solid #fecdd3; animation:pulse 2s infinite; }
.countdown-tag.soon { background:#fff7ed; color:#ea580c; border:1px solid #fed7aa; }
.countdown-tag.active { background:#f0fdf4; color:#16a34a; border:1px solid #bbf7d0; }
.countdown-tag.expired { background:#f8fafc; color:#94a3b8; border:1px solid #e2e8f0; text-decoration:line-through; }

/* ==================== AI面试页 ==================== */
.interview-container { max-width:900px; margin:0 auto; }
.interview-setup { background:var(--bg-card); border-radius:var(--r); padding:36px; box-shadow:var(--shadow-sm); text-align:center; border:1px solid var(--border-light); }
.interview-type-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:12px; margin:24px 0; }
.interview-type-card {
    padding:22px 16px; border:2px solid var(--border); border-radius:var(--r);
    cursor:pointer; transition:all var(--t); text-align:center; background:var(--bg-card);
}
.interview-type-card:hover, .interview-type-card.selected { border-color:var(--primary); background:var(--primary-50); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.interview-type-card .type-icon { font-size:34px; margin-bottom:8px; }
.interview-type-card .type-name { font-weight:600; font-size:14px; color:var(--text); }
.interview-chat { background:var(--bg-card); border-radius:var(--r); box-shadow:var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column; border:1px solid var(--border-light); }
.chat-header { padding:16px 20px; background:var(--grad-brand); color:#fff; display:flex; align-items:center; gap:12px; }
.chat-header .ai-avatar { width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.2); display:flex; align-items:center; justify-content:center; font-size:20px; }
.chat-messages { flex:1; overflow-y:auto; padding:20px; display:flex; flex-direction:column; gap:16px; background:var(--bg); }
.chat-message { display:flex; gap:10px; max-width:82%; animation:fadeIn 0.3s ease; }
.chat-message.ai { align-self:flex-start; } .chat-message.user { align-self:flex-end; flex-direction:row-reverse; }
.chat-message .msg-avatar { width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; }
.chat-message.ai .msg-avatar { background:var(--primary-100); } .chat-message.user .msg-avatar { background:#fef3c7; }
.chat-message .msg-bubble { padding:12px 16px; border-radius:16px; font-size:14px; line-height:1.65; }
.chat-message.ai .msg-bubble { background:var(--bg-card); border:1px solid var(--border); border-top-left-radius:4px; }
.chat-message.user .msg-bubble { background:var(--primary); color:#fff; border-top-right-radius:4px; }
.chat-input-area { padding:16px 20px; border-top:1px solid var(--border); display:flex; gap:8px; background:var(--bg-card); }
.chat-input-area textarea { flex:1; border:1.5px solid var(--border); border-radius:var(--r-sm); padding:12px; font-size:14px; font-family:var(--font); resize:none; height:56px; outline:none; transition:all var(--t); }
.chat-input-area textarea:focus { border-color:var(--primary); box-shadow:0 0 0 3px var(--primary-50); }

/* ==================== 评分雷达 ==================== */
.score-report { background:var(--bg-card); border-radius:var(--r); padding:28px; box-shadow:var(--shadow-sm); margin-top:24px; border:1px solid var(--border-light); }
.score-radar { display:grid; grid-template-columns:repeat(auto-fit, minmax(110px, 1fr)); gap:16px; margin:20px 0; }
.score-item { text-align:center; }
.score-ring { width:80px; height:80px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 8px; font-weight:700; font-size:20px; position:relative; }
.score-ring::before { content:''; position:absolute; inset:6px; border-radius:50%; background:var(--bg-card); }
.score-ring span { position:relative; z-index:1; }

/* ==================== AI简历页 ==================== */
.resume-builder { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:1400px; margin:0 auto; }
@media(max-width:900px){ .resume-builder{grid-template-columns:1fr} }
.resume-form-section { background:var(--bg-card); border-radius:var(--r); padding:28px; box-shadow:var(--shadow-sm); border:1px solid var(--border-light); }
.resume-preview-section { background:var(--bg-card); border-radius:var(--r); padding:36px; box-shadow:var(--shadow-sm); font-size:12px; line-height:1.9; border:1px solid var(--border-light); }
.form-group { margin-bottom:16px; }
.form-group label { display:block; font-size:13px; font-weight:600; margin-bottom:5px; color:var(--text); letter-spacing:0.1px; }
.form-group input, .form-group textarea, .form-group select { width:100%; padding:10px 14px; border:1.5px solid var(--border); border-radius:var(--r-xs); font-size:14px; font-family:var(--font); transition:all var(--t); background:var(--bg-card); }
.form-group textarea { min-height:100px; resize:vertical; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 3px var(--primary-50); }
.resume-preview { font-family:"PingFang SC","Microsoft YaHei",sans-serif; }
.resume-preview .rp-header { text-align:center; padding-bottom:16px; border-bottom:2px solid var(--primary); margin-bottom:16px; }
.resume-preview .rp-header h1 { font-size:22px; margin-bottom:6px; }
.resume-preview .rp-section { margin-bottom:20px; }
.resume-preview .rp-section h3 { font-size:14px; padding-bottom:8px; border-bottom:1px solid var(--border); margin-bottom:12px; color:var(--primary); font-weight:700; }
.resume-preview .rp-experience-item { margin-bottom:12px; }
.resume-preview .rp-experience-item .title { font-weight:600; display:flex; justify-content:space-between; }
.resume-preview .rp-tags { display:flex; flex-wrap:wrap; gap:6px; }
.resume-preview .rp-tag { padding:3px 10px; background:var(--primary-50); color:var(--primary); border-radius:var(--r-full); font-size:11px; font-weight:500; }

/* ==================== 课程中心 ==================== */
.course-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:18px; }
.course-card { background:var(--bg-card); border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-xs); border:1px solid var(--border-light); transition:all var(--t-slow); cursor:pointer; }
.course-card:hover { box-shadow:var(--shadow-md); transform:translateY(-4px); }
.course-thumbnail { height:180px; background:linear-gradient(135deg, #1E4C32, #49A25F, #65CA7D); display:flex; align-items:center; justify-content:center; font-size:48px; position:relative; }
.course-thumbnail .play-btn { width:56px; height:56px; background:rgba(255,255,255,0.92); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:24px; color:var(--primary); transition:all var(--t-slow); }
.course-card:hover .play-btn { transform:scale(1.12); background:#fff; box-shadow:0 4px 12px rgba(0,0,0,0.15); }
.course-duration { position:absolute; bottom:8px; right:8px; background:rgba(0,0,0,0.7); color:#fff; padding:3px 8px; border-radius:4px; font-size:11px; font-weight:500; }
.course-body { padding:16px 18px; }
.course-body h4 { font-size:15px; margin-bottom:8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.course-body .course-meta { font-size:12px; color:var(--text-400); display:flex; gap:12px; }

/* ==================== 央企名录 ==================== */
.soe-table-container { background:var(--bg-card); border-radius:var(--r); box-shadow:var(--shadow-sm); overflow:hidden; border:1px solid var(--border-light); }
.soe-search { padding:16px 20px; border-bottom:1px solid var(--border); display:flex; gap:10px; background:var(--bg); }
.soe-search input { flex:1; padding:10px 16px; border:1.5px solid var(--border); border-radius:var(--r-xs); font-size:14px; font-family:var(--font); background:var(--bg-card); transition:all var(--t); }
.soe-search input:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 3px var(--primary-50); }
.soe-table { width:100%; border-collapse:collapse; }
.soe-table th { padding:12px 16px; text-align:left; font-size:11px; font-weight:700; color:var(--text-400); text-transform:uppercase; letter-spacing:0.5px; background:var(--bg); border-bottom:2px solid var(--border); white-space:nowrap; }
.soe-table td { padding:12px 16px; font-size:13.5px; border-bottom:1px solid var(--border-light); }
.soe-table tr:hover td { background:var(--primary-50); }
.soe-level { display:inline-block; padding:3px 10px; border-radius:var(--r-full); font-size:11px; font-weight:600; }
.soe-level.vice-minister { background:#fef3c7; color:#92400e; }
.soe-level.bureau { background:var(--primary-50); color:var(--primary-600); }

/* ==================== 页脚 v3 ==================== */
.footer { background:linear-gradient(160deg,#0B2418 0%,#0E3A24 52%,#11393F 100%); color:rgba(255,255,255,0.72); margin-top:80px; position:relative; overflow:hidden; }
.footer::before {
    content:''; position:absolute; inset:0;
    background:
        radial-gradient(620px 280px at 10% 0%, rgba(2,193,96,.20), transparent 60%),
        radial-gradient(720px 320px at 88% 100%, rgba(196,149,54,.14), transparent 60%),
        radial-gradient(rgba(255,255,255,.045) 1px, transparent 1.6px);
    background-size:auto, auto, 24px 24px;
}
.footer-inner { max-width:1400px; margin:0 auto; padding:52px 24px 28px; position:relative; z-index:1; }
.footer-grid { display:grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap:36px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,0.12); }
.footer-brand { display:flex; align-items:flex-start; gap:12px; }
.footer-brand img { height:40px; border-radius:10px; }
.footer-brand .fb-name { font-size:18px; font-weight:800; color:#fff; }
.footer-brand .fb-slogan { font-size:12.5px; color:rgba(255,255,255,0.6); margin-top:6px; line-height:1.7; }
.footer-col h4 { font-size:13.5px; font-weight:700; color:#fff; margin-bottom:14px; letter-spacing:0.5px; }
.footer-col a { display:block; font-size:13px; color:rgba(255,255,255,0.62); margin-bottom:9px; transition:all var(--t); }
.footer-col a:hover { color:#fff; transform:translateX(3px); }
.footer-col p { font-size:12.5px; color:rgba(255,255,255,0.55); line-height:1.9; }
.footer-links { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; padding:18px 0 0; font-size:12px; }
.footer-links .fl-label { color:rgba(255,255,255,0.4); font-weight:600; margin-right:2px; }
.footer-links a { color:rgba(255,255,255,0.55); text-decoration:none; transition:color .2s; }
.footer-links a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; padding-top:22px; font-size:12px; color:rgba(255,255,255,0.45); }
@media(max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr; gap:24px} }
@media(max-width:560px){ .footer-grid{grid-template-columns:1fr} .footer-inner{padding:36px 16px 20px} }

/* ==================== 分页 ==================== */
.pagination { display:flex; justify-content:center; gap:6px; margin:36px 0; }
.pagination button { min-width:40px; height:40px; border:1.5px solid var(--border); border-radius:var(--r-xs); background:var(--bg-card); cursor:pointer; font-size:14px; font-weight:500; transition:all var(--t); font-family:var(--font); padding:0 12px; }
.pagination button:hover { background:var(--primary-50); border-color:var(--primary); }
.pagination button.active { background:var(--primary); color:#fff; border-color:var(--primary); font-weight:600; }
.pagination button:disabled { opacity:0.3; cursor:not-allowed; }

/* ==================== 加载 & 空状态 ==================== */
.loading { text-align:center; padding:48px 20px; color:var(--text-400); }
.spinner { width:36px; height:36px; border:3px solid var(--border); border-top-color:var(--primary); border-radius:50%; animation:spin 0.7s linear infinite; margin:0 auto 16px; }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes fadeIn { from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:translateY(0)} }
.empty-state { text-align:center; padding:56px 20px; color:var(--text-400); }
.empty-state .icon { font-size:52px; margin-bottom:16px; }
.empty-state .empty-illu { width:150px; height:150px; margin:0 auto 18px; }
.empty-state .empty-illu img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 8px 16px rgba(88,190,107,0.15)); }
.empty-state h3 { margin-bottom:8px; color:var(--text); font-size:18px; font-weight:600; }
.empty-state p { font-size:14px; }

/* ==================== Toast ==================== */
.toast { position:fixed; top:20px; right:20px; padding:14px 24px; border-radius:var(--r-sm); color:#fff; font-weight:600; z-index:2000; animation:slideIn 0.3s ease; box-shadow:var(--shadow-lg); font-size:14px; }
.toast.success { background:var(--emerald); }
.toast.error { background:var(--rose); }
.toast.info { background:var(--sky); }
@keyframes slideIn { from{transform:translateX(120%); opacity:0} to{transform:translateX(0); opacity:1} }

/* ==================== Tab ==================== */
.tab-nav { display:flex; gap:4px; border-bottom:2px solid var(--border); margin-bottom:20px; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.tab-nav::-webkit-scrollbar{display:none}
.tab-nav button {
    padding:12px 20px; border:none; background:none; font-size:13.5px; font-weight:500;
    color:var(--text-400); cursor:pointer; position:relative; font-family:var(--font);
    transition:all var(--t); white-space:nowrap; letter-spacing:0.1px; border-radius:8px 8px 0 0;
}
.tab-nav button:hover { color:var(--primary); background:var(--primary-50); }
.tab-nav button.active { color:var(--primary); font-weight:700; }
.tab-nav button.active::after { content:''; position:absolute; bottom:-2px; left:8px; right:8px; height:2.5px; background:var(--primary); border-radius:2px 2px 0 0; }
@media(max-width:768px){ .tab-nav button{padding:10px 14px; font-size:13px} }

/* ==================== Modal ==================== */
.modal-overlay { position:fixed; inset:0; background:rgba(15,23,42,0.6); backdrop-filter:blur(4px); z-index:1000; display:flex; align-items:center; justify-content:center; animation:fadeIn 0.2s; }
.modal { background:var(--bg-card); border-radius:var(--r); padding:28px; max-width:560px; width:92%; max-height:82vh; overflow-y:auto; box-shadow:var(--shadow-xl); }
.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid var(--border); }
.modal-header h3 { font-size:17px; font-weight:700; }
.modal-close { width:34px; height:34px; border:none; background:var(--bg); border-radius:50%; cursor:pointer; font-size:18px; display:flex; align-items:center; justify-content:center; transition:all var(--t); }
.modal-close:hover { background:var(--border); }

/* ==================== 通用页面头（内页横幅） ==================== */
.page-hero {
    position:relative; overflow:hidden; color:#fff; background:var(--grad-hero);
    padding:44px 24px 56px; text-align:center;
}
.page-hero::before {
    content:''; position:absolute; inset:0; opacity:0.35;
    background-image: url('../img/web/hero_bg.jpg'); background-size:cover; background-position:center 25%;
}
.page-hero::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(23,18,74,0.25), rgba(23,18,74,0.5));
}
.page-hero > * { position:relative; z-index:2; }
.page-hero h1 { font-size:30px; font-weight:800; letter-spacing:-0.3px; }
.page-hero p { font-size:14.5px; opacity:0.85; margin-top:8px; }
@media(max-width:768px){ .page-hero{padding:30px 16px 40px} .page-hero h1{font-size:22px} .page-hero p{font-size:13px} }

/* ==================== 响应式 ==================== */
.hamburger { display:none; background:none; border:none; font-size:26px; cursor:pointer; padding:8px; color:var(--text); line-height:1; }
/* ≤1100px：导航折叠为汉堡（含平板与小屏笔记本，避免6项导航挤压溢出） */
@media(max-width:1100px){
    .nav-links{display:none}
    .hamburger{display:block}
    .nav-links.open{display:flex; flex-direction:column; align-items:stretch; position:absolute; top:56px; left:0; right:0;
        background:rgba(255,255,255,0.98); backdrop-filter:blur(20px); padding:10px;
        z-index:100; gap:1px; box-shadow:var(--shadow-lg); border-top:1px solid var(--border);
        max-height:calc(100vh - 56px); overflow-y:auto;
    }
    .nav-links.open > a, .nav-links.open .nav-drop > .nav-drop-btn{padding:13px 16px; border-radius:10px; font-size:14px; width:100%; text-align:left; justify-content:flex-start}
    .nav-links.open .nav-drop-menu{position:static; transform:none; box-shadow:none; border:none; padding:0 0 0 20px; min-width:0; display:none}
    .nav-links.open .nav-drop.open .nav-drop-menu{display:block; opacity:1; visibility:visible}
    .nav-links.open .nav-drop:hover .nav-drop-menu{transform:none}
    .nav-container{position:relative}
}
@media(max-width:768px){
    body{font-size:15px; -webkit-tap-highlight-color:transparent}
    .container{padding:8px 12px}
    .stats-grid{grid-template-columns:repeat(2,1fr)}
    .job-grid{grid-template-columns:1fr}
    .search-hero{padding:28px 16px 56px !important}
    .filter-row{flex-direction:column; align-items:stretch}
    .filter-row select,.filter-row input{width:100%; font-size:16px}
    .job-card:active,.stat-card:active,.cat-card:active,.tool-card:active{transform:scale(0.98)}
    .btn{padding:12px 20px; font-size:15px; min-height:44px}
    .btn-sm{padding:8px 16px; font-size:13px; min-height:36px}
    input,textarea,select{font-size:16px !important}
    table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch}
}
@media(max-width:480px){
    .stats-grid{grid-template-columns:1fr 1fr; gap:8px}
    .search-hero h1{font-size:20px}
}

.history-item{position:relative}.btn-del{position:absolute;top:6px;right:8px;background:none;border:none;cursor:pointer;font-size:14px;opacity:0;transition:.2s}.history-item:hover .btn-del{opacity:.6}.history-item .btn-del:hover{opacity:1}

/* ==================== 移动端深度适配 (2026-07-18) ==================== */
/* --- 搜索页：筛选抽屉 --- */
.filter-toggle { display:none; }
@media(max-width:768px){
    .filter-toggle {
        display:flex; align-items:center; justify-content:space-between;
        width:100%; padding:13px 16px; margin-top:-14px; margin-bottom:0;
        background:var(--bg-card); border:none; border-top:1px solid var(--border-light);
        font-size:14px; font-weight:600; color:var(--text-700); font-family:var(--font);
        cursor:pointer; min-height:48px; -webkit-tap-highlight-color:transparent;
    }
    .filter-toggle .ft-right { display:flex; align-items:center; gap:8px; }
    .filter-toggle .ft-caret { font-size:11px; color:var(--text-400); transition:transform .25s; }
    .filter-toggle.fp-open .ft-caret { transform:rotate(180deg); }
    #activeFilterCount {
        background:var(--primary); color:#fff; font-size:11px; font-weight:600;
        padding:2px 8px; border-radius:var(--r-full); display:none;
    }
    #filterPanel { display:none; border-radius:0 0 var(--r) var(--r) !important; }
    #filterPanel.fp-open { display:block; }
    .filter-toggle.fp-open { border-bottom:1px solid var(--border-light); }
    /* 时间筛选区移动端换行优化 */
    .time-filters { flex-wrap:wrap; row-gap:10px; }
    .time-custom { width:100%; display:flex; align-items:center; gap:8px; }
    .time-custom input[type="date"] { flex:1; min-width:0; }
    .time-divider { display:none; }
    /* 结果头：排序控件不换行溢出 */
    .result-header { flex-wrap:wrap; gap:8px; }
    .sort-group { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
    /* 分页按钮触摸目标 */
    .pagination button, .pagination a { min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
}

/* --- 首页 hero 统计：小屏 2×2 --- */
@media(max-width:480px){
    .hero-stats { display:grid; grid-template-columns:1fr 1fr; gap:14px 8px; justify-items:center; }
    .hero-stats .hs-item { text-align:center; }
}

/* --- 央企名录：筛选 chips 横滑 + 表格精简 --- */
@media(max-width:768px){
    #categoryFilter {
        flex-wrap:nowrap !important; overflow-x:auto; -webkit-overflow-scrolling:touch;
        scrollbar-width:none; padding-bottom:8px; margin-left:-12px; margin-right:-12px;
        padding-left:12px; padding-right:12px;
    }
    #categoryFilter::-webkit-scrollbar { display:none; }
    #categoryFilter button { flex-shrink:0; }
    .soe-search { flex-direction:column; }
    .soe-search select { width:100%; }
    .soe-table th, .soe-table td { padding:10px 6px; font-size:12.5px; }
    .soe-table th:nth-child(1), .soe-table td:nth-child(1),
    .soe-table th:nth-child(6), .soe-table td:nth-child(6),
    .soe-table th:nth-child(7), .soe-table td:nth-child(7),
    .soe-table th:nth-child(8), .soe-table td:nth-child(8) { display:none; }
    .soe-level { white-space:nowrap; }
    .soe-table td { white-space:nowrap; }
    .soe-table td:nth-child(2) { white-space:normal; min-width:96px; }
}

/* --- 规划报告：移动端上下堆叠（仅布局覆盖，不动其模板与逻辑） --- */
@media(max-width:768px){
    .plan-container { flex-direction:column !important; height:auto !important; }
    .plan-sidebar {
        width:100% !important; min-width:0 !important; border-right:none !important;
        border-bottom:1px solid #e5e7eb; max-height:36vh; padding:14px !important;
    }
    .plan-main { overflow-y:visible !important; }
    .plan-form { padding:24px 16px !important; }
    .welcome-inner { padding:0 16px; }
    .welcome-feats { grid-template-columns:1fr !important; }
}

/* --- 全局触摸体验 --- */
@media(max-width:768px){
    .nav-links.open { box-shadow:0 12px 32px rgba(15,23,42,.18); }
    .nav-links.open .nav-drop-menu a { min-height:44px; display:flex; align-items:center; }
    .job-card, .cat-card, .tool-card, .stat-card { -webkit-tap-highlight-color:transparent; }
    a, button { -webkit-tap-highlight-color:transparent; }
}

/* ==================== 用户系统（导航登录态 / 认证页 / 收藏星标） ==================== */
/* 导航栏右侧登录区 */
.nav-auth { display:flex; align-items:center; gap:8px; margin-left:auto; flex-shrink:0; }
.nav-auth .btn { text-decoration:none; }
.nav-user { position:relative; }
.nav-user-btn {
    display:flex; align-items:center; gap:7px; padding:5px 12px 5px 6px;
    border:1.5px solid var(--border); border-radius:var(--r-full); background:var(--bg-card);
    cursor:pointer; font-family:var(--font); transition:all var(--t);
}
.nav-user-btn:hover { border-color:var(--primary); box-shadow:var(--shadow-sm); }
.nav-avatar {
    width:28px; height:28px; border-radius:50%; background:var(--grad-brand); color:#fff;
    display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700;
}
.nav-username { font-size:13px; font-weight:600; color:var(--text); max-width:90px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav-user-btn .caret { font-size:9px; color:var(--text-400); }
.nav-user-menu {
    position:absolute; top:calc(100% + 8px); right:0; min-width:150px;
    background:#fff; border-radius:var(--r-sm); box-shadow:var(--shadow-lg);
    border:1px solid var(--border-light); padding:6px; opacity:0; visibility:hidden;
    transform:translateY(6px); transition:all var(--t); z-index:300;
}
.nav-user.open .nav-user-menu, .nav-user:hover .nav-user-menu { opacity:1; visibility:visible; transform:translateY(0); }
.nav-user-menu a {
    display:flex; align-items:center; gap:8px; padding:9px 12px; border-radius:var(--r-xs);
    color:var(--text-600); font-size:13.5px; font-weight:500;
}
.nav-user-menu a:hover { background:var(--primary-50); color:var(--primary); }
@media(max-width:768px){
    .nav-auth { gap:6px; }
    .nav-username { display:none; }
    .nav-user-btn { padding:4px; border:none; background:transparent; }
    .nav-auth-reg { display:none !important; }
    .nav-auth-login { padding:8px 14px !important; }
}

/* 收藏星标按钮 */
.fav-star {
    border:none; background:none; cursor:pointer; font-size:20px; line-height:1;
    padding:4px; color:var(--text-300); transition:all var(--t); flex-shrink:0;
    -webkit-tap-highlight-color:transparent;
}
.fav-star:hover { transform:scale(1.2); color:var(--accent); }
.fav-star.favorited { color:var(--accent); }
.fav-star.favorited:hover { color:#d97706; }

/* 认证页（登录/注册/找回密码） */
.auth-wrap {
    min-height:calc(100vh - 64px); display:flex; align-items:center; justify-content:center;
    padding:40px 16px; background:var(--grad-hero); position:relative; overflow:hidden;
}
.auth-wrap::before {
    content:''; position:absolute; inset:0;
    background-image:url('../img/web/hero_bg.jpg'); background-size:cover; background-position:center 30%; opacity:.35;
}
.auth-wrap::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(23,18,74,.3), rgba(23,18,74,.55));
}
.auth-card {
    position:relative; z-index:2; width:100%; max-width:420px; background:var(--bg-card);
    border-radius:var(--r); padding:32px 28px; box-shadow:var(--shadow-xl);
}
.auth-card h1 { font-size:22px; font-weight:800; text-align:center; margin-bottom:4px; }
.auth-card .auth-sub { text-align:center; font-size:13px; color:var(--text-400); margin-bottom:22px; }
.auth-brand { display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:16px; }
.auth-brand .ab-icon { height:42px; width:42px; border-radius:11px; box-shadow:0 6px 16px rgba(11,161,156,.28); }
.auth-brand .ab-wm { height:27px; width:auto; display:block; }
/* 下载加载态旋转指示（通用，currentColor适配深浅按钮） */
.dl-spin { width:12px; height:12px; border:2px solid rgba(140,140,140,.3); border-top-color:currentColor;
    border-radius:50%; display:inline-block; animation:dlspin .8s linear infinite; vertical-align:-2px; }
@keyframes dlspin { to { transform:rotate(360deg); } }
.auth-tabs { display:flex; background:var(--bg); border-radius:var(--r-xs); padding:4px; margin-bottom:20px; }
.auth-tabs button {
    flex:1; padding:9px; border:none; background:transparent; border-radius:6px; font-size:14px;
    font-weight:500; color:var(--text-600); cursor:pointer; font-family:var(--font); transition:all var(--t);
}
.auth-tabs button.active { background:#fff; color:var(--primary); font-weight:700; box-shadow:var(--shadow-xs); }
.auth-form .form-group { margin-bottom:14px; }
.auth-form .form-group label { display:block; font-size:13px; font-weight:600; margin-bottom:5px; color:var(--text); }
.auth-form .form-group input {
    width:100%; padding:11px 14px; border:1.5px solid var(--border); border-radius:var(--r-xs);
    font-size:15px; font-family:var(--font); transition:all var(--t); background:var(--bg-card);
}
.auth-form .form-group input:focus { border-color:var(--primary); outline:none; box-shadow:0 0 0 3px var(--primary-50); }
.code-row { display:flex; gap:8px; }
.code-row input { flex:1; }
.btn-send-code {
    flex-shrink:0; padding:0 16px; border:1.5px solid var(--primary-100); background:var(--primary-50);
    color:var(--primary); border-radius:var(--r-xs); font-size:13px; font-weight:600; cursor:pointer;
    font-family:var(--font); white-space:nowrap; transition:all var(--t);
}
.btn-send-code:hover:not(:disabled) { background:var(--primary-100); border-color:var(--primary); }
.btn-send-code:disabled { opacity:.55; cursor:not-allowed; }
.auth-submit { width:100%; padding:13px; font-size:15px; font-weight:700; margin-top:6px; }
.auth-links { display:flex; justify-content:space-between; margin-top:16px; font-size:13px; }
.auth-msg { font-size:13px; margin-top:10px; text-align:center; min-height:18px; }
.auth-msg.error { color:var(--rose); }
.auth-msg.success { color:var(--emerald); }
@media(max-width:768px){ .auth-card{padding:26px 20px} }

/* ==================== 职位卡片：薪资/届别/公告 ==================== */
.job-tag.salary { background:#EDFFF0; color:#3B8551; border-color:#9AE4AD; font-weight:600; }
.job-tag.grade { background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
.notice-badge {
    position:absolute; top:0; right:0; padding:3px 10px; font-size:11px; font-weight:700;
    background:linear-gradient(135deg,#f59e0b,#f97316); color:#fff; border-radius:0 var(--r) 0 var(--r-sm);
}

/* ==================== 职位详情：长文本与工商信息 ==================== */
.dt-body { font-size:14px; line-height:1.9; color:var(--text-600); word-break:break-word; }
.company-info-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.company-info-grid .ci-item { font-size:13.5px; color:var(--text-600); padding:10px 14px; background:var(--bg); border-radius:var(--r-xs); }
.company-info-grid .ci-item b { color:var(--text); font-weight:600; }
@media(max-width:640px){ .company-info-grid{grid-template-columns:1fr} }
