/* ==========================================================================
   APCC Conference Portal — Design System
   Derived directly from the live APCC brand, header and footer specifications.
   This file is the single source of truth for the conference modules and is
   shared by the WordPress front end and the standalone HTML mock-ups so they
   render identically.
   ========================================================================== */

:root {
  /* === APCC Annual Conference 2026 — authoritative brand palette ==========
     Mint header, deep green, hero green gradient, gold accent.
     Canonical spec variable names (use these going forward): */
  --apcc-header-mint:      #EEF7F2; /* pale mint header background            */
  --apcc-deep-green:       #034C43; /* APCC title, headings, primary green    */
  --apcc-hero-start:       #064B2A; /* hero gradient start                    */
  --apcc-hero-end:         #208C2F; /* hero gradient end                      */
  --apcc-active-green:     #148A3B; /* buttons, links, active nav, stat nums  */
  --apcc-gold:             #FFC107; /* gold accent / heading underline        */
  --apcc-footer-deep:      #0D3D1A; /* main footer background                  */
  --apcc-footer-secondary: #134E32; /* copyright bar                          */
  --apcc-footer-divider:   #1A6A45; /* footer divider                         */
  --apcc-social-green:     #265131; /* social icon circles                    */
  --apcc-contact-blue:     #2BAAC0; /* footer contact icons                   */
  --apcc-muted:            #6B7280; /* muted/secondary text                   */
  --apcc-charcoal:         #404040; /* body text, card titles                 */
  --apcc-white:            #FFFFFF;

  /* --- Compatibility aliases (existing rules map onto the new palette) ---- */
  --apcc-forest:        var(--apcc-deep-green);       /* headings, footer      */
  --apcc-consortium:    var(--apcc-active-green);     /* buttons, links        */
  --apcc-success:       var(--apcc-active-green);     /* positive status       */
  --apcc-mint:          var(--apcc-header-mint);      /* tags, pills, hovers    */
  --apcc-forest-deep:   var(--apcc-footer-secondary); /* copyright bar         */
  --apcc-gold-bright:   var(--apcc-gold);             /* footer underline       */
  --apcc-icon-blue:     var(--apcc-contact-blue);     /* footer contact icons   */
  --apcc-gray:          var(--apcc-muted);            /* secondary text        */
  --apcc-gray-nav:      var(--apcc-charcoal);         /* nav text              */
  --apcc-gray-tagline:  var(--apcc-muted);            /* tagline               */

  /* --- Neutrals ---------------------------------------------------------- */
  --apcc-section:       #F5F6F7; /* page sections, card backgrounds           */
  --apcc-line:          #E4E8EA; /* hairline borders                          */

  /* --- Type -------------------------------------------------------------- */
  --apcc-font: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

  /* --- Radius & elevation ------------------------------------------------ */
  --apcc-radius-sm: 8px;
  --apcc-radius:    14px;
  --apcc-radius-lg: 20px;
  --apcc-radius-pill: 999px;
  --apcc-shadow:    0 1px 3px rgba(11,77,36,.06), 0 8px 24px rgba(11,77,36,.06);
  --apcc-shadow-lg: 0 10px 40px rgba(11,77,36,.12);

  /* --- Spacing ----------------------------------------------------------- */
  --apcc-container: 1180px;
}

/* ==========================================================================
   Resets scoped to the conference shell so the plugin never bleeds into the
   surrounding APCC theme.
   ========================================================================== */
.apcc-conf * { box-sizing: border-box; }

