:root{--navy:#0c2d47;--blue:#17689e;--blue2:#0d5b8f;--ink:#18324a;--muted:#6d8192;--line:#dfe8ef;--bg:#f4f7fa;--white:#fff;--green:#1f7a53;--gold:#88620b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}.public-wrap{width:min(1320px,calc(100% - 40px));margin:0 auto}.public-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 2px 14px rgba(0,0,0,.14)}.header-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.public-brand{display:flex;align-items:center;gap:11px;text-decoration:none}.public-brand strong{display:block;font-size:16px}.public-brand small{display:block;color:#afc5d5;margin-top:3px}.public-mark{width:42px;height:42px;border-radius:11px;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:900}.public-nav{display:flex;align-items:center;gap:10px}.public-nav a{color:#dceaf3;text-decoration:none;padding:10px 12px;border-radius:8px}.public-nav a.active{background:#153f5f;color:#fff}.public-nav .portal-btn{background:#fff;color:var(--navy);font-weight:700}.hero{background:linear-gradient(135deg,#0e3958,#176a9d);color:#fff;padding:54px 0 66px}.hero-grid{display:grid;grid-template-columns:1.6fr .8fr;align-items:end;gap:50px}.hero-kicker{font-size:12px;font-weight:800;letter-spacing:.18em;color:#a9d4ec}.hero h1,.author-hero h1{font-size:42px;line-height:1.08;margin:10px 0 14px}.hero p{font-size:18px;line-height:1.65;color:#d8eaf4;max-width:840px;margin:0}.hero-note{padding:18px 20px;border:1px solid rgba(255,255,255,.25);border-radius:14px;background:rgba(255,255,255,.08);color:#e6f2f8;line-height:1.5}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:-34px;position:relative;z-index:2}.stat-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 8px 28px rgba(22,56,80,.08)}.stat-card span{color:#4d667a}.stat-card strong{display:block;font-size:31px;margin:8px 0 4px;color:#102e47}.stat-card small{color:#7c8f9f}.filter-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;margin-top:22px;box-shadow:0 6px 22px rgba(22,56,80,.04)}.filter-card.compact{margin-top:24px}.filter-grid{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:12px;align-items:end}.filter-grid label{font-size:12px;font-weight:700;color:#536d81}.filter-grid .wide{grid-column:span 2}.filter-grid input,.filter-grid select{width:100%;border:1px solid #cddae4;border-radius:9px;padding:11px 12px;margin-top:6px;background:#fff;color:#18324a;font:inherit;min-height:43px}.filter-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn{display:inline-block;text-decoration:none;border:0;border-radius:9px;padding:11px 15px;font-weight:750;font-size:13px;cursor:pointer}.btn.primary{background:var(--blue);color:#fff}.btn.ghost{background:#edf3f7;color:#24506d}.btn.export{background:#e8f6ef;color:#1d6d4a}.results-head{display:flex;justify-content:space-between;align-items:end;margin-top:34px;margin-bottom:12px}.results-head h2{margin:0;font-size:24px}.results-head p{margin:5px 0 0;color:var(--muted)}.score-total{background:#fff;border:1px solid var(--line);padding:10px 14px;border-radius:10px;color:#526d80}.results-list{display:flex;flex-direction:column;gap:12px;padding-bottom:20px}.work-card{display:grid;grid-template-columns:90px 1fr;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(22,56,80,.035)}.work-year{display:flex;justify-content:center;align-items:flex-start;padding-top:24px;background:#f0f5f8;font-size:20px;font-weight:800;color:#31556e}.work-main{padding:18px 22px}.work-badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}.tag{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#edf3f7;color:#3b5a70}.tag.type-article{background:#e7f2fb;color:#165f8f}.tag.type-book{background:#f2eefa;color:#66449a}.tag.type-chapter{background:#fff3df;color:#8d5d0d}.tag.indexed{background:#e7f7ef;color:#1d6f4a}.tag.score{background:#fff6d9;color:#795800}.work-main h3{font-size:18px;line-height:1.4;margin:0 0 7px}.work-main h3 a{text-decoration:none;color:#123b58}.work-main h3 a:hover{text-decoration:underline}.authors,.secondary-title,.venue-line{margin:5px 0;color:#5f7587;font-size:13px;line-height:1.55}.work-footer{margin-top:11px;padding-top:11px;border-top:1px solid #edf1f4;display:flex;gap:8px;flex-wrap:wrap;color:#738797;font-size:12px}.researcher{font-weight:800;color:#145f91;text-decoration:none}.researcher:hover{text-decoration:underline}.empty{background:#fff;border:1px dashed #cbd7df;border-radius:14px;padding:40px;text-align:center;color:#718596}.pagination{display:flex;align-items:center;gap:7px;padding:12px 0 38px}.pagination a{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;border-radius:8px;text-decoration:none}.pagination a.current{background:var(--navy);color:#fff}.pagination span{color:#738797;margin-left:6px}.public-footer{margin-top:30px;background:#0b273d;color:#c9d9e4}.public-footer .public-wrap{min-height:76px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px}.author-hero{background:linear-gradient(135deg,#0e3958,#176a9d);color:#fff;padding:42px 0}.author-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:36px;align-items:end}.author-hero h1{margin-bottom:10px}.author-hero p{color:#d9eaf4;font-size:16px}.profile-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.profile-links a{color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:7px 10px;text-decoration:none;font-size:12px}.author-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.author-stats div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:15px}.author-stats strong{font-size:26px;display:block}.author-stats span{font-size:12px;color:#d2e6f1}.author-filter{grid-template-columns:2fr 1fr 1fr 1fr}.author-filter .wide{grid-column:span 1}@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(3,1fr)}.filter-grid .wide{grid-column:span 2}.stats-grid{grid-template-columns:repeat(2,1fr)}.author-grid{grid-template-columns:1fr}.hero-grid{grid-template-columns:1fr}.author-filter{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.public-wrap{width:min(100% - 24px,1320px)}.header-inner{height:auto;padding:12px 0;align-items:flex-start}.public-nav{flex-direction:column;align-items:flex-end;gap:4px}.public-nav a{padding:7px 9px}.hero{padding:38px 0 55px}.hero h1,.author-hero h1{font-size:32px}.hero p{font-size:16px}.stats-grid{grid-template-columns:1fr 1fr;margin-top:-28px}.filter-grid,.author-filter{grid-template-columns:1fr}.filter-grid .wide,.author-filter .wide{grid-column:span 1}.work-card{grid-template-columns:1fr}.work-year{justify-content:flex-start;padding:10px 18px;font-size:14px}.work-main{padding:15px 18px}.public-footer .public-wrap{flex-direction:column;align-items:flex-start;justify-content:center;padding:18px 0}.author-stats{grid-template-columns:1fr 1fr 1fr}}@media print{.public-header,.hero,.filter-card,.pagination,.public-footer,.profile-links,.public-nav{display:none!important}body{background:#fff}.stats-grid{margin:0 0 20px}.stat-card{box-shadow:none}.work-card{break-inside:avoid;box-shadow:none}.public-wrap{width:100%}.results-list{gap:6px}}
.author-hero-rich{padding:36px 0 44px}.author-hero-layout{display:grid;grid-template-columns:1.45fr .8fr;gap:26px;align-items:stretch}.author-card-main,.author-summary-panel,.info-panel{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:22px}.author-card-main{display:grid;grid-template-columns:190px 1fr;gap:22px;align-items:start}.author-avatar-wrap{display:flex;justify-content:center}.author-avatar{width:160px;height:240px;border-radius:14px;object-fit:cover;background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.14)}.author-avatar-fallback{display:grid;place-items:center;font-size:48px;font-weight:900;color:var(--navy);background:linear-gradient(135deg,#ffffff,#d7ebf5)}.author-intro h1{margin-bottom:8px}.author-line{margin:0 0 10px;color:#d9eaf4;font-size:16px}.author-bio{margin:0 0 14px;color:#eff7fb;line-height:1.72;font-size:15px}.contact-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.contact-chips a,.contact-chips span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);padding:8px 10px;border-radius:999px;color:#eef6fb;text-decoration:none;font-size:12px}.research-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.research-tags span{background:#eaf5fb;color:#15587f;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.author-stats-rich{grid-template-columns:repeat(2,1fr)}.summary-note{margin-top:14px;color:#e4f1f8;line-height:1.6;font-size:13px}.author-sections-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.info-panel{background:#fff;border-color:var(--line);color:var(--ink)}.info-panel h2{margin:0 0 14px;font-size:22px}.bullet-list{margin:0;padding-left:20px}.bullet-list li{margin:0 0 8px;line-height:1.6}.kv-list{display:flex;flex-direction:column;gap:10px;line-height:1.65}.kv-list a{color:#145f91}.small{padding:18px}.work-card-rich .meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;margin-top:10px;color:#52697b;font-size:13px;line-height:1.55}.work-card-rich .meta-grid div{padding:4px 0}.work-card-rich .meta-grid a{color:#145f91}.work-card-rich .authors strong,.work-card-rich .meta-grid strong,.work-footer strong{color:#304d62}.author-card-main .profile-links a{background:rgba(255,255,255,.08)}
@media(max-width:1100px){.author-hero-layout{grid-template-columns:1fr}.author-card-main{grid-template-columns:170px 1fr}.author-sections-grid{grid-template-columns:1fr}.author-stats-rich{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.author-card-main{grid-template-columns:1fr}.author-avatar-wrap{justify-content:flex-start}.author-avatar{width:120px;height:180px;border-radius:12px}.work-card-rich .meta-grid{grid-template-columns:1fr}.author-stats-rich{grid-template-columns:1fr 1fr}}
@media print{.author-hero-rich{background:#fff!important;color:#18324a}.author-card-main,.author-summary-panel,.info-panel{background:#fff;border:1px solid #dbe4ea}.author-bio,.author-line,.summary-note,.contact-chips a,.contact-chips span{color:#18324a;background:#fff;border-color:#dbe4ea}.profile-links a,.research-tags span{color:#18324a;border-color:#dbe4ea;background:#fff}}

/* V3.9.3 - enforce portrait 4x6 (2:3), override any older cached/conflicting rules */
.author-avatar-wrap{align-items:flex-start!important}
.author-avatar-wrap .author-avatar{
  width:160px!important;
  height:240px!important;
  aspect-ratio:2/3!important;
  object-fit:cover!important;
  object-position:center top!important;
  border-radius:14px!important;
  display:block!important;
  max-width:none!important;
}
@media(max-width:700px){
  .author-avatar-wrap .author-avatar{
    width:120px!important;
    height:180px!important;
    aspect-ratio:2/3!important;
  }
}
/* V4.0 - public academic activities */
.extended-index-panel{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:center;box-shadow:0 6px 22px rgba(22,56,80,.04)}.extended-index-copy h2{font-size:26px;margin:7px 0 9px}.extended-index-copy p{color:var(--muted);line-height:1.65;margin:0 0 14px}.hero-kicker.dark{color:#477994}.extended-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.extended-mini-stats div{background:#f3f7fa;border:1px solid #e0e9ef;border-radius:12px;padding:16px}.extended-mini-stats strong{display:block;font-size:27px;color:#123b58}.extended-mini-stats span{font-size:12px;color:#607789}.secondary-hero{padding-bottom:64px}.activity-card .meta-grid,.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;margin-top:10px;color:#52697b;font-size:13px;line-height:1.55}.activity-card .meta-grid .full,.meta-grid .full{grid-column:1/-1}.activity-card .meta-grid strong{color:#304d62}.extended-author-head{padding-top:10px}@media(max-width:1000px){.extended-index-panel{grid-template-columns:1fr}.extended-mini-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.extended-mini-stats{grid-template-columns:1fr}.activity-card .meta-grid,.meta-grid{grid-template-columns:1fr}.activity-card .meta-grid .full,.meta-grid .full{grid-column:auto}}
/* V4.0.6 - public index: no default year restriction */
.filter-year-note{font-size:12px;line-height:1.55;color:#657f92;background:#f7fafc;border:1px dashed #d5e1e9;border-radius:9px;padding:9px 11px}

/* === V4.0.23 FORCE COMPACT VAA LOGO === */
.public-brand{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  min-width:0!important;
}
.public-header .public-brand .public-full-logo,
.public-header img.public-full-logo,
.public-brand img[src*="vaa-full-logo"]{
  display:block!important;
  width:72px!important;
  max-width:72px!important;
  height:40px!important;
  max-height:40px!important;
  min-width:0!important;
  min-height:0!important;
  object-fit:contain!important;
  flex:0 0 72px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.public-header .header-inner{
  min-height:72px!important;
  height:72px!important;
  overflow:hidden!important;
}
@media(max-width:700px){
  .public-header .public-brand .public-full-logo,
  .public-header img.public-full-logo,
  .public-brand img[src*="vaa-full-logo"]{
    width:62px!important;max-width:62px!important;height:35px!important;max-height:35px!important;flex-basis:62px!important;
  }
}
/* === END V4.0.23 FORCE COMPACT VAA LOGO === */
/* === V4.0.21 FULL VAA LOGO === */
.public-brand{gap:12px!important}
.public-full-logo{
  display:block!important;
  width:132px!important;
  max-width:132px!important;
  height:auto!important;
  max-height:72px!important;
  object-fit:contain!important;
  flex:0 0 auto!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.public-mark{display:none!important}
@media(max-width:700px){
  .public-full-logo{width:104px!important;max-width:104px!important;max-height:60px!important}
}
/* === END V4.0.21 FULL VAA LOGO === */

/* === V4.0.24 CROSS-BROWSER LAYOUT === */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img{max-width:100%;height:auto}
.public-header,.public-header *{box-sizing:border-box}
.public-header{overflow:visible!important}
.public-header .header-inner{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
  min-height:72px!important;
  height:auto!important;
  overflow:visible!important;
  padding-top:8px!important;
  padding-bottom:8px!important;
}
.public-brand{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:10px!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-decoration:none!important;
}
.public-brand .public-full-logo,
.public-brand img.public-full-logo,
.public-brand img[src*="vaa-full-logo"]{
  display:block!important;
  width:72px!important;
  min-width:72px!important;
  max-width:72px!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  object-fit:contain!important;
  object-position:center!important;
  flex:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.public-brand>span,.public-brand>div{min-width:0!important}
.public-brand strong{
  display:block!important;
  max-width:460px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  line-height:1.2!important;
}
.public-brand small{
  display:block!important;
  max-width:460px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  line-height:1.25!important;
}
.public-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  flex-wrap:nowrap!important;
  gap:8px!important;
  min-width:0!important;
}
.public-nav a{
  flex:0 0 auto!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.hero,.hero-grid,.stats-grid,.filter-card,.results-list,.public-wrap{min-width:0!important}
.hero-grid>*{min-width:0!important}

@media(max-width:1100px){
  .public-header .header-inner{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .public-nav{
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
  }
  .public-brand strong,.public-brand small{max-width:calc(100vw - 150px)!important}
}
@media(max-width:700px){
  .public-header .header-inner{padding-top:10px!important;padding-bottom:10px!important}
  .public-brand .public-full-logo,
  .public-brand img.public-full-logo,
  .public-brand img[src*="vaa-full-logo"]{
    width:62px!important;min-width:62px!important;max-width:62px!important;
    height:35px!important;min-height:35px!important;max-height:35px!important;
  }
  .public-brand strong,.public-brand small{max-width:calc(100vw - 115px)!important}
  .public-nav{width:100%!important;gap:5px!important}
  .public-nav a{font-size:13px!important;padding:8px 9px!important}
}
/* === END V4.0.24 CROSS-BROWSER LAYOUT === */
/* V4.0.31 - sticky public footer */
html,
body {
  min-height: 100%;
}

body {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

body > main {
  flex: 1 0 auto;
  width: 100%;
}

.public-footer {
  flex: 0 0 auto;
  margin-top: auto !important;
}

/* Firefox / Edge / Safari: prevent short public pages from leaving
   a large blank strip under the footer. */
@supports (-webkit-touch-callout: none) {
  body { min-height: -webkit-fill-available; }
}
