/* AirNova Partner Center — High-Contrast Glassmorphism.
 * Source of truth: MyNewApp/主题配色文档.md (August 2026).
 * Scoped legacy utility mappings keep the bundled demo pages unchanged.
 * Edit this source, then npm run build; never edit the generated copy.
 */
.airnova-theme {
  --air-primary: #09090b;
  --air-primary-dark: #27272a;
  --air-primary-light: rgba(9, 9, 11, .06);
  --air-background: #f5f5f7;
  --air-foreground: #09090b;
  --air-card: rgba(255, 255, 255, .65);
  --air-card-solid: #fff;
  --air-secondary: #f4f4f5;
  --air-muted: #71717a;
  --air-border: rgba(0, 0, 0, .06);
  --air-navigation-border: rgba(0, 0, 0, .08);
  --air-navigation: rgba(255, 255, 255, .72);
  --air-success: #10b981;
  --air-warning: #f59e0b;
  --air-error: #ef4444;
  --air-info: #3b82f6;
  --air-overlay: rgba(0, 0, 0, .36);
  --air-shadow-card: 0 8px 32px rgba(0, 0, 0, .04);
  --air-shadow-action: 0 2px 8px rgba(0, 0, 0, .06);
  --air-shadow-header: 0 4px 16px rgba(0, 0, 0, .06);
  --air-shadow-floating: 0 8px 24px rgba(0, 0, 0, .08);
  background: var(--air-background);
  color: var(--air-foreground);
  font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color-scheme: light;
}
.airnova-theme :is(h1, h2, h3, h4, h5, h6) { color: var(--air-foreground); letter-spacing: -.025em; }
.airnova-theme :is(h1, h2, h3, h4, h5, h6).text-white { color: white; }
.airnova-theme :is(.text-slate-700, .text-slate-800, .text-gray-700, .text-teal-600, .text-teal-700) { color: var(--air-foreground); }
.airnova-theme :is(.text-slate-500, .text-slate-600) { color: #52525b; }
.airnova-theme :is(.text-slate-400, .text-gray-500, .text-gray-600) { color: var(--air-muted); }
.airnova-theme .text-xxs { font-size: 12px; line-height: 1.5; }
.airnova-theme :is(.bg-gray-50, .bg-gray-100, .bg-teal-50) { background-color: var(--air-secondary); }
.airnova-theme :is(.border-gray-100, .border-gray-200, .border-teal-100, .border-teal-200) { border-color: var(--air-border); }
.airnova-theme :is(.border-teal-500, .border-gray-300) { border-color: rgba(9, 9, 11, .16); }
.airnova-theme :is(.shadow-soft-xl, .shadow-soft-2xl) { box-shadow: var(--air-shadow-card); }
.airnova-theme :is(.shadow-soft-md, .shadow-soft-xs) { box-shadow: var(--air-shadow-action); }
.airnova-theme :is(button, a, input, select, textarea) { transition-duration: 200ms; }
.airnova-theme :is(button, a)[class*="hover:scale"]:hover { transform: none; }
.airnova-theme :is(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--air-primary);
  outline-offset: 3px;
}
.airnova-theme button { min-height: 44px; }
.airnova-theme button:disabled { cursor: not-allowed; opacity: .5; transform: none; }
.airnova-theme :is(button, a).air-fill-primary {
  min-height: 44px; border-radius: 12px; white-space: normal;
}
.airnova-theme .air-fill-primary { background: var(--air-primary); color: white; }
.airnova-theme :is(button, a).air-fill-primary:hover { background: var(--air-primary-dark); color: white; box-shadow: var(--air-shadow-floating); }
.airnova-theme .bg-clip-text { background: none; color: var(--air-primary); -webkit-text-fill-color: currentColor; }
.airnova-theme :is(.hover\:text-teal-600:hover, .hover\:text-slate-700:hover) { color: var(--air-primary); }
.airnova-theme .hover\:bg-teal-50:hover { background: var(--air-primary-light); }
.airnova-theme .air-tone-success { background: #e8f7f1; color: #047857; }
.airnova-theme .air-tone-warning { background: #fff5df; color: #92400e; }
.airnova-theme .air-tone-error { background: #fef0f0; color: #b91c1c; }
.airnova-theme .air-tone-info { background: #edf4ff; color: #1d4ed8; }
.airnova-theme .air-tone-neutral { background: var(--air-secondary); color: #52525b; }
.airnova-theme :is(.text-green-600, .text-emerald-600) { color: #047857; }
.airnova-theme :is(.text-red-500, .text-red-600) { color: #b91c1c; }
.airnova-theme .air-status { padding: 6px 10px; border-radius: 8px; font-size: 12px; line-height: 1.4; }
.airnova-theme :is(input:not([type="checkbox"]):not([type="hidden"]):not([type="radio"]), textarea, select:not([data-language-select])) {
  min-width: 0; max-width: 100%; min-height: 44px; border-radius: 12px;
  background-color: var(--air-primary-light); color: var(--air-foreground);
  border-color: var(--air-border); font-size: 14px; box-shadow: none;
}
.airnova-theme input::placeholder, .airnova-theme textarea::placeholder { color: var(--air-muted); opacity: 1; }
.airnova-theme :is(input, select, textarea):focus { border-color: var(--air-primary); box-shadow: 0 0 0 3px var(--air-primary-light); outline: none; }
.airnova-theme input[type="checkbox"] { accent-color: var(--air-primary); }
.airnova-theme label:has(> [data-language-select]) {
  background: var(--air-card); border: 1px solid var(--air-border); box-shadow: none;
  padding: 0 12px; min-height: 44px;
}
.airnova-theme label:has(> [data-language-select]):focus-within { outline: 2px solid var(--air-primary); outline-offset: 3px; }
/* The shell owns focus. Native selects must not inherit standalone field paint. */
.airnova-theme label > select[data-language-select],
.airnova-theme label > select[data-language-select]:is(:focus, :focus-visible) {
  min-width: 0;
  min-height: 42px;
  max-width: 100%;
  background: transparent;
  border: 0;
  border-radius: 0;
  outline: none;
  box-shadow: none;
  color: var(--air-foreground);
}
.airnova-theme :is(.air-card, .air-auth-card) {
  background: var(--air-card); border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 20px; box-shadow: var(--air-shadow-card);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
}
/* Navigation is glass; dense data and nested panels remain solid. */
.air-portal aside {
  background: var(--air-navigation); border: 1px solid rgba(255, 255, 255, .8);
  box-shadow: var(--air-shadow-card); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
}
.air-portal [navbar-main], .air-landing > header {
  background: var(--air-navigation); border: 1px solid var(--air-navigation-border);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); box-shadow: var(--air-shadow-header);
}
.air-portal [navbar-main] { margin-top: 16px; padding: 12px 4px; }
.air-portal #page-title { font-size: 24px; }
.air-portal .partner-nav-item { margin: 2px 12px; padding: 8px 12px; border-radius: 12px; min-height: 44px; color: #52525b; white-space: normal; }
.air-portal .partner-nav-item:hover { background: var(--air-primary-light); color: var(--air-primary); }
.air-portal .partner-nav-icon { flex-shrink: 0; background: transparent; box-shadow: none; color: inherit; }
.air-portal .partner-nav-item.air-nav-active { background: var(--air-primary); color: white; box-shadow: var(--air-shadow-action); }
.air-portal aside > div:nth-child(3) { height: auto; }
.air-portal .air-invite-panel { margin-top: 24px; background: var(--air-primary-dark); }
.air-portal .air-invite-panel::after { display: none; }
.air-portal .air-logout { background: transparent; color: #52525b; border: 1px solid var(--air-navigation-border); box-shadow: none; }
.air-portal .air-logout:hover { background: var(--air-secondary); color: var(--air-primary); box-shadow: none; }
.air-portal .air-metric { height: 100%; }
.air-portal .air-metric h5 { margin-top: 8px; font-size: 26px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.air-portal .air-metric-icon { background: var(--air-primary-light); color: var(--air-primary); box-shadow: none; border-radius: 14px; }
.air-portal .air-metric .w-2\/3 { flex: 1; width: auto; min-width: 0; }
.air-portal .air-metric .basis-1\/3 { flex-basis: auto; }
.air-portal .air-table-wrap { max-width: 100%; background: var(--air-card-solid); border: 1px solid var(--air-border); border-radius: 14px; }
.air-portal table { font-variant-numeric: tabular-nums; }
.air-portal th { background: #fafafa; color: #52525b; opacity: 1; font-size: 12px; }
.air-portal td { border-color: var(--air-border); }
.air-portal tbody tr:hover { background: #fafafa; }
.air-portal #notification-alert { background: #edf4ff; color: #1d4ed8; border: 1px solid #dbeafe; }
.air-portal #notification-alert p { color: #1d4ed8; }
.air-portal .notification-button-unread { background: var(--air-primary); color: white; box-shadow: var(--air-shadow-action); }
.air-portal :is(#notification-badge, #side-notification-badge) { background: #b91c1c; color: white; }
.air-portal #notification-menu { border: 1px solid var(--air-border); box-shadow: var(--air-shadow-floating); }
.air-portal #modal-root { background: var(--air-overlay); z-index: 1100; }
.air-portal #modal-card { max-height: calc(100dvh - 64px); overflow-y: auto; background: var(--air-card-solid); border: 1px solid rgba(255,255,255,.8); border-radius: 24px; box-shadow: var(--air-shadow-floating); }
.air-portal #close-modal { min-width: 44px; flex-shrink: 0; }
.air-portal #notice { border: 1px solid #fecaca; }
.air-portal .border-teal-200 { border-color: #e4e4e7; }
.air-portal .border-t-teal-600 { border-top-color: var(--air-primary); }
/* Authentication: content stays in flow, avoiding the former overlap at tablet widths. */
.air-auth > main > section { margin-bottom: 0; }
.air-auth > main > section > div { min-height: 100dvh; align-items: center; }
.air-auth .container { width: 100%; max-width: none; margin: 0; padding: 0 32px; }
.air-auth .container > div { margin: 0; }
.air-auth .container > div > div:first-child { width: 50%; flex: none; padding: 0 32px; margin: 0; }
.air-auth .air-auth-card { width: 100%; max-width: 460px; margin: 88px auto 40px; border-radius: 24px; }
.air-auth .air-auth-card > div { padding-left: 32px; padding-right: 32px; }
.air-auth .air-auth-card h3 { font-size: 30px; }
.air-auth .air-auth-card > div:last-child { padding-bottom: 28px; }
.air-auth .air-auth-aside { position: fixed; width: calc(50% - 24px); height: calc(100dvh - 48px); top: 24px; right: 24px; border-radius: 28px; }
.air-auth .air-auth-art { background: radial-gradient(ellipse at 20% 0%, rgba(255,255,255,.14), transparent 60%), #09090b; }
.air-auth .air-auth-aside .blur-3xl { display: none; }
.air-auth .air-auth-aside h2 { font-size: clamp(36px, 4vw, 60px); letter-spacing: -.045em; }
.air-auth .air-auth-aside > div:last-child { left: 48px; right: 48px; max-width: 440px; }
.air-auth .air-auth-aside p { color: #d4d4d8; }
.air-auth .air-auth-aside > div:last-child::after { content: ''; display: block; width: 48px; height: 2px; background: rgba(255,255,255,.4); margin-top: 40px; }
.air-landing .air-hero { background: radial-gradient(ellipse at 50% 0%, #fff, transparent 75%), var(--air-background); }
.air-landing .air-hero > .blur-3xl { display: none; }
.air-landing :is(section, footer).bg-white { background: var(--air-background); }
.air-landing .rounded-2xl.bg-white { background: var(--air-card); border: 1px solid rgba(255,255,255,.8); box-shadow: var(--air-shadow-card); }
.air-landing .bg-teal-100 { background: var(--air-primary-light); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .airnova-theme :is(.air-card, .air-auth-card, aside, [navbar-main]), .air-landing > header { background: var(--air-card-solid); }
}
@media (max-width: 1199px) {
  .air-portal aside { background: rgba(255,255,255,.96); }
}
@media (max-width: 991px) {
  .air-auth .container { padding: 0 20px; }
  .air-auth .container > div > div:first-child { width: 100%; padding: 0; }
  .air-auth .container > div > div:last-child { display: none; }
  .air-auth .air-auth-aside { display: none; }
}
@media (max-width: 767px) {
  .air-portal [navbar-main] { margin: 12px 16px 0; }
  .air-portal [navbar-main] > div { flex-wrap: wrap; gap: 12px; padding: 0 12px; }
  .air-portal [navbar-main] > div > div { width: 100%; justify-content: space-between; padding: 0; }
  .air-portal [navbar-main] ol { margin-right: 0; }
  .air-portal main > .w-full { padding: 20px 16px; }
  .air-portal #page-title { font-size: 24px; }
  .air-portal #notification-menu { position: fixed; top: 148px; right: 16px; left: 16px; width: auto; max-height: calc(100dvh - 172px); overflow-y: auto; }
  .air-portal .grid-cols-3 { grid-template-columns: 1fr; }
  .air-portal #modal-card { max-height: calc(100dvh - 32px); border-radius: 22px; }
  .air-portal #modal-root { padding: 16px; }
}
@media (max-width: 575px) {
  .air-auth .air-auth-card > div { padding-left: 24px; padding-right: 24px; }
  .air-auth .air-auth-card h3 { font-size: 28px; }
  .airnova-theme input:not([type="checkbox"]), .airnova-theme textarea, .airnova-theme select { font-size: 16px; }
  .air-portal [navbar-main] label:has(> [data-language-select]) { display: flex; margin-right: 0; padding: 0 6px; }
  .air-portal [navbar-main] label > span { display: none; }
  .air-portal [navbar-main] [data-language-select] { font-size: 12px; width: 86px; }
  .air-portal #header-initial { display: none; }
  .air-portal #refresh-button { margin-right: 8px; }
  .air-portal .air-card > .p-5 { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .airnova-theme *, .airnova-theme *::before, .airnova-theme *::after {
    scroll-behavior: auto !important; transition-duration: .01ms !important;
    animation-duration: .01ms !important; animation-iteration-count: 1 !important;
  }
}
/* Compact navigation controls also remain usable without the remote icon font. */
.air-portal [sidenav-trigger] { min-width: 44px; }
.air-portal .air-menu-lines { display: flex; flex-direction: column; gap: 4px; width: 18px; margin: auto; }
.air-portal .air-menu-lines > span { display: block; height: 2px; width: 18px; border-radius: 2px; background: currentColor; }
.air-portal #copy-invite { min-width: 44px; }
.air-portal .air-metric h5 { font-size: clamp(22px, 1.8vw, 28px); }
/* The reference muted token falls below 4.5:1 on gray. Use the darker
 * companion for small supporting text; retain the exact token above. */
.airnova-theme :is(.text-slate-400, .text-gray-500, .text-gray-600),
.airnova-theme input::placeholder, .airnova-theme textarea::placeholder { color: #686872; }
.air-portal [navbar-main] .opacity-50 { opacity: 1; color: #686872; }
.air-auth > .fixed label:has(> [data-language-select]) { background: rgba(255,255,255,.96); }
@media (max-width: 1199px) {
  .air-portal aside:not(.translate-x-0) { transform: translateX(calc(-100% - 32px)); }
}
