/* NOVAFRAME / Creator edition — 2026-11-10
   Shared visual layer for the application and standalone Activity Radar.
   Keep data, routes, media and form behavior owned by the existing application. */
:root {
  --nv-accent:#8840f8; --nv-accent-ink:#ffffff;
  --nv-bg:#f5f5f1; --nv-panel:#fff; --nv-raised:#ebede5;
  --nv-text:#161813; --nv-muted:#62665c; --nv-border:#dfe2d7;
  --nv-font:"Avenir Next","Avenir","PingFang SC","Microsoft YaHei",sans-serif;
  --nv-radius:16px;
}
html:root[data-nf-theme="dark"] {
  --nv-bg:#0d0b10; --nv-panel:#17141c; --nv-raised:#211b29;
  --nv-text:#f3f0f8; --nv-muted:#aaa1b5; --nv-border:#302938;
  --nf-bg:var(--nv-bg); --nf-surface:var(--nv-panel); --nf-fg:var(--nv-text);
  --nf-fg-2:var(--nv-muted); --nf-line:var(--nv-border);
}
html { scroll-padding-top:96px; }
body { font-family:var(--nv-font); -webkit-font-smoothing:antialiased; }
body,button,input,textarea,select { font-family:var(--nv-font) !important; }
body { background:var(--nv-bg); color:var(--nv-text); }
::selection { background:var(--nv-accent); color:#111; }
:focus-visible { outline:2px solid var(--nv-accent); outline-offset:4px; }
.display { font-family:var(--nv-font); font-weight:700; letter-spacing:-.045em; line-height:1.1; }
h1,h2,h3 { text-wrap:balance; }
p { text-wrap:pretty; }
.eyebrow { color:var(--nv-muted); font-size:11px; font-weight:650; letter-spacing:.2em; }
html:root[data-nf-theme] header.fixed { background:color-mix(in srgb,var(--nv-bg) 92%,transparent) !important; border-bottom:1px solid var(--nv-border) !important; backdrop-filter:blur(18px); }
header.fixed > div:first-child { height:76px; max-width:1280px; }
header > div > a:first-child { font-size:17px; font-weight:750; letter-spacing:-.05em; gap:10px; align-items:center; }
header > div > a:first-child::before { content:"N"; display:inline-grid; place-items:center; width:27px; height:29px; border:1px solid #8840f880; border-radius:6px; color:var(--nv-accent); background:#20132e; font-size:20px; font-weight:800; letter-spacing:-.1em; padding-right:2px; }
header nav { gap:26px !important; }
header nav a { position:relative; font-size:13px !important; font-weight:500; }
header nav a[aria-current="page"],header nav a.font-medium { color:var(--nv-accent) !important; }
html:root[data-nf-theme="light"] header nav a[aria-current="page"],html:root[data-nf-theme="light"] header nav a.font-medium { color:#7131d5 !important; }
header nav a[aria-current="page"]::after,header nav a.font-medium::after { content:""; position:absolute; width:16px; height:2px; background:currentColor; bottom:-12px; left:50%; transform:translateX(-50%); }
html:root[data-nf-theme] header .bg-ink:not(span) { background:var(--nv-accent) !important; color:var(--nv-accent-ink) !important; font-weight:700; padding:10px 23px; }
html:root[data-nf-theme] .btn-primary { background:var(--nv-accent) !important; color:var(--nv-accent-ink) !important; font-weight:700; box-shadow:none !important; border:1px solid transparent; padding:14px 26px; }
html:root[data-nf-theme] .btn-primary:hover { background:#7730e5 !important; box-shadow:0 4px 24px #8840f820 !important; transform:translateY(-2px); }
html:root[data-nf-theme] .btn-ghost { border-color:var(--nv-border) !important; color:var(--nv-text) !important; box-shadow:none; }
html:root[data-nf-theme] .btn-ghost:hover { background:var(--nv-raised) !important; border-color:var(--nv-muted) !important; }
html:root[data-nf-theme] :is(.rounded-3xl,.rounded-2xl,.hero-player) { border-radius:var(--nv-radius); }
html:root[data-nf-theme] .lift { box-shadow:none; border-color:var(--nv-border); transition:transform .25s,border-color .25s,background .25s; }
html:root[data-nf-theme] .lift:hover { transform:translateY(-5px); border-color:#7952ae !important; box-shadow:0 16px 30px #0002; }
html:root[data-nf-theme] .lift h3 { font-size:20px; line-height:1.45; letter-spacing:-.025em; }
html:root[data-nf-theme] .lift .p-6 { padding:24px; }
html:root[data-nf-theme="dark"] :is(.field > span,.field input,.field textarea,.field select) { color:var(--nv-text); }
html:root[data-nf-theme] :is(input,textarea,select) { border-radius:10px !important; }
html:root[data-nf-theme] :is(input,textarea,select):focus { border-color:#9f72ed !important; box-shadow:0 0 0 3px #8840f814 !important; }
html:root[data-nf-theme="dark"] .field select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23a1a498' stroke-width='1.6'/%3E%3C/svg%3E"); }
html:root[data-nf-theme="dark"] :is(.bg-volt,.bg-volt\/30) .text-ink,html:root[data-nf-theme="dark"] .bg-volt.text-ink { color:#ffffff !important; }
html:root[data-nf-theme="dark"] .cover-gradient { background:#23251e; }
html:root[data-nf-theme="dark"] .mcard-box { background:var(--nv-panel); color:var(--nv-text); border:1px solid var(--nv-border); }
html:root[data-nf-theme="dark"] :is(.mcard-title,.mcard-x) { color:var(--nv-text); }
html:root[data-nf-theme="dark"] :is(.mcard-desc,.mcard-meta) { color:var(--nv-muted); }
html:root[data-nf-theme] footer.bg-ink { background:#0d0b10 !important; border-top:1px solid #302938; }
footer .text-2xl { font-size:24px; letter-spacing:-.05em; }
footer a { transition:color .2s; }
footer a:hover { color:var(--nv-accent); }
footer > div { padding-top:64px !important; padding-bottom:30px !important; }
.nf-theme-btn { width:40px; height:40px; }

/* Homepage: quiet purple tone, without circular decoration. */
main:has(#about) > div > section:first-child {
  min-height:640px; display:flex; align-items:center; position:relative; isolation:isolate;
  padding-top:150px; padding-bottom:100px; color:#f3f0f8;
  background:linear-gradient(140deg,#1c142a,#100d15 55%,#0d0b10);
}
main:has(#about) > div > section:first-child::before {
  content:""; position:absolute; z-index:-1; inset:0;
  background:repeating-linear-gradient(155deg,transparent 0 75px,#8855cc10 76px,transparent 77px 110px);
  mask-image:linear-gradient(90deg,transparent,#000); pointer-events:none;
}

main:has(#about) > div > section:first-child > div { width:100%; position:relative; }
main:has(#about) h1 { font-size:clamp(54px,6.9vw,94px) !important; letter-spacing:-.055em; line-height:1.13; }
main:has(#about) h1 span { color:var(--nv-accent); }
main:has(#about) > div > section:first-child .eyebrow { color:#d4d7c7; letter-spacing:.2em; }
main:has(#about) > div > section:first-child .text-muted { color:#b4b5aa !important; font-size:12px; letter-spacing:.18em; }
main:has(#about) :is(h2.display) { font-size:clamp(32px,4vw,52px) !important; line-height:1.22; }
main:has(#about) section:not(:first-child) { padding-top:76px; padding-bottom:76px; }
html:root[data-nf-theme] #about { background:var(--nv-panel) !important; color:var(--nv-text); padding:0; border-top:1px solid var(--nv-border); border-bottom:1px solid var(--nv-border); }
#about > div { padding-top:70px; padding-bottom:70px; }
#about .ev-row { border-color:var(--nv-border); padding:22px 0; }
#about .ev-zh { color:var(--nv-text); font-size:18px; }
#about .ev-en,#about .ev-num { color:var(--nv-muted); }
#about .ev-arrow { color:var(--nv-accent); }
#about .eyebrow { color:var(--nv-accent); }
#about [class*="text-4xl"],#about [class*="text-5xl"] { color:var(--nv-accent); }
html:root[data-nf-theme="light"] #about .eyebrow,html:root[data-nf-theme="light"] #about .ev-arrow { color:#7131d5; }
html:root[data-nf-theme="light"] #about [class*="text-white/"] { color:var(--nv-muted); }
#contact form { background:var(--nv-panel); padding:30px; border:1px solid var(--nv-border); border-radius:20px; }

/* Application index pages, detail pages and account screens share one scale. */
main > div:has(> .max-w-7xl) { padding-top:140px; }
main > div > .max-w-7xl > div > h1.display { font-size:clamp(40px,5vw,66px) !important; margin-top:18px; }
main > div > .max-w-7xl > div > p.text-lg { font-size:15px; line-height:1.9; max-width:44rem; }
main > div > .max-w-7xl > .flex.flex-wrap { padding-bottom:24px; border-bottom:1px solid var(--nv-border); margin-top:32px; }
html:root[data-nf-theme] main .flex.flex-wrap > button.bg-ink { background:var(--nv-accent) !important; color:var(--nv-accent-ink) !important; font-weight:700; }
html:root[data-nf-theme] .ev-title { font-size:clamp(28px,3vw,40px); line-height:1.28; white-space:normal; text-wrap:balance; overflow:visible; }
html:root[data-nf-theme] main .sticky.top-24 { border:1px solid var(--nv-border); box-shadow:0 14px 44px #0002; }
html:root[data-nf-theme="dark"] .prose { color:var(--nv-text); }
html:root[data-nf-theme="dark"] .prose :is(h1,h2,h3,strong,a) { color:var(--nv-text); }

/* Activity Radar: compact hero, useful deadline panel, consistent discovery cards. */
.radar-directory {
  --radar-type-ui:var(--nv-font); --radar-type-heading:var(--nv-font); --radar-type-body:var(--nv-font);
  position:relative; isolation:isolate; padding-top:130px; padding-bottom:88px;
}
.radar-directory::before { content:none; }

.radar-directory > .eyebrow { display:flex; align-items:center; gap:9px; color:var(--nv-accent) !important; font-size:10px; letter-spacing:.22em; }
.radar-directory > .eyebrow::before { content:""; width:5px; height:5px; background:currentColor; border-radius:50%; box-shadow:0 0 10px #8840f850; }
html:root[data-nf-theme="light"] .radar-directory > .eyebrow { color:#7131d5 !important; }
.radar-directory h1 { font-size:clamp(40px,5.2vw,68px); margin-top:13px; line-height:1.15; }
.radar-directory .radar-intro { margin-top:17px; font-size:14px; line-height:1.8; color:var(--nv-muted) !important; max-width:75%; }
.radar-directory .radar-deadlines {
  grid-template-columns:220px minmax(0,1fr); gap:28px; align-items:center;
  margin-top:76px; padding:26px 30px; background:var(--nv-panel); border:1px solid var(--nv-border); border-radius:16px;
}
.radar-deadlines-intro .eyebrow { font-size:10px; letter-spacing:.2em; color:var(--nv-accent) !important; }
html:root[data-nf-theme="light"] .radar-deadlines-intro .eyebrow { color:#7131d5 !important; }
.radar-deadlines-intro h2 { font-size:28px; line-height:1.2; margin:10px 0; font-weight:650; letter-spacing:-.025em; }
.radar-deadlines-intro > p:last-child { font-size:12px; line-height:1.8; color:var(--nv-muted); max-width:185px; }
html:root[data-nf-theme] .radar-directory .deadline-board { background:transparent !important; border:0 !important; border-left:1px solid var(--nv-border) !important; border-radius:0; box-shadow:none; padding:0 0 0 28px; color:var(--nv-text) !important; }
.deadline-board-header { min-height:25px; }
.deadline-board-heading { font-size:12px; font-weight:600; letter-spacing:.025em; }
.deadline-board-meta { font-size:10px; color:var(--nv-muted); }
.deadline-rows { margin-top:12px; gap:0; }
.deadline-row { height:auto; min-height:64px; grid-template-columns:110px minmax(0,1fr); padding:14px 0 0; border-bottom:0; border-top:1px solid var(--nv-border); }
.deadline-row[aria-hidden="true"],.deadline-row[data-nf-empty] { display:none; }
.deadline-date time { color:var(--nv-accent); font-size:20px; font-weight:600; letter-spacing:-.04em; line-height:1.4; }
html:root[data-nf-theme="light"] .deadline-date time { color:#7131d5; }
.deadline-date small { font-size:9px; line-height:1.5; }
.deadline-event a { font-size:14px; font-weight:600; }
.deadline-event small { font-size:11px; margin-top:6px; }
.nf-carousel-bar { margin-top:10px; }
.nf-carousel-bar:has(i:only-child) { height:1px; }
.radar-controls { margin-top:36px; gap:18px; align-items:end; }
.radar-controls label,.radar-status-filter-label { font-size:11px; color:var(--nv-muted); letter-spacing:.03em; }
html:root[data-nf-theme] .radar-directory .radar-controls input { height:48px; font-size:13px; padding:12px 16px 12px 42px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238e9281' stroke-width='1.7'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m15 15 5 5'/%3E%3C/svg%3E"); background-position:15px center; background-repeat:no-repeat; }
html:root[data-nf-theme] .radar-status-menu summary { min-height:48px; border-radius:10px; font-size:13px; }
.radar-status-filter { flex-basis:178px; }
.radar-categories { gap:8px; margin-top:20px; padding-bottom:24px; border-bottom:1px solid var(--nv-border); }
html:root[data-nf-theme] .radar-directory .radar-categories button { padding:8px 18px; font-size:12px; font-weight:500; transition:background .2s,border-color .2s; }
html:root[data-nf-theme] .radar-directory .radar-categories button[aria-pressed="true"] { background:var(--nv-accent) !important; border-color:var(--nv-accent) !important; color:var(--nv-accent-ink) !important; font-weight:700; }
.radar-groups { gap:44px; margin-top:30px; }
.radar-group { border-color:var(--nv-border); padding-top:28px; }
.radar-group h2 { font-size:23px; line-height:1.4; letter-spacing:-.025em; margin-bottom:20px; gap:12px; }
.radar-group h2 span { color:var(--nv-muted); font-size:11px; padding:3px 9px; border:1px solid var(--nv-border); border-radius:6px; letter-spacing:0; font-weight:500; }
.radar-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }
html:root[data-nf-theme] .radar-directory .radar-card { padding:16px; background:var(--nv-panel) !important; border:1px solid var(--nv-border) !important; border-radius:14px; display:flex; flex-direction:column; transition:transform .25s,border-color .25s; }
html:root[data-nf-theme] .radar-directory .radar-card:hover { border-color:#7952ae !important; transform:translateY(-4px); }
.radar-poster { aspect-ratio:16/9; border-radius:8px; margin-bottom:18px; }
.radar-poster img { transition:transform .5s; }
.radar-card:hover .radar-poster img { transform:scale(1.035); }
.radar-poster-fallback { color:var(--nv-text); background:linear-gradient(135deg,#8840f82a,transparent); }
.radar-card-top .eyebrow { font-size:10px; letter-spacing:.06em; color:var(--nv-muted) !important; }
html:root[data-nf-theme] .radar-directory .radar-status { padding:4px 9px; border:1px solid var(--nv-border); font-size:10px; font-weight:500; }
html:root[data-nf-theme] .radar-directory .radar-status[data-status="开放中"] { background:#8840f817 !important; color:#c5a5ff !important; border-color:#8840f82d; }
html:root[data-nf-theme="light"] .radar-directory .radar-status[data-status="开放中"] { color:#7131d5 !important; }
.radar-card h3 { font-size:18px; line-height:1.45; letter-spacing:-.025em; font-weight:650; margin-top:13px; }
.radar-title-link:hover { color:var(--nv-accent); text-decoration:none; }
.radar-card p { font-family:var(--nv-font) !important; font-size:12px; line-height:1.85; margin:10px 0 20px; color:var(--nv-muted); }
.radar-card dl { margin-top:auto; border-color:var(--nv-border); padding-top:13px; font-size:11px; line-height:1.65; }
.radar-card dt { color:var(--nv-muted); }
.radar-card dd { max-width:76%; }
.radar-group-empty { color:var(--nv-muted); font-size:13px; }

@media(min-width:1500px) { .radar-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1023px) {
  header nav { gap:18px !important; }
  
  .radar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  
}
@media(max-width:767px) {
  header.fixed > div:first-child { height:66px; padding-left:20px; padding-right:20px; }
  header > div > a:first-child { font-size:14px; gap:7px; }
  header > div > a:first-child::before { width:23px; height:25px; font-size:17px; }
  html:root[data-nf-theme] header .bg-ink:not(span) { padding:8px 17px; font-size:12px; }
  header nav a[aria-current="page"]::after,header nav a.font-medium::after { display:none; }
  #nf-drawer { background:var(--nv-panel) !important; border-color:var(--nv-border); }
  main:has(#about) > div > section:first-child { min-height:570px; padding:125px 24px 75px; }
  
  main:has(#about) h1 { font-size:clamp(48px,10.5vw,74px) !important; }
  main:has(#about) section:not(:first-child) { padding-top:52px; padding-bottom:52px; }
  #about > div { padding-top:0; padding-bottom:0; }
  #contact form { padding:22px; }
  main > div:has(> .max-w-7xl) { padding-top:112px; }
  .radar-directory { padding:106px 20px 56px; }
  .radar-directory::before { top:66px; height:240px; }
  
  .radar-directory h1 { font-size:42px; }
  .radar-directory .radar-intro { max-width:90%; font-size:12px; line-height:1.85; margin-top:14px; }
  .radar-directory .radar-deadlines { grid-template-columns:1fr; padding:22px; gap:20px; margin-top:57px; }
  .radar-deadlines-intro h2 { font-size:25px; margin:8px 0; }
  .radar-deadlines-intro > p:last-child { max-width:none; font-size:11px; }
  html:root[data-nf-theme] .radar-directory .deadline-board { border-left:0 !important; border-top:1px solid var(--nv-border) !important; padding:18px 0 0; }
  .deadline-row { grid-template-columns:85px minmax(0,1fr); }
  .deadline-date time { font-size:17px; }
  .deadline-event a { font-size:12px; }
  .deadline-date small { font-size:9px; }
  .radar-controls { margin-top:26px; gap:12px; flex-wrap:nowrap; }
  .radar-controls label:first-child { flex:1 1 0; }
  .radar-status-filter { flex:0 0 116px; }
  .radar-status-menu summary { font-size:12px !important; padding:10px; }
  .radar-controls input { font-size:12px !important; }
  .radar-categories { flex-wrap:nowrap; overflow-x:auto; padding-bottom:18px; gap:7px; scrollbar-width:thin; }
  .radar-categories button { flex:0 0 auto; padding:7px 14px !important; font-size:11px !important; }
  .radar-grid { gap:14px; }
  .radar-group h2 { font-size:21px; }
  footer > div { padding-top:45px !important; }
}
@media(max-width:540px) { .radar-grid { grid-template-columns:1fr; } .radar-poster { aspect-ratio:16/9; } .radar-card h3 { font-size:19px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }

/* Keep all deadlines reachable without pushing discovery below the fold. */
.deadline-rows { max-height:202px; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#655176 transparent; padding-right:8px !important; overscroll-behavior:contain; }
html:root[data-nf-theme] header nav a.font-medium,html:root[data-nf-theme] header nav a[aria-current="page"] { color:var(--nv-accent) !important; }
html:root[data-nf-theme="light"] header nav a.font-medium,html:root[data-nf-theme="light"] header nav a[aria-current="page"] { color:#7131d5 !important; }
html:root[data-nf-theme="dark"] .radar-directory > .eyebrow,html:root[data-nf-theme="dark"] .radar-deadlines-intro .eyebrow { color:var(--nv-accent) !important; }
/* The React navigation and the standalone navigation use different menu wrappers. */
html:root[data-nf-theme="dark"] header button[aria-label="菜单"] span.bg-ink { background-color:var(--nv-text) !important; }
html:root[data-nf-theme] .radar-directory .radar-controls input { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%238e9281' stroke-width='1.7'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m15 15 5 5'/%3E%3C/svg%3E") !important; background-position:15px center !important; background-repeat:no-repeat !important; }
@media(max-width:767px) {
  #about > div { padding-top:52px; padding-bottom:52px; }
  main:has(.ev-title) .text-lg { font-size:15px; line-height:1.9; }
}

/* NOVAFRAME brand purple, sampled from the supplied identity artwork. */
:root { --nv-accent-text:#7131d5; --volt:#8840f8; }
html:root[data-nf-theme="dark"] { --nv-accent-text:#bc96ff; --nf-accent:#8840f8; --nf-accent-dim:#8840f84d; --volt:#8840f8; }
html:root[data-nf-theme] ::selection { background:#8840f8; color:#fff; }
html:root[data-nf-theme] :is(.text-volt,.hover\:text-volt:hover) { color:var(--nv-accent-text) !important; }
html:root[data-nf-theme] .bg-volt { background-color:#8840f8 !important; color:#fff !important; }
html:root[data-nf-theme] .bg-volt\/30 { background-color:#8840f830 !important; color:var(--nv-accent-text) !important; }
html:root[data-nf-theme] .bg-volt .text-ink { color:#fff !important; }
html:root[data-nf-theme] .bg-volt\/30 .text-ink { color:var(--nv-accent-text) !important; }
html:root[data-nf-theme] header nav a.font-medium,
html:root[data-nf-theme] header nav a[aria-current="page"],
html:root[data-nf-theme] .radar-directory > .eyebrow,
html:root[data-nf-theme] .radar-deadlines-intro .eyebrow,
html:root[data-nf-theme] .deadline-date time,
html:root[data-nf-theme] #about .eyebrow,
html:root[data-nf-theme] #about .ev-arrow,
html:root[data-nf-theme] #about [class*="text-4xl"],
html:root[data-nf-theme] #about [class*="text-5xl"],
html:root[data-nf-theme] .radar-title-link:hover { color:var(--nv-accent-text) !important; }
html:root[data-nf-theme] .radar-status-options button[aria-pressed="true"] { background:#8840f8 !important; color:#fff !important; }
header > div > a:first-child::before { content:""; width:29px; height:30px; padding:0; background:url('/favicon.svg') center / contain no-repeat; border:0; border-radius:0; }
html:root[data-nf-theme] main:has(#about) > div > section:first-child::after,
html:root[data-nf-theme] .radar-directory::after { content:none; display:none; }
.nf-authorized { display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:36px; margin-top:64px; padding:24px; border:1px solid #8840f84d; border-radius:16px; background:var(--nv-panel); }
.nf-authorized-poster { display:block; width:180px; border-radius:8px; overflow:hidden; transition:transform .2s; }
.nf-authorized-poster:hover { transform:translateY(-3px); }
html:root[data-nf-theme] .nf-authorized-poster img { display:block; width:100%; height:auto; background:#fbf8f2; }
.nf-authorized-copy { padding:8px 12px 8px 0; }
.radar-directory .nf-authorized-kicker { color:var(--nv-accent-text); font:600 10px/1.6 var(--nv-font); letter-spacing:.16em; margin:0 0 10px; }
.radar-directory .nf-authorized h2 { font-size:clamp(22px,2.5vw,32px); font-weight:650; line-height:1.35; letter-spacing:-.025em; margin:0; }
.radar-directory .nf-authorized-subtitle { font-size:14px; color:var(--nv-text); margin:12px 0 0; line-height:1.7; }
.radar-directory .nf-authorized-description { font-size:13px; line-height:1.85; color:var(--nv-muted); max-width:40em; margin:8px 0 22px; }
.radar-directory .nf-authorized .btn-primary { font-size:13px; padding:12px 21px; }
.radar-directory .nf-authorized-caption { font-size:11px; line-height:1.7; color:var(--nv-muted); margin:11px 0 0; }
.radar-directory .radar-deadlines + .nf-authorized { margin-top:28px; }
@media(max-width:767px) {
  .nf-authorized { grid-template-columns:132px minmax(0,1fr); padding:18px; gap:20px; margin-top:57px; }
  .nf-authorized-poster { width:132px; }
  .nf-authorized-copy { padding:0; }
  .radar-directory .nf-authorized h2 { font-size:22px; }
}
@media(max-width:540px) {
  .nf-authorized { grid-template-columns:1fr; gap:22px; padding:22px; }
  .nf-authorized-poster { width:min(100%,210px); justify-self:center; }
  .nf-authorized-copy { text-align:center; }
  .radar-directory .nf-authorized h2 { font-size:23px; }
  .radar-directory .nf-authorized-subtitle { font-size:12px; }
  .radar-directory .nf-authorized-description { font-size:12px; margin-bottom:18px; }
  .nf-authorized .btn-primary { justify-content:center; width:100%; }
}

/* Monochrome interface accents; supplied brand artwork retains its original colors. */
html:root[data-nf-theme] { --nv-accent:#151515; --nv-accent-ink:#fff; --nv-accent-text:#181818; --nf-accent:#151515; --nf-accent-dim:#00000018; --volt:#151515; }
html:root[data-nf-theme="dark"] { --nv-accent:#f5f5f5; --nv-accent-ink:#111; --nv-accent-text:#f5f5f5; --nf-accent:#f5f5f5; --nf-accent-dim:#ffffff20; --volt:#f5f5f5; }
html:root[data-nf-theme] main:has(#about) h1,
html:root[data-nf-theme] main:has(#about) h1 * { color:#f5f5f5 !important; }
html:root[data-nf-theme] :is(.btn-primary,header .bg-ink:not(span),.radar-status-options button[aria-pressed="true"],.bg-volt) { background:var(--nv-accent) !important; color:var(--nv-accent-ink) !important; border-color:var(--nv-accent) !important; box-shadow:none !important; }
html:root[data-nf-theme] .btn-primary:hover { background:var(--nv-accent) !important; color:var(--nv-accent-ink) !important; filter:brightness(.85); box-shadow:none !important; }
html:root[data-nf-theme] .bg-volt .text-ink { color:var(--nv-accent-ink) !important; }
html:root[data-nf-theme] .bg-volt\/30 { background:var(--nf-accent-dim) !important; color:var(--nv-accent-text) !important; }
html:root[data-nf-theme] .radar-directory .radar-status[data-status="开放中"] { background:var(--nf-accent-dim) !important; color:var(--nv-accent-text) !important; border-color:var(--nv-border); }
html:root[data-nf-theme] .nf-authorized { border-color:var(--nv-border); }
html:root[data-nf-theme] .nf-carousel-bar > i { background:var(--nv-accent); box-shadow:none; }
html:root[data-nf-theme] .deadline-live-dot { background:var(--nv-accent) !important; box-shadow:none !important; }
html:root[data-nf-theme] ::selection { background:var(--nv-accent); color:var(--nv-accent-ink); }

/* Homepage hero: white canvas in both appearance modes, with readable dark type.
   Keep main:has(#about) in these selectors to outrank the earlier hero-specific rules. */
html:root[data-nf-theme] main:has(#about) .nf-home-hero { background:#fff !important; color:#151515 !important; }
html:root[data-nf-theme] main:has(#about) .nf-home-hero h1,
html:root[data-nf-theme] main:has(#about) .nf-home-hero h1 * { color:#151515 !important; }
html:root[data-nf-theme] main:has(#about) .nf-home-hero :is(.eyebrow,.text-muted) { color:#6e6e73 !important; }
html:root[data-nf-theme] main:has(#about) .nf-home-hero .btn-primary,
html:root[data-nf-theme] main:has(#about) .nf-home-hero .btn-primary:hover { background:#151515 !important; color:#fff !important; border-color:#151515 !important; filter:none; }

/* Unified brand lockup for every entry page (React application and standalone radar).
   The mark always comes from favicon.svg; only the wordmark inherits the active theme. */
header > div > a:first-child {
  display:inline-flex !important; align-items:center !important; gap:10px !important;
  color:var(--nv-text) !important; font-family:var(--nv-font) !important;
  font-size:17px !important; font-weight:750 !important; letter-spacing:-.05em !important;
}
header > div > a:first-child::before {
  content:""; display:block; flex:0 0 auto; width:29px; height:30px; padding:0;
  border:0; border-radius:0; background:url('/favicon.svg?v=4') center / contain no-repeat;
}
@media(max-width:767px) {
  header > div > a:first-child { gap:7px !important; font-size:14px !important; }
  header > div > a:first-child::before { width:23px; height:25px; }
}
