/* Theme controls work without inline scripts under the site's existing CSP. */
.ui-university .theme-switcher {
  position: relative;
  flex: none;
  color: var(--ds-text);
}
.ui-university .theme-switcher > summary {
  display: grid;
  place-items: center;
  list-style: none;
  cursor: pointer;
  width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius-small);
  background: var(--ds-paper);
  color: var(--ds-brand);
}
.ui-university .theme-switcher > summary::-webkit-details-marker {
  display: none;
}
.ui-university .theme-switcher > summary:hover {
  background: var(--ds-accent-soft);
}
.ui-university .theme-icon {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.ui-university .theme-night,
.ui-university[data-theme="dark"] .theme-day {
  display: none;
}
.ui-university[data-theme="dark"] .theme-night {
  display: block;
}
.ui-university .theme-options {
  position: absolute;
  z-index: 120;
  inset-inline-start: 0;
  top: calc(100% + 8px);
  width: 212px;
  max-width: calc(100vw - 32px);
  margin: 0;
  padding: 12px;
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  background: var(--ds-paper);
  box-shadow: var(--ds-shadow);
  color: var(--ds-text);
}
.ui-university .theme-options legend {
  float: inline-start;
  width: 100%;
  padding: 0 8px 8px;
  font-size: 0.8125rem;
  font-weight: 650;
  color: var(--ds-muted);
}
.ui-university .theme-options label {
  clear: both;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 8px;
  border-radius: 6px;
  font-size: 0.9375rem;
  cursor: pointer;
}
.ui-university .theme-options label:hover,
.ui-university .theme-options label:has(:checked) {
  background: var(--ds-accent-soft);
}
.ui-university .theme-options input {
  width: 18px;
  height: 18px;
  margin: 0;
  flex: none;
  accent-color: var(--ds-accent);
}
.ui-university .theme-switcher:not([open]) .theme-options {
  display: none;
}
.ui-university .theme-floating {
  display: flex;
  justify-content: end;
  padding: 8px 16px;
  background: var(--ds-paper);
  position: relative;
  z-index: 150;
}
.ui-university .theme-floating .theme-options {
  inset-inline-start: auto;
  inset-inline-end: 0;
}

.ui-university[data-theme="dark"] {
  color-scheme: dark;
  --white: var(--ds-paper);
  --ice2: var(--ds-accent-soft);
  --faint: var(--ds-muted);
  --warm: var(--ds-surface);
}
.ui-university[data-theme="dark"] body {
  background: var(--ds-paper);
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  :is(.header, .navigation, .language-options, .icon-btn, .theme-floating) {
  background: var(--ds-paper);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] .brand-logo {
  background: #fff;
  padding: 4px;
  border-radius: 6px;
}
.ui-university[data-theme="dark"] :is(.utility, .footer) {
  background: var(--ds-footer);
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  :is(.utility a, .site-disclaimer, .footer a, .footer p, .footer strong) {
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  :is(.header-actions, .language-options)
  :is(a, summary) {
  color: var(--ds-text);
}
.ui-university[data-theme="dark"] #header-language summary {
  background: var(--ds-paper);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"]
  :is(
    .navigation a:hover,
    .navigation a.active,
    .language-options a:hover,
    .icon-btn:hover
  ) {
  background: var(--ds-accent-soft);
  color: var(--ds-accent);
}
.ui-university[data-theme="dark"]
  :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea) {
  color: var(--ds-text);
  background: var(--ds-paper);
  border-color: var(--ds-control);
}
.ui-university[data-theme="dark"] :is(input, textarea)::placeholder {
  color: var(--ds-muted);
  opacity: 1;
}
.ui-university[data-theme="dark"] :is(.btn, button) {
  color: var(--ds-text);
}
.ui-university[data-theme="dark"] :is(.btn.primary, .hero-search button) {
  background: var(--ds-action);
  border-color: var(--ds-action);
  color: var(--ds-on-action);
}
.ui-university[data-theme="dark"] :is(.btn.primary, .hero-search button):hover {
  background: var(--ds-action-hover);
  color: var(--ds-on-action);
}
.ui-university[data-theme="dark"]
  :is(.btn.secondary, .btn.invert, .btn.soft, .float-full) {
  background: var(--ds-surface);
  color: var(--ds-accent);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] .btn.secondary:hover {
  background: var(--ds-accent-soft);
}
.ui-university[data-theme="dark"]
  :is(
    .home-minimal .hero,
    .home-minimal .v2-core,
    .home-minimal .hero-search,
    .white-panel,
    .service-card,
    .aud-card,
    .guide-item,
    .catalog-group,
    .wifi-help-panel
  ) {
  background: var(--ds-paper);
  border-color: var(--ds-border);
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  :is(.service-card, .aud-card, .guide-item):hover {
  background: var(--ds-accent-soft);
  border-color: var(--ds-accent);
}
.ui-university[data-theme="dark"]
  :is(
    .pagehead,
    .notice-band,
    .ds-search-panel,
    .ds-help-strip,
    .guide-facts,
    .article-detail,
    .service-start,
    .guide-pdf-card,
    .vpn-stage,
    .support-note,
    .support-fast,
    .email-settings,
    .wifi-help,
    .faq-page
  ) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"]
  main
  :is(p, li, dt, dd, small, label, legend) {
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  main
  :is(
    .ds-eyebrow,
    .ds-intro-links a,
    .ds-section-link,
    .service-card-head,
    .copy-value
  ) {
  color: var(--ds-accent);
}
.ui-university[data-theme="dark"]
  main
  :is(
    .ds-lead,
    .ds-search-hint,
    .guide-summary,
    .section-sub,
    .crumb,
    .guide-facts dt
  ) {
  color: var(--ds-muted);
}
.ui-university[data-theme="dark"]
  main
  :is(h1, h2, h3, h4, h5, h6, .guide-item strong) {
  color: var(--ds-brand);
}
.ui-university[data-theme="dark"] main a:not(.btn) {
  color: var(--ds-accent);
}
.ui-university[data-theme="dark"]
  :is(
    .guide-reading,
    .guide-minimal,
    .service-minimal,
    .uid-guide,
    .network-guide,
    .email-guide,
    .vpn-guide
  ) {
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  :is(
    .uid-section,
    .uid-section-body,
    .uid-section-heading,
    .uid-task,
    .uid-task > summary,
    .uid-recovery-card,
    .uid-navigation,
    .uid-toc-disclosure,
    .network-faq,
    .network-guide > nav,
    .email-task,
    .email-task-body,
    .email-task > summary,
    .vpn-device,
    .vpn-device > summary,
    .minimal-task,
    .minimal-task > summary,
    .minimal-extra,
    .minimal-extra > summary,
    .minimal-extra > section,
    .minimal-extra > div,
    .service-inline-guide,
    .service-inline-guide > summary,
    .service-inline-body,
    .service-faq-panel,
    .service-onepage-group
  ) {
  background: var(--ds-paper);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"]
  :is(
    .uid-note,
    .uid-definition,
    .uid-help,
    .uid-quick-actions,
    .uid-task-links,
    .network-note,
    .vpn-note,
    .email-security-note,
    .email-source-note,
    .source-note,
    .technical-value,
    .guide-governance,
    .policy-related,
    .faq-entry,
    .faq-entry > summary,
    .faq-response-content,
    .wifi-help-choice,
    .step-list li,
    .service-task,
    .diagnose-card,
    .diagnose-step
  ) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"]
  :is(
    .uid-task-links a,
    .uid-back,
    .service-task strong,
    .wifi-help-choice,
    .network-os a,
    .network-os button,
    .inline-open,
    .guide-pdf-type
  ) {
  color: var(--ds-accent);
}
.ui-university[data-theme="dark"]
  :is(
    .guide-pdf-type,
    .network-os a,
    .network-os button,
    .chip,
    .copy-value,
    .filters button,
    .filter-row button
  ) {
  background: var(--ds-surface);
  border-color: var(--ds-border);
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  :is(.filters, .filter-row)
  button[aria-pressed="true"] {
  background: var(--ds-action);
  color: var(--ds-on-action);
  border-color: var(--ds-action);
}
.ui-university[data-theme="dark"]
  :is(
    .palette,
    .palette-top,
    .palette-results,
    .palette-results a,
    .palette-foot,
    .search-line,
    .search-line input,
    .search-line button
  ) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] .palette-results a:hover {
  background: var(--ds-accent-soft);
}
.ui-university[data-theme="dark"]
  :is(.palette-results strong, .palette-results small, .palette-foot, .empty) {
  color: var(--ds-text);
}
.ui-university[data-theme="dark"] :is(.toast, .skip, .skip-link) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] main :is(code, pre, kbd, th, td) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] main :is(thead, tbody tr:nth-child(even)) {
  background: var(--ds-surface);
}
.ui-university[data-theme="dark"]
  :is(
    .content-status,
    .catalog-review-note,
    .temporary-preview-banner,
    .policy-draft-notice
  ) {
  background: #352c19;
  color: #f5d48e;
  border-color: #8c7445;
}
.ui-university[data-theme="dark"]
  :is(
    .search-panel,
    .uid-overview,
    .aside-box,
    .network-device-body,
    .network-support,
    .diag-choice,
    .vpn-visual-guide__card,
    .identity,
    .vpn-badge,
    .auth-box,
    .auth-box.passkey,
    figure.visual,
    .uid-task-links a,
    .uid-toc a,
    .step-jump.uid-jump
  ) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] .uid-section-body > p {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] main table {
  background: var(--ds-paper);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] .network-warning {
  background: #352c19;
  color: #f5d48e;
  border-color: #8c7445;
}
.ui-university[data-theme="dark"]
  :is(
    .security-stage,
    .standard-guide,
    .faq-answer-full,
    .faq-response-label,
    .article-destination,
    .policy-article,
    .android-step,
    .status-service,
    .status-unknown,
    .security-contact,
    .v2-journey-step,
    .audience-feature,
    .lifecycle-card,
    .service-pending,
    .status-disclosure,
    .status-history,
    .network-extra-guides,
    .security-immediate,
    .faq-toolbox,
    .faq-tool-btn,
    .faq-context,
    .faq-topic,
    .international-english,
    .android-path,
    .v2-journey-note,
    .policy-toc,
    .policy-controls button,
    .journey a,
    .android-walkthrough a
  ) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"]
  :is(.standard-guide .hero-search, .uid-toc .uid-jump) {
  background: var(--ds-paper);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] .uid-jump {
  background: var(--ds-surface) !important;
  border-color: var(--ds-border) !important;
}
.ui-university[data-theme="dark"] .uid-jump:hover {
  background: var(--ds-accent-soft) !important;
}
.ui-university[data-theme="dark"] .uid-jump :is(span, small) {
  color: var(--ds-accent);
}
.ui-university[data-theme="dark"]
  :is(.faq-index, .faq-index button, .hero-search) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] main summary :is(span, strong) {
  color: var(--ds-text);
}
.ui-university[data-theme="dark"]
  :is(
    .crumb strong,
    .results-top,
    .vpn-visual-guide__eyebrow,
    #recipient-note,
    #draft-storage-status,
    #faq-count
  ) {
  color: var(--ds-muted);
}
.ui-university[data-theme="dark"] .vpn-visual-guide__action {
  color: var(--ds-accent);
}
.ui-university[data-theme="dark"] :is(#recipient-note, #draft-storage-status) {
  color: var(--ds-muted) !important;
}
.ui-university[data-theme="dark"] .support-sources > summary {
  color: var(--ds-text);
}
/* The two standalone illustrated guides use their own component names. */
.ui-university[data-theme="dark"]
  :is(
    .visual-guide-context,
    .topbar,
    .hero-inner,
    .step-card,
    .step-copy,
    .key-value,
    .protocol,
    .phone-wrap,
    .step-no,
    .card,
    .panel,
    .callout,
    .step,
    .note
  ) {
  background: var(--ds-surface);
  color: var(--ds-text);
  border-color: var(--ds-border);
}
.ui-university[data-theme="dark"] .visual-guide-context a {
  color: var(--ds-accent);
}
.ui-university[data-theme="dark"] ::selection {
  background: var(--ds-action);
  color: #fff;
}
@media (max-width: 540px) {
  .ui-university .brand-logo {
    width: 64px;
  }
  .ui-university .header-actions {
    gap: 4px;
  }
}
@media (max-width: 360px) {
  .ui-university .brand-logo {
    width: 52px;
  }
  .ui-university .header-inner {
    gap: 6px;
  }
  .ui-university #header-language summary {
    padding-inline: 6px;
  }
}
@media print {
  .ui-university .theme-switcher,
  .ui-university .theme-floating {
    display: none !important;
  }
  .ui-university[data-theme="dark"] {
    --ds-paper: #fff;
    --ds-surface: #fff;
    --ds-text: #000;
    --ds-brand: #000;
    --ds-muted: #333;
    --ds-border: #aaa;
  }
  .ui-university[data-theme="dark"] body {
    background: #fff;
    color: #000;
  }
}
