#role-fit {
  --role-fit-panel: color-mix(in srgb, #191c20 78%, transparent);
  --role-fit-panel-raised: color-mix(in srgb, #202428 80%, transparent);
  --role-fit-line: rgb(231 237 234 / 10%);
  --role-fit-line-strong: rgb(231 237 234 / 16%);
  --role-fit-muted: #aeb9b8;
  --role-fit-subtle: #818d8d;
  --role-fit-mint: var(--accent, #a2cbb1);
  --role-fit-amber: #dfbd86;
  font-family: var(--font, sans-serif);
  color: var(--text, #e9eaeb);
}
#role-fit [hidden] { display: none !important; }
#role-fit .role-fit-launcher {
  position: fixed;
  right: max(22px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
}
body:has(#role-fit) #chat-launcher {
  right: max(22px, env(safe-area-inset-right));
  bottom: max(82px, calc(env(safe-area-inset-bottom) + 82px));
}
.role-fit-launcher:focus-visible, .role-fit-close:focus-visible, .role-fit-reset:focus-visible, .role-fit-dialog button:focus-visible, .role-fit-dialog a:focus-visible { outline: 2px solid var(--accent, #a2cbb1); outline-offset: 3px; }
html.nav-menu-open .role-fit-launcher { visibility: hidden; pointer-events: none; }

.role-fit-dialog {
  position: fixed;
  inset: 50% auto auto 50%;
  display: none;
  flex-direction: column;
  width: min(1080px, calc(100vw - 40px));
  height: min(900px, calc(100dvh - 34px));
  max-height: calc(100dvh - 34px);
  margin: 0;
  padding: 0;
  overflow: hidden;
  transform: translate(-50%, -50%) scale(.99);
  border: 1px solid var(--glass-border, #30353b);
  border-top-color: var(--glass-border-top, #4b5259);
  border-radius: var(--radius-lg, 22px);
  color: var(--text, #e9eaeb);
  color-scheme: dark;
  background: color-mix(in srgb, #191c20 76%, transparent);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  box-shadow: inset 0 1px rgb(255 255 255 / 9%), 0 20px 64px rgb(0 0 0 / 42%);
  opacity: 0;
  transition: opacity 170ms ease, transform 170ms ease;
}
.role-fit-dialog[open] { display: flex; opacity: 1; transform: translate(-50%, -50%) scale(1); }
.role-fit-dialog::backdrop { background: rgb(0 0 0 / 35%); }
.role-fit-header {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 34px 23px;
  border-bottom: 1px solid var(--role-fit-line);
}
.role-fit-header h2 { margin: 2px 0 7px; font-size: clamp(22px, 3vw, 30px); font-weight: 560; letter-spacing: -.045em; line-height: 1.15; }
.role-fit-header p { max-width: 68ch; margin: 0; color: var(--role-fit-muted); font-size: 12px; line-height: 1.55; }
.role-fit-header .role-fit-eyebrow { margin: 0 0 7px; color: var(--role-fit-mint); font-size: 9px; font-weight: 650; letter-spacing: .15em; text-transform: uppercase; }
.role-fit-close { display: grid; width: 39px; height: 39px; flex: 0 0 auto; place-items: center; padding: 0 0 3px; border: 1px solid var(--role-fit-line-strong); border-radius: 12px; background: rgb(255 255 255 / 3%); color: var(--role-fit-muted); font: 26px/1 var(--font, sans-serif); cursor: pointer; transition: border-color 150ms ease, color 150ms ease, background-color 150ms ease; }
.role-fit-close:hover { border-color: var(--role-fit-mint); background: rgb(255 255 255 / 5%); color: var(--text, #e9eaeb); }
.role-fit-content { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior: contain; scrollbar-color: rgb(205 209 212 / 22%) transparent; }
.role-fit-form-section { max-width: 970px; margin: 0 auto; padding: 24px 34px 30px; }
.role-fit-tabs { display: flex; gap: 5px; width: fit-content; margin-bottom: 18px; padding: 4px; border: 1px solid var(--role-fit-line); border-radius: 13px; background: #111516; }
.role-fit-tab { min-height: 36px; padding: 8px 14px; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--role-fit-muted); font: 520 11px var(--font, sans-serif); cursor: pointer; transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease; }
.role-fit-tab:hover { color: var(--text, #e9eaeb); }
.role-fit-tab.is-active { border-color: rgb(162 203 177 / 24%); background: rgb(162 203 177 / 9%); color: var(--role-fit-mint); }
.role-fit-input-panel { display: grid; gap: 9px; }
.role-fit-field-label { color: var(--text, #e9eaeb); font-size: 12px; font-weight: 580; }
.role-fit-input-panel textarea, .role-fit-input-panel input { width: 100%; box-sizing: border-box; border: 1px solid var(--role-fit-line-strong); border-radius: 14px; outline: 0; background: #101415; color: var(--text, #e9eaeb); font: 12px/1.7 var(--font, sans-serif); box-shadow: inset 0 1px rgb(255 255 255 / 2%); transition: border-color 150ms ease, box-shadow 150ms ease; }
.role-fit-input-panel textarea { min-height: 205px; max-height: 330px; resize: vertical; padding: 14px 16px; }
.role-fit-input-panel input { min-height: 48px; padding: 11px 14px; }
.role-fit-input-panel textarea::placeholder, .role-fit-input-panel input::placeholder { color: var(--role-fit-subtle); }
.role-fit-input-panel textarea:focus, .role-fit-input-panel input:focus { border-color: color-mix(in srgb, var(--role-fit-mint) 64%, transparent); box-shadow: 0 0 0 3px rgb(162 203 177 / 8%); }
.role-fit-field-hint { color: var(--role-fit-subtle); font-size: 10px; line-height: 1.55; }
.role-fit-field-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.role-fit-char-count { flex: 0 0 auto; color: var(--role-fit-subtle); font: 10px/1.55 var(--font, sans-serif); font-variant-numeric: tabular-nums; white-space: nowrap; }
.role-fit-char-count.is-near-limit { color: var(--role-fit-amber); }
.role-fit-char-count.is-at-limit { color: #edaa96; }
.role-fit-submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 15px; }
.role-fit-submit { display: inline-flex; min-height: 45px; align-items: center; gap: 14px; padding: 10px 16px; border: 1px solid color-mix(in srgb, var(--role-fit-mint) 55%, transparent); border-radius: 12px; background: var(--role-fit-mint); color: #0c1110; font: 620 11px var(--font, sans-serif); cursor: pointer; transition: transform 150ms ease, background-color 150ms ease; }
.role-fit-submit:hover { transform: translateY(-1px); background: var(--accent-dim, #bad9b8); }
.role-fit-submit:disabled { opacity: .65; cursor: progress; transform: none; }
.role-fit-submit span { font-size: 16px; }
.role-fit-reset { display: inline-flex; min-width: 74px; height: 40px; flex: 0 0 auto; align-items: center; justify-content: center; gap: 6px; padding: 0 10px; border: 1px solid var(--role-fit-line-strong); border-radius: 12px; background: rgb(255 255 255 / 3%); color: var(--role-fit-muted); font: 540 10px var(--font, sans-serif); cursor: pointer; transition: border-color 150ms ease, color 150ms ease, background-color 150ms ease; }
.role-fit-reset svg { width: 15px; height: 15px; flex: 0 0 auto; }
.role-fit-reset:hover:not(:disabled) { border-color: var(--role-fit-mint); background: rgb(255 255 255 / 6%); color: var(--role-fit-mint); }
.role-fit-reset:disabled { opacity: .38; cursor: not-allowed; }
.role-fit-clear { min-height: 38px; padding: 8px 11px; border: 1px solid var(--role-fit-line-strong); border-radius: 10px; background: transparent; color: var(--role-fit-muted); font: 500 10px var(--font, sans-serif); cursor: pointer; }
.role-fit-clear:hover { border-color: rgb(220 150 129 / 55%); color: #e5b5a5; }
.role-fit-error { margin: 12px 0 0; color: #edaa96; font-size: 11px; line-height: 1.6; }
.role-fit-status { min-height: 15px; margin: 10px 0 0; color: var(--role-fit-subtle); font-size: 10px; line-height: 1.5; }
.role-fit-clear:disabled { opacity: .5; cursor: wait; }

.role-fit-result { max-width: 970px; margin: 0 auto; padding: 0 34px 40px; }
.role-fit-result-heading { padding: 5px 0 22px; }
.role-fit-result-heading > .role-fit-eyebrow { margin: 0 0 10px; color: var(--role-fit-mint); font-size: 9px; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; }
.role-fit-posting-heading { margin: 0 0 16px; padding: 12px 15px; border-left: 2px solid var(--role-fit-mint); background: rgb(162 203 177 / 5%); }
.role-fit-posting-title { margin: 0; color: var(--text, #e9eaeb); font-size: clamp(16px, 2vw, 19px); font-weight: 560; letter-spacing: -.025em; line-height: 1.3; overflow-wrap: anywhere; }
.role-fit-posting-company { margin: 5px 0 0; color: var(--role-fit-muted); font-size: 10px; line-height: 1.5; }
.role-fit-score-card { display: grid; grid-template-columns: minmax(210px, 260px) minmax(0, 1fr); align-items: center; gap: 25px; padding: 21px 25px 21px 15px; border: 1px solid rgb(162 203 177 / 22%); border-radius: 20px; background: linear-gradient(112deg, rgb(162 203 177 / 7%), rgb(255 255 255 / 2%) 42%, rgb(255 255 255 / 1%)); }
.role-fit-gauge { position: relative; width: min(100%, 250px); justify-self: center; aspect-ratio: 240 / 145; }
.role-fit-gauge svg { display: block; width: 100%; height: 100%; overflow: visible; }
.role-fit-gauge-track, .role-fit-gauge-progress { stroke-width: 11; stroke-linecap: round; }
.role-fit-gauge-track { stroke: rgb(236 242 238 / 10%); }
.role-fit-gauge-progress { stroke: var(--role-fit-mint); transition: stroke-dashoffset 900ms cubic-bezier(.2, .75, .2, 1); }
.role-fit-gauge-readout { position: absolute; top: 60%; left: 50%; display: grid; justify-items: center; gap: 2px; transform: translate(-50%, -50%); white-space: nowrap; }
.role-fit-gauge-value { color: var(--text, #e9eaeb); font-size: clamp(39px, 5vw, 54px); font-weight: 560; font-variant-numeric: tabular-nums; letter-spacing: -.075em; line-height: .98; }
.role-fit-gauge-caption { color: var(--role-fit-mint); font-size: 9px; font-weight: 620; letter-spacing: .11em; text-transform: uppercase; }
.role-fit-score-copy { min-width: 0; padding: 4px 0; }
.role-fit-score-overline, .role-fit-kicker { margin: 0 0 7px; color: var(--role-fit-mint); font-size: 8px; font-weight: 650; letter-spacing: .15em; line-height: 1.4; text-transform: uppercase; }
.role-fit-score-label { display: block; margin: 0; color: var(--text, #e9eaeb); font-size: clamp(18px, 2.4vw, 23px); font-weight: 560; letter-spacing: -.035em; line-height: 1.2; }
.role-fit-score-summary { max-width: 66ch; margin: 9px 0 0; color: var(--role-fit-muted); font-size: 11px; line-height: 1.7; }
.role-fit-score-stats { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.role-fit-score-stat { display: grid; min-width: 98px; gap: 3px; padding: 8px 10px; border: 1px solid var(--role-fit-line); border-radius: 10px; background: rgb(0 0 0 / 12%); }
.role-fit-score-stat strong { color: var(--text, #e9eaeb); font-size: 14px; font-weight: 590; font-variant-numeric: tabular-nums; }
.role-fit-score-stat span { color: var(--role-fit-subtle); font-size: 8px; letter-spacing: .04em; }
.role-fit-score-stat--direct strong { color: var(--role-fit-mint); }
.role-fit-score-stat--related strong { color: var(--role-fit-amber); }
.role-fit-coverage { margin: 12px 2px 0; color: var(--role-fit-subtle); font-size: 10px; line-height: 1.5; }

.role-fit-section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 8px 18px; margin: 24px 0 11px; }
.role-fit-section-heading .role-fit-kicker { flex-basis: 100%; margin-bottom: -4px; }
.role-fit-section-heading h3, .role-fit-review-items h3, .role-fit-discussion h3 { margin: 0; color: var(--text, #e9eaeb); font-size: 16px; font-weight: 550; letter-spacing: -.025em; line-height: 1.3; }
.role-fit-highlight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.role-fit-highlight { min-width: 0; padding: 14px 15px 13px; border: 1px solid var(--role-fit-line); border-radius: 13px; background: var(--role-fit-panel); }
.role-fit-highlight--related { border-top-color: rgb(223 189 134 / 45%); }
.role-fit-highlight-type { display: inline-block; margin-bottom: 9px; color: var(--role-fit-mint); font-size: 8px; font-weight: 630; letter-spacing: .1em; text-transform: uppercase; }
.role-fit-highlight--related .role-fit-highlight-type { color: var(--role-fit-amber); }
.role-fit-highlight h4 { margin: 0; color: var(--text, #e9eaeb); font-size: 11px; font-weight: 570; line-height: 1.45; }
.role-fit-highlight-copy { display: -webkit-box; min-height: 42px; margin: 7px 0 0; overflow: hidden; color: var(--role-fit-muted); font-size: 9px; line-height: 1.55; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.role-fit-highlight-link { display: inline-block; margin-top: 10px; color: var(--role-fit-mint); font-size: 9px; text-decoration-color: rgb(162 203 177 / 36%); text-underline-offset: 3px; }
.role-fit-highlight-link:hover { text-decoration-color: currentColor; }

.role-fit-review-items { margin: 22px 0 0; padding: 16px 18px; border: 1px solid var(--role-fit-line); border-radius: 14px; background: rgb(255 255 255 / 2%); }
.role-fit-review-items .role-fit-kicker { margin-bottom: 6px; }
.role-fit-review-items h3 { font-size: 14px; }
.role-fit-review-intro { max-width: 74ch; margin: 6px 0 0; color: var(--role-fit-muted); font-size: 10px; line-height: 1.6; }
.role-fit-review-list { display: grid; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.role-fit-review-list li { display: grid; gap: 4px; padding: 10px 12px; border: 1px solid rgb(223 189 134 / 18%); border-radius: 10px; background: rgb(223 189 134 / 4%); }
.role-fit-review-label { color: #d8c49f; font-size: 10px; font-weight: 600; }
.role-fit-review-detail { margin: 0; color: var(--role-fit-muted); font-size: 10px; line-height: 1.55; }
.role-fit-unscored-requirement { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--role-fit-line); }
.role-fit-unscored-requirement strong { color: var(--text, #e9eaeb); font-size: 10px; font-weight: 560; line-height: 1.5; }
.role-fit-unscored-requirement p { margin: 4px 0 0; color: var(--role-fit-subtle); font-size: 9px; line-height: 1.5; }
.role-fit-breakdown-heading { margin-top: 28px; }
.role-fit-groups { display: grid; gap: 9px; margin: 0 0 16px; }
.role-fit-group { overflow: clip; border: 1px solid var(--role-fit-line-strong); border-radius: 14px; background: var(--role-fit-panel); }
.role-fit-group-summary { display: flex; min-height: 49px; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; color: var(--text, #e9eaeb); cursor: pointer; list-style: none; }
.role-fit-group-summary::-webkit-details-marker { display: none; }
.role-fit-group-summary::after { width: 7px; height: 7px; margin-left: 3px; border-right: 1px solid var(--role-fit-subtle); border-bottom: 1px solid var(--role-fit-subtle); content: ''; transform: rotate(45deg) translateY(-2px); transition: transform 140ms ease; }
.role-fit-group[open] > .role-fit-group-summary::after { transform: rotate(225deg) translate(-2px, -1px); }
.role-fit-group-title { flex: 1; font-size: 11px; font-weight: 570; }
.role-fit-group-score { color: var(--role-fit-mint); font-size: 11px; font-variant-numeric: tabular-nums; }
.role-fit-meter { height: 3px; margin: 0 16px 10px; overflow: hidden; border-radius: 999px; background: rgb(255 255 255 / 8%); }
.role-fit-meter-fill { display: block; height: 100%; border-radius: inherit; background: var(--role-fit-mint); }
.role-fit-criteria { display: grid; gap: 0; padding: 0 16px 8px; }
.role-fit-criterion { padding: 13px 0; border-top: 1px solid var(--role-fit-line); }
.role-fit-criterion-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.role-fit-criterion-heading h4 { margin: 0; color: var(--text, #e9eaeb); font-size: 11px; font-weight: 560; line-height: 1.5; }
.role-fit-match { flex: 0 0 auto; padding: 4px 7px; border: 1px solid rgb(162 203 177 / 19%); border-radius: 999px; color: var(--role-fit-mint); font-size: 8px; line-height: 1.2; }
.role-fit-match--related { border-color: rgb(223 189 134 / 26%); color: var(--role-fit-amber); }
.role-fit-match--undocumented { border-color: var(--role-fit-line-strong); color: var(--role-fit-subtle); }
.role-fit-criterion-note { margin: 7px 0 0; color: var(--role-fit-muted); font-size: 10px; line-height: 1.55; }
.role-fit-evidence-row { margin: 8px 0 0; padding: 10px 12px; border-left: 2px solid rgb(162 203 177 / 42%); background: rgb(0 0 0 / 13%); }
.role-fit-evidence-row p { margin: 0; color: #bbc4c2; font-size: 10px; line-height: 1.65; }
.role-fit-evidence-link { display: inline-block; margin-top: 6px; color: var(--role-fit-mint); font-size: 9px; text-decoration-color: rgb(162 203 177 / 36%); text-underline-offset: 3px; }
.role-fit-evidence-link:hover { text-decoration-color: currentColor; }
.role-fit-disclaimer { margin: 17px 0 0; padding-top: 14px; border-top: 1px solid var(--role-fit-line); color: var(--role-fit-subtle); font-size: 9px; line-height: 1.65; }
.role-fit-discussion { margin: 17px 0 0; padding: 15px 17px; border: 1px solid var(--role-fit-line); border-radius: 13px; background: rgb(255 255 255 / 2%); }
.role-fit-discussion .role-fit-kicker { margin-bottom: 6px; }
.role-fit-discussion h3 { font-size: 14px; }
.role-fit-discussion ul { display: grid; gap: 6px; margin: 9px 0 0; padding-left: 17px; color: var(--role-fit-muted); font-size: 10px; line-height: 1.6; }
.role-fit-contact-banner { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 16px; padding: 15px 17px; border: 1px solid var(--role-fit-line-strong); border-radius: 13px; background: rgb(255 255 255 / 2%); }
.role-fit-contact-copy { min-width: 0; }
.role-fit-contact-copy .role-fit-kicker { margin-bottom: 5px; }
.role-fit-contact-copy h3 { margin: 0; color: var(--text, #e9eaeb); font-size: 14px; font-weight: 550; letter-spacing: -.02em; line-height: 1.35; }
.role-fit-contact-copy > p:last-child { margin: 5px 0 0; color: var(--role-fit-muted); font-size: 10px; line-height: 1.55; }
.role-fit-contact-link { display: inline-flex; min-height: 37px; flex: 0 0 auto; align-items: center; justify-content: center; gap: 8px; padding: 0 13px; border: 1px solid color-mix(in srgb, var(--role-fit-mint) 42%, transparent); border-radius: 9px; background: rgb(162 203 177 / 8%); color: var(--role-fit-mint); font-size: 10px; font-weight: 580; text-decoration: none; transition: background-color 150ms ease, border-color 150ms ease, color 150ms ease; }
.role-fit-contact-link::after { content: '→'; font-size: 14px; line-height: 1; }
.role-fit-contact-link:hover { border-color: color-mix(in srgb, var(--role-fit-mint) 65%, transparent); background: rgb(162 203 177 / 14%); color: var(--text, #e9eaeb); }
.role-fit-contact-link:focus-visible { outline: 2px solid var(--role-fit-mint); outline-offset: 3px; }

.role-fit-packet-action { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 18px; padding: 15px 17px; border: 1px solid var(--role-fit-line-strong); border-radius: 13px; background: rgb(255 255 255 / 2%); }
.role-fit-packet-action strong { color: var(--text, #e9eaeb); font-size: 11px; font-weight: 580; }
.role-fit-packet-action p { margin: 5px 0 0; color: var(--role-fit-muted); font-size: 10px; line-height: 1.55; }
.role-fit-packet-open, .role-fit-packet-download { display: inline-flex; min-height: 42px; flex: 0 0 auto; align-items: center; justify-content: center; padding: 0 15px; border: 1px solid color-mix(in srgb, var(--role-fit-mint) 52%, transparent); border-radius: 10px; background: var(--role-fit-mint); color: #0c1110; font: 620 11px var(--font, sans-serif); cursor: pointer; }
.role-fit-packet-open:hover, .role-fit-packet-download:hover:not(:disabled) { background: var(--accent-dim, #bad9b8); }
.role-fit-packet-dialog { width: min(940px, calc(100vw - 36px)); height: min(940px, calc(100dvh - 30px)); }
.role-fit-packet-header { padding-block: 20px 17px; }
.role-fit-packet-header h2 { font-size: clamp(20px, 2.4vw, 25px); }
.role-fit-packet-content { min-height: 0; flex: 1; overflow: auto; padding: 22px; background: #e9ece9; color: #202526; scrollbar-color: rgb(80 91 86 / 24%) transparent; }
.role-fit-packet-paper { max-width: 740px; margin: 0 auto; padding: 42px 48px; border: 1px solid #d5d9d5; background: #fff; color: #222928; font-family: Arial, sans-serif; font-size: 13px; line-height: 1.55; box-shadow: 0 2px 12px rgb(20 27 23 / 8%); }
.role-fit-packet-report-header { padding-bottom: 17px; border-bottom: 1px solid #bfc7c0; }
.role-fit-packet-report-header > p:first-child { margin: 0 0 8px; color: #516359; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.role-fit-packet-report-header h1 { margin: 0; color: #17231b; font-family: Georgia, serif; font-size: 31px; font-weight: 500; line-height: 1.15; }
.role-fit-packet-job-title { margin: 13px 0 0; color: #34473a; font-size: 15px; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.role-fit-packet-company { margin: 4px 0 0 !important; color: #56615a !important; font-size: 10px !important; font-weight: 600; }
.role-fit-packet-report-header p:last-child { margin: 9px 0 0; color: #56615a; font-size: 11px; }
.role-fit-packet-paper a { display: block; color: #315f44; font-size: 11px; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 2px; }
.role-fit-packet-overview { padding: 18px 0 14px; border-bottom: 1px solid #d9ded9; }
.role-fit-packet-overview p { margin: 8px 0 0; }
.role-fit-packet-method { color: #58615b; font-size: 10px; }
.role-fit-packet-score { margin: 0 !important; color: #24583a; font-size: 23px; font-weight: 700; }
.role-fit-packet-section { margin-top: 21px; }
.role-fit-packet-section > h3 { margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid #d9ded9; color: #1e3225; font-family: Georgia, serif; font-size: 17px; font-weight: 600; }
.role-fit-packet-category-line { margin: 4px 0; }
.role-fit-packet-category-title { margin: 15px 0 5px; color: #38483d; font-size: 12px; }
.role-fit-packet-criterion { margin: 0; padding: 9px 0; border-top: 1px solid #e5e8e5; break-inside: avoid; }
.role-fit-packet-criterion h4, .role-fit-packet-criterion h5, .role-fit-packet-project h4 { margin: 0; color: #232d26; font-size: 12px; font-weight: 700; line-height: 1.4; }
.role-fit-packet-criterion h5 { font-size: 11px; }
.role-fit-packet-criterion p, .role-fit-packet-project p { margin: 5px 0 0; color: #48514b; font-size: 11px; line-height: 1.5; }
.role-fit-packet-match-text { color: #4b6653 !important; font-size: 10px !important; font-weight: 600; }
.role-fit-packet-evidence { margin-top: 7px; padding-left: 10px; border-left: 2px solid #a9b9ac; }
.role-fit-packet-evidence p { margin: 0 0 3px; }
.role-fit-packet-intro { margin: -2px 0 7px; color: #58625b; font-size: 11px; }
.role-fit-packet-project { padding: 9px 0; border-top: 1px solid #e5e8e5; break-inside: avoid; }
.role-fit-packet-list { margin: 7px 0 0; padding-left: 20px; }
.role-fit-packet-list li { margin: 5px 0; }
.role-fit-packet-resume-note { margin: 14px 0 0; padding-top: 9px; border-top: 1px solid #d9ded9; color: #4d5a51; font-size: 11px; font-style: italic; }
.role-fit-packet-actions { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 22px max(12px, env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--role-fit-line); background: var(--bg-deep, #101314); }
.role-fit-packet-actions p { flex: 1; margin: 0; color: var(--role-fit-muted); font-size: 10px; line-height: 1.5; }
.role-fit-packet-download:disabled { opacity: .55; cursor: wait; }
.role-fit-packet-resume-pages { display: block; max-width: 740px; margin: 0 auto; padding-bottom: 24px; }
.role-fit-packet-resume-page { display: grid; min-height: 0; margin: 18px 0; padding: 14px; place-items: center; border: 1px solid #d5d9d5; background: #fff; box-shadow: 0 2px 12px rgb(20 27 23 / 8%); break-before: page; break-after: page; page-break-before: always; page-break-after: always; }
.role-fit-packet-resume-page img { display: block; width: 100%; height: auto; max-width: 100%; max-height: none; object-fit: contain; }
.role-fit-packet-resume-page.is-last { break-after: auto; page-break-after: auto; }
.role-fit-packet-loading, .role-fit-packet-error { max-width: 740px; margin: 0 auto; padding: 28px; color: #38483d; font-size: 13px; }
.role-fit-packet-error { color: #8d3829; }

@media (max-width: 760px) {
  #role-fit .role-fit-launcher { right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); }
  .role-fit-dialog { inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; border: 0; border-radius: 0; background: var(--bg-deep, #0c0e10); backdrop-filter: none; -webkit-backdrop-filter: none; transform: none; }
  .role-fit-dialog[open] { transform: none; }
  .role-fit-dialog::backdrop { background: rgb(0 0 0 / 35%); }
  .role-fit-header { gap: 12px; padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right, 0px)) 16px max(18px, env(safe-area-inset-left, 0px)); }
  .role-fit-header h2 { max-width: 28ch; font-size: 22px; }
  .role-fit-header p { max-width: 42ch; font-size: 11px; }
  .role-fit-close { width: 44px; height: 44px; }
  .role-fit-content { scroll-padding-block: 16px calc(24px + env(safe-area-inset-bottom, 0px)); }
  .role-fit-form-section { padding: 18px max(16px, env(safe-area-inset-right, 0px)) calc(26px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
  .role-fit-result { padding: 0 max(16px, env(safe-area-inset-right, 0px)) calc(30px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
  .role-fit-tabs { width: 100%; gap: 6px; }
  .role-fit-tab { min-height: 44px; flex: 1; padding-inline: 7px; font-size: 12px; }
  .role-fit-field-meta { align-items: flex-start; }
  .role-fit-field-label { font-size: 13px; }
  .role-fit-field-hint { flex: 1; font-size: 11px; }
  .role-fit-char-count { font-size: 11px; }
  .role-fit-input-panel textarea, .role-fit-input-panel input { font-size: 16px; line-height: 1.55; }
  .role-fit-input-panel textarea { min-height: 190px; }
  .role-fit-submit { min-height: 48px; font-size: 12px; }
  .role-fit-reset { min-width: 78px; height: 44px; font-size: 11px; }
  .role-fit-clear { min-height: 44px; font-size: 11px; }
  .role-fit-score-card { grid-template-columns: 1fr; gap: 0; padding: 14px 17px 18px; }
  .role-fit-gauge { width: min(245px, 82%); }
  .role-fit-score-copy { text-align: center; }
  .role-fit-score-stats { justify-content: center; }
  .role-fit-score-summary { margin-inline: auto; }
  .role-fit-score-summary { font-size: 12px; }
  .role-fit-score-stat span { font-size: 9px; }
  .role-fit-coverage { font-size: 11px; }
  .role-fit-highlight-grid { grid-template-columns: 1fr; }
  .role-fit-highlight-copy { min-height: 0; -webkit-line-clamp: 2; }
  .role-fit-highlight h4 { font-size: 12px; }
  .role-fit-highlight-copy, .role-fit-review-intro, .role-fit-review-detail, .role-fit-discussion ul { font-size: 11px; }
  .role-fit-group-summary { min-height: 54px; padding-inline: 14px; }
  .role-fit-group-title, .role-fit-group-score { font-size: 12px; }
  .role-fit-criterion-heading { flex-direction: column; gap: 6px; }
  .role-fit-criterion-heading h4 { font-size: 12px; }
  .role-fit-criterion-note, .role-fit-evidence-row p { font-size: 11px; }
  .role-fit-match { font-size: 9px; }
  .role-fit-contact-banner { align-items: flex-start; flex-direction: column; gap: 12px; }
  .role-fit-contact-copy > p:last-child { font-size: 11px; }
  .role-fit-contact-link { min-height: 44px; font-size: 11px; }
  .role-fit-disclaimer { font-size: 10px; }
  .role-fit-packet-action { align-items: stretch; flex-direction: column; }
  .role-fit-packet-open { min-height: 46px; }
  .role-fit-packet-content { padding: 12px; scrollbar-width: none; }
  .role-fit-packet-content::-webkit-scrollbar { display: none; }
  .role-fit-packet-paper { padding: 25px 20px; font-size: 12px; }
  .role-fit-packet-report-header h1 { font-size: 27px; }
  .role-fit-packet-actions { align-items: stretch; flex-direction: column; padding-inline: max(16px, env(safe-area-inset-right, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
  .role-fit-packet-actions > div { display: flex; }
  .role-fit-packet-download { width: 100%; min-height: 46px; }
}

@media (max-width: 1024px) and (max-height: 480px) {
  .role-fit-close { width: 44px; height: 44px; }
  .role-fit-header { gap: 16px; padding-inline: max(24px, env(safe-area-inset-left, 0px)) max(24px, env(safe-area-inset-right, 0px)); }
  .role-fit-tab { min-height: 44px; font-size: 12px; }
  .role-fit-input-panel textarea, .role-fit-input-panel input { font-size: 16px; line-height: 1.55; }
  .role-fit-submit { min-height: 48px; font-size: 12px; }
  .role-fit-clear, .role-fit-contact-link { min-height: 44px; font-size: 11px; }
  .role-fit-reset { min-width: 78px; height: 44px; font-size: 11px; }
}

@media (max-width: 600px), (max-width: 1024px) and (max-height: 480px) {
  #role-fit .role-fit-launcher { right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); }
  body:has(#role-fit) #chat-launcher { right: 16px; bottom: max(78px, calc(env(safe-area-inset-bottom) + 78px)); }
}

@media (prefers-reduced-motion: reduce) {
  .role-fit-launcher, .role-fit-dialog, .role-fit-submit, .role-fit-gauge-progress { transition: none; }
}
