@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');

:root {
  --navy: #0b2239;
  --navy-2: #173f5f;
  --teal: #2fb9ab;
  --teal-dark: #188f85;
  --teal-light: #eaf7f6;
  --canvas: #eef2f6;
  --white: #ffffff;
  --text: #273244;
  --muted: #6b7280;
  --line: #d9e1e8;
  --warning: #8a5a08;
  --warning-bg: #fff8dd;
  --danger: #b42318;
  --danger-bg: #fef3f2;
  --shadow: 0 18px 50px rgba(11, 34, 57, 0.08);
  --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--canvas); color: var(--text); font-family: "DM Sans", sans-serif; line-height: 1.55; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
[hidden] { display: none !important; }

.skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 10px 14px; color: white; background: var(--navy); border-radius: 8px; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid rgba(47, 185, 171, .55); outline-offset: 3px; }

.state-shell { min-height: 100vh; display: grid; place-content: center; justify-items: center; gap: 12px; padding: 32px; text-align: center; background: radial-gradient(circle at 50% 20%, #fff 0, var(--canvas) 58%); }
.state-shell h1 { max-width: 660px; margin: 0; color: var(--navy); font: 800 clamp(2rem, 5vw, 3.4rem)/1.08 "Manrope", sans-serif; letter-spacing: -.045em; }
.state-shell p:not(.eyebrow) { max-width: 620px; margin: 0 0 12px; color: var(--muted); font-size: 1.05rem; }
.access-link-form { width: min(360px, 100%); display: grid; gap: 12px; margin-top: 8px; text-align: left; }
.access-link-form label { display: grid; gap: 6px; color: var(--navy); font-weight: 700; font-size: .9rem; }
.access-link-form .field-help { color: var(--muted); font-weight: 400; font-size: .82rem; }
.access-link-form input { width: 100%; color: var(--text); background: #fbfcfd; border: 1px solid #cfd8e1; border-radius: 10px; padding: 11px 12px; font: inherit; }
.access-link-form input:focus { outline: 0; border-color: var(--teal-dark); box-shadow: 0 0 0 3px rgba(47,185,171,.16); }
.access-link-form button[disabled] { opacity: .6; cursor: wait; }
.access-link-fallback { color: var(--muted); font-size: .88rem; margin-top: 4px; }
.loading-mark, .state-icon { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 18px; color: white; background: var(--navy); font: 800 1.7rem "Manrope", sans-serif; box-shadow: 0 12px 30px rgba(11, 34, 57, .2); }
.loading-mark span { animation: breathe 1.4s ease-in-out infinite; }
.state-icon { background: var(--danger); }
.skeleton-stack { width: min(520px, 80vw); display: grid; gap: 10px; margin-top: 20px; }
.skeleton-stack span { height: 12px; border-radius: 999px; background: linear-gradient(90deg, #dfe6ec 20%, #f8fafb 50%, #dfe6ec 80%); background-size: 200% 100%; animation: shimmer 1.4s linear infinite; }
.skeleton-stack span:nth-child(2) { width: 78%; justify-self: center; }.skeleton-stack span:nth-child(3) { width: 55%; justify-self: center; }

.portal-header { position: sticky; z-index: 30; top: 0; color: white; background: rgba(11, 34, 57, .97); border-bottom: 1px solid rgba(255,255,255,.08); backdrop-filter: blur(14px); }
.header-inner { width: min(1240px, calc(100% - 40px)); min-height: 76px; margin: auto; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center; gap: 16px; }
.header-inner > .brand-lockup { justify-self: start; }
.header-inner > .header-profile-link { justify-self: center; }
.brand-lockup { display: flex; align-items: center; gap: 11px; min-width: 0; }
.brand-mark { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; color: var(--navy); background: var(--teal); font: 800 1rem "Manrope", sans-serif; }
.brand-name { font: 700 1rem "Manrope", sans-serif; letter-spacing: -.03em; }.brand-name span { color: var(--teal); }
.header-title { display: grid; justify-items: center; justify-self: center; font-weight: 700; }.header-title small { color: #b8c7d4; font-weight: 400; }
.header-inner > .button { justify-self: end; }

.page-shell { width: min(1240px, calc(100% - 40px)); margin: 0 auto; padding: 34px 0 70px; }
.credit-card { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; padding: clamp(28px, 5vw, 52px); color: white; background: var(--navy); border-radius: 30px; box-shadow: 0 24px 70px rgba(11, 34, 57, .18); }
.credit-card::after { content: ""; position: absolute; width: 360px; height: 360px; right: -120px; top: -180px; border: 70px solid rgba(47,185,171,.14); border-radius: 50%; pointer-events: none; }
.eyebrow, .section-kicker { margin: 0 0 8px; color: var(--teal-dark); font: 800 .75rem "Manrope", sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow-light { color: #83ddd4; }
.credit-number { margin: 4px 0; font: 800 clamp(4.8rem, 10vw, 7.4rem)/.92 "Manrope", sans-serif; letter-spacing: -.08em; }
.credit-description { max-width: 580px; margin: 14px 0 4px; font-size: 1.05rem; }.credit-fine-print { max-width: 650px; margin: 0; color: #b8c7d4; font-size: .88rem; }
.credit-actions { position: relative; z-index: 1; display: grid; gap: 12px; min-width: 220px; }

.button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 17px; border: 1px solid transparent; border-radius: 12px; text-decoration: none; font-weight: 700; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-1px); }.button:active { transform: translateY(0); }
.button-primary { color: white; background: var(--navy); box-shadow: 0 8px 22px rgba(11,34,57,.16); }.button-primary:hover { background: var(--navy-2); }
.button-secondary { color: var(--navy); background: white; border-color: var(--line); }.button-secondary:hover { background: #f7f9fb; }
.button-teal { color: var(--navy); background: var(--teal); box-shadow: 0 9px 24px rgba(47,185,171,.22); }.button-teal:hover { background: #45c9bc; }
.button-outline-light, .button-quiet { color: white; background: transparent; border-color: rgba(255,255,255,.25); }.button-outline-light:hover, .button-quiet:hover { background: rgba(255,255,255,.08); }
.button-danger { color: white; background: var(--danger); }.button-danger-quiet { color: var(--danger); background: var(--danger-bg); border-color: #fecdca; }
.button-small { min-height: 38px; padding: 7px 12px; font-size: .86rem; }
.button[disabled] { opacity: .6; cursor: wait; transform: none; }

.notice { margin: 20px 0 0; padding: 16px 18px; border-radius: 14px; font-weight: 600; }.notice-warning { color: var(--warning); background: var(--warning-bg); border: 1px solid #f2d57b; }
.summary-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; margin: 20px 0 28px; }
.summary-card { min-height: 122px; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; background: white; border: 1px solid rgba(11,34,57,.06); border-radius: 18px; box-shadow: 0 8px 30px rgba(11,34,57,.05); }
.summary-card span { color: var(--muted); font-size: .86rem; font-weight: 600; }.summary-card strong { color: var(--navy); font: 800 2rem "Manrope", sans-serif; }

.panel, .packages-panel, .info-panel, .support-panel { background: white; border: 1px solid rgba(11,34,57,.07); border-radius: var(--radius); box-shadow: var(--shadow); }
.section-toggle { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 25px 28px; text-align: left; color: var(--text); background: none; border: 0; cursor: pointer; }
.section-toggle > span:first-child { display: grid; }.section-title { color: var(--navy); font: 800 clamp(1.25rem, 3vw, 1.7rem) "Manrope", sans-serif; letter-spacing: -.035em; }
.toggle-icon { width: 14px; height: 14px; border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: rotate(45deg); transition: transform .2s ease; }.section-toggle[aria-expanded="false"] .toggle-icon { transform: rotate(-45deg); }
.expandable-content { padding: 0 28px 30px; }.section-intro { max-width: 820px; margin: 0 0 28px; color: var(--muted); }
fieldset { margin: 0; padding: 28px 0; border: 0; border-top: 1px solid var(--line); }fieldset:first-of-type { border-top: 0; padding-top: 0; }
legend { width: 100%; margin-bottom: 18px; color: var(--navy); font: 800 1.05rem "Manrope", sans-serif; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.form-grid > label, .field-group { display: grid; align-content: start; gap: 7px; color: #354052; font-size: .84rem; font-weight: 700; }
.form-grid label span { color: var(--danger); }
.span-2 { grid-column: 1 / -1; }
input, select, textarea { width: 100%; color: var(--text); background: #fbfcfd; border: 1px solid #cfd8e1; border-radius: 10px; padding: 11px 12px; font-weight: 400; transition: border-color .18s, box-shadow .18s; }
textarea { resize: vertical; }input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--teal-dark); box-shadow: 0 0 0 3px rgba(47,185,171,.16); }input[aria-invalid="true"] { border-color: var(--danger); }
.choice-row { display: flex; flex-wrap: wrap; gap: 10px; }.choice { display: inline-flex !important; grid-template-columns: auto 1fr; align-items: center; gap: 8px !important; padding: 10px 13px; background: var(--teal-light); border-radius: 10px; font-size: .88rem !important; }.choice input { width: 17px; height: 17px; accent-color: var(--teal-dark); }
.privacy-note { margin: -6px 0 20px; padding: 13px 15px; color: #4b5563; background: #f8fafb; border-left: 3px solid var(--teal); font-size: .86rem; }
.form-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid var(--line); }.last-updated { color: var(--muted); font-size: .85rem; }
.form-message { margin: 0 0 20px; padding: 13px 15px; border-radius: 10px; font-weight: 600; }.form-message.success { color: #08776e; background: var(--teal-light); }.form-message.error { color: var(--danger); background: var(--danger-bg); }

.queue-section, .dashboard-workspace { margin-top: 42px; }.section-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 28px; margin-bottom: 20px; }.section-heading-row h2, .packages-panel h2, .info-panel h2, .support-panel h2 { margin: 0; color: var(--navy); font: 800 clamp(1.5rem, 4vw, 2rem) "Manrope", sans-serif; letter-spacing: -.04em; }.section-heading-row p:not(.section-kicker), .packages-panel p:not(.section-kicker), .support-panel p:not(.section-kicker) { margin: 6px 0 0; color: var(--muted); }
.sort-control { min-width: 220px; color: var(--muted); font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.sort-control select { margin-top: 6px; color: var(--text); text-transform: none; letter-spacing: normal; }
.filter-bar { display: flex; gap: 8px; overflow-x: auto; padding: 0 2px 14px; scrollbar-width: thin; }.filter-button { flex: none; min-height: 38px; padding: 8px 13px; color: var(--navy-2); background: white; border: 1px solid var(--line); border-radius: 999px; font-weight: 700; cursor: pointer; }.filter-button[aria-pressed="true"] { color: white; background: var(--navy); border-color: var(--navy); }
.application-list { display: grid; gap: 18px; }.application-card { overflow: hidden; background: white; border: 1px solid rgba(11,34,57,.08); border-radius: var(--radius); box-shadow: 0 10px 35px rgba(11,34,57,.07); }
.application-top { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 25px 26px 20px; }.company-name { margin: 0 0 3px; color: var(--teal-dark); font-size: .85rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }.job-title { margin: 0; color: var(--navy); font: 800 clamp(1.2rem, 3vw, 1.55rem) "Manrope", sans-serif; letter-spacing: -.035em; }.job-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; margin: 12px 0 0; color: var(--muted); font-size: .86rem; }.job-meta a { color: var(--navy-2); font-weight: 700; }.card-status-column { display: grid; align-content: start; justify-items: end; gap: 8px; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 6px 10px; border-radius: 999px; color: #34536c; background: #edf4f8; font-size: .75rem; font-weight: 800; line-height: 1.2; }.status-pill::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: #6289a6; }.status-pill.active { color: #08776e; background: var(--teal-light); }.status-pill.active::before { background: var(--teal-dark); }.status-pill.warning { color: var(--warning); background: var(--warning-bg); }.status-pill.warning::before { background: #c38210; }.status-pill.danger { color: var(--danger); background: var(--danger-bg); }.status-pill.danger::before { background: var(--danger); }.status-pill.complete { color: white; background: var(--navy-2); }.status-pill.complete::before { background: var(--teal); }
.action-alert { margin: 0 26px 20px; padding: 13px 15px; color: var(--warning); background: var(--warning-bg); border-radius: 11px; font-weight: 600; }
.progress-track { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 26px 22px; padding: 18px; background: #f7f9fb; border-radius: 15px; }.progress-stage { position: relative; display: grid; gap: 7px; padding: 0 18px; border-left: 1px solid var(--line); }.progress-stage:first-child { padding-left: 0; border-left: 0; }.progress-stage:last-child { padding-right: 0; }.stage-label { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.stage-value { color: var(--navy); font-size: .86rem; font-weight: 700; }
.card-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }.resume-block, .notes-block { padding: 22px 26px; }.resume-block { border-right: 1px solid var(--line); }.block-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }.block-heading h4, .notes-block h4 { margin: 0; color: var(--navy); font: 800 1rem "Manrope", sans-serif; }.detail-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 0; }.detail-list div { min-width: 0; }.detail-list dt { color: var(--muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; }.detail-list dd { overflow-wrap: anywhere; margin: 2px 0 0; font-size: .87rem; font-weight: 600; }.resume-actions, .card-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 17px; }.resume-review { margin-top: 16px; padding: 14px; background: var(--teal-light); border-radius: 12px; }.resume-review p { margin: 0 0 10px; color: #176c66; font-size: .86rem; font-weight: 600; }.change-request { display: grid; gap: 8px; margin-top: 10px; }
.notes-block textarea { margin-top: 10px; }.notes-actions { display: flex; justify-content: flex-end; margin-top: 9px; }
.details-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 15px 26px; color: var(--navy); background: #fbfcfd; border: 0; border-top: 1px solid var(--line); font-weight: 800; cursor: pointer; }.details-toggle::after { content: "+"; font-size: 1.3rem; }.details-toggle[aria-expanded="true"]::after { content: "−"; }.application-details { padding: 20px 26px; border-top: 1px solid var(--line); }.application-details .detail-list { grid-template-columns: repeat(4, 1fr); }.card-actions { padding: 18px 26px 24px; margin: 0; border-top: 1px solid var(--line); }
.empty-state { display: grid; justify-items: center; gap: 8px; padding: 60px 25px; text-align: center; background: white; border: 1px dashed #bdc9d4; border-radius: var(--radius); }.empty-state-mark { width: 48px; height: 48px; display: grid; place-items: center; color: white; background: var(--teal-dark); border-radius: 15px; font-size: 1.5rem; }.empty-state h3 { margin: 8px 0 0; color: var(--navy); font: 800 1.35rem "Manrope", sans-serif; }.empty-state p { max-width: 540px; margin: 0 0 10px; color: var(--muted); }

.packages-panel { margin-top: 42px; padding: 28px; }.package-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 22px; }.package-card { position: relative; min-height: 155px; display: flex; flex-direction: column; justify-content: end; padding: 20px; color: var(--navy); background: #f7f9fb; border: 1px solid var(--line); border-radius: 16px; text-decoration: none; transition: transform .18s, border-color .18s, box-shadow .18s; }.package-card:hover { transform: translateY(-3px); border-color: var(--teal); box-shadow: 0 12px 30px rgba(11,34,57,.08); }.package-card span:not(.recommendation-label) { color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }.package-card strong { margin-top: 4px; font: 800 1.12rem "Manrope", sans-serif; }.package-card small { margin-top: 7px; color: var(--muted); }.package-card.recommended { color: white; background: var(--navy); border-color: var(--navy); }.package-card.recommended small { color: #b8c7d4; }.recommendation-label { position: absolute; top: 15px; left: 15px; padding: 5px 8px; color: var(--navy); background: var(--teal); border-radius: 7px; font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.rules-support-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 18px; margin-top: 18px; }.info-panel, .support-panel { padding: 28px; }.info-panel ul { padding-left: 20px; color: #4b5563; }.info-panel li + li { margin-top: 7px; }.support-panel { color: white; background: var(--navy); }.support-panel h2 { color: white; }.support-panel p:not(.section-kicker) { color: #b8c7d4; }.support-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }.support-panel .button-secondary { color: white; background: transparent; border-color: rgba(255,255,255,.24); }
dialog { width: min(480px, calc(100% - 32px)); padding: 0; border: 0; border-radius: 20px; box-shadow: 0 30px 90px rgba(11,34,57,.35); }dialog::backdrop { background: rgba(11,34,57,.7); backdrop-filter: blur(3px); }dialog form { display: grid; justify-items: center; padding: 30px; text-align: center; }.dialog-icon { width: 48px; height: 48px; display: grid; place-items: center; color: var(--danger); background: var(--danger-bg); border-radius: 15px; font-weight: 800; }dialog h2 { margin: 16px 0 7px; color: var(--navy); font: 800 1.35rem "Manrope", sans-serif; }dialog p { margin: 0; color: var(--muted); }.dialog-actions { display: flex; gap: 10px; margin-top: 24px; }

@keyframes shimmer { to { background-position: -200% 0; } }@keyframes breathe { 50% { opacity: .45; transform: scale(.9); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
@media (max-width: 850px) { .header-inner { display: flex; flex-wrap: wrap; row-gap: 8px; align-items: center; gap: 10px; }.header-title { display: none; }.header-inner > #edit-profile-button { margin-left: auto; }.credit-card { grid-template-columns: 1fr; }.summary-grid { grid-template-columns: repeat(2, 1fr); }.card-grid, .rules-support-grid { grid-template-columns: 1fr; }.resume-block { border-right: 0; border-bottom: 1px solid var(--line); }.application-details .detail-list { grid-template-columns: repeat(2, 1fr); }.package-grid { grid-template-columns: 1fr; }.package-card { min-height: 130px; } }
@media (max-width: 620px) { .header-inner, .page-shell { width: min(100% - 24px, 1240px); }.header-inner { min-height: 68px; }.brand-name { display: none; }.header-inner > .button { min-height: 38px; padding: 7px 10px; font-size: .78rem; }.page-shell { padding-top: 18px; }.credit-card { padding: 25px 22px; border-radius: 22px; }.credit-number { font-size: 4.7rem; }.credit-actions { width: 100%; }.summary-grid { grid-template-columns: 1fr; gap: 10px; }.summary-card { min-height: 94px; }.section-toggle, .expandable-content, .packages-panel, .info-panel, .support-panel { padding-left: 20px; padding-right: 20px; }.form-grid { grid-template-columns: 1fr; }.span-2 { grid-column: auto; }.form-footer, .section-heading-row { align-items: stretch; flex-direction: column; }.form-footer .button, .card-actions .button, .support-actions .button, .resume-actions .button { width: 100%; }.section-heading-row { display: flex; }.sort-control { min-width: 0; }.application-top { grid-template-columns: 1fr; padding: 20px; }.card-status-column { justify-items: start; }.progress-track { grid-template-columns: 1fr; gap: 15px; margin: 0 20px 18px; }.progress-stage { padding: 0 0 15px; border-left: 0; border-bottom: 1px solid var(--line); }.progress-stage:last-child { padding-bottom: 0; border-bottom: 0; }.resume-block, .notes-block, .application-details, .card-actions { padding-left: 20px; padding-right: 20px; }.application-details .detail-list, .detail-list { grid-template-columns: 1fr; }.details-toggle { padding-left: 20px; padding-right: 20px; }.dialog-actions { width: 100%; flex-direction: column; }.dialog-actions .button { width: 100%; } }

/* Job alerts and queue workspace */
.dashboard-workspace { display: grid; gap: 22px; }
.workspace-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.workspace-heading h2 { margin: 0; color: var(--navy); font: 800 clamp(1.6rem, 4vw, 2.2rem) "Manrope", sans-serif; letter-spacing: -.04em; }
.workspace-heading p:not(.section-kicker) { max-width: 720px; margin: 6px 0 0; color: var(--muted); }
.dashboard-tabs { display: inline-flex; flex: none; gap: 6px; padding: 6px; background: #dfe7ed; border-radius: 15px; }
.dashboard-tab { min-height: 43px; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; color: var(--navy-2); background: transparent; border: 0; border-radius: 11px; font-weight: 800; cursor: pointer; }
.dashboard-tab[aria-pressed="true"] { color: white; background: var(--navy); box-shadow: 0 7px 18px rgba(11,34,57,.16); }
.tab-count { min-width: 24px; padding: 2px 7px; color: inherit; background: rgba(255,255,255,.18); border-radius: 999px; font-size: .74rem; text-align: center; }
.dashboard-tab[aria-pressed="false"] .tab-count { background: rgba(11,34,57,.08); }
.dashboard-panel { min-width: 0; }
.compact-heading h3 { margin: 0; color: var(--navy); font: 800 clamp(1.35rem, 3vw, 1.75rem) "Manrope", sans-serif; letter-spacing: -.035em; }
.job-alert-list { display: grid; gap: 18px; }
.job-alert-card { overflow: hidden; background: white; border: 1px solid rgba(11,34,57,.08); border-radius: var(--radius); box-shadow: 0 10px 35px rgba(11,34,57,.07); }
.job-alert-top { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 18px; padding: 24px 26px 20px; }
.match-score { width: 68px; height: 68px; display: grid; place-content: center; justify-items: center; color: white; background: var(--navy); border-radius: 19px; box-shadow: 0 9px 24px rgba(11,34,57,.16); }
.match-score strong { font: 800 1.55rem/1 "Manrope", sans-serif; }
.match-score span { margin-top: 4px; color: #b8c7d4; font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.job-alert-heading { min-width: 0; }
.job-alert-body { display: grid; grid-template-columns: 1.25fr .75fr; gap: 0; border-top: 1px solid var(--line); }
.fit-panel, .caveat-panel { padding: 20px 26px; }
.caveat-panel { background: #fffaf0; border-left: 1px solid #f0e4c3; }
.detail-label { color: var(--teal-dark); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.fit-panel p, .caveat-panel p { margin: 7px 0 0; color: #465466; font-size: .92rem; }
.job-alert-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 26px 20px; border-top: 1px solid var(--line); }
.alert-date { color: var(--muted); font-size: .8rem; font-weight: 600; }
.job-alert-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }

@media (max-width: 1050px) {
  .summary-grid { grid-template-columns: repeat(3, 1fr); }
  .workspace-heading { align-items: stretch; flex-direction: column; }
  .dashboard-tabs { align-self: flex-start; }
}
@media (max-width: 850px) {
  .summary-grid { grid-template-columns: repeat(2, 1fr); }
  .job-alert-body { grid-template-columns: 1fr; }
  .caveat-panel { border-left: 0; border-top: 1px solid #f0e4c3; }
}
@media (max-width: 620px) {
  .summary-grid { grid-template-columns: 1fr; }
  .dashboard-tabs { width: 100%; }
  .dashboard-tab { flex: 1; justify-content: center; padding-left: 9px; padding-right: 9px; font-size: .82rem; }
  .job-alert-top { grid-template-columns: auto 1fr; padding: 20px; }
  .job-alert-top .card-status-column { grid-column: 1 / -1; display: flex; flex-wrap: wrap; }
  .match-score { width: 58px; height: 58px; border-radius: 16px; }
  .match-score strong { font-size: 1.3rem; }
  .fit-panel, .caveat-panel, .job-alert-footer { padding-left: 20px; padding-right: 20px; }
  .job-alert-footer { align-items: stretch; flex-direction: column; }
  .job-alert-actions { justify-content: stretch; }
  .job-alert-actions .button { width: 100%; }
}



/* Dual job-alert layouts: Scan View and Focus View */
.alert-control-stack { display: flex; align-items: end; justify-content: flex-end; gap: 14px; }
.view-control { display: grid; gap: 6px; }
.view-control > span, .sort-control { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.segmented-view-toggle { display: inline-flex; padding: 4px; background: #dfe7ed; border-radius: 13px; }
.segmented-view-toggle button { min-height: 38px; padding: 7px 13px; color: var(--navy-2); background: transparent; border: 0; border-radius: 10px; font-weight: 800; cursor: pointer; }
.segmented-view-toggle button[aria-pressed="true"] { color: white; background: var(--navy); box-shadow: 0 6px 15px rgba(11,34,57,.16); }
.button-apply { color: white; background: #07966f; border-color: #07966f; box-shadow: 0 8px 22px rgba(7,150,111,.24); }
.button-apply:hover { background: #087e61; border-color: #087e61; }
.button-ignore { color: #667085; background: transparent; border-color: transparent; box-shadow: none; }
.button-ignore:hover { color: var(--danger); background: var(--danger-bg); }

/* Scan View */
.job-alert-list.scan-view { gap: 10px; }
.scan-job-row { position: relative; display: grid; grid-template-columns: 58px minmax(0, 1fr) minmax(190px, auto); align-items: center; gap: 16px; padding: 16px 18px; background: white; border: 1px solid rgba(11,34,57,.08); border-radius: 17px; box-shadow: 0 7px 22px rgba(11,34,57,.045); transition: border-color .18s, box-shadow .18s, transform .18s; }
.scan-job-row:hover, .scan-job-row:focus-within { border-color: rgba(24,143,133,.38); box-shadow: 0 12px 30px rgba(11,34,57,.08); transform: translateY(-1px); }
.scan-score { width: 54px; height: 54px; display: grid; place-content: center; justify-items: center; color: white; background: var(--navy); border-radius: 15px; }
.scan-score strong { font: 800 1.25rem/1 "Manrope", sans-serif; }
.scan-score span { margin-top: 3px; color: #b8c7d4; font-size: .56rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.scan-score-column { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.scan-added-date { color: var(--muted); font-size: .66rem; font-weight: 700; white-space: nowrap; }
.scan-job-main { min-width: 0; }
.scan-title-row { display: flex; align-items: start; justify-content: space-between; gap: 16px; }
.scan-title-row .company-name { margin-bottom: 1px; font-size: .7rem; }
.scan-title-row .job-title { font-size: 1.04rem; }
.scan-statuses { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; padding-right: 26px; }
.scan-job-row .status-pill { padding: 4px 8px; font-size: .63rem; }
.scan-job-row .job-meta { margin-top: 3px; gap: 12px; font-size: .76rem; }
.scan-fit-summary { margin: 7px 0 0; color: #536174; font-size: .8rem; line-height: 1.4; }
.scan-snapshot { display: flex; flex-wrap: wrap; gap: 7px 15px; margin-top: 8px; color: #647184; font-size: .72rem; }
.scan-snapshot b { color: var(--navy); }
.scan-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-self: start; gap: 7px; width: min(330px, 28vw); margin-top: 26px; }
.scan-actions .button { min-width: 0; min-height: 34px; padding: 6px 10px; font-size: .76rem; white-space: nowrap; }

/* Focus View */
.job-alert-list.focus-view { gap: 20px; }
.focus-job-card { position: relative; overflow: hidden; background: white; border: 1px solid rgba(11,34,57,.08); border-radius: var(--radius); box-shadow: 0 12px 38px rgba(11,34,57,.07); }

.job-card-dismiss { position: absolute; top: 10px; right: 10px; z-index: 2; width: 26px; height: 26px; display: grid; place-items: center; padding: 0; color: var(--muted); font-size: 1.05rem; line-height: 1; background: rgba(255,255,255,.9); border: 1px solid var(--line); border-radius: 50%; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.job-card-dismiss:hover, .job-card-dismiss:focus-visible { color: var(--danger); background: var(--danger-bg); border-color: #fecdca; }
.focus-job-top .card-status-column { padding-right: 34px; }
.focus-job-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 18px; padding: 22px 24px 18px; }
.focus-score-column { display: flex; flex-direction: column; align-items: center; gap: 7px; }
.focus-added-date { color: var(--muted); font-size: .72rem; font-weight: 600; white-space: nowrap; }
.decision-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.decision-panel { min-width: 0; padding: 20px 24px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.decision-panel:nth-child(even) { border-right: 0; }
.decision-panel p { margin: 8px 0 0; color: #465466; font-size: .88rem; }
.fit-panel { background: #f7fbfb; }
.role-detail-list { display: grid; gap: 7px; margin: 10px 0 0; padding-left: 18px; color: #465466; font-size: .84rem; }
.detail-placeholder { color: var(--muted) !important; font-style: italic; }
.decision-caveat { padding: 16px 24px; background: #fffaf0; border-bottom: 1px solid #f0e4c3; }
.decision-caveat p { margin: 6px 0 0; color: #68502b; font-size: .85rem; }
.focus-job-footer { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding: 15px 24px 19px; }
.focus-job-footer .job-alert-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }

/* Scan detail drawer */
body.job-drawer-open { overflow: hidden; }
.job-drawer-backdrop { position: fixed; z-index: 80; inset: 0; opacity: 0; background: rgba(11,34,57,.52); backdrop-filter: blur(2px); transition: opacity .18s ease; }
.job-drawer-backdrop.is-open { opacity: 1; }
.job-detail-drawer { position: fixed; z-index: 90; top: 0; right: 0; width: min(680px, 92vw); height: 100dvh; overflow-y: auto; color: var(--text); background: white; box-shadow: -24px 0 70px rgba(11,34,57,.24); transform: translateX(102%); transition: transform .2s ease; }
.job-detail-drawer.is-open { transform: translateX(0); }
.drawer-toolbar { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; color: white; background: var(--navy); }
.drawer-toolbar span { font-weight: 800; }
.drawer-close { width: 38px; height: 38px; display: grid; place-items: center; color: white; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 11px; font-size: 1.5rem; cursor: pointer; }
.job-drawer-content { padding-bottom: 26px; }
.drawer-job-header { display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: start; padding: 24px 24px 14px; }
.drawer-job-header h2 { margin: 2px 0 5px; color: var(--navy); font: 800 1.45rem/1.2 "Manrope", sans-serif; letter-spacing: -.035em; }
.drawer-statuses { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 24px 18px; }
.job-detail-drawer .decision-grid { grid-template-columns: 1fr; }
.job-detail-drawer .decision-panel { border-right: 0; }
.drawer-actions { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; gap: 8px; padding: 16px 20px; background: rgba(255,255,255,.97); border-top: 1px solid var(--line); box-shadow: 0 -10px 24px rgba(11,34,57,.06); backdrop-filter: blur(10px); }
.drawer-actions .button-apply { flex: 1 1 170px; }

@media (max-width: 1050px) {
  .alert-control-stack { align-items: stretch; flex-direction: column; }
  .scan-job-row { grid-template-columns: 58px minmax(0,1fr); }
  .scan-actions { grid-column: 2; display: flex; flex-wrap: wrap; width: auto; }
  .scan-actions .button-apply { grid-column: auto; }
}
@media (max-width: 760px) {
  .section-heading-row.compact-heading { align-items: stretch; }
  .alert-control-stack { width: 100%; }
  .view-control, .sort-control { width: 100%; }
  .segmented-view-toggle { width: 100%; }
  .segmented-view-toggle button { flex: 1; }
  .scan-job-row { grid-template-columns: 50px minmax(0,1fr); padding: 14px; }
  .scan-score { width: 48px; height: 48px; }
  .scan-title-row { flex-direction: column; gap: 7px; }
  .scan-statuses { justify-content: flex-start; }
  .scan-fit-summary { -webkit-line-clamp: 2; }
  .scan-actions { grid-column: 1 / -1; }
  .focus-job-top { grid-template-columns: auto 1fr; padding: 18px; }
  .focus-job-top .card-status-column { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-items: start; }
  .decision-grid { grid-template-columns: 1fr; }
  .decision-panel { border-right: 0; }
  .focus-job-footer { align-items: stretch; flex-direction: column; padding: 15px 18px 18px; }
  .focus-job-footer .job-alert-actions { justify-content: stretch; }
  .focus-job-footer .button { flex: 1 1 145px; }
}
@media (max-width: 520px) {
  .scan-actions .button { flex: 1 1 135px; }
  .job-detail-drawer { width: 100vw; }
  .drawer-job-header, .drawer-statuses { padding-left: 18px; padding-right: 18px; }
  .drawer-actions .button { flex: 1 1 145px; }
}


/* Score and culture layout refinement */
.score-pair { display: flex; align-items: stretch; gap: 8px; }
.score-pair .requirements-score { width: 86px; color: var(--navy); background: #eaf7f5; border: 1px solid #cde8e4; box-shadow: none; }
.score-pair .requirements-score span { color: var(--teal-dark); font-size: .55rem; letter-spacing: .055em; }
.score-pair.compact { gap: 6px; }
.score-pair.compact .requirements-score { width: 72px; }
.score-pair.compact .requirements-score span { font-size: .49rem; }
.scan-job-row { grid-template-columns: auto minmax(0, 1fr) minmax(190px, auto); }
.decision-grid { grid-template-columns: 1.08fr .92fr; }
.overview-panel, .fit-panel { padding-top: 16px; padding-bottom: 16px; }
.role-detail-panel { min-height: 172px; padding-top: 23px; padding-bottom: 23px; }
.role-detail-list { font-size: .88rem; line-height: 1.5; }

@media (max-width: 1050px) {
  .scan-job-row { grid-template-columns: auto minmax(0,1fr); }
}
@media (max-width: 760px) {
  .score-pair .match-score { width: 58px; height: 58px; }
  .score-pair .requirements-score { width: 78px; }
  .score-pair.compact .scan-score { width: 48px; height: 48px; }
  .score-pair.compact .requirements-score { width: 68px; }
  .decision-grid { grid-template-columns: 1fr; }
}

/* Mobile Scan View: scores and statuses share the top row; company and title get full-width lines */
@media (max-width: 620px) {
  .job-alert-list.scan-view { gap: 12px; }

  .scan-job-row {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "scores statuses"
      "company company"
      "title title"
      "meta meta"
      "fit fit"
      "snapshot snapshot"
      "actions actions";
    align-items: start;
    column-gap: 14px;
    row-gap: 9px;
    padding: 16px;
    border-radius: 19px;
  }

  .scan-job-row > .score-pair {
    grid-area: scores;
    align-self: start;
  }

  .scan-job-row > .scan-job-main,
  .scan-title-row,
  .scan-title-row > div:first-child {
    display: contents;
  }

  .scan-title-row .company-name {
    grid-area: company;
    margin: 2px 0 0;
    font-size: .73rem;
    line-height: 1.25;
  }

  .scan-title-row .job-title {
    grid-area: title;
    margin: 0;
    max-width: none;
    font-size: 1.28rem;
    line-height: 1.18;
  }

  .scan-statuses {
    grid-area: statuses;
    display: grid;
    justify-content: end;
    justify-items: end;
    align-content: start;
    gap: 5px;
  }

  .scan-statuses .status-pill {
    max-width: 142px;
    padding: 5px 8px;
    font-size: .61rem;
    text-align: center;
  }

  .scan-job-row .job-meta {
    grid-area: meta;
    display: flex;
    flex-wrap: wrap;
    gap: 5px 12px;
    margin: 0;
    padding-top: 2px;
    font-size: .78rem;
    line-height: 1.35;
  }

  .scan-fit-summary {
    grid-area: fit;
    margin: 0;
    font-size: .82rem;
    line-height: 1.42;
    -webkit-line-clamp: 2;
  }

  .scan-snapshot {
    grid-area: snapshot;
    margin: 0;
    padding-top: 1px;
  }

  .scan-actions {
    grid-area: actions;
    grid-column: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: 100%;
    margin-top: 3px;
  }

  .scan-actions .button {
    width: 100%;
    min-height: 42px;
    padding: 8px 9px;
    font-size: .82rem;
    line-height: 1.15;
    white-space: normal;
  }

  .scan-actions .button-apply {
    grid-column: 1 / -1;
  }

  .scan-actions .button-ignore {
    min-height: 38px;
  }

  /* Larger tap target for the smallest "tap to remove" control on a job
     card -- desktop sizing (26px) is untouched, this only applies at
     phone widths where a mis-tap is more likely and more annoying. */
  .job-card-dismiss {
    width: 36px;
    height: 36px;
    font-size: 1.2rem;
  }
}

@media (max-width: 390px) {
  .scan-job-row {
    column-gap: 11px;
    padding: 14px;
  }

  .score-pair.compact {
    gap: 5px;
  }

  .score-pair.compact .scan-score {
    width: 44px;
    height: 48px;
  }

  .score-pair.compact .requirements-score {
    width: 62px;
  }

  .score-pair.compact .requirements-score span {
    font-size: .43rem;
    letter-spacing: .025em;
  }

  .scan-title-row .job-title {
    font-size: 1.18rem;
  }

  .scan-statuses .status-pill {
    max-width: 124px;
    font-size: .58rem;
  }
}

/* Direct résumé tailoring workspace */
.button-apply.is-queued,
.button-apply.is-queued:hover {
  color: #08776e;
  background: var(--teal-light);
  border-color: #b7e2dd;
  box-shadow: none;
}

.queue-match-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px 22px;
  padding: 22px 26px;
  background: linear-gradient(135deg, #f7fbfb 0%, #ffffff 70%);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.queue-match-score { align-self: start; }
.queue-match-summary { min-width: 0; }
.queue-match-summary p { margin: 7px 0 0; color: #465466; font-size: .92rem; }
.queue-match-columns {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.queue-match-columns > div {
  padding: 16px 18px;
  background: white;
  border: 1px solid #d9e7e5;
  border-radius: 14px;
}
.queue-match-columns h4 { margin: 0; color: var(--navy); font: 800 .94rem "Manrope", sans-serif; }
.queue-match-columns ul { display: grid; gap: 7px; margin: 10px 0 0; padding-left: 19px; color: #465466; font-size: .84rem; }
.queue-match-columns .gap-list { color: #68502b; }
.match-clear { margin: 9px 0 0; color: #08776e; font-size: .86rem; font-weight: 700; }

.resume-customizer-dialog {
  width: min(1080px, calc(100vw - 32px));
  max-width: none;
  height: min(92dvh, 940px);
  max-height: none;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 24px;
  box-shadow: 0 32px 100px rgba(11, 34, 57, .32);
}
.resume-customizer-dialog::backdrop { background: rgba(11, 34, 57, .64); backdrop-filter: blur(3px); }
.customizer-shell { height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: var(--canvas); }
.customizer-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 22px;
  color: white;
  background: var(--navy);
}
.customizer-toolbar .section-kicker { margin: 0; color: #83ddd4; }
.customizer-toolbar strong { display: block; margin-top: 2px; font: 800 1.15rem "Manrope", sans-serif; }
.customizer-content { overflow-y: auto; padding: 24px; }
.customizer-job-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 18px;
  padding: 22px 24px;
  background: white;
  border: 1px solid rgba(11,34,57,.08);
  border-radius: var(--radius);
  box-shadow: 0 10px 35px rgba(11,34,57,.06);
}
.customizer-job-heading h2 { margin: 2px 0 0; color: var(--navy); font: 800 clamp(1.35rem, 4vw, 2rem) "Manrope", sans-serif; letter-spacing: -.04em; }
.customizer-content .queue-match-card { margin-bottom: 18px; border: 1px solid #d9e7e5; border-radius: var(--radius); }
.customizer-section {
  margin-top: 16px;
  padding: 22px 24px;
  background: white;
  border: 1px solid rgba(11,34,57,.08);
  border-radius: var(--radius);
  box-shadow: 0 8px 28px rgba(11,34,57,.05);
}
.customizer-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 12px; }
.customizer-section-heading h3 { margin: 2px 0 0; color: var(--navy); font: 800 1.12rem "Manrope", sans-serif; }
.customizer-note { margin: 0 0 14px; color: var(--muted); font-size: .86rem; }
.verification-tag { display: inline-flex; align-items: center; width: fit-content; padding: 5px 8px; color: #72520e; background: var(--warning-bg); border: 1px solid #f0d58a; border-radius: 999px; font-size: .67rem; font-weight: 800; }
.current-bullet-list { display: grid; gap: 8px; margin: 0; padding-left: 20px; color: #465466; font-size: .88rem; }
.custom-bullet-list { display: grid; gap: 12px; }
.custom-bullet-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 9px 12px;
  align-items: start;
  padding: 14px;
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.custom-bullet-option > input { width: 19px; height: 19px; margin-top: 12px; accent-color: var(--teal-dark); }
.custom-bullet-option textarea { grid-column: 2; }
.custom-bullet-option .verification-tag { grid-column: 2; }
.gap-question-list { display: grid; gap: 14px; }
.gap-question { padding: 16px; background: #fbfcfd; border: 1px solid var(--line); border-radius: 14px; }
.gap-question legend { margin: 0; color: var(--navy); font-size: .94rem; }
.gap-question > p { margin: 5px 0 12px; color: var(--muted); font-size: .82rem; }
.gap-response-row { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px; }
.gap-response-row label { display: grid; gap: 6px; color: #354052; font-size: .78rem; font-weight: 800; }
.customizer-footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 15px 22px;
  background: rgba(255,255,255,.97);
  border-top: 1px solid var(--line);
  box-shadow: 0 -10px 28px rgba(11,34,57,.06);
}

@media (max-width: 760px) {
  .queue-match-card { grid-template-columns: 1fr; padding: 18px; }
  .queue-match-score { justify-self: start; }
  .queue-match-columns { grid-column: 1; grid-template-columns: 1fr; }
  .resume-customizer-dialog { width: 100vw; height: 100dvh; border-radius: 0; }
  .customizer-content { padding: 15px; }
  .customizer-job-heading { flex-direction: column; padding: 18px; }
  .customizer-section { padding: 18px; }
  .customizer-section-heading { align-items: flex-start; flex-direction: column; }
  .gap-response-row { grid-template-columns: 1fr; }
  .customizer-footer { flex-wrap: wrap; }
  .customizer-footer .button { flex: 1 1 145px; }
}

.dashboard-panel + .dashboard-panel { margin-top: 10px; padding-top: 34px; border-top: 1px solid rgba(11,34,57,.11); }
.dashboard-panel { scroll-margin-top: 96px; }

/* Direct job-to-résumé tailoring workflow */
.single-view-heading { align-items: flex-start; }
.single-view-heading > div { max-width: 860px; }
.customizer-toolbar small { display: block; margin-top: 4px; color: #b8c7d4; font-size: .78rem; }
.customizer-global-message { margin: 12px 18px 0; }
.customizer-auto-apply-panel { margin: 12px 18px 0; padding: 14px 16px; border-radius: 10px; background: var(--teal-light, #e4f5f3); color: #0b2e4f; }
.customizer-auto-apply-panel p { margin: 0 0 8px; font-size: .88rem; line-height: 1.45; }
.customizer-auto-apply-panel p:last-child { margin-bottom: 0; }
.customizer-auto-apply-status { font-weight: 600; }
/* Kept undraggable/inert (no href, pointer-events off) until the real
   bookmarklet finishes loading -- dragging the link before then used to
   bookmark an empty placeholder that silently just reopened this dashboard
   page instead of ever filling anything. */
#customizer-auto-apply-bookmarklet.is-loading { opacity: .55; cursor: not-allowed; pointer-events: none; }

.resume-customizer-dialog {
  width: min(96vw, 1680px);
  height: min(95dvh, 1080px);
  border-radius: 20px;
}
.customizer-shell { grid-template-rows: auto auto minmax(0, 1fr) auto; }
.customizer-content { overflow: auto; padding: 18px; }
.customizer-layout {
  min-width: 1180px;
  min-height: 100%;
  display: grid;
  grid-template-columns: minmax(270px, .78fr) minmax(540px, 1.55fr) minmax(320px, .92fr);
  gap: 16px;
  align-items: start;
}
.suggestion-rail,
.resume-workbench,
.requirement-rail {
  min-width: 0;
  background: white;
  border: 1px solid rgba(11,34,57,.08);
  border-radius: 18px;
  box-shadow: 0 10px 34px rgba(11,34,57,.065);
}
.suggestion-rail,
.requirement-rail {
  position: sticky;
  top: 0;
  max-height: calc(95dvh - 170px);
  overflow-y: auto;
  padding: 18px;
}
.rail-heading { padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.rail-heading h2,
.resume-workbench-toolbar h2 {
  margin: 3px 0 0;
  color: var(--navy);
  font: 800 1.08rem "Manrope", sans-serif;
  letter-spacing: -.025em;
}
.rail-heading p { margin: 7px 0 0; color: var(--muted); font-size: .8rem; }
.suggestion-group { padding: 17px 0; border-bottom: 1px solid var(--line); }
.suggestion-group:last-child { border-bottom: 0; padding-bottom: 0; }
.suggestion-group h3,
.match-group h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font: 800 .9rem "Manrope", sans-serif;
}
.suggestion-list { display: grid; gap: 10px; }
.suggestion-card {
  padding: 12px;
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 12px;
}
.suggestion-card.is-added { background: var(--teal-light); border-color: #b7e2dd; }
.suggestion-card p { margin: 0 0 10px; color: #465466; font-size: .79rem; line-height: 1.48; }
.suggestion-card .button { width: 100%; }
.gap-suggestion-group .gap-question { padding: 13px; }
.gap-suggestion-group .gap-response-row { grid-template-columns: 1fr; gap: 9px; }
.gap-suggestion-group .gap-question legend { font-size: .82rem; line-height: 1.4; }
.gap-suggestion-group .gap-question > p { font-size: .74rem; }

.resume-workbench { overflow: hidden; }
.resume-workbench-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  background: #f8fafb;
  border-bottom: 1px solid var(--line);
}
.resume-paper {
  width: min(100%, 820px);
  min-height: 980px;
  margin: 18px auto 30px;
  padding: clamp(24px, 4vw, 48px);
  color: #1f2937;
  background: white;
  border: 1px solid #d4dce4;
  box-shadow: 0 15px 45px rgba(11,34,57,.11);
}
.resume-paper-section + .resume-paper-section { margin-top: 25px; }
.resume-field-label,
.resume-section-heading h3 {
  display: block;
  margin: 0 0 8px;
  color: var(--navy);
  font: 800 .84rem "Manrope", sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.resume-summary-editor {
  /* CSS-native auto-sizing where supported -- removes any dependency on
     the JS auto-resize (and its timing edge cases) actually having run. */
  field-sizing: content;
  min-height: 24px;
  padding: 4px 2px;
  color: #273244;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  resize: none;
  overflow: hidden;
  font-size: .88rem;
  line-height: 1.55;
  transition: background-color .15s ease;
}
.resume-summary-editor:hover {
  background: rgba(11,34,57,.035);
}
.resume-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; border-bottom: 2px solid var(--navy); }
.resume-section-heading h3 { margin-bottom: 5px; }
.resume-section-heading span { color: var(--muted); font-size: .69rem; }
.resume-role { padding: 18px 0; border-bottom: 1px solid #e7ebef; }
.resume-role:last-child { border-bottom: 0; }
.resume-role-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.resume-role-heading h4 { margin: 0; color: var(--navy); font: 800 .96rem "Manrope", sans-serif; }
.resume-role-heading span { display: block; margin-top: 2px; color: var(--muted); font-size: .75rem; }
.resume-bullet-editor-list { display: grid; gap: 1px; }
.resume-bullet-editor {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: start;
}
/* Matches the textarea's own top padding (3px) so the bullet mark sits on
   the same line as the first word instead of the old, much taller boxed
   textarea's padding (11px), which is now a visible misalignment. */
.resume-bullet-editor > span { padding-top: 3px; color: var(--navy); font-weight: 900; }
.resume-bullet-editor textarea {
  field-sizing: content;
  min-height: 22px;
  padding: 3px 6px;
  color: #273244;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  resize: none;
  overflow: hidden;
  font-size: .82rem;
  line-height: 1.48;
  transition: background-color .15s ease;
}
.resume-bullet-editor textarea:hover {
  background: rgba(11,34,57,.035);
}
.bullet-remove {
  /* Sized to a single text line so it doesn't force the grid row (and the
     document flow) taller than the bullet actually needs -- a multi-line
     bullet still grows the row naturally via the textarea's own height. */
  width: 22px;
  height: 22px;
  margin-top: 1px;
  color: #667085;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
}
.bullet-remove:hover { color: var(--danger); background: var(--danger-bg); border-color: #fecdca; }
/* Live preview of a pending "remove this bullet" suggestion -- the bullet
   stays in place and editable (accepting/rejecting is still a deliberate
   click) but reads visually as "on its way out" until the candidate decides. */
.editorial-bullet-source.is-pending-removal .resume-bullet-editor textarea {
  color: #98a2b3;
  text-decoration: line-through;
  text-decoration-color: var(--danger);
}
.resume-empty-note { margin: 9px 0 0; padding: 12px; color: var(--muted); background: #f8fafb; border-radius: 9px; font-size: .8rem; }

.match-overview {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 15px 0 18px;
  padding: 13px;
  background: #f8fafb;
  border-radius: 12px;
}
.match-overview strong { color: var(--navy); font: 800 1.55rem "Manrope", sans-serif; }
.match-overview span { color: var(--muted); font-size: .75rem; font-weight: 700; }
.match-group + .match-group { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.requirement-card-list { display: grid; gap: 9px; }
.requirement-match { padding: 12px; border: 1px solid; border-radius: 12px; }
.requirement-match.strong { background: var(--editorial-green-bg); border-color: var(--editorial-green); }
.requirement-match.partial { background: var(--editorial-yellow-bg); border-color: var(--editorial-yellow); }
.requirement-match.weak { background: var(--editorial-red-bg); border-color: var(--editorial-red); }
.requirement-match.unclear { background: #f5f7f9; border-color: #d7dee5; }
.requirement-match-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.requirement-match-heading strong { color: var(--navy); font: 800 .9rem "Manrope", sans-serif; }
.match-label { font-size: .65rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.requirement-match.strong .match-label { color: var(--editorial-green); }
.requirement-match.partial .match-label { color: var(--editorial-yellow); }
.requirement-match.weak .match-label { color: var(--editorial-red); }
.requirement-match.unclear .match-label { color: #667085; }
.requirement-match p { margin: 7px 0 0; color: #3f4b5b; font-size: .79rem; line-height: 1.45; }
.requirement-match small { display: block; margin-top: 7px; color: #667085; font-size: .7rem; }

.customizer-footer {
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.customizer-footer-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.customizer-legend { display: flex; flex-wrap: wrap; gap: 7px; }
.legend-chip { padding: 5px 8px; border: 1px solid; border-radius: 999px; font-size: .65rem; font-weight: 800; }
.legend-chip.strong { color: #187240; background: #edf8f0; border-color: #abd5b5; }
.legend-chip.partial { color: #8a5a08; background: #fff8dd; border-color: #efd277; }
.legend-chip.weak { color: #a52a21; background: #fef3f2; border-color: #f5b7b1; }
.legend-chip.unclear { color: #667085; background: #f5f7f9; border-color: #d7dee5; }

@media (max-width: 1280px) {
  .resume-customizer-dialog { width: 98vw; }
  .customizer-layout { min-width: 1080px; grid-template-columns: 250px minmax(500px, 1fr) 300px; }
}

@media (max-width: 900px) {
  .resume-customizer-dialog { width: 100vw; height: 100dvh; border-radius: 0; }
  .customizer-content { padding: 12px; }
  .customizer-layout { min-width: 0; grid-template-columns: 1fr; }
  .suggestion-rail,
  .requirement-rail { position: static; max-height: none; }
  .resume-workbench { order: -1; }
  .resume-paper { min-height: 0; margin: 12px; padding: 22px; }
  .customizer-footer { align-items: stretch; flex-direction: column; }
  .customizer-footer-actions .button { flex: 1 1 145px; }
}

@media (max-width: 620px) {
  .resume-workbench-toolbar,
  .resume-role-heading,
  .resume-section-heading { align-items: stretch; flex-direction: column; }
  .resume-paper { margin: 0; padding: 18px; border-left: 0; border-right: 0; }
  .customizer-legend { display: none; }
  .customizer-footer-actions { width: 100%; }
  .customizer-footer-actions .button { width: 100%; }
}


/* ============================================================
   Tailor Résumé: centered viewport dialog with visible footer
   ============================================================ */

html:has(.resume-customizer-dialog[open]),
body:has(.resume-customizer-dialog[open]) {
  overflow: hidden;
}

.resume-customizer-dialog[open] {
  position: fixed !important;
  inset: 8px !important;
  width: min(calc(100vw - 16px), 1680px) !important;
  height: calc(100vh - 16px) !important;
  height: calc(100dvh - 16px) !important;
  max-width: none !important;
  max-height: none !important;
  margin: auto !important;
  padding: 0;
  transform: none !important;
  overflow: hidden !important;
  box-sizing: border-box;
}

.resume-customizer-dialog[open] > .customizer-shell {
  display: grid !important;
  grid-template-rows: auto auto minmax(0, 1fr) auto !important;
  width: 100%;
  height: 100% !important;
  min-width: 0;
  min-height: 0 !important;
  overflow: hidden;
}

.resume-customizer-dialog .customizer-toolbar,
.resume-customizer-dialog .customizer-global-message,
.resume-customizer-dialog .customizer-footer {
  min-width: 0;
}

.resume-customizer-dialog .customizer-content {
  min-width: 0;
  min-height: 0 !important;
  overflow: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

/* .customizer-scroll-region (below) is the one true scroll container for
   both the résumé content and the cover-letter panel below it -- this
   neutralizes #customizer-content's own overflow/overscroll-behavior so
   it doesn't act as a second, independent scroller. Two nested
   overflow:auto elements plus overscroll-behavior:contain on the inner
   one was confirmed live to trap real wheel/trackpad scroll inside the
   (usually non-overflowing) inner box, silently breaking scrolling even
   though programmatic scrollTop assignment still worked -- that's why an
   earlier attempt at this same wrapper passed manual verification but
   failed for the candidate in real use. */
.resume-customizer-dialog .customizer-scroll-region {
  min-height: 0;
  overflow-y: auto;
}
.resume-customizer-dialog .customizer-scroll-region .customizer-content {
  overflow: visible !important;
  overscroll-behavior: auto;
}

.resume-customizer-dialog .customizer-footer {
  position: relative;
  z-index: 30;
  min-height: 60px;
  flex: 0 0 auto;
  box-sizing: border-box;
  background: rgba(255, 255, 255, .99);
  box-shadow: 0 -12px 30px rgba(11, 34, 57, .14);
}

@media (max-height: 820px) and (min-width: 901px) {
  .resume-customizer-dialog[open] {
    inset: 4px !important;
    width: min(calc(100vw - 8px), 1680px) !important;
    height: calc(100vh - 8px) !important;
    height: calc(100dvh - 8px) !important;
  }

  .resume-customizer-dialog .customizer-toolbar {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .resume-customizer-dialog .customizer-footer {
    min-height: 50px;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  .resume-customizer-dialog .customizer-legend {
    display: none;
  }
}

@media (max-width: 900px) {
  .resume-customizer-dialog[open] {
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    margin: 0 !important;
    border-radius: 0;
  }
}


/* ============================================================
   Tailor Résumé header actions
   Critical actions remain visible in the navy toolbar.
   ============================================================ */

.resume-customizer-dialog[open] > .customizer-shell {
  grid-template-rows: auto auto minmax(0, 1fr) !important;
}

.customizer-toolbar-copy {
  min-width: 0;
}

.customizer-toolbar-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

.customizer-toolbar-actions .button {
  white-space: nowrap;
}

.customizer-toolbar-actions .button-outline-light {
  color: #fff;
  background: transparent;
  border-color: rgba(255, 255, 255, .3);
}

.customizer-toolbar-actions .button-outline-light:hover {
  background: rgba(255, 255, 255, .09);
}

.customizer-toolbar-actions .button-secondary {
  color: var(--navy);
  background: #fff;
  border-color: rgba(255, 255, 255, .7);
}

.customizer-toolbar-actions .button-teal {
  color: var(--navy);
  background: var(--teal);
  border-color: var(--teal);
}

/* Infrequent workspace actions (Save Draft, Use as Master Résumé, Revert,
   Cancel) sit behind a "More" disclosure so the header reads as one primary
   action (Generate Tailored Résumé) plus the AI trigger, not seven
   competing buttons. */
.customizer-actions-more {
  position: relative;
}

.customizer-actions-more > summary {
  list-style: none;
  cursor: pointer;
}

.customizer-actions-more > summary::-webkit-details-marker {
  display: none;
}

.customizer-actions-more-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 200px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(11, 34, 57, .18);
}

.customizer-actions-more-menu .button {
  width: 100%;
  justify-content: flex-start;
}

/* .button-secondary/.button-outline-light are styled elsewhere in this
   toolbar to sit on the toolbar's own dark background (near-white text,
   near-white borders) -- this dropdown's panel is white, so those
   assumptions make Save Draft wash out and Cancel/Revert to Original
   render as invisible white-on-white text. Overridden here with higher
   specificity for a light panel instead. */
.customizer-toolbar-actions .customizer-actions-more-menu .button-secondary {
  color: var(--navy);
  background: #fff;
  border-color: var(--line);
}

.customizer-toolbar-actions .customizer-actions-more-menu .button-secondary:hover {
  background: #f7f9fb;
}

.customizer-toolbar-actions .customizer-actions-more-menu .button-outline-light {
  color: var(--navy);
  background: transparent;
  border-color: var(--line);
}

.customizer-toolbar-actions .customizer-actions-more-menu .button-outline-light:hover {
  background: #f7f9fb;
}

/* This ID-specific rule (further down, for the header's own dark-toolbar
   context) also has enough specificity to beat the class-based override
   above -- restated here for the light dropdown panel. */
.customizer-toolbar-actions .customizer-actions-more-menu #customizer-revert-original {
  border-color: var(--line);
}

.customizer-footer {
  display: none !important;
}

@media (max-width: 1100px) {
  .customizer-toolbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .customizer-toolbar-copy {
    flex: 1 1 360px;
  }

  .customizer-toolbar-actions {
    flex: 1 1 560px;
  }
}

@media (max-width: 760px) {
  .customizer-toolbar {
    gap: 10px;
    padding: 12px 14px;
  }

  .customizer-toolbar-actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr auto;
  }

  .customizer-toolbar-actions #customizer-cancel {
    display: none;
  }

  .customizer-toolbar-actions .button {
    width: 100%;
  }
}


/* ============================================================
   Tailor Résumé header: Revert + Apply to Job
   ============================================================ */

.customizer-toolbar-actions .button-apply-job {
  color: #fff;
  background: #1769aa;
  border-color: #1769aa;
  box-shadow: 0 9px 24px rgba(23, 105, 170, .22);
}

.customizer-toolbar-actions .button-apply-job:hover {
  color: #fff;
  background: #1d7bc4;
  border-color: #1d7bc4;
}

.customizer-toolbar-actions #customizer-revert-original {
  border-color: rgba(255, 255, 255, .45);
}

@media (max-width: 1320px) {
  .customizer-toolbar {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .customizer-toolbar-copy {
    flex: 1 1 340px;
  }

  .customizer-toolbar-actions {
    flex: 1 1 720px;
    flex-wrap: wrap;
  }
}

@media (max-width: 760px) {
  .customizer-toolbar-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .customizer-toolbar-actions #customizer-close {
    position: absolute;
    top: 10px;
    right: 10px;
  }

  .customizer-toolbar-actions #customizer-cancel {
    display: none;
  }

  .customizer-toolbar-actions .button {
    width: 100%;
  }
}


/* ============================================================
   Generated résumé success actions
   ============================================================ */

.customizer-toolbar-actions .button-review-resume {
  color: var(--navy);
  background: #fff;
  border-color: rgba(255, 255, 255, .85);
  box-shadow: 0 9px 24px rgba(0, 0, 0, .12);
}

.customizer-toolbar-actions .button-review-resume:hover {
  color: var(--navy);
  background: #f3f8fc;
  border-color: #f3f8fc;
}

.customizer-global-message.success {
  margin: 0;
  border-radius: 0;
}


/* ============================================================
   Tailored résumé generation-complete overlay
   ============================================================ */

.resume-generation-overlay {
  position: absolute;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(8, 28, 48, .72);
  backdrop-filter: blur(5px);
}

.resume-generation-overlay[hidden] {
  display: none;
}

.resume-generation-card {
  width: min(680px, 100%);
  max-height: calc(100dvh - 64px);
  overflow: auto;
  padding: 34px;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .32);
  text-align: center;
}

.resume-generation-icon {
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin: 0 auto 16px;
  border-radius: 50%;
  color: var(--navy);
  background: var(--teal);
  font-size: 1.8rem;
  font-weight: 900;
}

.resume-generation-card h2 {
  margin: 7px 0 10px;
  color: var(--navy);
  font-size: clamp(1.45rem, 2.6vw, 2rem);
  line-height: 1.16;
}

.resume-generation-card p {
  max-width: 560px;
  margin: 0 auto;
  color: var(--muted);
  line-height: 1.55;
}

.resume-generation-downloads,
.resume-generation-next {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 11px;
}

.resume-generation-downloads {
  margin-top: 25px;
}

.resume-generation-next {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.resume-generation-downloads .button,
.resume-generation-next .button {
  min-width: 160px;
}

@media (max-width: 620px) {
  .resume-generation-overlay {
    padding: 12px;
  }

  .resume-generation-card {
    padding: 26px 18px;
    border-radius: 18px;
  }

  .resume-generation-downloads,
  .resume-generation-next {
    display: grid;
    grid-template-columns: 1fr;
  }

  .resume-generation-downloads .button,
  .resume-generation-next .button {
    width: 100%;
  }
}


/* ============================================================
   Job-card Apply to Job + persistent Tailor Résumé access
   ============================================================ */

.button-job-apply {
  color: #fff;
  background: #1769aa;
  border-color: #1769aa;
  box-shadow: 0 9px 24px rgba(23, 105, 170, .22);
}

.button-job-apply:hover {
  color: #fff;
  background: #1d7bc4;
  border-color: #1d7bc4;
}

.scan-actions .button-job-apply {
  grid-column: 1 / -1;
}

@media (min-width: 901px) {
  .scan-actions .button-job-apply {
    grid-column: auto;
  }
}


/* ============================================================
   Expanded Job Intelligence v14
   ============================================================ */

.panel-heading-row,
.expanded-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.detail-count {
  display: inline-grid;
  place-items: center;
  min-width: 28px;
  min-height: 24px;
  padding: 3px 8px;
  color: var(--navy);
  background: #edf4f8;
  border: 1px solid #d8e6ee;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
}

.panel-more-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
}

.expanded-decision-grid {
  border-bottom: 1px solid var(--line);
}

.expanded-intelligence-section {
  padding: 24px 26px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.expanded-section-heading {
  align-items: flex-end;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.expanded-section-heading h3 {
  margin: 0;
  color: var(--navy);
  font-size: 1rem;
}

.job-scope-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.job-scope-fact {
  display: grid;
  gap: 5px;
  padding: 13px 14px;
  background: #f7fafc;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.job-scope-fact span {
  color: var(--muted);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.job-scope-fact strong {
  color: var(--navy);
  font-size: .86rem;
  line-height: 1.35;
}

.intelligence-tag-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.intelligence-tag-group {
  padding: 14px;
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.intelligence-tag-group h4 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: .78rem;
}

.intelligence-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.intelligence-tags span,
.requirement-metadata span,
.tailor-keywords b {
  display: inline-flex;
  align-items: center;
  padding: 5px 8px;
  color: #31536a;
  background: #edf5f8;
  border: 1px solid #d4e7ef;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 800;
  line-height: 1.2;
}

.intelligence-tags .tag-more {
  color: var(--muted);
  background: #fff;
}

.expanded-list-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}

.expanded-list-grid .decision-panel {
  border-top: 0;
  border-bottom: 1px solid var(--line);
}

.source-intelligence-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.source-intelligence-row > span,
.source-intelligence-row > a {
  display: inline-flex;
  align-items: center;
  min-height: 31px;
  padding: 6px 10px;
  color: #31536a;
  background: #f7fafc;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
  text-decoration: none;
}

.source-intelligence-row > a {
  color: #1769aa;
  background: #fff;
  border-color: #bcd8ea;
}

.source-intelligence-row .intelligence-status {
  color: #155c45;
  background: #eaf8f2;
  border-color: #bfe6d7;
}

.requirement-metadata {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 7px 0 9px;
}

.tailor-job-context {
  display: grid;
  gap: 13px;
  margin: 0 0 20px;
  padding: 14px;
  background: #f7fafc;
  border: 1px solid var(--line);
  border-radius: 14px;
}

.tailor-job-context > p {
  margin: 0;
  color: var(--navy);
  font-size: .82rem;
  line-height: 1.5;
}

.tailor-job-context dl {
  display: grid;
  gap: 8px;
  margin: 0;
}

.tailor-job-context dl > div {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 8px;
}

.tailor-job-context dt {
  color: var(--muted);
  font-size: .66rem;
  font-weight: 800;
  text-transform: uppercase;
}

.tailor-job-context dd {
  margin: 0;
  color: var(--navy);
  font-size: .74rem;
  font-weight: 700;
}

.tailor-keywords {
  display: grid;
  gap: 8px;
}

.tailor-keywords > span {
  color: var(--muted);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.tailor-keywords > div {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

@media (max-width: 820px) {
  .job-scope-grid,
  .intelligence-tag-grid,
  .expanded-list-grid {
    grid-template-columns: 1fr;
  }
}


/* AI Résumé Strengthener v15 */
.button-ai{color:#073044;background:linear-gradient(135deg,#e9fbff,#bdeef7);border:1px solid #91d6e4;box-shadow:0 6px 18px rgba(17,124,148,.16)}
.button-ai:hover{background:linear-gradient(135deg,#f3fdff,#cef4fa)}
.button-quiet{color:var(--muted);background:transparent;border:1px solid var(--line)}
.ai-intro,.ai-run-summary{background:#f1fbfd;border:1px solid #c7eaf1;border-radius:14px}
.ai-run-summary>div{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.ai-run-summary span{color:var(--muted);font-size:.69rem;font-weight:900;text-transform:uppercase}.ai-run-summary strong{color:#087489;font-size:1.08rem}.ai-run-summary p,.ai-intro p{margin:7px 0 0;font-size:.75rem;line-height:1.45}.ai-warning{color:#8a4b12!important}
.ai-card{display:grid;gap:10px}.ai-card textarea{width:100%;resize:vertical;padding:10px 11px;color:var(--navy);background:#fff;border:1px solid #c9d8e1;border-radius:10px;font:inherit;font-size:.78rem;line-height:1.48}.ai-card textarea:focus{outline:3px solid rgba(24,149,174,.16);border-color:#55b7ca}.ai-card.is-added textarea{background:#f0faf6;border-color:#bfe6d7}
.ai-card-heading{display:grid;gap:3px}.ai-card-heading span{color:#0c788a;font-size:.63rem;font-weight:900;text-transform:uppercase}.ai-card-heading b{color:var(--navy);font-size:.78rem;line-height:1.35}.ai-current{padding:8px 9px;background:#f7f9fb;border-left:3px solid #b9cad4;border-radius:8px}.ai-current span{color:var(--muted);font-size:.61rem;font-weight:900;text-transform:uppercase}.ai-current p{margin:4px 0 0;color:#4f6574;font-size:.71rem;line-height:1.42}.ai-rationale{margin:0;color:var(--muted);font-size:.72rem;line-height:1.43}
.ai-tags,.ai-keywords{display:flex;flex-wrap:wrap;gap:5px}.ai-tags span,.ai-keywords span{display:inline-flex;padding:5px 7px;color:#31536a;background:#edf5f8;border:1px solid #d4e7ef;border-radius:999px;font-size:.61rem;font-weight:800}.ai-keywords .already_present{color:#155c45;background:#eaf8f2;border-color:#bfe6d7}.ai-keywords .supported_missing{color:#705500;background:#fff8dc;border-color:#eedb8b}.ai-keywords .unsupported{color:#7d3943;background:#fff0f2;border-color:#efc5cb}
.ai-evidence{padding:8px 9px;background:#fbfcfd;border:1px solid var(--line);border-radius:9px}.ai-evidence summary{color:#31536a;cursor:pointer;font-size:.67rem;font-weight:800}.ai-evidence ul{margin:7px 0 0;padding-left:17px}.ai-evidence li{margin:4px 0;color:var(--muted);font-size:.66rem;line-height:1.38}.ai-actions{display:flex;flex-wrap:wrap;gap:7px}


/* ============================================================
   Portal v16: two-column résumé workspace with inline AI changes
   ============================================================ */

.customizer-global-message {
  white-space: normal;
  line-height: 1.4;
}

.customizer-layout {
  min-width: 1040px;
  grid-template-columns: minmax(350px, 38fr) minmax(650px, 62fr);
  gap: 18px;
}

.requirement-rail {
  grid-column: 1;
  position: sticky;
  top: 0;
  max-height: calc(95dvh - 170px);
  overflow-y: auto;
}

.resume-workbench {
  grid-column: 2;
}

.resume-workbench-toolbar {
  align-items: flex-start;
}

.resume-workbench-toolbar > div:first-child {
  flex: 0 0 auto;
}

.inline-ai-status {
  flex: 0 1 390px;
  min-width: 250px;
  max-width: 390px;
  padding: 10px 12px;
  background: #eefbfc;
  border: 1px solid #bfe7ed;
  border-radius: 12px;
}

.inline-ai-status.is-empty {
  background: #f7fafb;
  border-color: var(--line);
}

.inline-ai-status > div,
.inline-ai-cost {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.inline-ai-status span {
  color: var(--muted);
  font-size: .65rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.inline-ai-status strong {
  color: #087585;
  font-size: .95rem;
}

.inline-ai-status p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.35;
}

.resume-paper {
  width: min(100%, 980px);
}

.inline-suggestion-zone {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 14px;
  background: #f3fbfd;
  border: 1px solid #c5e8ef;
  border-radius: 12px;
}

.inline-suggestion-zone-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.inline-suggestion-zone-heading span {
  color: #0b7181;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.inline-suggestion-zone-heading small {
  color: var(--muted);
  font-size: .67rem;
}

.inline-ai-card {
  display: grid;
  gap: 10px;
  padding: 13px;
  background: #fff;
  border: 1px solid #cfe1e7;
  border-radius: 11px;
}

.inline-ai-card.is-added {
  background: #effaf5;
  border-color: #b9dfce;
}

.inline-ai-card textarea {
  width: 100%;
  resize: vertical;
  padding: 10px 11px;
  color: #273244;
  background: #fff;
  border: 1px solid #cbd8e1;
  border-radius: 8px;
  font: inherit;
  font-size: .79rem;
  line-height: 1.48;
}

.inline-ai-card textarea:focus {
  outline: 3px solid rgba(24,149,174,.16);
  border-color: #55b7ca;
}

.role-suggestion-zone {
  margin-top: 14px;
}

.initial-suggestion {
  padding: 10px 11px;
  background: #fff;
  border: 1px dashed #b9cbd6;
  border-radius: 9px;
}

.initial-suggestion summary {
  color: #456173;
  cursor: pointer;
  font-size: .72rem;
  font-weight: 800;
}

.initial-suggestion p {
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.45;
}

.initial-suggestion article + article {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.inline-gap-section .gap-question-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.role-comparison-keywords {
  margin: 0 0 18px;
  padding: 13px;
  background: #f8fafb;
  border: 1px solid var(--line);
  border-radius: 12px;
}

.role-comparison-keywords h3 {
  margin: 0 0 9px;
  color: var(--navy);
  font: 800 .8rem "Manrope", sans-serif;
}

.suggestion-rail {
  display: none !important;
}

@media (max-width: 1180px) {
  .customizer-layout {
    min-width: 940px;
    grid-template-columns: minmax(320px, 37fr) minmax(600px, 63fr);
  }

  .resume-workbench-toolbar {
    flex-direction: column;
  }

  .inline-ai-status {
    width: 100%;
    max-width: none;
  }
}

@media (max-width: 900px) {
  .customizer-layout {
    min-width: 0;
    grid-template-columns: 1fr;
  }

  .requirement-rail,
  .resume-workbench {
    grid-column: 1;
  }

  .resume-workbench {
    order: -1;
  }

  .requirement-rail {
    position: static;
    max-height: none;
  }
}


/* ============================================================
   Portal v17: asynchronous AI résumé review
   ============================================================ */

.inline-ai-status.is-running {
  background: #eefbfc;
  border-color: #9fdce6;
}

.inline-ai-status.is-running strong {
  color: #087585;
}

.inline-ai-status.is-failed {
  background: #fff5f5;
  border-color: #efc8cd;
}

.inline-ai-status.is-failed strong {
  color: #9b3542;
}

.ai-progress-copy {
  color: #154f5c !important;
  font-weight: 800;
}

.ai-progress-track {
  position: relative;
  height: 5px;
  margin-top: 9px;
  overflow: hidden;
  background: #d6edf1;
  border-radius: 999px;
}

.ai-progress-track span {
  position: absolute;
  inset: 0 auto 0 0;
  width: 38%;
  background: #30a7ba;
  border-radius: inherit;
  animation: ai-review-progress 1.55s ease-in-out infinite;
}

@keyframes ai-review-progress {
  0% { transform: translateX(-110%); }
  50% { transform: translateX(120%); }
  100% { transform: translateX(285%); }
}

@media (prefers-reduced-motion: reduce) {
  .ai-progress-track span {
    width: 70%;
    animation: none;
  }
}


/* ============================================================
   Portal v18: visible staged AI progress
   ============================================================ */

.ai-review-stages {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 10px;
}

.ai-review-stages > div {
  display: grid;
  grid-template-columns: 22px 1fr;
  align-items: center;
  gap: 6px;
  padding: 7px;
  color: #6a7e89;
  background: #f7fafb;
  border: 1px solid #d7e3e8;
  border-radius: 9px;
  opacity: .7;
}

.ai-review-stages > div.is-active {
  color: #0b6270;
  background: #e4f7fa;
  border-color: #a9dfe8;
  opacity: 1;
}

.ai-review-stages b {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  color: inherit;
  background: #fff;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: .64rem;
}

.ai-review-stages span {
  color: inherit;
  font-size: .63rem;
  font-weight: 800;
  line-height: 1.15;
}

@media (max-width: 720px) {
  .ai-review-stages {
    grid-template-columns: 1fr;
  }
}


/* ============================================================
   Portal v19: prominent real backend progress
   ============================================================ */

.inline-ai-status.is-running {
  /* Always claims its own full row (flex-basis 100% + the toolbar's
     flex-wrap) instead of sharing a row with the title -- fixes the phase
     pills getting squeezed into whatever narrow leftover space the flex
     layout gave a 620px-designed card next to the title. */
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
  padding: 14px;
  box-shadow: 0 10px 28px rgba(18, 117, 136, .12);
}

.ai-live-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.ai-live-heading > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.ai-live-heading > b {
  flex-shrink: 0;
  min-width: 42px;
  padding: 6px 8px;
  color: #0a7180;
  background: #fff;
  border: 1px solid #a9dfe8;
  border-radius: 999px;
  font-size: .72rem;
  text-align: center;
}

.ai-live-progress {
  height: 7px;
  margin-top: 12px;
  overflow: hidden;
  background: #d6edf1;
  border-radius: 999px;
}

.ai-live-progress > span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #44b4c6, #12899d);
  border-radius: inherit;
  transition: width .45s ease;
}

.ai-live-metrics {
  color: #446976 !important;
  font-weight: 700;
}

.ai-working-zone {
  border-style: solid;
  background: #f5fbfc;
}

.ai-working-card {
  overflow: hidden;
  border-color: #c5e4ea;
}

.ai-working-copy {
  display: grid;
  gap: 4px;
}

.ai-working-copy b {
  color: #0a6574;
  font-size: .78rem;
}

.ai-working-copy span {
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.4;
}

.ai-skeleton-line {
  position: relative;
  width: 82%;
  height: 11px;
  overflow: hidden;
  background: #dcecef;
  border-radius: 999px;
}

.ai-skeleton-line.is-long {
  width: 96%;
}

.ai-skeleton-line.is-short {
  width: 58%;
}

.ai-skeleton-line::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.85),
    transparent
  );
  transform: translateX(-100%);
  animation: ai-skeleton-sweep 1.35s ease-in-out infinite;
}

@keyframes ai-skeleton-sweep {
  to {
    transform: translateX(100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ai-skeleton-line::after {
    animation: none;
  }
}


/* ============================================================
   Portal v20: explicit zero-result diagnostics
   ============================================================ */

.ai-zero-result {
  background: #fff8ed;
  border-color: #e8cf9d;
}

.ai-zero-result p {
  margin: 0;
  color: #785b26;
  font-size: .76rem;
  line-height: 1.5;
}


/* ============================================================
   Portal v21: compact completed-profile dashboard
   ============================================================ */

.profile-collapse-summary {
  display: none;
  max-width: 980px;
  margin-top: 6px;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 650;
  line-height: 1.4;
}

.profile-panel .section-toggle[aria-expanded="false"] {
  padding-top: 17px;
  padding-bottom: 17px;
}

.profile-panel .section-toggle[aria-expanded="false"] .section-title {
  font-size: clamp(1.05rem, 2vw, 1.28rem);
}

.profile-panel .section-toggle[aria-expanded="false"] .profile-collapse-summary {
  display: block;
}

.profile-panel.is-collapsed {
  box-shadow: 0 8px 22px rgba(20, 46, 67, .06);
}

.profile-panel.is-collapsed + .dashboard-workspace {
  margin-top: 18px;
}

@media (max-width: 620px) {
  .profile-panel .section-toggle[aria-expanded="false"] {
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .profile-collapse-summary {
    padding-right: 8px;
    font-size: .7rem;
  }
}


/* ============================================================
   Portal v22: Current Job Matches terminology
   ============================================================ */

.current-match-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 18px;
}

.current-match-toolbar .alert-control-stack {
  margin-left: auto;
}

#job-alerts-panel {
  padding-top: 4px;
}

@media (max-width: 760px) {
  .current-match-toolbar,
  .current-match-toolbar .alert-control-stack {
    width: 100%;
  }

  .current-match-toolbar .alert-control-stack {
    margin-left: 0;
  }
}


/* ============================================================
   Portal v23: compact collapsed profile panel
   ============================================================ */

.profile-panel.is-collapsed {
  border-radius: 18px;
}

.profile-panel.is-collapsed .section-toggle {
  min-height: 74px;
  padding: 12px 24px;
}

.profile-panel.is-collapsed .section-kicker {
  display: none;
}

.profile-panel.is-collapsed .section-title {
  font-size: clamp(1rem, 1.7vw, 1.2rem) !important;
  line-height: 1.2;
}

.profile-panel.is-collapsed .profile-collapse-summary {
  display: block;
  margin-top: 4px;
  font-size: .72rem;
  line-height: 1.3;
}

.profile-panel.is-collapsed .toggle-icon {
  transform: scale(.88);
}

@media (max-width: 620px) {
  .profile-panel.is-collapsed .section-toggle {
    min-height: 68px;
    padding: 10px 16px;
  }
}


/* ============================================================
   Portal v24: compact dashboard and Human-Ready Review branding
   ============================================================ */

.profile-panel.is-collapsed {
  border-radius: 17px;
}

.profile-panel.is-collapsed .section-toggle {
  min-height: 66px;
  padding: 10px 22px;
}

.profile-panel.is-collapsed .section-kicker {
  display: none;
}

.profile-panel.is-collapsed .section-title {
  font-size: clamp(.98rem, 1.6vw, 1.16rem) !important;
  line-height: 1.15;
}

.profile-panel.is-collapsed .profile-collapse-summary {
  display: block;
  max-width: 1050px;
  margin-top: 3px;
  font-size: .7rem;
  line-height: 1.25;
}

.profile-panel.is-collapsed .toggle-icon {
  transform: scale(.82);
}

.button-ai {
  color: #073e45;
  background: linear-gradient(135deg, #e0fbf6, #bcefe5);
  border-color: #8bd5c7;
}

.button-ai:hover {
  background: linear-gradient(135deg, #effdf9, #cef5ed);
}

@media (max-width: 620px) {
  .profile-panel.is-collapsed .section-toggle {
    min-height: 62px;
    padding: 9px 15px;
  }
}


/* ============================================================
   Portal v25: tighter Current Job Matches controls
   ============================================================ */

.dashboard-workspace {
  gap: 12px;
  margin-top: 30px;
}

.current-matches-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 28px;
}

.current-matches-copy {
  max-width: 720px;
}

.current-matches-copy p:not(.section-kicker) {
  max-width: 680px;
}

.current-matches-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 14px;
}

.heading-inline-action {
  padding: 2px 0;
  color: var(--muted);
  background: transparent;
  border: 0;
  font-size: .82rem;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(91,104,117,.4);
  text-underline-offset: 3px;
  cursor: pointer;
}

.heading-inline-action:hover,
.heading-inline-action:focus-visible {
  color: var(--teal-dark);
  text-decoration-color: var(--teal);
}

.current-match-toolbar {
  align-self: end;
  margin: 0 0 1px;
}

.current-match-toolbar .alert-control-stack {
  margin-left: 0;
  gap: 12px;
}

#job-alerts-panel {
  padding-top: 0;
}

#alert-filters.filter-bar {
  padding-top: 0;
  padding-bottom: 10px;
}

.segmented-view-toggle button {
  min-height: 36px;
  padding: 6px 12px;
}

.sort-control select {
  min-height: 44px;
}

@media (max-width: 900px) {
  .current-matches-heading {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 14px;
  }

  .current-match-toolbar,
  .current-match-toolbar .alert-control-stack {
    width: 100%;
  }

  .current-match-toolbar .alert-control-stack {
    justify-content: flex-start;
  }
}

@media (max-width: 620px) {
  .dashboard-workspace {
    margin-top: 24px;
  }

  .current-match-toolbar .alert-control-stack {
    flex-direction: column;
  }
}


/* ============================================================
   Portal v27: Not Interested match disposition
   ============================================================ */

.button-ignore {
  color: #536875;
  background: transparent;
  border-color: #cad6dd;
}

.button-ignore:hover {
  color: #743845;
  background: #fff3f5;
  border-color: #e6bcc4;
}

.not-interested-dialog-form {
  width: min(100%, 520px);
}

.not-interested-reason {
  display: grid;
  gap: 7px;
  margin-top: 18px;
  color: var(--navy);
  font-size: .82rem;
  font-weight: 800;
  text-align: left;
}

.not-interested-reason > span {
  margin-left: 4px;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 700;
}

.not-interested-reason select {
  width: 100%;
  min-height: 46px;
  padding: 9px 38px 9px 12px;
  color: var(--navy);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font: inherit;
  font-weight: 600;
}

.not-interested-note {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.4;
  text-align: left;
}


/* ============================================================
   Portal v27: in-place hidden match confirmation
   ============================================================ */

.hidden-job-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 14px;
  color: #65737b;
  background: #f1f3f4;
  border: 1px solid #d5dce0;
  border-radius: 12px;
  font-size: .82rem;
  line-height: 1.35;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.hidden-job-notice.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.hidden-job-notice strong {
  color: #4b5b64;
  font-weight: 800;
}

.hidden-job-notice-mark {
  display: inline-grid;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  place-items: center;
  color: #64747d;
  background: #e3e7e9;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 900;
}


/* ============================================================
   Portal v28: Already Applied application tracking flow
   ============================================================ */

.application-tracking-dialog {
  width: min(660px, calc(100% - 32px));
  max-height: min(860px, calc(100dvh - 32px));
  overflow: auto;
}

.application-tracking-shell {
  padding: 30px;
}

.application-tracking-confirm {
  display: grid;
  justify-items: center;
  text-align: center;
}

.application-tracking-icon {
  color: #1769aa;
  background: #e7f2fb;
}

.application-tracking-confirm .section-kicker,
.application-tracking-heading .section-kicker {
  margin: 16px 0 0;
}

.application-tracking-form {
  display: block;
  padding: 0;
  text-align: left;
}

.application-tracking-heading {
  text-align: left;
}

.application-tracking-heading h2 {
  margin-top: 5px;
}

.application-tracking-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 22px;
}

.application-tracking-grid label {
  display: grid;
  align-content: start;
  gap: 7px;
  color: var(--navy);
  font-size: .82rem;
  font-weight: 800;
}

.application-tracking-grid label > span small,
.application-tracking-grid label > small {
  color: var(--muted);
  font-size: .7rem;
  font-weight: 600;
}

.application-tracking-grid input,
.application-tracking-grid select,
.application-tracking-grid textarea {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  color: var(--navy);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  font: inherit;
  font-weight: 600;
}

.application-tracking-grid textarea {
  min-height: 96px;
  resize: vertical;
  font-weight: 500;
}

.application-tracking-grid input:focus,
.application-tracking-grid select:focus,
.application-tracking-grid textarea:focus {
  border-color: #72acd4;
  box-shadow: 0 0 0 3px rgba(23, 105, 170, .12);
  outline: none;
}

.application-notes-field {
  grid-column: 1 / -1;
}

.application-tracking-message {
  margin-top: 16px;
  text-align: left;
}

.application-tracking-actions {
  justify-content: flex-end;
}

.tracked-application-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 10px 14px;
  color: #41647f;
  background: #e9f3fb;
  border: 1px solid #bdd7ec;
  border-radius: 12px;
  font-size: .82rem;
  line-height: 1.35;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.tracked-application-notice.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.tracked-application-notice strong {
  color: #285878;
  font-weight: 800;
}

.tracked-application-notice-mark {
  display: inline-grid;
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  place-items: center;
  color: #1769aa;
  background: #d5e9f8;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 900;
}

@media (max-width: 620px) {
  .application-tracking-dialog {
    width: calc(100% - 20px);
    max-height: calc(100dvh - 20px);
  }

  .application-tracking-shell {
    padding: 22px 18px;
  }

  .application-tracking-grid {
    grid-template-columns: 1fr;
  }

  .application-notes-field {
    grid-column: auto;
  }
}

/* ============================================================
   Portal v29: Applications workspace
   ============================================================ */

.workspace-tabs {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  padding: 4px;
  background: #eef3f6;
  border: 1px solid #d8e1e7;
  border-radius: 14px;
  box-shadow: inset 0 1px 2px rgba(11, 34, 57, .04);
}

.workspace-tabs button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 14px;
  color: #617482;
  background: transparent;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  font: 800 .78rem "Manrope", sans-serif;
}

.workspace-tabs button:hover {
  color: var(--navy);
  background: rgba(255, 255, 255, .55);
}

.workspace-tabs button[aria-selected="true"] {
  color: var(--navy);
  background: #fff;
  box-shadow: 0 4px 14px rgba(11, 34, 57, .09);
}

.workspace-tabs button:focus-visible {
  outline: 3px solid rgba(23, 105, 170, .2);
  outline-offset: 2px;
}

.workspace-tab-count {
  display: inline-grid;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  place-items: center;
  color: #4d687a;
  background: #e3ebf0;
  border-radius: 999px;
  font-size: .67rem;
}

.workspace-tabs button[aria-selected="true"] .workspace-tab-count {
  color: #1769aa;
  background: #e6f1fa;
}

.applications-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 28px;
}

.applications-copy {
  max-width: 720px;
}

.applications-copy p:not(.section-kicker) {
  max-width: 680px;
}

.applications-sort-control {
  min-width: 210px;
}

.application-list {
  display: grid;
  gap: 14px;
}

.application-card {
  display: grid;
  gap: 15px;
  padding: 19px 20px;
  background: #fff;
  border: 1px solid rgba(11, 34, 57, .1);
  border-left: 4px solid #80afd0;
  border-radius: 16px;
  box-shadow: 0 8px 26px rgba(11, 34, 57, .055);
}

.application-card.application-status-interview_scheduled,
.application-card.application-status-interview_completed {
  border-left-color: var(--teal-dark);
}

.application-card.application-status-offer_received {
  border-left-color: #0b746a;
  background: linear-gradient(135deg, #fff 0%, #f1fbf8 100%);
}

.application-card.application-status-rejected,
.application-card.application-status-withdrawn {
  border-left-color: #b45a69;
  background: #fffdfd;
}

.application-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.application-company {
  margin: 0 0 3px;
  color: #537083;
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.application-card h3 {
  margin: 0;
  color: var(--navy);
  font: 800 1.08rem "Manrope", sans-serif;
  letter-spacing: -.025em;
}

.application-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.application-facts > div {
  min-width: 0;
  padding: 10px 12px;
  background: #f7f9fa;
  border: 1px solid #e2e8ec;
  border-radius: 10px;
}

.application-facts dt {
  margin-bottom: 4px;
  color: #71818c;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.application-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: #334b5d;
  font-size: .78rem;
  font-weight: 750;
}

.application-notes-preview {
  margin: -2px 0 0;
  padding: 10px 12px;
  color: #536775;
  background: #f8fafb;
  border-radius: 10px;
  font-size: .78rem;
  line-height: 1.45;
}

.application-notes-preview strong {
  color: #354f62;
}

.application-card-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}

.applications-panel .filter-bar {
  padding-top: 0;
  padding-bottom: 12px;
}

.apply-later-copy {
  max-width: 720px;
}

.apply-later-copy p:not(.section-kicker) {
  max-width: 680px;
}

.apply-later-list {
  display: grid;
  gap: 14px;
}

.apply-later-card {
  display: grid;
  gap: 15px;
  padding: 19px 20px;
  background: #fff;
  border: 1px solid rgba(11, 34, 57, .1);
  border-left: 4px solid #80afd0;
  border-radius: 16px;
  box-shadow: 0 8px 26px rgba(11, 34, 57, .055);
}

.apply-later-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.apply-later-company {
  margin: 0 0 3px;
  color: #537083;
  font-size: .74rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.apply-later-card h3 {
  margin: 0;
  color: var(--navy);
  font: 800 1.08rem "Manrope", sans-serif;
  letter-spacing: -.025em;
}

.apply-later-card-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}

@media (max-width: 900px) {
  .applications-heading {
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 14px;
  }

  .applications-sort-control {
    width: min(100%, 330px);
  }

  .application-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .workspace-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  .workspace-tabs button {
    padding-inline: 8px;
    font-size: .71rem;
  }

  .application-card {
    padding: 16px;
  }

  .application-card-heading {
    flex-direction: column;
    gap: 10px;
  }

  .apply-later-card {
    padding: 16px;
  }

  .apply-later-card-heading {
    flex-direction: column;
    gap: 10px;
  }

  .application-facts {
    grid-template-columns: 1fr 1fr;
  }

  .application-card-actions .button {
    flex: 1 1 135px;
  }
}


/* ============================================================
   Portal v30: reversible hidden-match confirmation
   ============================================================ */

.hidden-job-notice-content {
  min-width: 0;
  display: grid;
  flex: 1 1 auto;
  gap: 2px;
}

.hidden-job-undo {
  flex: 0 0 auto;
  padding: 4px 2px;
  color: #315f78;
  background: transparent;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  line-height: 1.1;
}

.hidden-job-undo:hover {
  color: #173f57;
}

.hidden-job-undo:focus-visible {
  outline: 3px solid rgba(49, 95, 120, .22);
  outline-offset: 4px;
}

.hidden-job-undo:disabled {
  color: #8b989f;
  cursor: wait;
  opacity: .8;
}

.hidden-job-notice-error {
  color: #9b2c2c;
  font-size: .74rem;
  font-weight: 700;
}

.restored-job-card {
  animation: restored-job-pulse 850ms ease-out;
}

@keyframes restored-job-pulse {
  0% { box-shadow: 0 0 0 0 rgba(49, 95, 120, .28); }
  45% { box-shadow: 0 0 0 5px rgba(49, 95, 120, .12); }
  100% { box-shadow: 0 0 0 0 rgba(49, 95, 120, 0); }
}

@media (max-width: 560px) {
  .hidden-job-notice {
    align-items: flex-start;
  }

  .hidden-job-undo {
    margin-top: 2px;
  }
}


/* ============================================================
   Portal v31 — promote a tailored version to the master résumé
   ============================================================ */

.customizer-toolbar-actions .button-master-resume {
  color: #3d235c;
  background: #f3eaff;
  border-color: #dac3f2;
  box-shadow: 0 8px 22px rgba(83, 48, 117, .16);
}

.customizer-toolbar-actions .button-master-resume:hover {
  color: #2e1748;
  background: #fbf8ff;
  border-color: #eadcf7;
}

.customizer-global-message a {
  color: inherit;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}


/* ============================================================
   PORTAL V32 — RÉSUMÉ CENTER
   ============================================================ */

.resume-center-panel {
  display: grid;
  gap: 1.4rem;
}

.resume-center-panel[hidden],
.resume-center-heading[hidden] {
  display: none !important;
}

.resume-center-section {
  border: 1px solid var(--border, #dfe5e8);
  border-radius: 18px;
  background: #fff;
  padding: 1.25rem;
  box-shadow: 0 8px 24px rgba(24, 43, 52, 0.05);
}

.resume-center-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.resume-center-section-heading h3 {
  margin: 0.18rem 0 0;
  font-size: 1.18rem;
}

.resume-center-count {
  border-radius: 999px;
  background: #eef4f5;
  color: #3f5962;
  padding: 0.32rem 0.68rem;
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
}

.master-resume-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  border-radius: 16px;
  padding: 1.2rem;
  background: linear-gradient(135deg, #f5fbfa 0%, #eef7f5 100%);
  border: 1px solid #cfe4df;
}

.master-resume-card-main {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  min-width: 0;
}

.resume-file-icon {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #164e57;
  color: #fff;
  font-weight: 800;
  font-family: Georgia, serif;
  font-size: 1.15rem;
}

/* Real Google Drive thumbnail of the formatted document, sized to the same
   slot .resume-file-icon uses so a card looks the same whether or not a
   thumbnail has loaded yet. Taller than it is wide to hint at a résumé
   page rather than a square icon. object-fit keeps Drive's own thumbnail
   aspect ratio from distorting inside the fixed box. */
.resume-thumbnail {
  width: 44px;
  height: 58px;
  flex: 0 0 44px;
  object-fit: cover;
  object-position: top center;
  border-radius: 6px;
  border: 1px solid #d7e2e0;
  background: #fff;
}

.resume-version-list {
  display: grid;
  gap: 0.78rem;
}

.resume-version-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid #e1e7e9;
  border-radius: 14px;
  padding: 1rem 1.05rem;
  background: #fbfcfc;
}

.resume-version-card-copy {
  min-width: 0;
}

.resume-version-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.resume-version-title-row h4 {
  margin: 0;
  font-size: 1rem;
  color: #20323a;
}

.resume-version-badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #edf1f3;
  color: #61727a;
  padding: 0.22rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.resume-version-source,
.resume-version-meta,
.resume-version-job,
.resume-version-filename {
  margin: 0.28rem 0 0;
  color: #61727a;
  font-size: 0.84rem;
}

.resume-version-source {
  color: #36545d;
  font-weight: 700;
}

.resume-version-filename {
  max-width: 62ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-version-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex: 0 0 auto;
}

.resume-center-empty {
  border: 1px dashed #ccd7db;
  border-radius: 13px;
  padding: 1rem;
  color: #667980;
  background: #fafcfc;
}

.resume-center-empty p,
.resume-center-empty h4 {
  margin: 0;
}

.resume-center-empty h4 + p {
  margin-top: 0.35rem;
}

@media (max-width: 850px) {
  .master-resume-card,
  .resume-version-card {
    align-items: stretch;
    flex-direction: column;
  }

  .resume-version-actions {
    justify-content: flex-start;
  }

  .workspace-tabs {
    overflow-x: auto;
  }
}


/* ============================================================
   Portal v33: compact, plain-language role comparison
   ============================================================ */

.requirement-rail {
  padding: 14px;
}

.rail-heading-compact {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 11px;
}

.rail-heading-compact > div:first-child {
  min-width: 0;
}

.rail-heading-compact h2 {
  font-size: 1rem;
  line-height: 1.22;
}

.rail-heading-compact p {
  margin-top: 5px;
  font-size: .72rem;
}

.rail-overall-score {
  flex: 0 0 auto;
  text-align: right;
  white-space: nowrap;
}

.rail-overall-score strong {
  display: block;
  color: var(--navy);
  font: 800 1.45rem "Manrope", sans-serif;
  line-height: 1;
}

.rail-overall-score span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: .61rem;
  font-weight: 800;
  text-transform: lowercase;
}

.requirement-rail .tailor-job-context,
.requirement-rail .role-comparison-keywords {
  margin-bottom: 12px;
  padding: 10px;
}

/* Strengthen Résumé's progress card used to sit in a flex row next to the
   "Working Résumé" label at the top of the workbench column -- moved here
   so the workbench can start directly with the résumé itself instead of a
   toolbar. Reset the flex-basis sizing that made sense in that old row
   context; here it's just a block filling the rail's own width. */
.rail-ai-status-slot { margin-bottom: 12px; }
.rail-ai-status-slot .inline-ai-status {
  flex-basis: auto;
  width: 100%;
  min-width: 0;
  max-width: none;
}

.match-group + .match-group {
  margin-top: 13px;
  padding-top: 12px;
}

.match-group-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 7px;
}

.match-group-heading h3 {
  margin: 0;
  font-size: .82rem;
}

.match-group-heading > span {
  color: var(--muted);
  font-size: .64rem;
  font-weight: 700;
}

.requirement-card-list {
  gap: 6px;
}

.requirement-match {
  overflow: hidden;
  padding: 0;
  border-radius: 9px;
  border-left-width: 4px;
}

.requirement-match > summary {
  display: block;
  padding: 9px 10px;
  list-style: none;
  cursor: pointer;
}

.requirement-match > summary::-webkit-details-marker {
  display: none;
}

.requirement-match[open] {
  box-shadow: 0 5px 15px rgba(11,34,57,.07);
}

.requirement-match-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
}

.requirement-match-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  min-width: 0;
}

.match-label {
  font-size: .59rem;
  letter-spacing: .055em;
}

.requirement-chip {
  display: inline-flex;
  align-items: center;
  padding: 2px 5px;
  color: #31536a;
  background: #edf5f8;
  border: 1px solid #d4e7ef;
  border-radius: 999px;
  font-size: .56rem;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}

.requirement-explanation .requirement-score-note {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: .61rem;
  font-style: italic;
}

.requirement-chevron {
  color: var(--muted);
  font-size: .72rem;
  transition: transform .16s ease;
}

.requirement-match[open] .requirement-chevron {
  transform: rotate(180deg);
}

.requirement-match .requirement-text {
  margin: 5px 0 0;
  color: #27384a;
  font-size: .73rem;
  font-weight: 680;
  line-height: 1.34;
}

.requirement-guidance {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px;
  align-items: start;
  margin-top: 6px;
  padding: 6px 7px;
  color: #087a45;
  background: #effaf4;
  border-radius: 7px;
}

.requirement-guidance > span {
  font-size: .62rem;
  line-height: 1.45;
}

.requirement-guidance p {
  margin: 0;
  color: #087a45;
  font-size: .64rem;
  line-height: 1.35;
}

.requirement-guidance b {
  font-weight: 900;
}

.requirement-explanation {
  padding: 9px 10px 10px;
  background: #fff;
  border-top: 1px solid rgba(11,34,57,.09);
}

.requirement-explanation h4 {
  margin: 0 0 3px;
  color: var(--muted);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.requirement-explanation p {
  margin: 0 0 8px;
  color: #4b5c6d;
  font-size: .66rem;
  line-height: 1.4;
}

.requirement-explanation p:last-child {
  margin-bottom: 0;
}

.requirement-match.strong {
  border-left-color: var(--editorial-green);
}

.requirement-match.partial {
  border-left-color: var(--editorial-yellow);
}

.requirement-match.weak {
  border-left-color: var(--editorial-red);
}

.requirement-match.unclear {
  border-left-color: #98a2b3;
}

.requirement-safety-note {
  margin: 12px 2px 0;
  color: var(--muted);
  font-size: .61rem;
  line-height: 1.4;
}

@media (max-width: 1180px) {
  .requirement-match-heading {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .requirement-chevron {
    display: none;
  }
}

@media (max-width: 900px) {
  .requirement-rail {
    padding: 14px;
  }

  .requirement-match-heading {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .requirement-chevron {
    display: inline;
  }
}

@media (max-width: 520px) {
  .rail-heading-compact {
    display: block;
  }

  .rail-overall-score {
    margin-top: 8px;
    text-align: left;
  }

  .rail-overall-score strong,
  .rail-overall-score span {
    display: inline;
  }

  .rail-overall-score span {
    margin-left: 5px;
  }

  .requirement-match-heading {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .requirement-chevron {
    display: none;
  }
}


/* ============================================================
   Portal v34 — safe replacement master résumé import
   Portal v35 — organized AI review and contextual bullet guidance
   ============================================================ */

.resume-import-dialog {
  width: min(920px, calc(100% - 32px));
  max-height: min(920px, calc(100dvh - 32px));
  overflow: auto;
  text-align: left;
}

.resume-import-dialog::backdrop {
  background: rgba(11, 34, 57, .68);
  backdrop-filter: blur(3px);
}

.resume-import-shell { padding: 0; }
.resume-import-toolbar {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 22px 26px;
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
}
.resume-import-toolbar h2 { margin: 2px 0 0; color: var(--navy); font: 800 1.35rem "Manrope", sans-serif; }
.resume-import-stage { padding: 28px; }
.resume-import-stage[hidden] { display: none !important; }
.resume-import-intro { display: flex; align-items: flex-start; gap: 16px; padding: 18px; border: 1px solid #d8e6e3; border-radius: 16px; background: #f5fbfa; }
.resume-import-intro h3, .resume-import-processing h3, .resume-import-failed h3 { margin: 0; color: var(--navy); font: 800 1.15rem "Manrope", sans-serif; }
.resume-import-intro p, .resume-import-processing p, .resume-import-failed p { margin: 6px 0 0; color: var(--muted); line-height: 1.55; }
.resume-import-icon { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: #164e57; font: 800 1.1rem Georgia, serif; }
.resume-import-upload-form { display: block; padding: 0; text-align: left; }
.resume-import-file-field { display: grid; gap: 9px; margin-top: 22px; padding: 22px; border: 1px dashed #b9cbd0; border-radius: 15px; background: #fbfcfc; color: var(--navy); font-weight: 800; }
.resume-import-file-field input { width: 100%; min-height: 46px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font: inherit; font-weight: 600; }
.resume-import-file-field small { color: var(--muted); font-weight: 600; }
.resume-import-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.resume-import-processing, .resume-import-failed { display: grid; justify-items: center; padding: 34px 20px; text-align: center; }
.resume-import-spinner { width: 48px; height: 48px; margin-bottom: 18px; border: 4px solid #dbe7e9; border-top-color: #176a73; border-radius: 50%; animation: hrt-resume-import-spin .9s linear infinite; }
@keyframes hrt-resume-import-spin { to { transform: rotate(360deg); } }
.resume-import-progress { width: min(540px, 100%); height: 9px; margin-top: 24px; overflow: hidden; border-radius: 999px; background: #e5edef; }
.resume-import-progress span { display: block; width: 12%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #176a73, #2c8d83); transition: width .35s ease; }
.resume-import-background-note { max-width: 600px; font-size: .78rem; }
.resume-import-preview { display: grid; gap: 18px; }
.resume-import-preview-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.resume-import-preview-header h3 { margin: 3px 0 0; color: var(--navy); font: 800 1.22rem "Manrope", sans-serif; }
.resume-import-preview-header p { margin: 5px 0 0; color: var(--muted); font-size: .82rem; }
.resume-import-issues { padding: 15px 17px; border: 1px solid #ecd99f; border-radius: 13px; background: #fff9e8; color: #664e10; }
.resume-import-issues.blocking { border-color: #e5b4bd; background: #fff1f3; color: #743845; }
.resume-import-issues h4 { margin: 0 0 7px; font-size: .9rem; }
.resume-import-issues ul { margin: 0; padding-left: 20px; }
.resume-import-issues li + li { margin-top: 5px; }
.resume-import-preview-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 14px; }
.resume-import-preview-grid > section, .resume-import-preview-section { padding: 17px; border: 1px solid #e1e7e9; border-radius: 14px; background: #fbfcfc; }
.resume-import-preview h4 { margin: 0 0 10px; color: #29444d; font-size: .88rem; text-transform: uppercase; letter-spacing: .045em; }
.resume-import-preview h5 { margin: 0; color: var(--navy); font-size: .95rem; }
.resume-import-preview p { margin: 5px 0 0; color: #536875; line-height: 1.48; }
.resume-import-skill-list { display: flex; flex-wrap: wrap; gap: 7px; }
.resume-import-skill-list span { padding: 5px 9px; border-radius: 999px; background: #e9f3f1; color: #275f5e; font-size: .78rem; font-weight: 700; }
.resume-import-role + .resume-import-role, .resume-import-education + .resume-import-education, .resume-import-extra + .resume-import-extra { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e2e8ea; }
.resume-import-role-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.resume-import-role-heading span, .resume-import-education small { color: var(--muted); font-size: .78rem; white-space: nowrap; }
.resume-import-role ul, .resume-import-preview-section ul { margin: 9px 0 0; padding-left: 20px; color: #455d67; }
.resume-import-role li + li, .resume-import-preview-section li + li { margin-top: 5px; }
.resume-import-role-location { font-size: .8rem; }
.resume-import-missing { color: #7b6c6c !important; font-style: italic; }
.resume-import-preview-actions { position: sticky; bottom: 0; margin: 22px -28px -28px; padding: 16px 28px; background: rgba(255, 255, 255, .97); border-top: 1px solid var(--line); backdrop-filter: blur(10px); }

@media (max-width: 720px) {
  .resume-import-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; }
  .resume-import-stage { padding: 20px; }
  .resume-import-preview-grid { grid-template-columns: 1fr; }
  .resume-import-preview-header, .resume-import-role-heading { flex-direction: column; }
  .resume-import-role-heading span { white-space: normal; }
  .resume-import-preview-actions { margin: 20px -20px -20px; padding: 14px 20px; }
  .resume-import-actions .button { width: 100%; }
}

/* ============================================================
   Portal v35 — complete summary, bullet-level guidance, grouped ATS check
   ============================================================ */
.resume-bullet-block {
  display: grid;
  gap: 8px;
}

.bullet-guidance-zone {
  display: grid;
  gap: 10px;
  margin: 0 38px 8px 27px;
  padding: 12px;
  background: #f3fbfd;
  border: 1px solid #c5e8ef;
  border-left: 4px solid #58b7c8;
  border-radius: 10px;
}

.bullet-guidance-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.bullet-guidance-heading span,
.bullet-question-label {
  color: #0b7181;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.bullet-guidance-heading small {
  color: var(--muted);
  font-size: .65rem;
}

.bullet-specific-card {
  box-shadow: 0 5px 15px rgba(11, 52, 73, .05);
}

.bullet-question-card {
  display: grid;
  gap: 7px;
  padding: 11px;
  background: #fff;
  border: 1px solid #d8e4ea;
  border-radius: 9px;
}

.bullet-question-card .gap-question {
  margin: 0;
}

.ats-keyword-groups {
  display: grid;
  gap: 11px;
}

.ats-keyword-group {
  padding: 11px;
  border: 1px solid;
  border-radius: 10px;
}

.ats-keyword-group.is-covered {
  background: #effaf5;
  border-color: #b9dfce;
}

.ats-keyword-group.needs-focus {
  background: #fff3f4;
  border-color: #efc5cb;
}

.ats-keyword-group-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.ats-keyword-group-heading h4 {
  margin: 0;
  color: var(--navy);
  font: 800 .73rem "Manrope", sans-serif;
}

.ats-keyword-group-heading p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: .64rem;
  line-height: 1.35;
}

.ats-keyword-group-heading strong {
  min-width: 24px;
  padding: 3px 7px;
  color: #fff;
  background: var(--navy);
  border-radius: 999px;
  text-align: center;
  font-size: .65rem;
}

.ats-keyword-group.is-covered .ai-keywords span {
  color: #155c45;
  background: #e3f6ed;
  border-color: #acd9c6;
}

.ats-keyword-group.needs-focus .ai-keywords span {
  color: #7d3943;
  background: #ffe8eb;
  border-color: #e9aeb7;
}

.ats-keyword-empty {
  margin: 0;
  color: var(--muted);
  font-size: .67rem;
}

@media (max-width: 700px) {
  .bullet-guidance-zone {
    margin-left: 0;
    margin-right: 0;
  }
}


/* ================================================================
   Portal v36 — compact dashboard header and credit-free customer view
   ================================================================ */
.header-inner { min-height: 66px; }
.page-shell { padding-top: 20px; }
.summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 18px;
}
.summary-card {
  min-width: 0;
  min-height: 70px;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  border-radius: 14px;
  box-shadow: 0 5px 18px rgba(11,34,57,.045);
}
.summary-card span {
  min-width: 0;
  color: var(--muted);
  font-size: .74rem;
  font-weight: 750;
  line-height: 1.25;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.summary-card strong {
  flex: 0 0 auto;
  font-size: 1.5rem;
  line-height: 1;
}
.support-panel-full {
  width: 100%;
  margin-top: 18px;
  padding: 26px 30px;
}
.support-panel-full .support-actions { margin-top: 18px; }

@media (max-width: 850px) {
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .header-inner { min-height: 60px; }
  .page-shell { padding-top: 14px; }
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
  .summary-card { min-height: 64px; padding: 11px 12px; gap: 8px; }
  .summary-card span { font-size: .66rem; }
  .summary-card strong { font-size: 1.3rem; }
  .support-panel-full { padding: 22px 20px; }
}
@media (max-width: 380px) {
  .summary-grid { grid-template-columns: 1fr; }
}


/* ================================================================
   Portal v37 — metric-card navigation and header profile editor
   ================================================================ */
.header-actions {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 10px;
}
.header-profile-link {
  min-height: 40px;
  padding: 8px 5px;
  color: #d8e5ef;
  background: transparent;
  border: 0;
  border-radius: 8px;
  font-weight: 750;
  text-decoration: underline;
  text-decoration-color: rgba(216,229,239,.45);
  text-underline-offset: 4px;
  cursor: pointer;
}
.header-profile-link:hover {
  color: white;
  text-decoration-color: var(--teal);
}
.summary-card-nav {
  width: 100%;
  appearance: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.summary-card-nav:hover {
  transform: translateY(-1px);
  border-color: rgba(32,166,106,.48);
  box-shadow: 0 8px 22px rgba(11,34,57,.08);
}
.summary-card-nav.is-active {
  background: #f3fbf6;
  border-color: #20a66a;
  box-shadow: 0 0 0 2px rgba(32,166,106,.22), 0 7px 22px rgba(11,34,57,.065);
}
.summary-card-nav.is-active span,
.summary-card-nav.is-active strong { color: #137a4d; }
.summary-card-static { cursor: default; }
.dashboard-workspace { scroll-margin-top: 82px; }

.profile-dialog {
  width: min(1080px, calc(100% - 32px));
  max-width: none;
  height: min(900px, calc(100dvh - 32px));
  max-height: calc(100dvh - 32px);
  overflow: hidden;
  border-radius: 22px;
}
.profile-dialog::backdrop { background: rgba(11,34,57,.72); backdrop-filter: blur(4px); }
.profile-dialog-shell {
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background: var(--canvas);
}
.profile-dialog-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 24px 17px;
  background: white;
  border-bottom: 1px solid var(--line);
}
.profile-dialog-toolbar h2 {
  margin: 0;
  color: var(--navy);
  font: 800 clamp(1.25rem, 2.5vw, 1.65rem) "Manrope", sans-serif;
  letter-spacing: -.035em;
}
.profile-dialog-toolbar .section-kicker { margin-bottom: 4px; }
.profile-dialog-toolbar .profile-collapse-summary { margin: 5px 0 0; }
.profile-dialog .profile-panel {
  min-height: 0;
  overflow: auto;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.profile-dialog .expandable-content { padding: 24px 30px 34px; }
.profile-dialog form {
  display: block;
  justify-items: initial;
  padding: 0;
  text-align: left;
}
html:has(.profile-dialog[open]),
body:has(.profile-dialog[open]) { overflow: hidden; }

.market-snapshot-dialog {
  width: min(720px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  overflow: hidden;
  border-radius: 22px;
  padding: 0;
  border: 0;
}
.market-snapshot-dialog::backdrop { background: rgba(11,34,57,.72); backdrop-filter: blur(4px); }
.market-snapshot-dialog-shell { background: var(--canvas); max-height: calc(100dvh - 32px); overflow: auto; }
.market-snapshot-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 26px 17px;
  background: white;
  border-bottom: 1px solid var(--line);
}
.market-snapshot-toolbar h2 {
  margin: 3px 0 5px;
  color: var(--navy);
  font: 800 clamp(1.25rem, 2.5vw, 1.65rem) "Manrope", sans-serif;
  letter-spacing: -.035em;
}
.market-snapshot-toolbar p { margin: 0; color: var(--muted); }
.market-snapshot-dialog .onboarding-assessment { margin: 22px 26px 26px; }
html:has(.market-snapshot-dialog[open]),
body:has(.market-snapshot-dialog[open]) { overflow: hidden; }

.manual-job-search-dialog {
  width: min(640px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  overflow: hidden;
  border-radius: 22px;
  padding: 0;
  border: 0;
}
.manual-job-search-dialog::backdrop { background: rgba(11,34,57,.72); backdrop-filter: blur(4px); }
.manual-job-search-dialog-shell { background: var(--canvas); max-height: calc(100dvh - 32px); overflow: auto; }
.manual-job-search-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 26px 17px;
  background: white;
  border-bottom: 1px solid var(--line);
}
.manual-job-search-toolbar h2 {
  margin: 3px 0 5px;
  color: var(--navy);
  font: 800 clamp(1.25rem, 2.5vw, 1.65rem) "Manrope", sans-serif;
  letter-spacing: -.035em;
}
.manual-job-search-toolbar p { margin: 0; color: var(--muted); }
.manual-job-search-dialog #manual-job-search-form { padding: 22px 26px 26px; }
.add-job-dialog #add-job-form { padding: 22px 26px 26px; }
.add-job-dialog #add-job-description {
  resize: vertical;
  min-height: 160px;
  font: inherit;
}
.field-optional { color: var(--muted); font-weight: 400; font-size: .78rem; }
.title-toggle-row { display: flex; gap: 8px; margin-top: -6px; }
.button-chip {
  padding: 6px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: white;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
}
.button-chip[aria-pressed="true"] { border-color: var(--teal); color: var(--teal-dark); background: var(--teal-light); }
.field-note { margin: 10px 0 0; color: var(--muted); font-size: .78rem; }
html:has(.manual-job-search-dialog[open]),
body:has(.manual-job-search-dialog[open]) { overflow: hidden; }

@media (max-width: 620px) {
  .market-snapshot-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; }
  .market-snapshot-dialog-shell { max-height: 100dvh; }
  .market-snapshot-toolbar { padding: 16px 16px 13px; }
  .market-snapshot-dialog .onboarding-assessment { margin: 18px; }
  .manual-job-search-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; }
  .manual-job-search-dialog-shell { max-height: 100dvh; }
  .manual-job-search-toolbar { padding: 16px 16px 13px; }
  .manual-job-search-dialog #manual-job-search-form { padding: 16px; }
  .add-job-dialog #add-job-form { padding: 16px; }
}

@media (max-width: 850px) {
  .header-inner { gap: 14px; }
  .header-actions { gap: 7px; }
}
@media (max-width: 620px) {
  .header-profile-link { min-height: 36px; padding: 6px 2px; font-size: .76rem; }
  .header-actions .button { min-height: 36px; padding: 7px 9px; font-size: .74rem; }
  .profile-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; }
  .profile-dialog-toolbar { padding: 16px 16px 13px; }
  .profile-dialog .expandable-content { padding: 20px 18px 28px; }
}

/* ==================================================================
   Portal v40 — adaptive résumé-writer margin comments for Tailor Résumé
   ================================================================== */
:root {
  --editorial-red: #c2414f;
  --editorial-red-bg: #fff0f2;
  --editorial-yellow: #b77908;
  --editorial-yellow-bg: #fff8df;
  --editorial-green: #15936f;
  --editorial-green-bg: #eaf8f2;
}

.editorial-customizer-layout {
  min-width: 1320px;
  grid-template-columns: minmax(900px, 1fr) minmax(285px, 330px);
  gap: 16px;
}

.editorial-resume-workbench {
  grid-column: 1;
  overflow: visible;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.editorial-resume-workbench .resume-workbench-toolbar {
  margin-bottom: 12px;
  background: #fff;
  border: 1px solid rgba(11,34,57,.08);
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(11,34,57,.05);
}

.editorial-customizer-layout .requirement-rail {
  grid-column: 2;
  top: 0;
}

.editorial-review-legend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 12px;
  padding: 10px 13px;
  color: #526273;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: .7rem;
}

.editorial-review-legend b {
  color: var(--navy);
  font-size: .73rem;
}

.editorial-review-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.editorial-review-legend i,
.editorial-tone-dots i {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.editorial-review-legend i.tone-red,
.editorial-tone-dots i.tone-red { background: var(--editorial-red); }
.editorial-review-legend i.tone-yellow,
.editorial-tone-dots i.tone-yellow { background: var(--editorial-yellow); }
.editorial-review-legend i.tone-green,
.editorial-tone-dots i.tone-green { background: var(--editorial-green); }

.ai-status-help summary {
  color: var(--muted);
  cursor: pointer;
  font-size: .66rem;
  font-weight: 700;
}

.ai-status-help p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: .69rem;
  line-height: 1.4;
}

.editorial-resume-paper {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: none;
  min-height: 980px;
  margin: 0 0 26px;
  padding: 34px 0 42px;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.editorial-resume-paper::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: #fff;
  border: 1px solid #d4dce4;
  border-radius: 9px;
  box-shadow: 0 15px 45px rgba(11,34,57,.11);
}

.editorial-section-heading,
.editorial-role-heading,
.editorial-source-cell {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding-left: 48px;
  padding-right: 20px;
}

.editorial-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin: 10px 0 12px;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--navy);
}

.editorial-section-heading:first-child { margin-top: 0; }

.editorial-section-heading h3 {
  margin: 0;
  color: var(--navy);
  font: 800 .84rem "Manrope", sans-serif;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.editorial-section-heading span {
  color: var(--muted);
  font-size: .67rem;
}

.editorial-summary-source {
  padding-bottom: 10px;
}

.editorial-summary-source .resume-summary-editor {
  min-height: 90px;
  font-size: .95rem;
}

.editorial-role-heading {
  margin: 12px 0 5px;
  padding-top: 10px;
}

.editorial-role-heading h4 { font-size: .93rem; }

.editorial-bullet-source {
  padding-top: 2px;
  padding-bottom: 5px;
}

.editorial-underline-stack {
  position: absolute;
  right: 16px;
  bottom: 4px;
  left: 70px;
  display: grid;
  gap: 2px;
  pointer-events: none;
}

.editorial-summary-source .editorial-underline-stack {
  left: 48px;
  bottom: 13px;
}

.editorial-underline-stack i {
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 999px;
}

.editorial-underline-stack i.tone-red { background: var(--editorial-red); }
.editorial-underline-stack i.tone-yellow { background: #dfa72a; }
.editorial-underline-stack i.tone-green { background: var(--editorial-green); }

.editorial-pin {
  /* Left margin, not right -- reads left-to-right like a teacher's mark
     in the margin next to the line it's about. */
  position: absolute;
  z-index: 3;
  top: 11px;
  left: -11px;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  padding: 0;
  color: #fff;
  background: none;
  border: 2px solid #fff;
  border-radius: 50%;
  box-shadow: 0 3px 10px rgba(11,34,57,.18);
  font: 900 .62rem "Manrope", sans-serif;
  line-height: 1;
  cursor: pointer;
  transition: transform .12s ease;
}

.editorial-pin:hover,
.editorial-pin[aria-expanded="true"] {
  transform: scale(1.14);
}

.editorial-pin:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 2px;
}

.editorial-summary-source .editorial-pin { top: 7px; }
.editorial-pin.tone-red { background: var(--editorial-red); }
.editorial-pin.tone-yellow { background: var(--editorial-yellow); }
.editorial-pin.tone-green { background: var(--editorial-green); }

/* Position:fixed + rendered as a direct child of the <dialog> (not inside
   customizer-content/resume-workbench, both of which clip overflow) so it
   escapes their overflow:hidden/auto ancestors and still inherits the
   dialog's browser-native top-layer stacking -- JS computes top/left from
   the trigger's bounding rect each time it opens. */
.editorial-popover-root {
  position: fixed;
  z-index: 50;
  width: min(360px, calc(100vw - 32px));
  max-height: min(70vh, 520px);
  overflow: auto;
  background: transparent;
  border-radius: 11px;
}

.editorial-popover-root[hidden] { display: none; }

.editorial-popover-root .editorial-comment-card {
  box-shadow: 0 20px 50px rgba(11,34,57,.28);
}

.editorial-tone-dots {
  position: absolute;
  left: 4px;
  bottom: 12px;
  display: flex;
  gap: 3px;
}

.editorial-tone-dots i {
  width: 7px;
  height: 7px;
}

.editorial-comment-empty { min-height: 8px; }

.editorial-comment-card {
  position: relative;
  display: grid;
  gap: 8px;
  padding: 12px 13px;
  color: #475467;
  background: #fff;
  border: 1px solid;
  border-left-width: 5px;
  border-radius: 11px;
  box-shadow: none;
}

.editorial-comment-card.tone-red {
  color: #7c313c;
  background: var(--editorial-red-bg);
  border-color: #e9adb6;
}

.editorial-comment-card.tone-yellow {
  color: #775008;
  background: var(--editorial-yellow-bg);
  border-color: #ebd18c;
}

.editorial-comment-card.tone-green {
  color: #155b46;
  background: var(--editorial-green-bg);
  border-color: #afdac8;
}

.editorial-comment-card h4 {
  margin: 0;
  color: var(--navy);
  font: 800 .79rem "Manrope", sans-serif;
}

.editorial-comment-card > p,
.editorial-mini-note > p {
  margin: 0;
  color: inherit;
  font-size: .69rem;
  line-height: 1.43;
}

.editorial-comment-card > textarea,
.editorial-mini-note textarea {
  width: 100%;
  resize: vertical;
  padding: 8px 9px;
  color: #273244;
  background: #fff;
  border: 1px solid rgba(11,34,57,.17);
  border-radius: 8px;
  font: inherit;
  font-size: .7rem;
  line-height: 1.42;
}

.editorial-comment-card .ai-tags { gap: 4px; }
.editorial-comment-card .ai-tags span { padding: 4px 6px; font-size: .56rem; }
.editorial-comment-card .ai-actions { gap: 5px; }
.editorial-comment-card .button-small { padding: 6px 8px; font-size: .61rem; }

.editorial-comment-label {
  display: flex;
  align-items: center;
  gap: 0;
  color: inherit;
  font-size: .57rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}


.editorial-comment-compact { gap: 5px; padding-top: 10px; padding-bottom: 10px; }

.editorial-comment-details,
.editorial-more-comments {
  margin: 0;
  padding-top: 6px;
  border-top: 1px solid rgba(11,34,57,.11);
}

.editorial-comment-details summary,
.editorial-more-comments summary {
  color: #455b6d;
  cursor: pointer;
  font-size: .62rem;
  font-weight: 800;
}

.editorial-comment-details .ai-evidence {
  margin-top: 7px;
  background: rgba(255,255,255,.72);
}

.editorial-more-list {
  display: grid;
  gap: 7px;
  margin-top: 8px;
}

.editorial-mini-note {
  display: grid;
  gap: 7px;
  padding: 9px;
  background: rgba(255,255,255,.75);
  border: 1px solid rgba(11,34,57,.12);
  border-left: 3px solid;
  border-radius: 8px;
}

.editorial-mini-note.tone-red { border-left-color: var(--editorial-red); }
.editorial-mini-note.tone-yellow { border-left-color: var(--editorial-yellow); }
.editorial-mini-note.tone-green { border-left-color: var(--editorial-green); }
.editorial-mini-note > b { color: var(--navy); font-size: .66rem; }

.editorial-comment-card .gap-question {
  padding: 0;
  background: transparent;
  border: 0;
}

.editorial-comment-card .gap-question legend {
  color: var(--navy);
  font-size: .72rem;
  line-height: 1.35;
}

.editorial-comment-card .gap-question > p {
  margin: 4px 0 8px;
  color: inherit;
  font-size: .64rem;
}

.editorial-comment-card .gap-response-row {
  grid-template-columns: 1fr;
  gap: 7px;
}

.editorial-comment-card .gap-response-row label {
  font-size: .64rem;
}

.editorial-comment-card .gap-response-row select,
.editorial-comment-card .gap-response-row textarea {
  padding: 7px 8px;
  font-size: .68rem;
}

.editorial-role-addition,
.editorial-general-question {
  margin-top: 5px;
  padding-top: 12px;
  padding-bottom: 14px;
  background: #f8fafb;
  border-top: 1px dashed #c6d0da;
  border-bottom: 1px dashed #c6d0da;
}

.editorial-role-addition > div {
  display: grid;
  gap: 3px;
}

.editorial-role-addition b { color: var(--navy); font-size: .74rem; }
.editorial-role-addition span,
.editorial-general-question p { margin: 0; color: var(--muted); font-size: .67rem; }

@media (max-width: 1320px) {
  .editorial-customizer-layout {
    min-width: 1160px;
    grid-template-columns: minmax(820px, 1fr) 300px;
  }
  .editorial-section-heading,
  .editorial-role-heading,
  .editorial-source-cell { padding-left: 40px; padding-right: 18px; }
  .editorial-underline-stack { left: 62px; right: 14px; }
  .editorial-summary-source .editorial-underline-stack { left: 40px; }
}

@media (max-width: 1050px) {
  .editorial-customizer-layout {
    min-width: 0;
    grid-template-columns: 1fr;
  }
  .editorial-customizer-layout .requirement-rail {
    grid-column: 1;
    position: static;
    max-height: none;
  }
  .editorial-resume-workbench { grid-column: 1; }
  .editorial-resume-paper {
    padding-bottom: 24px;
  }
}

@media (max-width: 620px) {
  .editorial-review-legend { align-items: flex-start; flex-direction: column; }
  .editorial-section-heading,
  .editorial-role-heading,
  .editorial-source-cell { padding-left: 34px; padding-right: 14px; }
  .editorial-underline-stack { left: 54px; right: 10px; }
  .editorial-summary-source .editorial-underline-stack { left: 34px; }
  .editorial-pin { left: -7px; width: 18px; height: 18px; font-size: .56rem; }
}

/* ============================================================
   Portal v45: Interview Center, preparation, and search learning
   ============================================================ */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.job-filter-panel {
  position: relative;
  z-index: 12;
  display: grid;
  gap: 12px;
  margin: 0 0 16px;
  padding: 16px;
  background: rgba(255, 255, 255, .76);
  border: 1px solid rgba(11, 34, 57, .08);
  border-radius: 18px;
  box-shadow: 0 8px 26px rgba(11, 34, 57, .045);
}

.job-search-field {
  position: relative;
  display: flex;
  align-items: center;
}

.job-search-field input {
  min-height: 50px;
  padding: 12px 78px 12px 46px;
  color: var(--navy);
  background: #fff;
  border: 1px solid #cbd7df;
  border-radius: 13px;
  font-size: .96rem;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(11, 34, 57, .035);
}

.job-search-field input::placeholder {
  color: #7b8995;
  font-weight: 500;
}

.job-search-icon {
  position: absolute;
  z-index: 1;
  left: 17px;
  width: 17px;
  height: 17px;
  border: 2px solid #5e7484;
  border-radius: 50%;
  pointer-events: none;
}

.job-search-icon::after {
  content: "";
  position: absolute;
  right: -6px;
  bottom: -4px;
  width: 7px;
  height: 2px;
  background: #5e7484;
  border-radius: 999px;
  transform: rotate(45deg);
}

.job-search-clear {
  position: absolute;
  right: 10px;
  min-height: 34px;
  padding: 5px 10px;
  color: #526778;
  background: #f1f5f7;
  border: 0;
  border-radius: 9px;
  font-size: .76rem;
  font-weight: 800;
  cursor: pointer;
}

.job-filter-controls {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
}

.filter-dropdown {
  position: relative;
  min-width: 0;
}

.filter-dropdown > summary {
  min-height: 52px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 9px 34px 9px 12px;
  color: #4f6473;
  background: #fff;
  border: 1px solid #d1dbe2;
  border-radius: 11px;
  list-style: none;
  cursor: pointer;
  transition: border-color .18s, box-shadow .18s, background .18s;
}

.filter-dropdown > summary::-webkit-details-marker { display: none; }

.filter-dropdown > summary::after {
  content: "";
  position: absolute;
  top: 21px;
  right: 14px;
  width: 7px;
  height: 7px;
  border-right: 2px solid #5f7280;
  border-bottom: 2px solid #5f7280;
  transform: rotate(45deg);
  transition: transform .18s;
}

.filter-dropdown[open] > summary {
  color: var(--navy);
  background: #f9fcfc;
  border-color: var(--teal-dark);
  box-shadow: 0 0 0 3px rgba(47, 185, 171, .13);
}

.filter-dropdown[open] > summary::after {
  transform: rotate(225deg) translate(-2px, -2px);
}

.filter-dropdown > summary span {
  overflow: hidden;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .065em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.filter-dropdown > summary strong {
  overflow: hidden;
  color: var(--navy);
  font-size: .82rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.filter-dropdown.is-disabled {
  opacity: .58;
}

.filter-dropdown.is-disabled > summary {
  cursor: not-allowed;
}

.filter-popover {
  position: absolute;
  z-index: 35;
  top: calc(100% + 7px);
  left: 0;
  width: max(100%, 245px);
  padding: 13px;
  background: #fff;
  border: 1px solid #d6e0e6;
  border-radius: 13px;
  box-shadow: 0 20px 48px rgba(11, 34, 57, .18);
}

.filter-dropdown:nth-child(n+4) .filter-popover {
  right: 0;
  left: auto;
}

.filter-popover-wide {
  width: 330px;
}

.filter-popover-tall {
  width: 300px;
}

.filter-popover-title {
  margin: 0 0 9px;
  color: var(--navy);
  font-size: .73rem;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.filter-option-list {
  display: grid;
  gap: 4px;
}

.filter-option-scroll {
  max-height: 245px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.filter-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  min-height: 38px;
  padding: 7px 8px;
  color: #354d5f;
  border-radius: 9px;
  font-size: .82rem;
  font-weight: 700;
  cursor: pointer;
}

.filter-option:hover {
  background: #f1f8f7;
}

.filter-option input {
  width: 17px;
  height: 17px;
  margin: 0;
  padding: 0;
  accent-color: var(--teal-dark);
}

.filter-option small {
  min-width: 24px;
  padding: 2px 6px;
  color: #6d7d89;
  background: #edf2f5;
  border-radius: 999px;
  text-align: center;
  font-size: .65rem;
}

.filter-menu-search {
  display: block;
  margin-bottom: 9px;
}

.filter-menu-search input {
  min-height: 40px;
  padding: 8px 10px;
  font-size: .82rem;
}

.filter-unavailable {
  margin: 0;
  padding: 10px;
  color: #697b87;
  background: #f5f7f9;
  border-radius: 9px;
  font-size: .78rem;
}

.pay-filter-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}

.pay-filter-heading .filter-popover-title {
  margin-bottom: 1px;
}

.pay-filter-heading span {
  color: #71818c;
  font-size: .7rem;
}

.filter-reset-button,
.clear-all-filters {
  padding: 5px 8px;
  color: var(--teal-dark);
  background: transparent;
  border: 0;
  border-radius: 8px;
  font-size: .73rem;
  font-weight: 850;
  cursor: pointer;
}

.filter-reset-button:hover,
.clear-all-filters:hover {
  background: var(--teal-light);
}

.pay-range-values {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin: 14px 0 4px;
  color: #71818c;
  font-size: .7rem;
}

.pay-range-values span {
  display: grid;
  gap: 1px;
}

.pay-range-values span:last-child {
  text-align: right;
}

.pay-range-values strong {
  color: var(--navy);
  font-size: .86rem;
}

.dual-range-slider {
  --pay-start: 0%;
  --pay-end: 100%;
  position: relative;
  height: 34px;
  margin: 2px 1px 5px;
}

.dual-range-track {
  position: absolute;
  top: 15px;
  right: 0;
  left: 0;
  height: 5px;
  background: #dce5ea;
  border-radius: 999px;
}

.dual-range-track span {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--pay-start);
  right: calc(100% - var(--pay-end));
  background: var(--teal-dark);
  border-radius: 999px;
}

.dual-range-slider input[type="range"] {
  position: absolute;
  top: 3px;
  left: 0;
  width: 100%;
  height: 28px;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}

.dual-range-slider input[type="range"]::-webkit-slider-runnable-track {
  height: 5px;
  background: transparent;
}

.dual-range-slider input[type="range"]::-moz-range-track {
  height: 5px;
  background: transparent;
}

.dual-range-slider input[type="range"]::-webkit-slider-thumb {
  width: 18px;
  height: 18px;
  margin-top: -7px;
  background: #fff;
  border: 2px solid var(--teal-dark);
  border-radius: 50%;
  box-shadow: 0 2px 7px rgba(11, 34, 57, .22);
  pointer-events: auto;
  cursor: grab;
  -webkit-appearance: none;
}

.dual-range-slider input[type="range"]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  background: #fff;
  border: 2px solid var(--teal-dark);
  border-radius: 50%;
  box-shadow: 0 2px 7px rgba(11, 34, 57, .22);
  pointer-events: auto;
  cursor: grab;
}

.pay-number-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.pay-number-grid > label,
.more-filter-popover > label {
  display: grid;
  gap: 5px;
  color: #536776;
  font-size: .7rem;
  font-weight: 800;
}

.currency-input {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  min-height: 39px;
  padding-left: 9px;
  background: #fbfcfd;
  border: 1px solid #cfd8e1;
  border-radius: 9px;
}

.currency-input span {
  color: #71818c;
  font-size: .78rem;
  font-weight: 700;
}

.currency-input input {
  min-width: 0;
  padding: 7px 8px 7px 4px;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font-size: .78rem;
}

.more-filter-popover {
  display: grid;
  gap: 11px;
}

.more-filter-popover select {
  min-height: 40px;
  padding: 8px 10px;
  font-size: .8rem;
}

.job-filter-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.quick-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.quick-filter-button {
  min-height: 36px;
  padding: 7px 12px;
  color: var(--navy-2);
  background: #fff;
  border: 1px solid #d0dbe2;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  cursor: pointer;
}

.quick-filter-button[aria-pressed="true"] {
  color: #fff;
  background: var(--navy);
  border-color: var(--navy);
}

.job-result-count {
  flex: 0 0 auto;
  margin: 0;
  color: #5f7280;
  font-size: .79rem;
  font-weight: 800;
}

.active-filter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 10px;
  border-top: 1px solid #dce4e9;
}

.active-filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.active-filter-chip {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 280px;
  padding: 5px 9px 5px 10px;
  color: #31566b;
  background: #eaf4f5;
  border: 1px solid #c5dfe0;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 750;
  cursor: pointer;
}

.active-filter-chip span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.active-filter-chip b {
  color: #567586;
  font-size: .95rem;
  line-height: 1;
}

.clear-all-filters {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .job-filter-controls {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .more-filter-dropdown {
    grid-column: span 2;
  }
}

@media (max-width: 760px) {
  .job-filter-panel {
    padding: 13px;
  }

  .job-filter-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .more-filter-dropdown {
    grid-column: auto;
  }

  .filter-dropdown:nth-child(n) .filter-popover {
    position: fixed;
    z-index: 120;
    top: auto;
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: auto;
    max-height: min(68dvh, 520px);
    overflow-y: auto;
    border-radius: 17px;
    box-shadow: 0 26px 80px rgba(11, 34, 57, .3);
  }

  .filter-dropdown[open]::after {
    content: "";
    position: fixed;
    z-index: 110;
    inset: 0;
    background: rgba(11, 34, 57, .4);
    backdrop-filter: blur(2px);
  }

  .filter-dropdown > summary {
    position: relative;
    z-index: 1;
  }

  .filter-dropdown[open] > summary {
    z-index: 121;
  }
}

@media (max-width: 520px) {
  .job-search-field input {
    min-height: 48px;
    padding-right: 70px;
    font-size: .86rem;
  }

  .job-filter-controls {
    grid-template-columns: 1fr 1fr;
  }

  .filter-dropdown > summary {
    min-height: 50px;
    padding-left: 10px;
  }

  .filter-dropdown > summary span {
    font-size: .6rem;
  }

  .filter-dropdown > summary strong {
    font-size: .75rem;
  }

  .job-filter-footer,
  .active-filter-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .job-result-count {
    order: -1;
  }

  .active-filter-row {
    gap: 8px;
  }

  .clear-all-filters {
    align-self: flex-end;
  }
}


/* ============================================================
   Portal v45: Interview Center, preparation, and search learning
   ============================================================ */
.button-interview { color: #075f58; background: #e7f7f3; border-color: #a9ddd4; }
.button-interview:hover { color: white; background: #087e73; border-color: #087e73; }

.interview-center-heading { align-items: end; }
.interview-center-copy { max-width: 760px; }
.interview-center-panel { display: grid; gap: 26px; }
.interview-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.interview-summary-grid article { min-height: 112px; padding: 20px 22px; background: linear-gradient(145deg, #fff, #f7fafc); border: 1px solid rgba(11, 34, 57, .09); border-radius: 18px; box-shadow: 0 8px 24px rgba(11, 34, 57, .05); }
.interview-summary-grid span { display: block; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.interview-summary-grid strong { display: block; margin-top: 8px; color: var(--navy); font: 800 2rem/1 "Manrope", sans-serif; }
.interview-list { display: grid; gap: 28px; }
.interview-group-section { display: grid; gap: 14px; }
.interview-group-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.interview-group-heading h3 { margin: 0; color: var(--navy); }
.interview-group-heading p { margin: 5px 0 0; color: var(--muted); }
.interview-group-heading > span { min-width: 34px; height: 34px; display: grid; place-items: center; color: var(--navy); background: #edf3f7; border-radius: 50%; font-weight: 800; }
.interview-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.interview-card { display: grid; gap: 16px; padding: 21px; background: white; border: 1px solid rgba(11, 34, 57, .09); border-left: 5px solid #7d91a3; border-radius: 18px; box-shadow: 0 8px 25px rgba(11, 34, 57, .055); }
.interview-group-upcoming { border-left-color: #128f85; }
.interview-group-waiting { border-left-color: #d3962f; }
.interview-group-offers { border-left-color: #258a59; }
.interview-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.interview-card h3 { margin: 2px 0 4px; color: var(--navy); font-size: 1.12rem; }
.interview-company { margin: 0; color: var(--teal); font-size: .73rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.interview-stage { margin: 0; color: var(--muted); font-weight: 700; }
.interview-card-details { display: grid; gap: 5px; color: #47586a; }
.interview-card-details p { margin: 0; line-height: 1.45; }
.interview-location { overflow-wrap: anywhere; }
.interview-outcome, .interview-next-step { padding-top: 5px; }
.interview-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }

.interview-dialog, .interview-prep-dialog { width: min(940px, calc(100vw - 28px)); max-height: calc(100vh - 28px); padding: 0; border: 0; border-radius: 22px; box-shadow: 0 28px 80px rgba(11, 34, 57, .28); }
.interview-prep-dialog { width: min(1180px, calc(100vw - 28px)); }
.interview-dialog::backdrop, .interview-prep-dialog::backdrop { background: rgba(7, 25, 42, .58); backdrop-filter: blur(4px); }
.interview-dialog-shell, .interview-prep-shell { background: #f5f8fa; }
.interview-dialog-toolbar, .interview-prep-toolbar { position: sticky; top: 0; z-index: 3; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 22px 26px; background: rgba(255, 255, 255, .97); border-bottom: 1px solid rgba(11, 34, 57, .09); }
.interview-dialog-toolbar h2, .interview-prep-toolbar h2 { margin: 3px 0 4px; color: var(--navy); }
.interview-dialog-toolbar p:last-child, .interview-prep-toolbar p:last-child { margin: 0; color: var(--muted); }
.interview-prep-toolbar-actions { display: flex; align-items: center; gap: 10px; }
.interview-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; padding: 26px; }
.interview-form-grid label, .interview-follow-up-section label, .search-learning-form label { display: grid; gap: 7px; color: var(--navy); font-size: .85rem; font-weight: 800; }
.interview-form-grid .span-2 { grid-column: 1 / -1; }
.interview-form-grid input, .interview-form-grid select, .interview-form-grid textarea, .interview-follow-up-section input, .interview-follow-up-section textarea, .search-learning-form textarea { width: 100%; border: 1px solid #c9d5df; border-radius: 11px; background: white; color: var(--navy); font: inherit; font-weight: 500; }
.interview-form-grid input, .interview-form-grid select, .interview-follow-up-section input { min-height: 45px; padding: 9px 12px; }
.interview-form-grid textarea, .interview-follow-up-section textarea, .search-learning-form textarea { padding: 11px 12px; resize: vertical; line-height: 1.48; }
.interview-form-grid input:focus, .interview-form-grid select:focus, .interview-form-grid textarea:focus, .interview-follow-up-section input:focus, .interview-follow-up-section textarea:focus, .search-learning-form textarea:focus { outline: 3px solid rgba(24, 143, 133, .15); border-color: var(--teal); }
.interview-dialog-shell > .form-message { margin: 0 26px 18px; }
.interview-dialog-actions { position: sticky; bottom: 0; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 10px; padding: 18px 26px; background: rgba(255, 255, 255, .98); border-top: 1px solid rgba(11, 34, 57, .09); }

.interview-prep-loading { min-height: 330px; display: grid; place-content: center; justify-items: center; gap: 10px; padding: 50px; text-align: center; }
.interview-prep-loading h3 { margin: 6px 0 0; color: var(--navy); }
.interview-prep-loading p { max-width: 570px; margin: 0; color: var(--muted); }
.interview-prep-content { display: grid; gap: 20px; padding: 26px; }
.interview-prep-hero, .interview-prep-section, .interview-follow-up-section { padding: 24px; background: white; border: 1px solid rgba(11, 34, 57, .09); border-radius: 18px; box-shadow: 0 7px 22px rgba(11, 34, 57, .045); }
.interview-prep-hero h3, .interview-prep-section h3, .interview-follow-up-section h3 { margin: 3px 0 10px; color: var(--navy); }
.interview-prep-hero > p:last-of-type { margin: 0; color: #34495c; font-size: 1.04rem; line-height: 1.68; }
.interview-focus-note { margin-top: 16px; padding: 14px 16px; color: #075f58; background: #eaf8f5; border-radius: 12px; line-height: 1.5; }
.interview-prep-section-heading { display: flex; justify-content: space-between; margin-bottom: 15px; }
.interview-question-list { display: grid; gap: 12px; }
.interview-question-card { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 14px; padding: 17px; background: #f7fafc; border-radius: 14px; }
.interview-question-card > span { width: 32px; height: 32px; display: grid; place-items: center; color: white; background: var(--navy); border-radius: 9px; font-weight: 800; }
.interview-question-card h4 { margin: 3px 0 12px; color: var(--navy); }
.interview-question-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; margin: 0; }
.interview-question-card dl div { padding: 11px 12px; background: white; border-radius: 10px; }
.interview-question-card dt { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .065em; text-transform: uppercase; }
.interview-question-card dd { margin: 5px 0 0; color: #3f5264; line-height: 1.45; }
.interview-story-grid, .interview-ask-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.interview-story-grid article, .interview-ask-list article { padding: 17px; background: #f7fafc; border-radius: 14px; }
.interview-story-grid span { color: var(--teal); font-size: .68rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.interview-story-grid h4, .interview-ask-list h4 { margin: 6px 0 8px; color: var(--navy); }
.interview-story-grid p, .interview-ask-list p { margin: 0; color: #4f6172; line-height: 1.48; }
.interview-story-grid ul { margin: 10px 0 0; padding-left: 19px; color: #4f6172; }
.interview-prep-checklist { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.interview-prep-checklist li { position: relative; padding: 11px 13px 11px 42px; background: #f7fafc; border-radius: 11px; }
.interview-prep-checklist li::before { content: "✓"; position: absolute; left: 13px; top: 10px; width: 21px; height: 21px; display: grid; place-items: center; color: white; background: var(--teal); border-radius: 50%; font-size: .72rem; font-weight: 800; }
.interview-closing-message { padding: 20px 22px; color: white; background: var(--navy); border-radius: 16px; }
.interview-closing-message p { margin: 8px 0 0; color: #d9e5ee; line-height: 1.55; }
.interview-prep-empty-state { padding: 45px 24px; text-align: center; background: white; border-radius: 18px; }
.interview-prep-empty-state h3 { color: var(--navy); }
.interview-prep-empty-state p, .interview-prep-empty { color: var(--muted); }
.interview-prep-shell > .form-message { margin: 18px 26px 0; }
.interview-follow-up-section { display: grid; gap: 15px; margin: 0 26px 26px; }
.interview-follow-up-section > div:first-child p { margin: 0; color: var(--muted); }
.interview-follow-up-actions { display: flex; justify-content: flex-end; gap: 10px; }

.search-learning-panel { display: grid; gap: 18px; margin-top: 8px; padding: 24px; background: linear-gradient(145deg, #0d2c48, #123956); color: white; border-radius: 20px; box-shadow: 0 14px 35px rgba(11, 34, 57, .16); }
.search-learning-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.search-learning-heading h3 { margin: 3px 0 7px; color: white; }
.search-learning-heading p:last-child { max-width: 760px; margin: 0; color: #c6d5e1; }
.search-learning-panel .section-kicker { color: #64d2c8; }
.search-learning-signals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.search-learning-signals article { min-height: 155px; padding: 17px; background: rgba(255, 255, 255, .075); border: 1px solid rgba(255, 255, 255, .11); border-radius: 14px; }
.search-learning-number { display: block; color: #65d8cd; font: 800 1.65rem/1 "Manrope", sans-serif; }
.search-learning-signals h4 { margin: 9px 0 10px; color: white; }
.search-learning-signals p, .search-learning-signals em { color: #c6d5e1; font-size: .85rem; font-style: normal; line-height: 1.45; }
.search-learning-signals article div { display: flex; flex-wrap: wrap; gap: 6px; }
.search-learning-signals article div span { padding: 5px 8px; color: #dce8f0; background: rgba(255, 255, 255, .09); border-radius: 999px; font-size: .76rem; }
.search-learning-signals article div strong { color: #65d8cd; }
.search-learning-form { display: grid; gap: 13px; padding-top: 4px; }
.search-learning-form label { color: white; }
.search-learning-toggle { display: flex !important; grid-template-columns: auto 1fr; align-items: center; gap: 10px !important; }
.search-learning-toggle input { width: 18px; height: 18px; accent-color: #4dc7ba; }
.search-learning-actions { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.search-learning-actions span { color: #afc3d2; font-size: .8rem; }

@media (max-width: 900px) {
  .interview-summary-grid, .search-learning-signals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .interview-card-grid { grid-template-columns: 1fr; }
  .interview-question-card dl, .interview-story-grid, .interview-ask-list { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .interview-center-heading { align-items: stretch; }
  .interview-center-heading .button { width: 100%; }
  .interview-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .interview-summary-grid article { min-height: 92px; padding: 15px; }
  .interview-summary-grid strong { font-size: 1.55rem; }
  .interview-card { padding: 17px; }
  .interview-card-top, .search-learning-heading { flex-direction: column; }
  .interview-card-actions .button, .interview-card-actions a { width: 100%; }
  .interview-form-grid { grid-template-columns: 1fr; padding: 18px; }
  .interview-form-grid .span-2 { grid-column: auto; }
  .interview-dialog-toolbar, .interview-prep-toolbar { padding: 18px; }
  .interview-prep-toolbar { flex-direction: column; }
  .interview-prep-toolbar-actions { width: 100%; justify-content: space-between; }
  .interview-dialog-actions { grid-template-columns: 1fr; padding: 15px 18px; }
  .interview-dialog-actions > span { display: none; }
  .interview-dialog-actions .button { width: 100%; }
  .interview-prep-content { padding: 18px; }
  .interview-prep-hero, .interview-prep-section, .interview-follow-up-section { padding: 18px; }
  .interview-question-card { grid-template-columns: 1fr; }
  .interview-follow-up-section { margin: 0 18px 18px; }
  .interview-follow-up-actions, .search-learning-actions { align-items: stretch; flex-direction: column; }
  .interview-follow-up-actions .button, .search-learning-actions .button { width: 100%; }
  .search-learning-panel { padding: 18px; }
  .search-learning-signals { grid-template-columns: 1fr; }
}


/* v46 instant onboarding */
.onboarding-progress { margin: 22px 0; padding: 26px; border: 1px solid rgba(15,118,110,.18); background: linear-gradient(145deg,#fff 0%,#f2fbfa 100%); }
.onboarding-progress-header { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; }
.onboarding-progress-header h2 { margin:3px 0 7px; font-size:1.45rem; }
.onboarding-progress-header p:last-child { margin:0; color:var(--muted); }
.onboarding-stage-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:22px; }
.onboarding-stage { display:flex; gap:11px; min-height:92px; padding:15px; border:1px solid #dce6eb; border-radius:15px; background:#fff; }
.onboarding-stage strong { display:block; font-size:.9rem; line-height:1.35; color:var(--navy); }
.onboarding-stage small { display:block; margin-top:5px; color:var(--muted); line-height:1.35; }
.onboarding-stage-icon { flex:0 0 22px; width:22px; height:22px; border:2px solid #cbd8df; border-radius:50%; position:relative; }
.onboarding-stage[data-state="complete"] { border-color:rgba(7,150,111,.35); background:#f6fffb; }
.onboarding-stage[data-state="complete"] .onboarding-stage-icon { border-color:#07966f; background:#07966f; }
.onboarding-stage[data-state="complete"] .onboarding-stage-icon::after { content:""; position:absolute; left:6px; top:3px; width:6px; height:10px; border:solid white; border-width:0 2px 2px 0; transform:rotate(45deg); }
.onboarding-stage[data-state="processing"] { border-color:rgba(24,143,133,.45); box-shadow:0 8px 24px rgba(15,118,110,.08); }
.onboarding-stage[data-state="processing"] .onboarding-stage-icon { border-color:#d7e5e7; border-top-color:#168f85; animation:onboarding-spin .8s linear infinite; }
.onboarding-stage[data-state="error"] { border-color:#efb8b8; background:#fff8f8; }
.onboarding-stage[data-state="error"] .onboarding-stage-icon { border-color:#b42318; }
.onboarding-stage[data-state="error"] .onboarding-stage-icon::after { content:"!"; position:absolute; inset:0; display:grid; place-items:center; color:#b42318; font-weight:900; font-size:.72rem; }
.onboarding-assessment { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.onboarding-assessment > div { padding:15px 17px; border:1px solid #dce6eb; border-radius:14px; background:white; }
.onboarding-assessment .span-2 { grid-column:1/-1; }
.onboarding-assessment span { display:block; color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.onboarding-assessment strong { display:block; margin-top:5px; color:var(--navy); font-size:1.03rem; }
.onboarding-tag-list { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.onboarding-tag-list span { padding:6px 10px; border-radius:999px; color:#0b665f; background:#e4f7f3; font-size:.78rem; letter-spacing:0; text-transform:none; }
.onboarding-assessment ul { margin:8px 0 0; padding-left:20px; color:#354a5f; }
@keyframes onboarding-spin { to { transform:rotate(360deg); } }
@media (max-width:900px) { .onboarding-stage-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.finding-roles-status { align-items:center; margin-bottom:16px; }

.onboarding-retry-actions { display:flex; align-items:center; gap:12px; margin-top:14px; flex-wrap:wrap; }
.onboarding-retry-actions span { color:var(--muted); font-size:.92rem; }
@media (max-width:600px) { .onboarding-progress { padding:20px 16px; } .onboarding-progress-header { display:grid; } .onboarding-stage-grid,.onboarding-assessment { grid-template-columns:1fr; } .onboarding-assessment .span-2 { grid-column:auto; } }


/* v46.7.6 paginated job alerts with canonical enrichment */
.job-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 20px;
  padding: 14px 16px;
  border: 1px solid #d9e4ea;
  border-radius: 14px;
  background: #f8fbfc;
}
.job-pagination[hidden] { display: none; }
.job-pagination-summary { color: var(--muted); font-size: .9rem; }
.job-pagination-summary strong { color: var(--navy); }
.job-pagination-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
.job-pagination-actions span {
  min-width: 110px;
  color: var(--navy);
  font-size: .88rem;
  font-weight: 800;
  text-align: center;
}
.job-alert-list.is-loading-page {
  min-height: 280px;
  opacity: .5;
  pointer-events: none;
  transition: opacity .15s ease;
}
@media (max-width: 640px) {
  .job-pagination {
    align-items: stretch;
    flex-direction: column;
  }
  .job-pagination-summary { text-align: center; }
  .job-pagination-actions {
    justify-content: space-between;
  }
  .job-pagination-actions .button { flex: 1; }
}


.job-detail-loading,
.job-detail-error {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 22px 0;
  padding: 20px;
  border: 1px solid #d9e4ea;
  border-radius: 14px;
  background: #f8fbfc;
}
.job-detail-loading strong,
.job-detail-error strong { display: block; color: var(--navy); }
.job-detail-loading p,
.job-detail-error p { margin: 5px 0 0; color: var(--muted); line-height: 1.5; }
.job-detail-loading-mark {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border: 3px solid #d7e5e7;
  border-top-color: #168f85;
  border-radius: 50%;
  animation: onboarding-spin .8s linear infinite;
}
.job-detail-error {
  display: block;
  border-color: #efc2c2;
  background: #fff8f8;
}
.job-detail-error .button { margin-top: 14px; }


/* v46.7.7 fast dashboard snapshot and deferred workspace loading */
.workspace-loading-state {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 120px;
  padding: 24px;
  color: var(--navy);
  background: rgba(255,255,255,.82);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.workspace-loading-state > span {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border: 3px solid #d7e6e4;
  border-top-color: var(--teal-dark);
  border-radius: 50%;
  animation: hrt-workspace-spin .8s linear infinite;
}
.workspace-loading-state strong { display: block; font-size: .95rem; }
.workspace-loading-state p { margin: 4px 0 0; color: var(--muted); font-size: .82rem; }
@keyframes hrt-workspace-spin { to { transform: rotate(360deg); } }

.progress-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 0 0 20px; }
.progress-stat-tile { padding: 16px 18px; background: white; border: 1px solid rgba(11,34,57,.06); border-radius: 16px; box-shadow: 0 8px 30px rgba(11,34,57,.05); }
.progress-stat-tile span { display: block; color: var(--muted); font-size: .82rem; }
.progress-stat-tile strong { display: block; margin-top: 6px; color: var(--navy); font: 800 1.7rem "Manrope", sans-serif; }
.progress-status-breakdown { display: flex; flex-direction: column; gap: 2px; background: white; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.progress-status-row { display: flex; align-items: center; justify-content: space-between; padding: 12px 20px; border-bottom: 1px solid var(--line); }
.progress-status-row:last-child { border-bottom: 0; }
.progress-status-row span { color: var(--navy-2); }
.progress-status-row strong { color: var(--navy); font: 800 1rem "Manrope", sans-serif; }
@media (max-width: 620px) { .progress-stat-grid { grid-template-columns: repeat(2, 1fr); } }

/* A normal in-flow section directly below the résumé content, both inside
   .customizer-scroll-region -- not an overlay of any kind. Two earlier
   attempts (position:fixed bottom overlay, then a separate stacked
   dialog) both rendered the letter on top of the résumé instead of below
   it, which is what was actually wanted. */
.customizer-cover-letter-panel {
  margin: 18px 24px 0;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--teal-light, #eaf7f6);
  color: #0b2e4f;
}
.customizer-cover-letter-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.customizer-cover-letter-heading h3 { margin: 2px 0 10px; color: var(--navy); font: 800 1.05rem "Manrope", sans-serif; }
.customizer-cover-letter-body { width: 100%; min-height: 140px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: white; color: var(--navy-2); font: 400 .92rem/1.55 "Inter", sans-serif; resize: vertical; field-sizing: content; }
.customizer-cover-letter-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
