/* ============================================================================
   brand.css  —  Carnegie 2026 site redesign (applicant + reviewer portals)
   ----------------------------------------------------------------------------
   Override sheet, loaded LAST in each master <head>. Implements the
   "Carnegie site redesign" mock (docs/assets/Carnegie site redesign):

     - Oswald (display / eyebrows) + Lora (body serif), Google Fonts
     - electric blue #4050F0 on a warm off-white ground #FBFCF7
     - slim cream header with a 1px hairline; slim single-row black footer
     - full-height BLUE left sidebar nav with the off-white logo watermark
     - white cards (14px radius, #ECE7DC hairlines), rounded inputs,
       pill buttons, tinted status pills, soft-yellow deadline callouts
     - split-panel "hero + form" login / register screens (.auth-split)

   Structure hooks live in the masters (.brand-*) and the auth pages
   (.auth-*). Everything else re-skins the legacy theme classes in place.
   ========================================================================== */

:root {
  --brand-blue:     #4050f0;
  --brand-blue-d:   #2e3cc8;
  --brand-blue-t:   #edefff;
  --brand-ink:      #131212;
  --brand-body:     #56525b;
  --brand-faint:    #8d8a82;
  --brand-faint-2:  #9a958b;
  --brand-label:    #6e6a73;
  --brand-ground:   #fbfcf7;
  --brand-white:    #ffffff;
  --brand-line:     #ece7dc;   /* card hairline   */
  --brand-line-hd:  #e7e1d5;   /* header hairline */
  --brand-line-in:  #e0dace;   /* input border    */
  --brand-line-sec: #eee9de;   /* section rule    */
  --brand-cream:    #fbf4d2;   /* deadline callout */
  --brand-cream-ln: #ece4c2;
  --brand-footer:   #0c0c0c;
  --brand-sidebar-w: 252px;
  --brand-serif:    "Lora", Georgia, "Times New Roman", serif;
  --brand-display:  "Oswald", "Arial Narrow", sans-serif;
}

/* ---- base ---------------------------------------------------------------- */
html { scrollbar-gutter: stable; }   /* identical layout width with or without a scrollbar */
body {
  font-family: var(--brand-serif);
  color: var(--brand-ink);
  background: var(--brand-ground);
  -webkit-font-smoothing: antialiased;
  accent-color: var(--brand-blue);   /* native radios / checkboxes in brand blue */
}
a { color: var(--brand-blue); }
a:hover, a:focus { color: var(--brand-blue-d); }

/* ---- flexbox sticky footer ------------------------------------------------ */
#wrapper {
  background: var(--brand-ground) !important;
  min-height: 100vh;
  padding-bottom: 0 !important;
  display: flex;
  flex-direction: column;
}
#main { flex: 1 0 auto; display: flex; }

/* ---- header: slim cream band with hairline -------------------------------- */
#header { background: var(--brand-ground) !important; border-bottom: 1px solid var(--brand-line-hd) !important; }
.colored-bg, .colored-bg.top, #header .colored-bg, #header .colored-bg.top {
  background: transparent !important; height: 0 !important; border: 0 !important;
}
#header .main-header--wrap { background: var(--brand-ground) !important; }
#header .main-header,
#header .main-header.D-border {
  background: var(--brand-ground) !important;
  border: 0 !important;
  height: auto !important;
  max-width: none; margin: 0;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 17px 40px; min-height: 0; flex-wrap: wrap;
}
#header .main-header > *, #header .main-header--wrap, .main-header__program--title { border: 0 !important; }
.D-border { border: 0 !important; height: auto !important; }
#header .main-header .logo {
  border: 0 !important; flex: none;
  height: auto !important; width: auto !important;
  padding: 0 !important; margin: 0 !important; line-height: 0;
}
#header .main-header .logo img, #header .main-header .logo img.svg {
  height: 34px; width: auto; max-width: none; display: block;
}
/* legacy mobile menu (menuMobile.ascx): redundant in the redesign —
   portal nav stacks the blue sidebar on mobile, auth screens use the header nav */