.apcc-conf {
  font-family: var(--apcc-font);
  color: var(--apcc-charcoal);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

main.apcc-conf {
  padding-top: 106px;
}

main.apcc-conf > .apcc-conf > .apcc-hero:first-child {
  margin-top: -106px;
  padding-top: 178px;
}

.apcc-conf h1, .apcc-conf h2, .apcc-conf h3, .apcc-conf h4 {
  color: var(--apcc-forest);
  line-height: 1.2;
  margin: 0 0 .5em;
  font-weight: 700;
}

.apcc-conf a { color: var(--apcc-consortium); text-decoration: none; }
.apcc-conf a:hover { text-decoration: underline; }

.apcc-container {
  width: 90%;
  max-width: var(--apcc-container);
  margin-inline: auto;
}

/* ==========================================================================
   Hero / page banner — mirrors the conference page hero
   ========================================================================== */
.apcc-hero {
  position: relative;
  background:
    linear-gradient(135deg, var(--apcc-hero-start) 0%, #0c5f30 55%, var(--apcc-hero-end) 100%);
  color: var(--apcc-white);
  padding: 72px 0 84px;
  overflow: hidden;
}
.apcc-hero::after { /* subtle dotted grid from the brand spec */
  content: "";
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
.apcc-hero > .apcc-container { position: relative; z-index: 1; }
.apcc-hero .apcc-eyebrow {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 13px; font-weight: 700;
  color: var(--apcc-gold-bright);
  margin-bottom: 14px;
}
.apcc-hero h1 { color: var(--apcc-white); font-size: clamp(28px, 4vw, 44px); max-width: 18ch; }
.apcc-hero p  { color: #EAF7EF; font-size: 18px; max-width: 60ch; margin: 0; }
.apcc-conf .apcc-hero .apcc-muted { color: #EAF7EF; opacity: .9; }
.apcc-hero .apcc-meta {
  display: flex; flex-wrap: wrap; gap: 18px 28px;
  margin-top: 26px; font-size: 16px; color: #EAF7EF;
}
.apcc-hero .apcc-meta span { display: inline-flex; align-items: center; gap: 8px; }

/* breadcrumb that ties module pages back to /conference/ */
.apcc-breadcrumb { font-size: 14px; color: #CFE8D8; margin-bottom: 18px; }
.apcc-breadcrumb a { color: #CFE8D8; }
.apcc-breadcrumb a:hover { color: var(--apcc-white); }

.apcc-pagehead {
  background: var(--apcc-header-mint);
  border-bottom: 1px solid #DCEBE3;
  padding: 34px 0;
}
.apcc-pagehead h1 {
  color: var(--apcc-forest);
  font-size: clamp(24px, 3vw, 32px);
  margin: 0;
  line-height: 1.25;
}
.apcc-pagehead p {
  color: #52606b;
  max-width: 760px;
  margin: .4em 0 0;
  font-size: 16px;
}

main.apcc-conf > .apcc-pagehead:first-child,
main.apcc-conf > .apcc-conf > .apcc-pagehead:first-child {
  margin-top: -106px;
  padding-top: 140px;
}

/* ==========================================================================
   Page body
   ========================================================================== */
.apcc-section { padding: 56px 0; }
.apcc-section--gray { background: var(--apcc-section); }
.apcc-section h2 { font-size: clamp(22px, 3vw, 30px); }
.apcc-section .apcc-rule {
  width: 64px; height: 4px; border-radius: 4px;
  background: var(--apcc-gold); margin: 10px 0 26px;
}
.apcc-lead { font-size: 18px; color: var(--apcc-gray); max-width: 70ch; }

/* ==========================================================================
   Cards
   ========================================================================== */
.apcc-card {
  background: var(--apcc-white);
  border: 1px solid var(--apcc-line);
  border-radius: var(--apcc-radius);
  box-shadow: var(--apcc-shadow);
  padding: 28px;
}
.apcc-card h3 { color: var(--apcc-charcoal); font-size: 19px; }
.apcc-grid { display: grid; gap: 22px; }
@media (min-width: 720px){ .apcc-grid--2 { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 920px){ .apcc-grid--3 { grid-template-columns: repeat(3,1fr); } }

/* ==========================================================================
   Buttons
   ========================================================================== */
.apcc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: inherit; font-size: 15px; font-weight: 600;
  padding: 13px 26px; border-radius: var(--apcc-radius-pill);
  border: 2px solid transparent; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .05s ease;
  text-decoration: none;
}
.apcc-btn:active { transform: translateY(1px); }
.apcc-btn--primary { background: var(--apcc-consortium); color: var(--apcc-white); box-shadow: 0 6px 16px rgba(31,142,61,.25); }
.apcc-btn--primary:hover { background: #1a7d35; color:#fff; text-decoration: none; }
.apcc-btn--secondary { background: var(--apcc-white); color: var(--apcc-consortium); border-color: var(--apcc-consortium); }
.apcc-btn--secondary:hover { background: var(--apcc-mint); text-decoration: none; }
.apcc-btn--ghost { background: transparent; color: var(--apcc-consortium); padding-inline: 8px; }
.apcc-btn--ghost:hover { text-decoration: underline; }
.apcc-btn[disabled] { opacity: .55; cursor: not-allowed; }
.apcc-btn--lg { padding: 16px 34px; font-size: 16px; }

/* ==========================================================================
   Forms
   ========================================================================== */
.apcc-form { max-width: 760px; }
.apcc-field { margin-bottom: 20px; }
.apcc-field > label,
.apcc-legend {
  display: block; font-weight: 600; font-size: 14px;
  color: var(--apcc-charcoal); margin-bottom: 7px;
}
.apcc-field .apcc-req { color: #C0392B; }
.apcc-field .apcc-hint { font-weight: 400; color: var(--apcc-gray); font-size: 13px; display:block; margin-top: 4px; }

.apcc-input, .apcc-select, .apcc-textarea {
  width: 100%; font-family: inherit; font-size: 15px; color: var(--apcc-charcoal);
  padding: 12px 14px; background: var(--apcc-white);
  border: 1.5px solid var(--apcc-line); border-radius: var(--apcc-radius-sm);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.apcc-textarea { min-height: 130px; resize: vertical; }
.apcc-input:focus, .apcc-select:focus, .apcc-textarea:focus {
  outline: 3px solid var(--apcc-active-green);
  outline-offset: 1px;
  border-color: var(--apcc-active-green);
  box-shadow: 0 0 0 3px rgba(20,138,59,.15);
}
/* High-contrast keyboard focus for every interactive element in the portal */
.apcc-conf a:focus-visible,
.apcc-conf button:focus-visible,
.apcc-conf [type="checkbox"]:focus-visible,
.apcc-conf [type="radio"]:focus-visible,
.apcc-conf [tabindex]:focus-visible {
  outline: 3px solid var(--apcc-active-green);
  outline-offset: 2px;
  border-radius: 4px;
}
.apcc-input:invalid:not(:placeholder-shown) { border-color: #E0B4B0; }

.apcc-row { display: grid; gap: 18px; }
@media (min-width: 620px){ .apcc-row--2 { grid-template-columns: 1fr 1fr; } }

.apcc-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--apcc-charcoal); }
.apcc-check input { margin-top: 3px; }

fieldset.apcc-fieldset { border: 1px solid var(--apcc-line); border-radius: var(--apcc-radius); padding: 22px; margin: 0 0 24px; }

/* Pills / tags / badges */
.apcc-pill { display:inline-block; background: var(--apcc-mint); color: var(--apcc-forest); font-size: 12.5px; font-weight: 600; padding: 5px 12px; border-radius: var(--apcc-radius-pill); }
.apcc-badge { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; padding:5px 11px; border-radius: var(--apcc-radius-pill); }
.apcc-badge--draft    { background:#FFF4DB; color:#9A6A00; }
.apcc-badge--submitted{ background:var(--apcc-mint); color:var(--apcc-forest); }
.apcc-badge--review   { background:#E3F0FF; color:#1A5FB4; }
.apcc-badge--accepted { background:#DCFCE7; color:#15803D; }
.apcc-badge--rejected { background:#FDE7E7; color:#B42318; }
.apcc-badge--dot::before { content:""; width:7px; height:7px; border-radius:50%; background: currentColor; }

/* ==========================================================================
   Multi-step / stepper (abstract submission)
   ========================================================================== */
.apcc-steps { display:flex; gap: 6px; margin-bottom: 28px; flex-wrap: wrap; }
.apcc-step { flex: 1 1 120px; padding: 12px 14px; border-radius: var(--apcc-radius-sm); background: var(--apcc-section); border:1px solid var(--apcc-line); font-size: 13.5px; font-weight:600; color: var(--apcc-gray); display:flex; align-items:center; gap:10px; }
.apcc-step .apcc-step-no { width:24px; height:24px; border-radius:50%; background:#fff; border:1.5px solid var(--apcc-line); display:inline-flex; align-items:center; justify-content:center; font-size:12.5px; }
.apcc-step.is-active { background: var(--apcc-mint); border-color: var(--apcc-consortium); color: var(--apcc-forest); }
.apcc-step.is-active .apcc-step-no { background: var(--apcc-consortium); color:#fff; border-color: var(--apcc-consortium); }
.apcc-step.is-done .apcc-step-no { background: var(--apcc-success); color:#fff; border-color: var(--apcc-success); }
.apcc-step-panel { display:none; }
.apcc-step-panel.is-active { display:block; animation: apcc-fade .25s ease; }
@keyframes apcc-fade { from { opacity:0; transform: translateY(4px);} to {opacity:1; transform:none;} }
.apcc-form-nav { display:flex; justify-content:space-between; gap:12px; margin-top: 26px; }

/* ==========================================================================
   Tables (dashboards)
   ========================================================================== */
.apcc-table { width:100%; border-collapse: collapse; font-size: 14.5px; }
.apcc-table th { text-align:left; font-weight:700; color: var(--apcc-forest); padding: 12px 14px; border-bottom: 2px solid var(--apcc-line); white-space:nowrap; }
.apcc-table td { padding: 14px; border-bottom: 1px solid var(--apcc-line); vertical-align: top; }
.apcc-table tr:hover td { background: #FAFCFB; }
.apcc-table-wrap { overflow-x:auto; border:1px solid var(--apcc-line); border-radius: var(--apcc-radius); }

/* ==========================================================================
   Notices
   ========================================================================== */
.apcc-notice { padding: 14px 18px; border-radius: var(--apcc-radius-sm); font-size:14.5px; margin-bottom: 20px; border:1px solid; }
.apcc-notice--ok   { background:#ECFDF3; border-color:#ABEFC6; color:#067647; }
.apcc-notice--info { background:#EFF8FF; border-color:#B2DDFF; color:#175CD3; }
.apcc-notice--warn { background:#FFFAEB; border-color:#FEDF89; color:#B54708; }
.apcc-notice--err  { background:#FEF3F2; border-color:#FECDCA; color:#B42318; }

/* ==========================================================================
   Dates / definition rows
   ========================================================================== */
.apcc-dates { list-style:none; margin:0; padding:0; }
.apcc-dates li { display:flex; justify-content:space-between; gap:18px; padding:14px 0; border-bottom:1px dashed var(--apcc-line); }
.apcc-dates li:last-child { border-bottom:0; }
.apcc-dates .apcc-date-label { font-weight:600; color: var(--apcc-charcoal); }
.apcc-dates .apcc-date-value { color: var(--apcc-consortium); font-weight:700; white-space:nowrap; }

/* ==========================================================================
   Accessibility / quality floor
   ========================================================================== */
.apcc-conf :focus-visible { outline: 3px solid var(--apcc-consortium); outline-offset: 2px; border-radius: 4px; }
.apcc-visually-hidden { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
@media (prefers-reduced-motion: reduce) {
  .apcc-conf *, .apcc-conf *::before, .apcc-conf *::after { animation: none !important; transition: none !important; }
}

/* ==========================================================================
   Phase 1 additions — honeypot, form grid, muted text
   ========================================================================== */
.apcc-conf .apcc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.apcc-conf .apcc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin: 8px 0 4px; }
.apcc-conf .apcc-grid-2 > label { display: block; font-weight: 600; color: var(--apcc-charcoal); font-size: 14px; }
.apcc-conf .apcc-grid-2 > label > input, .apcc-conf .apcc-grid-2 > label > select { display: block; margin-top: 6px; }
.apcc-conf .apcc-grid-2 input, .apcc-conf .apcc-grid-2 select { font: inherit; padding: 10px 12px; border: 1px solid var(--apcc-line); border-radius: var(--apcc-radius-sm); width: 100%; }
.apcc-conf .apcc-form h3 { margin: 22px 0 6px; font-size: 16px; color: var(--apcc-forest); }
.apcc-conf .apcc-muted { color: var(--apcc-gray); font-size: 13px; line-height: 1.5; }
.apcc-conf .req { color: #B42318; font-weight: 800; }
@media (max-width: 640px) { .apcc-conf .apcc-grid-2 { grid-template-columns: 1fr; } }

/* Notice aliases (single-dash variants used by Phase 1 markup/JS) */
.apcc-conf .apcc-notice-success { background:#ECFDF3; border:1px solid #ABEFC6; color:#067647; padding:14px 18px; border-radius:var(--apcc-radius-sm); font-size:14.5px; margin-bottom:20px; }
.apcc-conf .apcc-notice-info    { background:#EFF8FF; border:1px solid #B2DDFF; color:#175CD3; padding:14px 18px; border-radius:var(--apcc-radius-sm); font-size:14.5px; margin-bottom:20px; }
.apcc-conf .apcc-notice-error   { background:#FEF3F2; border:1px solid #FECDCA; color:#B42318; padding:14px 18px; border-radius:var(--apcc-radius-sm); font-size:14.5px; margin-bottom:20px; }

/* ==========================================================================
   Phase 1 abstract vertical — button/badge aliases + new components
   ========================================================================== */
.apcc-conf .apcc-btn-primary   { background: var(--apcc-consortium); color:#fff; }
.apcc-conf .apcc-btn-primary:hover { background: var(--apcc-forest); }
.apcc-conf .apcc-btn-secondary { background: var(--apcc-mint); color: var(--apcc-forest); }
.apcc-conf .apcc-btn-ghost     { background: transparent; color: var(--apcc-consortium); border: 1px solid var(--apcc-consortium); }
.apcc-conf .apcc-btn-ghost:hover { background: var(--apcc-mint); }
.apcc-conf .apcc-btn-sm        { padding: 6px 12px; font-size: 13px; }

.apcc-conf .apcc-badge-gray { background:#EEF1F2; color:#555; }
.apcc-conf .apcc-badge-info { background:#EFF8FF; color:#175CD3; }
.apcc-conf .apcc-badge-warn { background:#FFFAEB; color:#B54708; }

/* Stepper */
.apcc-conf .apcc-stepper { display:flex; flex-wrap:wrap; gap:6px; margin:18px 0 14px; counter-reset: step; }
.apcc-conf .apcc-stepper span { font-size:13px; font-weight:600; color:var(--apcc-gray); background:var(--apcc-section); border:1px solid var(--apcc-line); border-radius:var(--apcc-radius-pill); padding:6px 14px; }
.apcc-conf .apcc-stepper span.is-active { background:var(--apcc-consortium); color:#fff; border-color:var(--apcc-consortium); }

/* Word counter */
.apcc-conf .apcc-wc { font-size:12px; color:var(--apcc-gray); float:right; }
.apcc-conf .apcc-wc.over { color:#B42318; font-weight:700; }

/* Co-author rows + file list */
.apcc-conf .apcc-coauthor { border:1px solid var(--apcc-line); border-radius:var(--apcc-radius-sm); padding:14px; margin-bottom:12px; background:#fff; }
.apcc-conf .apcc-filelist { margin:8px 0; padding-left:18px; color:var(--apcc-gray); font-size:14px; }
.apcc-conf .apcc-form-nav { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; align-items:center; }

/* ==========================================================================
   Progressive verification — optional panels & cards (light, clearly optional)
   ========================================================================== */
.apcc-conf .apcc-optional-block { margin: 18px 0; }
.apcc-conf .apcc-optional-block h3 { margin: 0 0 4px; color: var(--apcc-forest); }
.apcc-conf .apcc-optional-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin: 12px 0 4px; }
.apcc-conf .apcc-optcard { display: flex; flex-direction: column; gap: 6px; padding: 16px; border: 1px dashed var(--apcc-line); border-radius: var(--apcc-radius-sm); background: var(--apcc-section); color: var(--apcc-charcoal); text-decoration: none; transition: border-color .15s, background .15s; }
.apcc-conf a.apcc-optcard:hover { border-color: var(--apcc-consortium); background: var(--apcc-mint); }
.apcc-conf .apcc-optcard strong { color: var(--apcc-forest); font-size: 15px; }
.apcc-conf .apcc-optcard span { color: var(--apcc-gray); font-size: 13.5px; line-height: 1.5; }
.apcc-conf .apcc-optcard--static { background: #fff; border-style: solid; align-items: flex-start; }
.apcc-conf .apcc-optcard--static .apcc-btn { margin-top: 6px; }
@media (max-width: 600px) { .apcc-conf .apcc-optional-cards { grid-template-columns: 1fr; } }

@media (max-width: 768px) {
  main.apcc-conf {
    padding-top: 82px;
  }

  main.apcc-conf > .apcc-conf > .apcc-hero:first-child {
    margin-top: -82px;
    padding-top: 144px;
  }

  main.apcc-conf > .apcc-pagehead:first-child,
main.apcc-conf > .apcc-conf > .apcc-pagehead:first-child {
    margin-top: -82px;
    padding-top: 116px;
  }
}

@media (max-width: 480px) {
  main.apcc-conf {
    padding-top: 68px;
  }

  main.apcc-conf > .apcc-conf > .apcc-hero:first-child {
    margin-top: -68px;
    padding-top: 124px;
  }

  main.apcc-conf > .apcc-pagehead:first-child,
main.apcc-conf > .apcc-conf > .apcc-pagehead:first-child {
    margin-top: -68px;
    padding-top: 102px;
  }
}

body.admin-bar main.apcc-conf {
  padding-top: 138px;
}

body.admin-bar main.apcc-conf > .apcc-conf > .apcc-hero:first-child {
  margin-top: -138px;
  padding-top: 210px;
}

body.admin-bar main.apcc-conf > .apcc-pagehead:first-child,
body.admin-bar main.apcc-conf > .apcc-conf > .apcc-pagehead:first-child {
  margin-top: -138px;
  padding-top: 172px;
}

@media (max-width: 782px) {
  body.admin-bar main.apcc-conf {
    padding-top: 128px;
  }

  body.admin-bar main.apcc-conf > .apcc-conf > .apcc-hero:first-child {
    margin-top: -128px;
    padding-top: 190px;
  }

  body.admin-bar main.apcc-conf > .apcc-pagehead:first-child,
  body.admin-bar main.apcc-conf > .apcc-conf > .apcc-pagehead:first-child {
    margin-top: -128px;
    padding-top: 162px;
  }
}

/* Fix: form step-sections wrongly inherit the .apcc-step stepper-pill styles.
   Scope a correction to form panels only; real stepper pills are unaffected. */
.apcc-conf .apcc-form section.apcc-step {
  display: block;
  flex: none;
}

/* ==========================================================================
   Abstract submission — single long form layout
   ========================================================================== */
.apcc-conf .apcc-pagehead .apcc-container,
.apcc-conf .apcc-section .apcc-container {
  width: 100%;
  max-width: 1400px;
  padding: 0 2rem;
}

.apcc-conf .apcc-section {
  background: #F4F7F8;
  padding: 64px 0;
}

.apcc-conf .apcc-form.apcc-abstract-form {
  max-width: none;
  background: #fff;
  border: 1px solid #E2E8E5;
  border-radius: 16px;
  box-shadow: none;
  padding: 46px;
}

.apcc-conf .apcc-form.apcc-abstract-form section.apcc-step {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  margin: 0 0 56px;
}

.apcc-conf .apcc-form.apcc-abstract-form section.apcc-step h3 {
  color: var(--apcc-forest);
  display: block;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
  margin: 0 0 30px;
  padding: 0 0 14px;
  border-bottom: 2px solid var(--apcc-header-mint);
}

.apcc-conf .apcc-form.apcc-abstract-form section.apcc-step h3:not(:first-child) {
  margin-top: 50px;
}

.apcc-conf .apcc-form.apcc-abstract-form section.apcc-step h4 {
  color: var(--apcc-forest);
  font-size: 15px;
  font-weight: 700;
  text-align: left;
  margin: 30px 0 16px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px 38px;
  margin-bottom: 26px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-grid-2 > label[style*="grid-column:1/-1"] {
  grid-column: 1 / -1 !important;
}

.apcc-conf .apcc-form.apcc-abstract-form label,
.apcc-conf .apcc-form.apcc-abstract-form fieldset legend {
  display: block;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.4;
  color: var(--apcc-charcoal);
  margin-bottom: 0;
}

.apcc-conf .apcc-form.apcc-abstract-form section.apcc-step > label:not(.apcc-check) {
  margin-bottom: 30px;
}

.apcc-conf .apcc-form.apcc-abstract-form input:not([type]),
.apcc-conf .apcc-form.apcc-abstract-form input[type="text"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="email"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="tel"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="number"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="password"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="date"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="file"],
.apcc-conf .apcc-form.apcc-abstract-form select,
.apcc-conf .apcc-form.apcc-abstract-form textarea {
  width: 100%;
  max-width: none !important;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.45;
  color: var(--apcc-charcoal);
  padding: 12px 14px;
  background: var(--apcc-white);
  border: 1px solid #CBD7D1;
  border-radius: 10px;
  box-shadow: none;
}

.apcc-conf .apcc-form.apcc-abstract-form input:not([type]),
.apcc-conf .apcc-form.apcc-abstract-form input[type="text"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="email"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="tel"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="number"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="password"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="date"],
.apcc-conf .apcc-form.apcc-abstract-form input[type="file"],
.apcc-conf .apcc-form.apcc-abstract-form select {
  height: 48px;
}

.apcc-conf .apcc-form.apcc-abstract-form textarea {
  min-height: 200px;
  resize: vertical;
}

.apcc-conf .apcc-form.apcc-abstract-form label:not(.apcc-check) > input:not([type="checkbox"]):not([type="radio"]),
.apcc-conf .apcc-form.apcc-abstract-form label:not(.apcc-check) > select,
.apcc-conf .apcc-form.apcc-abstract-form label:not(.apcc-check) > textarea {
  display: block;
  margin-top: 11px;
}

.apcc-conf .apcc-form.apcc-abstract-form label:not(.apcc-check) > input[type="file"] {
  padding-top: 10px;
  padding-bottom: 10px;
}

.apcc-conf .apcc-form.apcc-abstract-form #apcc-content-fields > label {
  margin-bottom: 34px !important;
}

.apcc-conf .apcc-form input:focus,
.apcc-conf .apcc-form input:focus-visible,
.apcc-conf .apcc-form select:focus,
.apcc-conf .apcc-form select:focus-visible,
.apcc-conf .apcc-form textarea:focus,
.apcc-conf .apcc-form textarea:focus-visible,
.apcc-conf .apcc-form button:focus,
.apcc-conf .apcc-form button:focus-visible,
.apcc-conf .apcc-form [type="checkbox"]:focus,
.apcc-conf .apcc-form [type="checkbox"]:focus-visible,
.apcc-conf .apcc-form [type="radio"]:focus,
.apcc-conf .apcc-form [type="radio"]:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

.apcc-conf .apcc-form input:focus,
.apcc-conf .apcc-form input:focus-visible,
.apcc-conf .apcc-form select:focus,
.apcc-conf .apcc-form select:focus-visible,
.apcc-conf .apcc-form textarea:focus,
.apcc-conf .apcc-form textarea:focus-visible {
  border-color: #CBD7D1 !important;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  font-weight: 500;
  margin: 14px 0;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-check input[type="checkbox"],
.apcc-conf .apcc-form.apcc-abstract-form .apcc-check input[type="radio"] {
  width: auto;
  margin: 4px 0 0;
  flex: 0 0 auto;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-check input:not([type="checkbox"]):not([type="radio"]) {
  display: block;
  width: min(100%, 320px);
  margin: 11px 0 0;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-check:has(input[name="presenter_name"]) {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  row-gap: 12px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-check input[name="presenter_name"]:not([type="checkbox"]):not([type="radio"]) {
  grid-column: 2;
  flex: 1 1 100%;
  width: 100%;
  margin: 0;
}

.apcc-conf .apcc-form.apcc-abstract-form fieldset {
  border: 0;
  padding: 0;
  margin: 0 0 42px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-muted {
  margin-top: 24px;
}

.apcc-conf .apcc-form.apcc-abstract-form #apcc-coauthors {
  margin: 24px 0 24px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-coauthor {
  background: #FBFDFC;
  border: 1px solid #E2E8E5;
  border-radius: 14px;
  padding: 30px;
  margin-bottom: 24px;
  gap: 30px 38px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-coauthor-actions {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-start;
  gap: 12px;
  margin-top: 2px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-form-nav {
  display: flex;
  gap: 16px;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: 24px;
  padding-top: 30px;
  border-top: 1px solid var(--apcc-line);
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-form-nav .apcc-btn {
  padding: 13px 22px;
  font-size: 15px;
  border-radius: 10px;
}
.apcc-conf .apcc-form.apcc-abstract-form .apcc-form-nav .apcc-btn-primary {
  background: var(--apcc-consortium);
  color: #fff;
}
.apcc-conf .apcc-form.apcc-abstract-form .apcc-form-nav .apcc-btn-secondary {
  background: var(--apcc-white);
  color: var(--apcc-consortium);
  border: 2px solid var(--apcc-consortium);
}
.apcc-conf .apcc-form.apcc-abstract-form #apcc-add-coauthor,
.apcc-conf .apcc-form.apcc-abstract-form .apcc-rm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 145px;
  min-height: 44px;
  padding: 9px 18px;
  font-size: 14px;
  line-height: 1.2;
  border-radius: 10px;
  border: 1px solid var(--apcc-consortium);
  background: var(--apcc-white);
  color: var(--apcc-consortium);
  margin: 4px 0 18px;
}
.apcc-conf .apcc-form.apcc-abstract-form #apcc-add-coauthor:hover {
  background: var(--apcc-mint);
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-rm {
  border-color: #E0B4B0;
  color: #B42318;
  margin: 0;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-rm:hover {
  background: #FEF3F2;
}

.apcc-conf .apcc-help-box {
  background: #FFF8E1;
  border: 1px solid #F2D98A;
  border-radius: 12px;
  padding: 14px 16px;
  color: #6a5400;
  font-size: 15px;
  margin-top: 22px;
}

.apcc-conf .apcc-help-box a {
  color: #6a5400;
  text-decoration: underline;
}

.apcc-conf .apcc-backlink {
  margin: 0 0 8px;
  font-size: 14px;
}

.apcc-conf .apcc-backlink a {
  color: var(--apcc-consortium);
  text-decoration: none;
  font-weight: 600;
}

.apcc-conf .apcc-backlink a:hover {
  text-decoration: underline;
}

.apcc-conf .apcc-inline-error,
.apcc-conf .apcc-keywords-error,
.apcc-conf .apcc-bio-error,
.apcc-conf .apcc-coauthor-error {
  display: none;
  margin-top: 6px;
  font-size: 13px;
  color: #B42318;
}

.apcc-conf .apcc-inline-error.apcc-validate-error {
  display: block;
}

.apcc-conf .apcc-invalid {
  border-color: #B42318 !important;
  background: #fff8f8;
}

.apcc-conf .apcc-supporting-docs {
  margin-top: 12px;
}

.apcc-conf .apcc-form .apcc-supporting-docs input[type="file"] {
  height: auto;
  min-height: 48px;
}

.apcc-conf .apcc-form.apcc-abstract-form .apcc-grid-2,
.apcc-conf #apcc-reg-form.apcc-form .apcc-grid-2 {
  gap: 24px 28px;
}

.apcc-conf #apcc-reg-form.apcc-form {
  max-width: none;
  background: #fff;
  border-radius: 16px;
  border: 1px solid #E2E8E5;
  box-shadow: none;
  padding: 46px;
}

.apcc-conf #apcc-reg-form.apcc-form h3 {
  color: var(--apcc-forest);
  display: block;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.35;
  text-align: left;
  margin: 0 0 30px;
  border-bottom: 2px solid var(--apcc-header-mint);
  padding: 0 0 14px;
}

.apcc-conf #apcc-reg-form.apcc-form h3:not(:first-of-type) {
  margin-top: 50px;
}

.apcc-conf #apcc-reg-form.apcc-form input:not([type]),
.apcc-conf #apcc-reg-form.apcc-form input[type="text"],
.apcc-conf #apcc-reg-form.apcc-form input[type="email"],
.apcc-conf #apcc-reg-form.apcc-form input[type="tel"],
.apcc-conf #apcc-reg-form.apcc-form input[type="number"],
.apcc-conf #apcc-reg-form.apcc-form input[type="password"],
.apcc-conf #apcc-reg-form.apcc-form input[type="date"],
.apcc-conf #apcc-reg-form.apcc-form select {
  width: 100%;
  height: 48px;
  border: 1px solid #CBD7D1;
  border-radius: 10px;
  padding: 12px 14px;
  font: inherit;
  background: var(--apcc-white);
  color: var(--apcc-charcoal);
  box-shadow: none;
}

.apcc-conf #apcc-reg-form.apcc-form label:not(.apcc-check) > input:not([type="checkbox"]):not([type="radio"]),
.apcc-conf #apcc-reg-form.apcc-form label:not(.apcc-check) > select {
  display: block;
  margin-top: 11px;
}

/* ---- Registration form field rhythm — mirrors the abstract form so both pages match ---- */
.apcc-conf #apcc-reg-form.apcc-form .apcc-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  font-weight: 500;
  margin: 14px 0;
}
.apcc-conf #apcc-reg-form.apcc-form .apcc-check input[type="checkbox"],
.apcc-conf #apcc-reg-form.apcc-form .apcc-check input[type="radio"] {
  width: auto;
  margin: 4px 0 0;
  flex: 0 0 auto;
}
.apcc-conf #apcc-reg-form.apcc-form > label:not(.apcc-check) {
  display: block;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.4;
  color: var(--apcc-charcoal);
  margin: 0 0 24px;
}
.apcc-conf #apcc-reg-form.apcc-form .apcc-muted {
  margin: 6px 0 20px;
}
.apcc-conf #apcc-reg-form.apcc-form > button,
.apcc-conf #apcc-reg-form.apcc-form > .apcc-btn,
.apcc-conf #apcc-reg-form.apcc-form > .apcc-btn-primary,
.apcc-conf #apcc-reg-form.apcc-form > .apcc-btn--primary {
  margin-top: 18px;
}

@media (max-width: 640px) {
  .apcc-conf #apcc-reg-form.apcc-form {
    padding: 28px 20px;
  }
}

/* ---- Status lookup form — match the other conference forms ---- */
.apcc-conf #apcc-status-form.apcc-form label {
  display: block;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.4;
  color: var(--apcc-charcoal);
  margin: 0 0 24px;
}
.apcc-conf #apcc-status-form.apcc-form input:not([type]),
.apcc-conf #apcc-status-form.apcc-form input[type="text"],
.apcc-conf #apcc-status-form.apcc-form input[type="email"] {
  display: block;
  width: 100%;
  height: 48px;
  margin-top: 11px;
  padding: 12px 14px;
  font-family: inherit;
  font-size: 15px;
  line-height: 1.45;
  color: var(--apcc-charcoal);
  background: var(--apcc-white);
  border: 1px solid #CBD7D1;
  border-radius: 10px;
  box-shadow: none;
}
.apcc-conf #apcc-status-form.apcc-form button {
  margin-top: 6px;
}
@media (max-width: 640px) {
  .apcc-conf #apcc-status-form.apcc-form {
    padding: 28px 20px;
  }
}

@media (max-width: 640px) {
  .apcc-conf .apcc-form.apcc-abstract-form {
    padding: 28px 20px;
  }
  .apcc-conf .apcc-form.apcc-abstract-form section.apcc-step {
    padding: 0;
    margin-bottom: 44px;
  }
  .apcc-conf .apcc-form.apcc-abstract-form .apcc-grid-2 {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .apcc-conf .apcc-form.apcc-abstract-form .apcc-coauthor {
    padding: 22px;
  }
  .apcc-conf .apcc-form.apcc-abstract-form .apcc-check:has(input[name="presenter_name"]) {
    grid-template-columns: auto 1fr;
  }
  .apcc-conf .apcc-form.apcc-abstract-form .apcc-check input[name="presenter_name"]:not([type="checkbox"]):not([type="radio"]) {
    grid-column: 2;
    width: 100%;
    margin: 0;
  }
}
