/* Canonical ICMED theme contract shared by public, member, and admin surfaces. */
:root {
  --icmed-font-sans: "Avenir Next", Avenir, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --icmed-charcoal: #171b1e;
  --icmed-charcoal-soft: #20262a;
  --icmed-charcoal-elevated: #2a3136;
  --icmed-green: #26775f;
  --icmed-green-strong: #3a7f68;
  --icmed-green-soft: #60927e;
  --icmed-ivory: #ece9e5;
  --icmed-muted: #c6cbd0;
  --icmed-radius: 12px;
  --icmed-radius-sm: 8px;
  --icmed-line: rgba(23, 32, 29, 0.16);
  --icmed-line-strong: rgba(23, 32, 29, 0.26);
  --icmed-shadow-card: 0 1px 2px rgba(23, 32, 29, 0.06), 0 8px 24px rgba(23, 32, 29, 0.06);
  --icmed-shadow-lift: 0 2px 4px rgba(23, 32, 29, 0.08), 0 12px 28px rgba(23, 32, 29, 0.09);
  --icmed-shadow-overlay: 0 18px 50px rgba(16, 23, 25, 0.2);
  --icmed-container: 1180px;
  --container: var(--icmed-container);
  --content-max: var(--icmed-container);
  --radius: var(--icmed-radius);
  --radius-sm: var(--icmed-radius-sm);
}

body.admin-workspace-page {
  --admin-accent: var(--icmed-green);
  --admin-accent-strong: #245f42;
  --admin-accent-deep: #1f4f3d;
  --admin-border-strong: rgba(38, 119, 95, 0.34);
}

body.portal-workspace-page {
  --portal-bg: #f4f3ef;
  --portal-bg-soft: #edf2ee;
  --portal-green: var(--icmed-green);
  --portal-green-soft: var(--icmed-green-soft);
  --portal-radius: var(--icmed-radius);
}

html {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body,
button,
input,
select,
textarea {
  font-family: var(--icmed-font-sans) !important;
  font-kerning: normal;
}

body :is(h1, h2, h3, h4, h5, h6, strong, b) {
  font-family: var(--icmed-font-sans) !important;
  font-kerning: normal;
}

body :is(h1, h2, h3) {
  font-weight: 700 !important;
  letter-spacing: -0.025em;
}

body :is(h4, h5, h6, strong, b) {
  font-weight: 700;
}

:where(p, li, dd, figcaption) {
  line-height: 1.65;
}

html body.public-shell.public-shell .site-shell.site-shell main#main-content :is(.kicker, .section-eyebrow, .card-kicker, .form-label, .panel-topline),
html body.portal-workspace-page.portal-workspace-page .site-shell.site-shell main#main-content :is(.kicker, .section-eyebrow, .card-kicker, .form-label, .panel-topline),
html body.admin-workspace-page.admin-workspace-page .site-shell.site-shell main#main-content :is(.kicker, .section-eyebrow, .card-kicker, .form-label, .panel-topline) {
  font-weight: 700 !important;
  letter-spacing: 0.11em !important;
}

.site-header .header-member-action {
  min-height: 44px !important;
  padding: 0.65rem 1.05rem !important;
  border-radius: var(--icmed-radius-sm) !important;
}

.site-header {
  border-bottom-color: rgba(255, 255, 255, 0.14) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04), 0 8px 28px rgba(0, 0, 0, 0.16) !important;
}

.site-header :is(.main-nav a, .header-actions a, .header-actions button, .language-control select) {
  font-family: var(--icmed-font-sans) !important;
  font-weight: 600 !important;
  letter-spacing: -0.005em;
}

.main-nav a.nav-engineering-button {
  border-radius: var(--icmed-radius-sm) !important;
  box-shadow: 0 1px 2px rgba(14, 60, 80, 0.2), 0 8px 20px rgba(14, 60, 80, 0.22) !important;
}

.site-header .header-auth-button {
  border-radius: var(--icmed-radius-sm) !important;
  box-shadow: none !important;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--icmed-green-soft);
  outline-offset: 3px;
}

:where(button, input, select, textarea) {
  font: inherit;
}

:where(.button, .button-outline, .button-muted, .btn, .btn-primary, .btn-secondary, .btn-ghost, .admin-entry) {
  min-height: 46px;
  border-radius: var(--icmed-radius-sm) !important;
  font-family: var(--icmed-font-sans) !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em !important;
  box-shadow: 0 1px 2px rgba(23, 32, 29, 0.08) !important;
}

:where(.button, .button-outline, .button-muted, .btn, .btn-primary, .btn-secondary, .btn-ghost, .admin-entry):is(:hover, :focus-visible) {
  box-shadow: 0 2px 4px rgba(23, 32, 29, 0.1), 0 8px 18px rgba(23, 32, 29, 0.1) !important;
}