#header .main-nav { display: none !important; }
/* program title, right-aligned (portal chrome) */
.main-header__program--title {
  font-family: var(--brand-serif) !important;
  font-weight: 400 !important; font-size: 16px !important; line-height: 1.3 !important;
  letter-spacing: 0 !important; text-transform: none !important;
  color: #46434b !important; margin: 0 0 0 auto !important; text-align: right;
}
/* anonymous header nav (shown only on .auth-split screens) */
.brand-header--nav { display: none; align-items: center; gap: 28px; margin-left: auto; }
.brand-header--nav a {
  font-family: var(--brand-serif); font-weight: 500; font-size: 16px;
  color: var(--brand-body); text-decoration: none;
}
.brand-header--nav a:hover { color: var(--brand-blue); text-decoration: none; }
.brand-header--nav a.sel { font-weight: 600; color: var(--brand-ink); }
.brand-header--nav a .ext { font-size: 12px; opacity: .6; }
body:has(.auth-split) .brand-header--nav, body:has(.anon-page) .brand-header--nav { display: flex; }
body:has(.auth-split) .main-header__program--title, body:has(.anon-page) .main-header__program--title { display: none !important; }

/* ---- main shell: blue sidebar + content column ---------------------------- */
#main.brand-main { padding: 0; margin: 0; }   /* main.css gives #main 20px padding */
.brand-main { display: flex; align-items: stretch; width: 100%; min-height: 0; }
.brand-menu-btn { margin: 0 0 8px; }
.brand-menu-btn .open-nav { float: none; display: inline-block; color: var(--brand-ink); }
.brand-content { flex: 1 1 auto; min-width: 0; padding: 42px 52px 52px; }

/* the old bootstrap-grid classes are neutralized inside the new shell */
.brand-main .container, .brand-main .container.third,
.brand-main .holder-container, .brand-main .holder-container2,
.brand-main .content {
  background: transparent !important; width: auto; max-width: none; padding: 0; margin: 0;
}
.brand-main .brand-page { max-width: 980px; }

/* sidebar */
.left-nav.brand-sidebar, nav.brand-sidebar {
  width: var(--brand-sidebar-w); flex: none;
  background: var(--brand-blue);
  padding: 30px 18px 24px;
  display: flex; flex-direction: column;
  float: none;
}
.brand-sidebar--eyebrow {
  font-family: var(--brand-display); font-weight: 600; font-size: 12px;
  letter-spacing: .16em; text-transform: uppercase;
  color: #b3bcff; margin: 0 0 16px 14px;
}
.brand-sidebar--logo { width: 184px; max-width: 90%; opacity: .2; margin: 24px 0 0 6px; flex: none; align-self: flex-start; }
.brand-sidebar--spacer { flex: 1 1 auto; min-height: 24px; }

