/* ===== Hero 横幅（Home.php 与 index.php 共用） ===== */

/* ===== 基础层（淡色） ===== */
.hero-banner {
    background: linear-gradient(135deg, #f5f8fb 0%, #f4faff 100%);
    border: 1px solid #d8e6f3;
    border-radius: 16px;
    padding: 24px 28px;
    margin-bottom: 30px;
    color: #1a3a5c;
    display: flex;
    align-items: center;
    gap: 20px;
    box-shadow: 0 2px 8px rgba(0,73,158,0.06);
    position: relative;
    overflow: hidden;
}
.hero-banner::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -8%;
    width: 280px;
    height: 280px;
    background: rgba(0,73,158,0.04);
    border-radius: 50%;
    pointer-events: none;
}
.hero-banner::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: 15%;
    width: 180px;
    height: 180px;
    background: rgba(0,73,158,0.03);
    border-radius: 50%;
    pointer-events: none;
}
/* 右侧装饰圆：>1024px 显示 */
@media (min-width: 1025px) {
    .hero-banner {
        background:
            radial-gradient(circle 180px at calc(100% - 50px) -20px, rgba(0,73,158,0.07) 50%, transparent 51%),
            linear-gradient(135deg, #f6fafd 0%, #ecf4fb 100%);
    }
}
.hero-avatar {
    width: 83px;
    height: 83px;
    border-radius: 50%;
    border: 3px solid rgba(0,73,158,0.15);
    object-fit: cover;
    /* 证件照人脸偏上：把画面重心往下移，脸更靠圆中心、不被圆上沿遮挡 */
    object-position: center 36%;
    flex-shrink: 0;
    z-index: 1;
}
.hero-content { flex: 1; z-index: 1; }
.hero-title {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.hero-title .name { color: #00499e; }
.hero-title .wave { font-size: 18px; }
.hero-title a {
    color: #00499e;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-size: 13px;
    font-weight: 400;
    opacity: 0.8;
}
.hero-title a:hover { opacity: 1; }
.hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.hero-tag {
    background: rgba(0,73,158,0.06);
    border: 1px solid rgba(0,73,158,0.12);
    border-radius: 20px;
    padding: 3px 12px;
    font-size: 12px;
    line-height: 1.6;
}
.hero-tag strong { color: #00499e; font-weight: 500; }
.hero-tag .val { color: #1a3a5c; }
.hero-tag a { color: #0066CC; text-decoration: none; }
.hero-tag a:hover { text-decoration: underline; }
.hero-login-info {
    font-size: 12px;
    color: #888;
    margin-top: 8px;
}
.hero-login-info font { color: #00499e; font-weight: 500; }
.hero-tip {
    position: absolute;
    top: 22px;
    right: 18px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    font-size: 12px;
    color: #9ab;
}
.hero-tip i, .hero-tip .app-ico { margin-right: 4px; }
.hero-tip .hero-greeting { font-size: 15px; color: #00499e; font-weight: 500; }
.hero-weather {
  display: flex; align-items: center; justify-content: flex-end; gap: 4px;
  margin-top: 6px;
  font-size: 12px; color: #3d6a93;
  white-space: nowrap;
}
.hero-weather .w-icon { font-size: 13px; line-height: 1; }
/* 自托管 SVG 图标（svgIcon）默认无宽高，会退化成 300×150：横幅内必须显式定尺寸。
   Home.php 另有 home.css 的同名规则，两处取值一致。 */
.hero-banner .app-ico { width: 1.1em; height: 1.1em; vertical-align: -0.18em; flex: 0 0 auto; }
.hero-banner .app-ico.fa-spin { animation: heroIcoSpin 1s linear infinite; transform-origin: center; }
@keyframes heroIcoSpin { to { transform: rotate(360deg); } }
@media (max-width: 480px) { .hero-weather { font-size: 12px; } }

/* ===== Hero 横幅上浮堆叠到 header 大图下缘（层次感）仅 >=1024px =====
   首页 Home.php 与登录后的分站 index.php 容器都带 .container.mt-30，两者都会叠压。
   实际叠压量取横幅自身的 --qb-ap（.hero-banner.hero-v2 里定为 56px），
   所以公式恒为 -30px - 56px = -86px；这里容器上声明的 --qb-ap 会被元素自身值覆盖，
   调它不生效。想改叠压深度请改 .hero-banner.hero-v2 的 --qb-ap。 */
@keyframes qbRise {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media screen and (min-width: 1024px) {
  .container.mt-30 { --qb-ap: 30px; }  /* 不生效：被 .hero-banner.hero-v2 自身的 --qb-ap 覆盖 */
  .container.mt-30 .hero-banner {
    margin-top: calc(-30px - var(--qb-ap)) !important;  /* 抵消容器 mt-30 后向上叠压 --qb-ap */
    position: relative;
    z-index: 5;
    border-radius: 18px 18px 16px 16px;
    border-top: 1px solid rgba(255,255,255,0.9);        /* 叠压进图处的高光边缘 */
    /* ---- 磨砂玻璃效果：背景半透明 + 背后模糊，透出下层大图像 ---- */
    backdrop-filter: blur(16px) saturate(1.4);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    background:
      radial-gradient(circle 180px at calc(100% - 50px) -20px, rgba(0,73,158,0.07) 50%, transparent 51%),
      linear-gradient(135deg, rgba(246,250,253,0.66) 0%, rgba(236,244,251,0.58) 100%);
    box-shadow:
      0 -8px 20px rgba(0,73,158,0.16),                  /* 顶部接触阴影:嵌在大图中 */
      0 14px 26px rgba(0,73,158,0.06),                  /* 中距阴影:柔和过渡 */
      0 22px 46px rgba(0,73,158,0.14);                  /* 远端大模糊:悬浮纵深 */
    animation: qbRise 0.7s ease 0.15s backwards;        /* 入场淡入上浮(结束后释放 transform) */
    transition: transform 0.3s ease, box-shadow 0.3s ease, backdrop-filter 0.3s ease;
    will-change: transform;
  }
  /* 磨砂玻璃兜底：不支持 backdrop-filter 的浏览器回退为更不透明的浅底，保证可读 */
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .container.mt-30 .hero-banner {
      background:
        radial-gradient(circle 180px at calc(100% - 50px) -20px, rgba(0,73,158,0.07) 50%, transparent 51%),
        linear-gradient(135deg, rgba(246,250,253,0.92) 0%, rgba(236,244,251,0.90) 100%);
    }
  }
  .container.mt-30 .hero-banner:hover {
    transform: translateY(-2px);                        /* 悬停轻微上浮 */
    box-shadow:
      0 -8px 20px rgba(0,73,158,0.18),
      0 18px 34px rgba(0,73,158,0.12),
      0 30px 60px rgba(0,73,158,0.22);                  /* 悬停阴影加深 */
    backdrop-filter: blur(10px) saturate(1.2);          /* 磨砂在悬停时稍变清晰 */
    -webkit-backdrop-filter: blur(10px) saturate(1.2);
  }
}

/* ===== 横幅入场动画：校徽/头像/标题/标签/提示语 默认淡入上浮，逐级错开 ===== */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes heroFloat {
    0%   { transform: translate(0, 0); }
    25%  { transform: translate(8px, -5px); }
    50%  { transform: translate(0, -10px); }
    75%  { transform: translate(-8px, -5px); }
    100% { transform: translate(0, 0); }
}
@keyframes heroSlideRight {
    from { opacity: 0; transform: translateX(12px); }
    to   { opacity: 1; transform: translateX(0); }
}
/* 统一入场：both 保留起始态、避免闪烁；按视觉顺序错开延迟 */
.hero-avatar     { animation: heroFadeUp .55s ease both; animation-delay: .15s; }
.hero-title      { animation: heroFadeUp .55s ease both; animation-delay: .30s; }
.hero-tags       { animation: heroFadeUp .55s ease both; animation-delay: .45s; }
.hero-login-info { animation: heroFadeUp .55s ease both; animation-delay: .60s; }
.hero-tip        { animation: heroFadeUp .55s ease both; animation-delay: .25s; }
.hero-greeting   { animation: heroSlideRight .55s ease both; animation-delay: .38s; }
/* 校徽水印：入场淡入缩放 + 之后轻微上下浮动（呼吸感） */
@media (prefers-reduced-motion: reduce) {
    .hero-avatar, .hero-title, .hero-tags, .hero-login-info, .hero-tip, .hero-greeting,
    .hero-banner::before, .hero-banner::after { animation: none !important; }
}

/* ============================================================
   Hero 横幅 v2（庄重大气版，浅底 + 磨砂玻璃）
   - 淡蓝渐变 + 极细网格 + 深蓝/金 双色细线；校徽水印、缓慢扫光、头像金环
   - 版式：左「院系英文引言 + 姓名 + 身份标签」，右「问候 / 日期 / 天气」，底部一行登录信息
   - 样式仅作用于 .hero-v2，不影响页面其它区块
   ============================================================ */
.hero-banner.hero-v2{
  overflow:hidden;
  padding:22px 28px 16px;
  --qb-ap:56px;
  border-radius:20px;
  border:1px solid rgba(0,73,158,.12);
  border-top:1px solid rgba(255,255,255,.95);
  color:#12395f;
  background:
    radial-gradient(760px 240px at 92% -30%, rgba(0,73,158,.08), transparent 62%),
    radial-gradient(520px 200px at 8% 130%, rgba(124,92,240,.10), transparent 65%),
    linear-gradient(135deg, rgba(255,255,255,.82) 0%, rgba(236,245,253,.66) 55%, rgba(255,255,255,.76) 100%);
  /* 与系统原版同一套层次：顶部接触阴影压在大图上 + 中距 + 远端大模糊（浮出感） */
  box-shadow:
    0 -3px 12px rgba(0,73,158,.12),
    0 -8px 20px rgba(0,73,158,.14),
    0 12px 24px rgba(0,73,158,.07),
    0 24px 48px rgba(0,73,158,.13);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease, backdrop-filter .3s ease;
  backdrop-filter:blur(18px) saturate(1.35);
  -webkit-backdrop-filter:blur(18px) saturate(1.35);
  isolation:isolate;
  align-items:stretch;
  gap:0;
}
.hero-banner.hero-v2::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg, rgba(0,73,158,.045) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(90deg, rgba(0,73,158,.045) 0 1px, transparent 1px 40px);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 14%, #000 86%, transparent);
  opacity:.5;
}
/* v2 横幅不要任何 ::after 装饰：既不要校徽水印，也不让基础层的淡色圆透出来 */
.hero-banner.hero-v2::after{content:none}
.hv-sheen{position:absolute;top:-45%;left:-35%;width:40%;height:190%;z-index:0;pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.68), rgba(110,90,235,.06), transparent);
  transform:rotate(16deg);
  animation:hvSweep 10s ease-in-out infinite;
}
.hv-orbit{position:absolute;right:-90px;top:-170px;width:520px;height:520px;border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side, rgba(78,86,220,.12), rgba(78,86,220,.05) 55%, transparent 72%);
  animation:hvFloat 15s ease-in-out infinite;
}
@keyframes hvFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-20px,12px,0) scale(1.05)}}
/* 中右侧：不规则字符 + 细线，低透明度缓慢漂移（纯氛围，不抢内容） */
.hv-code{position:absolute;left:56%;right:128px;top:0;bottom:0;z-index:1;pointer-events:none;overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 16%, #000 84%, transparent);
  mask-image:linear-gradient(180deg, transparent, #000 16%, #000 84%, transparent);
}
.hv-glyph{position:absolute;font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,"Courier New",monospace;
  color:#3558d4;letter-spacing:.08em;
  background:linear-gradient(135deg,#2f5fe0 0%,#7b5cf0 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:hvGlyphDrift var(--d,7s) ease-in-out var(--dl,0s) infinite alternate,
            hvGlyphTwinkle 5.5s ease-in-out var(--dl,0s) infinite alternate,
            hvGlyphFloat 8s ease-in-out var(--dl,0s) infinite;
}
.hv-glyph:nth-child(3n){
  background:linear-gradient(135deg,#6a5cf0 0%,#a26bf2 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hv-glyph:nth-child(5n){animation:hvGlyphDrift var(--d,6s) ease-in-out var(--dl,0s) infinite alternate,
  hvGlyphBlink 4.6s ease-in-out var(--dl,0s) infinite,
  hvGlyphFloat 9s ease-in-out var(--dl,0s) infinite}
@keyframes hvGlyphBlink{0%,100%{opacity:calc(var(--o,.12) * .25)}50%{opacity:var(--o,.12)}}
.hv-dash{position:absolute;display:block;width:1.5px;border-radius:2px;
  background:linear-gradient(180deg, transparent, rgba(58,88,214,.55), rgba(132,92,240,.55), transparent);
  animation:hvDashDrift var(--d,9s) ease-in-out var(--dl,0s) infinite alternate,
            hvDashFade 5.2s ease-in-out var(--dl,0s) infinite alternate;
}
@keyframes hvGlyphDrift{from{transform:translate3d(-8px,-18px,0) rotate(-3deg)}to{transform:translate3d(8px,18px,0) rotate(3deg)}}
@keyframes hvGlyphTwinkle{0%,100%{opacity:calc(var(--o,.12) * .35)}25%{opacity:var(--o,.12)}50%{opacity:calc(var(--o,.12) * .6)}75%{opacity:var(--o,.12)}}
@keyframes hvGlyphFloat{0%,100%{filter:blur(0px) brightness(1)}50%{filter:blur(0.5px) brightness(1.15)}}
@keyframes hvDashDrift{from{transform:rotate(var(--r,0deg)) translateY(-14px)}to{transform:rotate(var(--r,0deg)) translateY(14px)}}
@keyframes hvDashFade{from{opacity:calc(var(--o,.2) * .55)}to{opacity:var(--o,.2)}}
/* 不规则线条：仅保留渐变实线 */
.hv-code > i:nth-of-type(2){width:1px;border-radius:1px;
  background:linear-gradient(180deg, transparent, rgba(100,76,240,.50), rgba(58,88,214,.40), transparent);}
.hv-code > i:nth-of-type(4){width:1px;border-radius:1px;
  background:linear-gradient(180deg, rgba(58,88,214,.45), rgba(132,92,240,.50) 50%, transparent);}
@media (max-width:1279.98px){.hv-code{display:none}}
@keyframes hvSweep{
  0%,52%{transform:translateX(-40%) rotate(16deg);opacity:0}
  62%{opacity:.85}
  100%{transform:translateX(340%) rotate(16deg);opacity:0}
}
.hero-v2 .hv-main{position:relative;z-index:2;display:flex;align-items:center;flex:1 1 auto;min-width:0;text-align:left}
.hero-v2 .hv-body{flex:1 1 auto;min-width:0}
.hv-avatar{position:relative;flex:0 0 auto;width:107px;height:107px;margin-right:20px;z-index:2;display:block}
.hv-avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 36%;
  border:2px solid #ffffff;
  box-shadow:0 0 0 1px #d8e6f3, 0 12px 24px rgba(0,73,158,.18);
}
.hv-avatar::before{content:"";position:absolute;inset:-6px;border-radius:50%;
  background:conic-gradient(from 0deg, transparent 0 64%, rgba(124,92,240,.62) 78%, rgba(58,96,220,.45) 88%, transparent 96%);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px));
  animation:hvSpin 12s linear infinite;
}
@keyframes hvSpin{to{transform:rotate(360deg)}}
.hv-kicker{font-size:11px;font-weight:600;letter-spacing:.30em;text-transform:uppercase;
  color:rgba(88,92,170,.62);margin:10px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.hv-kicker-cn{font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:none;color:#a9b2be;}

.hero-v2 .hero-title{font-size:26px;font-weight:600;color:#12395f;margin-bottom:9px;gap:8px;flex-wrap:wrap}
.hero-v2 .hero-title .name{font-family:"Songti SC","STSong","SimSun",serif;font-size:30px;font-weight:700;letter-spacing:.06em;color:#0a3a6b;line-height:1.2}
.hero-v2 .hv-welcome{font-size:16px;font-weight:400;color:#4a6b8c}
.hero-v2 .hero-title .wave{font-size:18px}
/* 7 天免登录胶囊 */
.hero-v2 .rm-pill{display:inline-flex;align-items:center;gap:8px;margin-left:4px;padding:4px 10px;
  border:1px solid #d6e0ec;border-radius:999px;background:#fff;font-size:13px;color:#4a6b8c;line-height:1.4;
  box-shadow:0 1px 2px rgba(0,73,158,.05);vertical-align:middle;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.hero-v2 .rm-pill label{display:inline-flex;align-items:center;gap:6px;margin:0;cursor:pointer;font-weight:400}
.hero-v2 .rm-pill input{margin:0;width:15px;height:15px;cursor:pointer;accent-color:#1a6fd4;flex:0 0 auto}
.hero-v2 .rm-pill .rm-count{font-size:12px;color:#9aa8b8;font-variant-numeric:tabular-nums}
.hero-v2 .rm-pill.is-on{background:#eaf3ff;border-color:#1a6fd4;color:#1a5fd0}
.hero-v2 .rm-pill.is-on .rm-text{font-weight:600;color:#1a5fd0}
.hero-v2 .rm-pill.is-on .rm-count{color:#1a5fd0}
.hero-v2 .rm-pill.is-fail{border-color:#e3a6a6;color:#b23a3a}
.hero-v2 .rm-hint{font-size:12px;color:#9aa8b8;margin:4px 0 6px;line-height:1.5}
/* 移动端强制换行的占位元素，桌面不占位 */
.hero-v2 .rm-break{display:none}
.hero-v2 .hero-title a{color:#1a5fb4;font-size:13px;font-weight:400;text-decoration:none;border-bottom:1px dashed rgba(26,95,180,.45);padding-bottom:1px}
.hero-v2 .hero-title a:hover{color:#00499e;border-bottom-color:#00499e}
.hero-v2 .hero-tags{gap:8px}
.hero-v2 .hero-tag{background:rgba(255,255,255,.72);border:1px solid rgba(0,73,158,.14);color:#12395f;border-radius:999px;padding:4px 12px;font-size:12.5px;line-height:1.5;
  box-shadow:0 1px 2px rgba(0,73,158,.05);}
.hero-v2 .hero-tag strong{color:#2b5f95;font-weight:500}
.hero-v2 .hero-tag .val{color:#123a5e}
.hero-v2 .hero-tag.dept-tag .val{display:inline-block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.hero-v2 .hero-tag a{color:#1a5fb4}
.hero-v2 .hero-tag a:hover{color:#00499e}
.hero-v2 .hero-login-info{position:relative;margin-top:10px;padding:0 0 12px;
  font-size:12px;color:#7a8ca1}
.hero-v2 .hero-login-info::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none;
  background-image:repeating-linear-gradient(90deg, rgba(0,73,158,.20) 0 4px, transparent 4px 9px);
  -webkit-mask-image:linear-gradient(90deg, #000 0%, #000 62%, rgba(0,0,0,.55) 80%, rgba(0,0,0,.15) 92%, transparent 100%);
  mask-image:linear-gradient(90deg, #000 0%, #000 62%, rgba(0,0,0,.55) 80%, rgba(0,0,0,.15) 92%, transparent 100%);
}
.hero-v2 .hero-login-info font{color:#2b5f95}
.hero-v2 .hv-aside{position:relative;z-index:2;flex:0 0 auto;min-width:190px;margin-left:26px;padding-left:28px;
  display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;text-align:right;
}
.hv-greeting{display:inline-flex;align-items:center;gap:7px;font-size:22px;font-weight:600;color:#0a3a6b;letter-spacing:.08em}
.hv-greeting svg{opacity:.7;color:#2b5f95}
.hv-date{font-size:12.5px;color:#6b7f96;letter-spacing:.06em}
.hero-v2 .hero-weather{color:#4a6b8c;margin-top:4px;justify-content:flex-end}
.hero-v2 .hero-weather .w-icon{opacity:.85}
.hero-v2 .hv-main{animation:hvRise .8s cubic-bezier(.2,.7,.2,1) both}
.hero-v2 .hv-aside{animation:hvRise .8s cubic-bezier(.2,.7,.2,1) .12s both}
@keyframes hvRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .hero-banner.hero-v2{
    background:
      radial-gradient(760px 240px at 92% -30%, rgba(0,73,158,.07), transparent 62%),
      radial-gradient(520px 200px at 8% 130%, rgba(124,92,240,.10), transparent 65%),
      linear-gradient(135deg, rgba(255,255,255,.95) 0%, rgba(238,246,253,.92) 55%, rgba(255,255,255,.94) 100%);
  }
}
@media (min-width:1024px){
  .hero-banner.hero-v2:hover{
    transform:translateY(-2px);
    box-shadow:
      0 -8px 20px rgba(0,73,158,.16),
      0 16px 30px rgba(0,73,158,.10),
      0 30px 58px rgba(0,73,158,.18);
    backdrop-filter:blur(14px) saturate(1.25);
    -webkit-backdrop-filter:blur(14px) saturate(1.25);
  }
}
@media (max-width:767.98px){
  /* 页头大图已隐藏，横幅上方间距在容器 mt-30 基础上再加 5px（padding 叠加，避免覆盖 !important 的 mt-30） */
  .container.mt-30{padding-top:5px}
  /* 无头图时导航条到横幅之间太空：导航下缘一条两端渐隐的细线 + 浅蓝底色向下渐隐，形成过渡带
     伪元素正好覆盖「30px 外边距 + 5px 内边距」，底边落在横幅上沿，不会盖住横幅 */
  .container.mt-30{position:relative}
  .container.mt-30::before{
    content:"";position:absolute;left:0;right:0;top:-30px;height:35px;pointer-events:none;
    background:
      linear-gradient(90deg,rgba(0,73,158,0) 0%,rgba(0,73,158,.22) 12%,rgba(0,73,158,.22) 88%,rgba(0,73,158,0) 100%) top/100% 1px no-repeat,
      linear-gradient(180deg,rgba(213,220,238,.75) 0%,rgba(213,220,238,.26) 38%,rgba(213,220,238,0) 100%);
  }
  .hero-banner.hero-v2{flex-direction:column;align-items:stretch;padding:16px 14px;border-radius:16px;width:100%;box-sizing:border-box}
  .hero-v2 .hv-main{width:100%;min-width:0;flex-direction:column;align-items:center;text-align:center}
  .hv-avatar{width:90px;height:90px;margin:10px 0 14px}
  .hv-avatar::before{inset:-7px}
  .hv-kicker{display:none}
  .hero-v2 .hero-title{font-size:19px;gap:6px;margin-bottom:8px;justify-content:center}
  .hero-v2 .hero-title .name{font-size:21px}
  .hero-v2 .hv-welcome{font-size:14px}
  .hero-v2 .hero-tags{justify-content:center;gap:6px}
  .hero-v2 .hero-login-info{text-align:center}
  .hero-banner.hero-v2{text-align:center}
  .hero-v2 .hero-tag{font-size:12px;padding:4px 10px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .hero-v2 .hero-tag.dept-tag .val{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .hero-v2 .rm-pill{margin:6px auto 0;min-height:40px;padding:5px 10px;font-size:12.5px}
  .hero-v2 .rm-break{display:block;flex:0 0 100%;height:0;margin:0}
  .hero-v2 .rm-hint{display:none}
  .hero-v2 .hero-login-info{margin-top:10px;padding:0;line-height:1.6}
  .hero-v2 .hero-login-info::after{display:none}
  /* 窄屏下「您访问自：安徽·合肥」整体换行，避免城市名被拆成两行 */
  .hero-v2 .hero-login-ip{white-space:nowrap}
  .hero-v2 .hv-aside{width:100%;margin:12px 0 0;padding:10px 0 0;border-left:0;border-top:1px solid rgba(0,73,158,.10);
    flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;text-align:center;gap:6px 14px}
  .hv-greeting{font-size:17px}
  .hv-date{font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  .hv-sheen,.hv-orbit,.hv-glyph,.hv-dash,.hv-avatar::before,.hero-v2 .hv-main,.hero-v2 .hv-aside{animation:none !important}
}
