/* 蓝白校企门户；沿用 Bootstrap 与既有业务组件。 */
:root { --navy:#123e78; --navy-2:#0c3267; --teal:#176aa5; --teal-dark:#145984; --paper:#fff; --card:#fff; --line:#e2e8ee; --shadow:none; }
body { background:#fff; color:#293c50; }
.container { max-width:1320px; }
.site-header { background:#123e78; border-bottom:0; }
.site-header .navbar { padding:0; }
.site-header .navbar > .container { position:relative; display:block; }
.brand { padding:26px 0; margin:0; max-width:70%; }
.brand strong { font-family:var(--sans); font-size:32px; font-weight:700; letter-spacing:.08em; }
.brand small { color:#e0ebf9; font-size:16px; letter-spacing:.08em; }
.brand svg { width:48px; height:48px; }
.brand-motto { position:absolute; right:16px; top:25px; text-align:right; font-size:21px; line-height:1.8; letter-spacing:.25em; color:#e5eefb; }
.brand-motto span { font-size:14px; letter-spacing:.18em; }
.site-header .navbar-collapse { border-top:1px solid #ffffff20; }
.header-actions { width:100%; display:flex; justify-content:space-between; gap:0; padding:0; }
.header-actions .nav-link-plain,.header-actions button.linkish,.header-actions .btn-nav { display:block; padding:17px 12px !important; border-radius:0; font-size:15px; font-weight:600; border:0; white-space:nowrap; }
.header-actions .nav-link-plain:hover,.header-actions .btn-nav:hover { background:#225796; }
.btn-nav-solid { background:transparent; }
.navbar-toggler { position:absolute; right:16px; top:28px; }
.panel,.step-card,.role-card,.empty-state,.demand-card { border-radius:4px; box-shadow:none; }
.section-title,.stat-item strong { font-family:var(--sans); font-weight:700; }
.btn { border-radius:3px; }
main > .container.pt-3:not(:has(.alert)) { display:none; }
.preview-ribbon { background:#f0f5fa; color:#385b80; font-size:12px; padding:5px 12px; }
.portal-hero { position:relative; height:420px; background:#123e78; color:white; overflow:hidden; }
.portal-hero > img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,#05264aba,#05264a24 70%,transparent); }
.hero-content { position:relative; display:flex; flex-direction:column; justify-content:center; height:100%; align-items:flex-start; }
.hero-kicker { font-size:16px; letter-spacing:.22em; margin:0 0 18px; }
.portal-hero h1 { max-width:690px; font-size:clamp(28px,3.1vw,46px); line-height:1.45; font-weight:700; margin-bottom:16px; }
.portal-hero .hero-content > p:not(.hero-kicker) { max-width:650px; line-height:1.9; color:#eef4ff; }
.hero-link { border:1px solid #ffffffaa; border-radius:24px; padding:9px 24px; color:white; text-decoration:none; margin-top:10px; }
.hero-link:hover { background:white; color:var(--navy); }
.portal-section { padding-top:34px; padding-bottom:34px; }
.news-notice-grid { display:grid; grid-template-columns:2fr 1fr; gap:24px; }
.portal-box { border:1px solid var(--line); padding:22px; min-width:0; }
.portal-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:22px; border-bottom:1px solid #e4eaf1; }
.portal-heading h2 { color:#195a88; font-size:23px; font-weight:700; margin:0 0 -1px; padding-bottom:14px; border-bottom:3px solid #176aa5; }
.portal-heading > a,.group-heading > a { color:#6b7e91; font-size:13px; white-space:nowrap; text-decoration:none; }
.news-feature-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:20px; }
.featured-news { display:block; color:#243e58; text-decoration:none; min-width:0; }
.featured-news img,.news-placeholder { width:100%; height:200px; object-fit:cover; background:#e9f0f8; }
.news-placeholder { display:grid; place-items:center; color:#195a88; }
.featured-news h3 { font-size:16px; line-height:1.7; margin:12px 0 0; }
.portal-news-list { list-style:none; padding:0; margin:0; min-width:0; }
.portal-news-list li { display:flex; align-items:center; gap:12px; padding:13px 0; border-bottom:1px solid #eef1f5; font-size:14px; }
.portal-news-list li:last-child { border-bottom:0; }
.portal-news-list a { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; min-width:0; text-decoration:none; color:#344f69; }
.portal-news-list time { flex-shrink:0; color:#6c8197; font-size:12px; }
.notice-list li { padding:19px 0; }
.notice-list time { background:#eef5fc; padding:4px 6px; color:#2c679e; }
.portal-stats { background:#f3f7fb; padding:25px 0; }
.portal-stats .stat-strip { margin:0 auto; gap:0; }
.portal-stats .stat-item { border:0; border-right:1px solid #d9e3ee; border-radius:0; background:transparent; box-shadow:none; padding:4px 10px; }
.portal-stats .stat-item:last-child { border:0; }
.stat-item strong { font-size:30px; }
.demand-groups { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.demand-group { border:1px solid var(--line); min-width:0; }
.group-heading { display:flex; align-items:center; justify-content:space-between; padding:15px 20px; background:#f4f7fb; border-bottom:1px solid var(--line); }
.group-heading h3 { font-size:18px; color:#174b7c; margin:0; font-weight:700; }
.demand-row { display:flex; gap:14px; align-items:center; padding:17px 20px; text-decoration:none; border-bottom:1px solid #eef1f5; color:#283f55; }
.demand-row:last-child { border:0; }
.demand-row img { width:42px; height:42px; object-fit:cover; }
.demand-row > div { min-width:0; flex:1; }
.demand-row h4 { font-size:15px; line-height:1.6; margin:0 0 5px; }
.demand-row p { margin:0; color:#778797; font-size:12px; }
.demand-count { font-size:12px; color:#66819b; white-space:nowrap; }
.portal-about { background:#f4f7fb; padding:35px 0; }
.about-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:40px; align-items:center; }
.about-grid > div > img { width:100%; height:290px; object-fit:cover; }
.about-grid p { font-size:15px; line-height:1.9; color:#577086; }
.committee-list { display:flex; gap:10px 20px; flex-wrap:wrap; list-style:none; padding:0; font-size:14px; }
.partner-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.partner-item { border:1px solid var(--line); padding:18px 8px; display:flex; align-items:center; justify-content:center; gap:12px; text-align:center; font-size:13px; }
.partner-item img { width:45px; height:45px; object-fit:contain; }
.partner-item a { display:flex; align-items:center; gap:12px; text-decoration:none; }
.site-footer { background:#123e78; color:#dce9f8; border:0; padding:35px 0; }
.site-footer a { color:#dce9f8; }
.site-footer strong { font-size:17px; }
.site-footer small { display:block; margin-top:10px; color:#c0d3ec; }
@media(max-width:1199px) {
  .brand { max-width:78%; }
  .brand-motto { display:none; }
  .header-actions { flex-wrap:wrap; justify-content:flex-start; padding:8px 0; }
  .header-actions .nav-link-plain,.header-actions button.linkish,.header-actions .btn-nav { padding:10px 14px !important; }
  .news-notice-grid { grid-template-columns:1.7fr 1fr; }
  .news-feature-grid { grid-template-columns:1fr; }
}
@media(max-width:767px) {
  .hero-shade { background: rgba(4,34,66,.58); }
  .brand { padding:19px 0; max-width:calc(100% - 64px); }
  .brand strong { font-size:25px; }
  .brand small { font-size:11px; letter-spacing:0; }
  .brand svg { width:38px; height:38px; flex-shrink:0; }
  .navbar-toggler { top:25px; }
  .portal-hero { height:350px; }
  .hero-content { padding:25px 24px; }
  .hero-kicker { font-size:12px; letter-spacing:.1em; }
  .portal-hero h1 { max-width:90%; font-size:28px; }
  .portal-hero .hero-content > p:not(.hero-kicker) { font-size:14px; }
  .portal-hero > img { object-position:60% center; }
  .news-notice-grid,.news-feature-grid,.demand-groups,.about-grid { grid-template-columns:1fr; }
  .portal-section { padding-top:24px; padding-bottom:24px; }
  .portal-box { padding:18px; }
  .portal-heading h2 { font-size:21px; }
  .portal-stats .stat-strip { grid-template-columns:repeat(3,1fr); gap:18px 0; }
  .stat-item strong { font-size:26px; }
  .partner-grid { grid-template-columns:1fr 1fr; }
  .partner-item { flex-direction:column; }
  .about-grid { gap:24px; }
  .about-grid > div > img { height:220px; }
  .demand-count { display:none; }
}
.account-bar { background:#f1f5f9; border-bottom:1px solid #e1e8ef; color:#526b83; font-size:13px; }
.account-bar > .container { display:flex; align-items:center; justify-content:space-between; min-height:38px; gap:18px; }
.account-controls { display:flex; align-items:center; gap:20px; margin-left:auto; }
.account-controls a { color:#234f7d; text-decoration:none; padding:8px 0; }
.account-controls form { margin:0; }
.account-controls button { border:0; background:none; color:#234f7d; font:inherit; padding:8px 0; }
.partner-item img { width:76px; height:76px; }
.partner-item { padding:22px 12px; gap:16px; min-height:122px; }
.workspace-main { padding:28px 32px; }
.workspace-main .meta-list { margin-bottom:24px; gap:12px; }
.workspace-main hr { margin:28px 0; }
.workspace-actions { display:flex; flex-wrap:wrap; gap:14px; margin:22px 0 10px; }
.workspace-actions .btn { min-width:140px; padding:13px 20px; }
.account-settings-card { padding:20px; }
.account-settings-card h2 { padding-bottom:12px; border-bottom:1px solid #e5ebf2; margin-bottom:14px; }
.account-settings-card .btn { text-align:left; font-size:14px; padding:10px 12px; border-color:#e2e8ef; }
.captcha-controls { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.captcha-controls input { max-width:130px; }
.captcha-controls img { border:1px solid #d8e2ee; border-radius:3px; }
.form-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:24px; }
.form-actions .btn { min-width:88px; padding:9px 18px; }
.application-table { min-width:800px; }
.demand-action-panel { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; padding:22px; margin:20px 0 24px; border:1px solid #c8dcef; border-left:4px solid #176aa5; background:#eef5fc; border-radius:4px; }
.demand-action-panel > div { flex:1 1 230px; }
.demand-action-panel p { color:#526b83; line-height:1.7; }
.demand-action-button { min-width:160px; padding:13px 22px; font-size:17px; font-weight:600; white-space:nowrap; }
.action-closed { padding:10px 14px; color:#6b7280; background:#e5eaf0; border-radius:3px; }
.team-search { display:grid; grid-template-columns:minmax(0,1fr) 200px auto; gap:20px; align-items:end; }
.team-search .btn { min-height:38px; }
.team-card { overflow:hidden; border:1px solid var(--line); border-radius:4px; background:white; display:flex; flex-direction:column; }
.team-cover { display:block; aspect-ratio:16/9; overflow:hidden; }
.team-cover img { width:100%; height:100%; object-fit:cover; }
.team-card-body { padding:22px; display:flex; flex-direction:column; flex:1; }
.team-card-body h2 { font-size:19px; line-height:1.6; }
.team-card-body h2 a { text-decoration:none; }
.team-affiliation { font-size:14px; color:#6c7f90; }
.team-detail-link { padding-top:16px; margin-top:auto; border-top:1px solid var(--line); text-decoration:none; font-size:14px; }
.news-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:34px; }
.news-layout > div,.news-sidebar { min-width:0; }
.news-results-heading { display:flex; justify-content:space-between; padding:14px 0; border-bottom:2px solid var(--navy); }
.news-list-item { display:grid; grid-template-columns:210px minmax(0,1fr); gap:24px; padding:26px 0; border-bottom:1px solid var(--line); }
.news-list-image { display:block; aspect-ratio:3/2; }
.news-list-image img { width:100%; height:100%; object-fit:cover; border-radius:3px; }
.news-list-copy { display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
.news-list-copy h2 { font-size:19px; line-height:1.6; margin:0; }
.news-list-copy h2 a { text-decoration:none; }
.news-list-copy p { font-size:14px; line-height:1.8; }
.news-list-copy > a { margin-top:auto; text-decoration:none; }
.news-sidebar .portal-heading h2 { font-size:20px; }
.sidebar-notice { padding-bottom:17px; margin-bottom:17px; border-bottom:1px solid var(--line); }
.sidebar-notice:last-child { margin:0; padding:0; border:0; }
.sidebar-notice h3 { font-size:14px; line-height:1.8; margin:5px 0 0; }
.sidebar-notice a { text-decoration:none; }
.news-collaboration { margin-top:24px; border:1px solid var(--line); background:#f3f7fb; }
.news-collaboration > img { width:100%; height:145px; object-fit:cover; }
.news-collaboration > div { padding:22px; }
.news-collaboration p { font-size:14px; color:#61778d; line-height:1.8; }
.community-layout { display:grid; grid-template-columns:1fr 1.25fr; gap:30px; align-items:start; }
.community-layout > img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.community-layout .prose { white-space:normal; line-height:1.9; }
@media(max-width:991px) {
  .news-layout { grid-template-columns:minmax(0,1fr); }
  .news-sidebar { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
  .news-collaboration { margin-top:0; }
  .team-search { grid-template-columns:minmax(0,1fr) 180px; }
}
@media(max-width:575px) {
  .team-search,.news-sidebar,.community-layout { grid-template-columns:minmax(0,1fr); }
  .news-list-item { grid-template-columns:105px minmax(0,1fr); gap:15px; padding:20px 0; }
  .news-list-copy h2 { font-size:16px; }
  .news-list-copy p { font-size:13px; }
  .news-list-copy .small { font-size:12px; }
  .demand-action-button { width:100%; }
}
.application-table th:first-child { min-width:240px; }
.application-table th:nth-child(2) { min-width:150px; }
.application-table th:nth-child(3) { min-width:140px; }
.application-table th:nth-child(4) { min-width:90px; }
.application-table th:last-child { min-width:100px; }
@media(max-width:767px) {
  .welcome-text { display:none; }
  .account-controls { gap:22px; }
  .workspace-main { padding:22px; }
  .workspace-actions .btn { flex:1 1 140px; }
  .partner-item { flex-direction:column; }
  .captcha-controls { gap:10px; }
  .captcha-controls input { max-width:100px; }
  .captcha-controls img { width:170px; height:51px; }
}