/* menu list (rendered by menu.ascx) — legacy css hides it on mobile; always show */
.brand-sidebar .left-nav--list { list-style: none; margin: 0; padding: 0; display: block !important; }
.brand-sidebar .left-nav--select { display: none !important; }   /* the legacy mobile <select> fallback */
.brand-sidebar .left-nav--list li { margin: 0 0 3px; padding: 0; border: 0 !important; background: none !important; }
.brand-sidebar .left-nav--list li a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: 10px;
  font-family: var(--brand-serif) !important; font-weight: 500; font-size: 15px; line-height: 1.35;
  text-transform: none !important; letter-spacing: 0 !important;
  color: #dfe3ff !important; text-decoration: none;
  transition: background .12s ease, color .12s ease;
}
.brand-sidebar .left-nav--list li a:before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: transparent; flex: none;
}
.brand-sidebar .left-nav--list li a:hover { background: rgba(255,255,255,.09); color: #fff !important; }
.brand-sidebar .left-nav--list li.active a {
  background: rgba(255,255,255,.16); color: #fff !important; font-weight: 600;
}
.brand-sidebar .left-nav--list li.active a:before { background: #fff; }
/* nested form-step items */
.brand-sidebar .left-nav--list li.lower { margin-left: 14px; }
.brand-sidebar .left-nav--list li.lower a { padding: 9px 14px 9px 16px; color: #c7ccf7 !important; }
.brand-sidebar .left-nav--list li.lower.active a { color: #fff !important; }

/* content-column heading */
.brand-eyebrow {
  font-family: var(--brand-display); font-weight: 600; font-size: 13px;
  letter-spacing: .18em; text-transform: uppercase; color: var(--brand-blue);
}
.brand-content h1, .brand-content .holder-container2 h1, #main .brand-content h1, h1.page-title {
  font-family: var(--brand-display) !important;
  font-weight: 500 !important; font-size: 42px !important; line-height: 1.06 !important;
  letter-spacing: -.01em !important; color: var(--brand-ink) !important;
  margin: 12px 0 16px !important;
}

/* hide the portal heading/eyebrow on split (login/register) screens */
body:has(.auth-split) .brand-content { padding: 0; display: flex; flex-direction: column; }
body:has(.auth-split) .brand-content > .brand-eyebrow,
body:has(.auth-split) .brand-content > h1,
body:has(.auth-split) .brand-heading { display: none; }
body:has(.auth-split) .left-nav.brand-sidebar { display: none; }
/* stretch the split all the way down to the footer */
body:has(.auth-split) .holder-container { flex: 1 1 auto; display: flex; flex-direction: column; }
body:has(.auth-split) .holder-container > .auth-split { flex: 1 1 auto; }

/* ---- standalone anonymous pages (.anon-page) --------------------------------- */
/* program info, forgot password, registered, errors: header nav like the auth
   screens, no portal sidebar, content in a centered column (heading kept). */
body:has(.anon-page) .left-nav.brand-sidebar { display: none; }
body:has(.anon-page) .brand-content { width: 100%; max-width: 1180px; margin: 0 auto; }
/* a bare .panel-body directly under the page div is a legacy wrapper, not a card —
   drop its padding so body copy left-aligns with the page heading */
.anon-page > .panel-body { padding: 0; }
body:has(.anon-page) .login-box { max-width: 520px; margin: 0 auto; }
body:has(.anon-page) .brand-heading:has(+ .holder-container .login-box) { text-align: center; }

/* ---- split-panel auth screens (login / register) --------------------------- */
.auth-split { flex: 1 1 auto; display: flex; align-items: stretch; min-height: 0; background: var(--brand-ground); }
.auth-split form { display: contents; }   /* WebForms wraps everything in a <form> */
.auth-hero {
  position: relative; flex: 1 1 55%; min-width: 0;
  background: var(--brand-ground);
  padding: 56px; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-start;
}
.auth-hero--mark {
  position: absolute; left: -10px; bottom: 44px; width: 500px; max-width: 90%;
  opacity: .05; pointer-events: none;
}
.auth-hero--inner { position: relative; }
.auth-hero .brand-eyebrow { letter-spacing: .22em; }
.auth-hero h1 {
  font-family: var(--brand-display) !important; font-weight: 500 !important;
  font-size: 50px !important; line-height: 1.04 !important; letter-spacing: -.01em !important;
  color: var(--brand-ink) !important; margin: 20px 0 0 !important;
}
.auth-hero--lede {
  max-width: 400px; margin: 24px 0 0;
  font-family: var(--brand-serif); font-size: 18px; line-height: 1.6; color: var(--brand-body);
}
.auth-hero--note { position: relative; font-size: 15px; color: var(--brand-faint); margin-top: 44px; }
.auth-hero--note a { color: var(--brand-blue); font-weight: 600; text-decoration: none; }
.auth-hero--note a:hover { color: var(--brand-blue-d); }

.auth-panel {
  flex: 0 0 45%; min-width: 0;   /* pinned so the divider lands identically on every auth screen */
  background: var(--brand-white); border-left: 1px solid var(--brand-line);
  padding: 56px;
  display: flex; flex-direction: column; justify-content: flex-start;
}
.auth-panel--inner { width: 100%; max-width: 380px; }
/* register: same 55/45 split as login for a consistent divider across screens;
   only the inner form column is wider to fit the field grid */
.auth-split.register .auth-panel--inner { max-width: 560px; }

.auth-panel--eyebrow {
  font-family: var(--brand-display); font-weight: 600; font-size: 13px;
  letter-spacing: .18em; text-transform: uppercase; color: var(--brand-faint-2);
  margin: 0 0 24px;
}
.auth-panel h2 {
  font-family: var(--brand-serif) !important; font-weight: 500 !important;
  font-size: 30px !important; line-height: 1.1 !important; color: var(--brand-ink) !important;
  margin: -16px 0 0 !important; text-transform: none !important; letter-spacing: 0 !important;
}
.auth-section {
  font-family: var(--brand-display); font-weight: 600; font-size: 12px;
  letter-spacing: .16em; text-transform: uppercase; color: #a6a29a;
  border-bottom: 1px solid var(--brand-line-sec);
  padding-bottom: 9px; margin: 26px 0 16px;
}
.auth-grid { display: grid; gap: 12px; }
.auth-grid.cols-2 { grid-template-columns: 1fr 1fr; }
.auth-grid.cols-title { grid-template-columns: 130px 1fr 1fr; }
.auth-field label {
  display: block; font-family: var(--brand-serif); font-weight: 500; font-size: 13px;
  color: var(--brand-label); margin: 0 0 5px 2px;
}
.auth-panel .form-label, .auth-panel label.brand-label {
  display: block; font-family: var(--brand-serif); font-weight: 500; font-size: 14px;
  color: var(--brand-label); margin: 0 0 6px 2px;
}
.auth-radio {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--brand-serif); font-weight: 500; font-size: 15px; color: var(--brand-ink);
  margin: 6px 22px 0 2px; cursor: pointer;
}
.auth-radio input { margin: 0; }
.auth-submit { margin: 26px 0 0; display: block; width: 100%; }
.auth-field .help-block { font-size: 13px; margin: 5px 0 0 2px; }
.auth-panel .login-options { text-align: right; margin: 10px 0 24px; }
.auth-panel .login-options a { font-weight: 500; font-size: 14px; color: var(--brand-blue); text-decoration: none; }
.auth-panel .login-options a:hover { color: var(--brand-blue-d); }
.auth-panel .text-danger { display: block; font-size: 14px; margin: 0 0 12px; }

/* divider — "New to the portal?" */
.content-divider { text-align: center; }
.content-divider > span {
  font-family: var(--brand-serif) !important; font-size: 14px !important;
  color: var(--brand-faint-2) !important; background: var(--brand-white) !important;
  text-transform: none !important; padding: 0 14px;
}
.content-divider > span:before { background-color: var(--brand-line) !important; content: ""; height: 1px; }

/* ---- forms: rounded warm-bordered inputs ---------------------------------- */
.form-control, .has-feedback .form-control,
input[type=text], input[type=email], input[type=password], input[type=tel], select, textarea {
  background: var(--brand-white) !important;
  border: 1px solid var(--brand-line-in) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  min-height: 46px; height: auto;
  padding: 11px 14px !important;
  line-height: 1.4 !important;   /* legacy 37px line-height made inputs taller than selects */
  font-family: var(--brand-serif) !important; font-size: 16px; color: var(--brand-ink);
}
textarea, textarea.form-control { line-height: 1.6; }
.has-feedback-left .form-control { padding-left: 42px !important; }
.form-control:focus, input:focus, select:focus, textarea:focus {
  border-color: var(--brand-blue) !important;
  box-shadow: 0 0 0 3px rgba(64,80,240,.13) !important; outline: none;
}
.form-control-feedback { color: var(--brand-faint); }
.form-control-feedback img { opacity: .55; }
label, .control-label { font-family: var(--brand-serif); }
.help-block { font-family: var(--brand-serif); color: var(--brand-faint-2); }
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active,
select:-webkit-autofill, textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--brand-white) inset !important;
  box-shadow: 0 0 0 1000px var(--brand-white) inset !important;
  -webkit-text-fill-color: var(--brand-ink) !important;
  caret-color: var(--brand-ink);
  transition: background-color 99999s ease-in-out 0s !important;
}