html body.public-shell.public-shell .site-shell.site-shell :is(.button, .button-outline, .button-muted, .btn, .btn-primary, .btn-secondary, .btn-ghost),
html body.portal-workspace-page.portal-workspace-page .site-shell.site-shell :is(.button, .button-outline, .button-muted, .btn, .btn-primary, .btn-secondary, .btn-ghost),
html body.admin-workspace-page.admin-workspace-page .site-shell.site-shell :is(.button, .button-outline, .button-muted, .btn, .btn-primary, .btn-secondary, .btn-ghost, .admin-entry, .admin-quick-action) {
  border-radius: var(--icmed-radius-sm) !important;
  font-family: var(--icmed-font-sans) !important;
  font-weight: 700 !important;
  letter-spacing: -0.005em !important;
  box-shadow: 0 1px 2px rgba(23, 32, 29, 0.08) !important;
}

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  min-height: 46px;
  border-radius: var(--icmed-radius-sm);
  border-color: var(--icmed-line-strong) !important;
  box-shadow: inset 0 1px 0 rgba(23, 32, 29, 0.025) !important;
}

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea):is(:hover, :focus) {
  border-color: rgba(38, 119, 95, 0.55) !important;
}

html body .site-shell :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  border-radius: var(--icmed-radius-sm) !important;
  font-family: var(--icmed-font-sans) !important;
}

:where(.card, .page-copy, .page-aside-card, .callout, .empty-state, .admin-panel-card, .portal-section) {
  border-radius: var(--icmed-radius);
}

/* Public surfaces: retain composition while making edges and elevation precise. */
html body.public-shell.public-shell .site-shell.site-shell main#main-content :is(
  .card,
  .feature-card,
  .page-copy,
  .page-aside-card,
  .callout,
  .empty-state,
  .panel-card,
  .news-card,
  .course-card,
  .event-card,
  .paper-card,
  .initiative-card,
  .membership-tier-card,
  .membership-support-card,
  .shop-card,
  .media-gallery-card,
  .journal-main-panel,
  .journal-policy-panel
) {
  border-radius: var(--icmed-radius) !important;
  box-shadow: var(--icmed-shadow-card) !important;
}

html body.public-shell.public-shell .site-shell.site-shell main#main-content :is(
  .card,
  .feature-card,
  .news-card,
  .course-card,
  .event-card,
  .paper-card,
  .initiative-card,
  .membership-tier-card,
  .shop-card,
  .media-gallery-card
):is(:hover, :focus-within) {
  border-color: rgba(38, 119, 95, 0.32) !important;
  box-shadow: var(--icmed-shadow-lift) !important;
}

html body.public-shell.public-shell .site-shell.site-shell main#main-content :is(.badge, .tag, .pill, .meta-pill, .status-badge, .page-copy-tag) {
  font-family: var(--icmed-font-sans) !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  box-shadow: none !important;
}

html body.public-shell.public-shell .site-shell.site-shell main#main-content :is(table, .table-wrap) {
  border-color: var(--icmed-line) !important;
  box-shadow: none !important;
}

html body.public-shell.public-shell .site-shell.site-shell main#main-content :is(th, dt) {
  font-weight: 700 !important;
  letter-spacing: 0.045em;
}

/* Authenticated workspaces use the same type, edge, and elevation hierarchy. */
body.portal-workspace-page :is(
  .portal-section,
  .portal-settings-card,
  .portal-aside-card,
  .portal-stat,
  .journal-issue-card,
  .journal-masthead,
  .submission-tracker-card,
  .submission-overview-card,
  .reviewer-assignment-panel,
  .reviewer-document-panel,
  .reviewer-decision-panel
),
body.admin-workspace-page :is(
  .admin-panel-card,
  .admin-edit-card,
  .admin-account-card,
  .admin-card-intro,
  .admin-dashboard-task-row,
  .admin-primary-action-card,
  .admin-dashboard-manage-grid a,
  .admin-message-thread,
  .website-map-card
) {
  border-radius: var(--icmed-radius) !important;
  border-color: var(--icmed-line) !important;
  box-shadow: var(--icmed-shadow-card) !important;
}

body.portal-workspace-page :is(.portal-news-item, .portal-paper-item, .portal-event-item, .portal-submission-item),
body.admin-workspace-page :is(.admin-section-link, .admin-view-tab, .admin-account-badge, .status-badge) {
  border-radius: var(--icmed-radius-sm) !important;
  box-shadow: none !important;
}

body.admin-workspace-page :is(.admin-section-link, .admin-view-tab, .admin-quick-action, .admin-account-manage) {
  font-family: var(--icmed-font-sans) !important;
  font-weight: 700 !important;
}

body.portal-workspace-page :is(.portal-tab, .status-badge, .portal-submission-status),
body.admin-workspace-page :is(.status-badge, .admin-account-badge) {
  font-family: var(--icmed-font-sans) !important;
  font-weight: 700 !important;
  letter-spacing: 0.035em !important;
}

:where(dialog, .modal, .cookie-banner, .bug-report-dialog) {
  border-radius: var(--icmed-radius) !important;
  box-shadow: var(--icmed-shadow-overlay) !important;
}

.homepage-slide-caption-soft {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.hero-carousel-dots button {
  min-width: 44px;
  min-height: 44px;
}

.hero-primary-slide[aria-hidden="true"] {
  pointer-events: none;
}

.institutional-membership-cta :is(h2, h3, p) {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

.institutional-membership-cta .about-panel-label {
  color: #9fd0bb !important;
  -webkit-text-fill-color: #9fd0bb !important;
}

html body.public-shell .site-shell main .membership-tier-index,
html body.public-shell .site-shell main .membership-institutional-card .membership-tier-index,
html body.public-shell .site-shell main .journal-continuum > li > span {
  background: #1b4f41 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