/* ---- buttons: pills -------------------------------------------------------- */
.btn, input[type=submit].btn, input[type=button].btn, button.btn {
  font-family: var(--brand-serif) !important; font-weight: 600 !important;
  font-size: 16px; letter-spacing: .01em; line-height: 1.4 !important;
  border-radius: 999px !important; text-transform: none !important;
  padding: 12px 26px !important;
  height: auto !important; min-height: 0 !important;
  width: auto !important;   /* main.css fixes ALL buttons at 180px, clipping longer labels */
  text-decoration: none !important;
}
.btn.btn-block, button.btn-block { width: 100% !important; }
a.btn:hover, a.btn:focus { text-decoration: none !important; }
/* form-step footer: Back / Save are secondary, Save-and-continue stays primary */
button#cmdBack, button#cmdSave {
  background: transparent !important; border: 1.5px solid var(--brand-blue) !important; color: var(--brand-blue) !important;
}
button#cmdBack:hover, button#cmdSave:hover { background: var(--brand-blue-t) !important; }
.btn-primary, .btn.bg-blue, .btn-login, .btn.bg-teal-400, .btn.bg-success, .btn.bg-primary {
  background: var(--brand-blue) !important; border: 1.5px solid var(--brand-blue) !important; color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn.bg-blue:hover, .btn-login:hover,
.btn.bg-teal-400:hover, .btn.bg-success:hover, .btn.bg-primary:hover {
  background: var(--brand-blue-d) !important; border-color: var(--brand-blue-d) !important;
}
.btn-default, .btn-register, .btn.btn-bordered {
  background: transparent !important; border: 1.5px solid var(--brand-blue) !important; color: var(--brand-blue) !important;
}
.btn-default:hover, .btn-register:hover, .btn.btn-bordered:hover { background: var(--brand-blue-t) !important; }
.btn-block { padding: 14px 26px !important; }
/* other-styles.css injects an absolute ">" icons-font glyph after EVERY button — remove it
   (it doubled up with the markup's own icon-arrow-right14 on buttons that carry one) */
button:after, a.button:after,
.btn-loginX:after, .btn-loginX:before, button.btn-login:after, .btn.bg-blue:after { content: none !important; }
.btn .icon-arrow-right14 { font-size: 15px; }
.btn [class*="icon-arrow"] { margin-left: 7px; position: static !important; }   /* legacy absolute icon overlapped the label */
.btn[disabled], .btn.disabled { opacity: .45; }

/* ---- cards ------------------------------------------------------------------ */
.panel, .panel-flat, .login-form, .panel.login-form, .registration-form {
  border: 1px solid var(--brand-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  background: var(--brand-white) !important;
}
.panel .panel, .panel .registration-form { border: 0 !important; }   /* no double frames */
.panel-body { padding: 28px 30px; }
.panel-heading { background: var(--brand-white); border-bottom: 1px solid var(--brand-line); border-radius: 14px 14px 0 0; }
.login-box { border: 0 !important; background: transparent !important; box-shadow: none !important; }
legend, fieldset > legend {
  font-family: var(--brand-display) !important; font-weight: 500 !important; letter-spacing: 0;
  color: var(--brand-ink); border-bottom: 1px solid var(--brand-line-sec); padding-bottom: 8px;
}

/* ---- content typography ------------------------------------------------------ */
#main h2, #main h3, #main h4, #main h5, #main h6,
.holder-container h2, .holder-container h3, .holder-container h5, .holder-container h6 {
  font-family: var(--brand-serif) !important; font-weight: 500 !important; font-style: normal !important;
  letter-spacing: 0; color: var(--brand-ink); text-transform: none !important;
}
/* other-styles.css ships the old poster-sized heading rhythm (h2 margin: 65px 0 40px,
   line-height baked into the `font:` shorthand) — retune it for the card layout */
#main h2, .holder-container h2 { font-size: 26px; line-height: 1.25; margin: 32px 0 14px; }
#main h3, .holder-container h3 { font-size: 21px; line-height: 1.3; margin: 28px 0 12px; }
#main h4, .holder-container h4 { font-size: 17px; line-height: 1.35; margin: 24px 0 10px; }
#main h5, .holder-container h5 { font-size: 19px; line-height: 1.35; margin: 24px 0 10px; }
#main h6, .holder-container h6 { font-size: 16px; line-height: 1.35; margin: 22px 0 10px; }
#main h2:first-child, #main h3:first-child, #main h4:first-child,
#main h5:first-child, #main h6:first-child,
.brand-card > h2:first-child, .brand-card > h3:first-child { margin-top: 0; }
#main p, .holder-container p {
  font-family: var(--brand-serif); color: var(--brand-body); font-size: 17px; line-height: 1.65;
}
#main p b, #main p strong { color: var(--brand-ink); font-weight: 600; }
/* content lists (instructions, help) — keep them on the serif, not the legacy sans */
.brand-content .holder-container ol, .brand-content .holder-container ul,
.brand-content .holder-container li {
  font-family: var(--brand-serif) !important; color: var(--brand-body); font-size: 17px; line-height: 1.65;
}
.brand-content .holder-container li b, .brand-content .holder-container li strong { color: var(--brand-ink); font-weight: 600; }

/* ---- tables: card-framed listing --------------------------------------------- */
.table-responsive {
  background: var(--brand-white); border: 1px solid var(--brand-line);
  border-radius: 14px; overflow: hidden;
}
.table-responsive .table { margin: 0; }
.table, table.table { font-family: var(--brand-serif); border-color: var(--brand-line); }
.table > thead > tr > th, table.table th {
  font-family: var(--brand-display); font-weight: 600; text-transform: uppercase;
  font-size: 12px; letter-spacing: .1em; color: var(--brand-faint-2);
  border-bottom: 1px solid var(--brand-line-sec) !important; background: var(--brand-white);
  padding: 14px 24px;
}
.table > tbody > tr > td, table.table td {
  border-top: 1px solid #f1ece1 !important; vertical-align: middle;
  padding: 18px 24px; font-size: 15px; color: var(--brand-ink);
}
.table > tbody > tr:first-child > td { border-top: 0 !important; }
.table td a { font-weight: 600; font-size: 19px; color: var(--brand-blue); text-decoration: none; }
.table td a:hover { text-decoration: underline; text-underline-offset: 3px; }
.table-hover > tbody > tr:hover, .table > tbody > tr:hover { background: #f7f9ff !important; }

/* ---- status pills -------------------------------------------------------------- */
.label {
  display: inline-flex; align-items: center; gap: 7px;
  border: 0 !important; border-radius: 999px; padding: 5px 13px;
  font-family: var(--brand-serif); font-weight: 600; font-size: 13px;
  text-transform: none; letter-spacing: 0; line-height: 1.4;
}
.label:before { content: ""; width: 7px; height: 7px; border-radius: 50%; flex: none; }
.label.bg-primary { background: #f1ece1 !important; color: var(--brand-faint) !important; }          /* Not started */
.label.bg-primary:before { background: #bcb6a8; }
.label.label-danger { background: var(--brand-blue-t) !important; color: var(--brand-blue-d) !important; }  /* In progress */
.label.label-danger:before { background: var(--brand-blue); }
.label.bg-success { background: #e7f3ec !important; color: #1f7a4d !important; }                     /* Submitted */
.label.bg-success:before { background: #2c9c66; }
.text-primary { color: var(--brand-blue) !important; }
.badge-primary, .label-primary { background: var(--brand-blue) !important; }

/* ---- page width -------------------------------------------------------------------- */
.brand-page { max-width: 980px; }
.brand-page p { max-width: 720px; }
.brand-card { background: var(--brand-white); border: 1px solid var(--brand-line); border-radius: 14px; padding: 32px 34px; max-width: 760px; }

/* ---- deadline / info callouts ---------------------------------------------------- */
.brand-deadline {
  background: var(--brand-cream); border: 1px solid var(--brand-cream-ln); border-radius: 12px;
  padding: 15px 18px; margin: 0 0 24px; max-width: 760px;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.brand-deadline--tag {
  font-family: var(--brand-display); font-weight: 600; font-size: 13px;
  letter-spacing: .08em; text-transform: uppercase; color: #8a7320; flex: none;
}
.brand-deadline--text { font-family: var(--brand-serif); font-size: 16px; color: #6b5e2a; }
.well, .alert-info {
  background: var(--brand-cream); border: 1px solid var(--brand-cream-ln); border-radius: 12px;
  box-shadow: none; color: #6b5e2a; font-family: var(--brand-serif);
}

/* legacy icon circles (password reset, registration) — tint to brand blue */
.icon-object { border-color: var(--brand-blue) !important; color: var(--brand-blue) !important; }
.icon-object.border-warning, .icon-object.border-success { border-color: var(--brand-blue) !important; }
.icon-object .text-warning, .icon-object .text-success, .icon-object i { color: var(--brand-blue) !important; }
.text-warning-400, .text-success-400 { color: var(--brand-blue) !important; }

/* ---- submitted / success confirmation ---------------------------------------------- */
.brand-success { text-align: center; padding: 26px 12px 14px; }
.brand-success--check {
  width: 74px; height: 74px; border-radius: 50%;
  background: var(--brand-blue); color: #fff;
  font: 700 34px/74px var(--brand-serif);
  margin: 0 auto 26px;
  box-shadow: 0 8px 22px rgba(64,80,240,.32);
}
.brand-success .brand-eyebrow { margin: 0 0 12px; }
#main .brand-success h2, .brand-success h2 {
  font-family: var(--brand-display) !important; font-weight: 500 !important;
  font-size: 38px !important; line-height: 1.06; letter-spacing: -.01em;
  color: var(--brand-ink) !important; margin: 0 0 18px;
}
.brand-success p { max-width: 520px; margin: 0 auto 12px; }

/* ---- upload drop-zones ------------------------------------------------------------ */
.drop-zone { border: 1.5px dashed #b9c0f0; background: #f3f5ff; border-radius: 12px; }
.drop-zone:hover, .drop-zone.drag-over { border-color: var(--brand-blue); background: var(--brand-blue-t); }
.drop-zone-icon { color: var(--brand-blue); }
.upload-item { border: 1px solid var(--brand-line); border-radius: 10px; background: var(--brand-white); }
.upload-item-name a { color: var(--brand-blue); font-weight: 600; }
.upload-item-delete, a.upload-item-delete {
  font-family: var(--brand-serif); font-weight: 600; font-size: 13px;
  color: var(--brand-faint-2); border-radius: 999px; padding: 5px 13px;
  text-decoration: none !important;   /* legacy theme underlines every content link */
}
.upload-item-delete:hover, .upload-item-delete:focus { background: #b3261e; color: #fff; }

/* ---- footer: slim single black band ------------------------------------------------ */
.main-footer {
  position: static !important;
  height: auto !important; min-height: 0 !important;
  margin: 0 !important;
  padding: 15px 40px !important;
  background: var(--brand-footer) !important;
  background-image: none !important;
  color: #fff !important;
  text-transform: none !important;
  font-family: var(--brand-serif) !important;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  flex-shrink: 0;
}
.main-footer--bg, .main-footer--sig, .main-footer--nav { display: none !important; }
.main-footer .cols { display: contents; }
.main-footer--right { float: none !important; display: contents; }
.main-footer--copy, .main-footer p {
  color: #c9c9cf !important; font-size: 13px; letter-spacing: .02em; margin: 0 !important; text-transform: none;
}
.main-footer--powered { color: #7e7e86 !important; font-size: 13px; letter-spacing: .02em; }
.main-footer a { color: #c9c9cf; } .main-footer a:hover { color: #fff !important; text-decoration: none; }

/* ---- reviewer slide-out (mobile) ---------------------------------------------------- */
.sidenav { background: var(--brand-blue) !important; }
.sidenav .left-nav--list li a { color: #dfe3ff !important; font-family: var(--brand-serif); }
.sidenav .left-nav--list li a:hover, .sidenav .closebtn { color: #fff !important; }
.sidenav .left-nav--list li.active a { color: #fff !important; font-weight: 600; }

/* ---- responsive ---------------------------------------------------------------------- */
@media (max-width: 900px) {
  #header .main-header--wrap { position: static !important; }   /* main.css pins it fixed on mobile */
  #header .main-header { padding: 14px 20px; }
  .brand-main { flex-direction: column; }
  .left-nav.brand-sidebar, nav.brand-sidebar { width: 100%; padding: 18px 16px; }
  .brand-sidebar--logo, .brand-sidebar--spacer { display: none; }
  .brand-content { padding: 28px 20px 40px; }
  .brand-content h1 { font-size: 32px !important; }
  .auth-split, .auth-split.register { flex-direction: column; }
  .auth-hero, .auth-split.register .auth-hero { padding: 36px 24px 28px; }
  .auth-hero h1 { font-size: 36px !important; }
  .auth-panel, .auth-split.register .auth-panel { border-left: 0; border-top: 1px solid var(--brand-line); padding: 32px 24px 44px; }
  .auth-grid.cols-2, .auth-grid.cols-title { grid-template-columns: 1fr; }
  .brand-header--nav { gap: 16px; flex-wrap: wrap; }
  .main-footer { padding: 14px 20px !important; }
}
