/* AERONI Job Ad Checker — tool.css
   Loaded after /style.css and uses its tokens. Nothing here changes the main site. */

.jac { --warn: #F2C46D; --panel: rgba(8, 12, 24, .88); }
.jac main { padding-bottom: var(--s7); }
.jac .jac-home { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); }
.jac .jac-home:hover { color: var(--cyan); }
[hidden] { display: none !important; }
.jac-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* ---------- intro ---------- */
.jac-intro { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; padding-top: var(--s6); padding-bottom: var(--s5); align-items: end; }
.jac-intro__copy { grid-column: 1 / span 8; }
.jac-title { font-size: clamp(2.4rem, 1.2rem + 4.2vw, 5.2rem); line-height: 1; letter-spacing: -.045em; font-weight: 400; text-wrap: balance; max-width: 13em; }
.jac-intro .lede { margin-top: var(--s3); }
.jac-note { grid-column: 10 / span 3; font-family: var(--hand); font-size: 1.35rem; line-height: 1.2; color: var(--ink-2); transform: rotate(-3deg); justify-self: start; padding-bottom: .5rem; }
.jac-h3 { font-size: clamp(1.35rem, 1.1rem + .9vw, 1.9rem); line-height: 1.15; letter-spacing: -.025em; font-weight: 400; }

/* ---------- input panel ---------- */
.jac-panel { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; border-top: 1px solid var(--line-2); padding-top: var(--s4); }
.jac-panel__ad { grid-column: 1 / span 8; min-width: 0; }
.jac-panel__settings { grid-column: 9 / span 4; }
.jac-ad__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: .6rem; }
.jac-label { font-size: .875rem; }

.jac-panel textarea {
  width: 100%; font: inherit; font-size: .95rem; line-height: 1.55; color: var(--ink);
  background: rgba(4, 6, 12, .9); border: 1px solid var(--line-2); border-radius: 3px;
  padding: 1rem 1.1rem; min-height: 22rem; resize: vertical;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.jac-panel textarea::placeholder { color: var(--ink-3); }
.jac-panel textarea:hover { border-color: rgba(174, 190, 230, .4); }
.jac-panel textarea:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(106, 219, 255, .18); }
.jac-panel textarea[aria-invalid="true"] { border-color: var(--danger); }

.jac-link { background: none; border: 0; padding: .5rem 0; font-size: .875rem; color: var(--ink-2); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; cursor: pointer; }
.jac-link:hover { color: var(--ink); }
.jac-ad__upload { margin-top: .25rem; }
.jac-file__input:focus-visible + .jac-link--file, #jac-file:focus-visible + .jac-link--file { outline: 2px solid var(--cyan); outline-offset: 3px; }

.jac-ad__file { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.1rem 1.25rem; border: 1px dashed var(--line-2); border-radius: 3px; }
.jac-file { display: flex; gap: .75rem; align-items: baseline; min-width: 0; }
.jac-file__name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jac-file__size { color: var(--ink-3); font-size: .875rem; flex-shrink: 0; }

/* selects */
.jac-select { position: relative; }
.jac-select::after { content: ""; position: absolute; right: .95rem; top: 50%; width: .5rem; height: .5rem; border-right: 1.5px solid var(--ink-2); border-bottom: 1.5px solid var(--ink-2); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.jac select {
  width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: rgba(4, 6, 12, .9);
  border: 1px solid var(--line-2); border-radius: 3px; padding: .75rem 2.5rem .75rem .85rem; min-height: 3rem;
  -webkit-appearance: none; appearance: none; cursor: pointer;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.jac select:hover { border-color: rgba(174, 190, 230, .4); }
.jac select:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(106, 219, 255, .18); }
.jac select option { background: var(--night-2); color: var(--ink); }

.jac-panel__actions { margin-top: var(--s3); }
.jac-panel__actions .btn { width: 100%; }
.jac-panel__actions .form__privacy { margin: 1rem 0 0; }

/* ---------- what the check looks at ---------- */
.jac-get { padding-top: var(--s6); }
.jac-get__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--s3); border-top: 1px solid var(--line); }
.jac-get__list li { padding: var(--s3) 1.5rem var(--s3) 0; }
.jac-get__list li + li { padding-left: 1.5rem; border-left: 1px solid var(--line); }
.jac-get__list h3 { font-size: 1rem; font-weight: 700; letter-spacing: -.01em; }
.jac-get__list p { margin-top: .5rem; color: var(--ink-2); font-size: .95rem; max-width: 30em; }

/* ---------- shared progress rule ---------- */
.jac-rule { height: 2px; background: var(--line); border-radius: 2px; overflow: hidden; }
.jac-rule span { display: block; height: 100%; width: 0; background: var(--accent); transition: width var(--t-slow) var(--ease-out); }

/* ---------- processing ---------- */
.jac-progress { max-width: 40rem; padding-top: var(--s7); padding-bottom: var(--s7); margin-inline: 0; }
.jac-progress .jac-rule { margin-top: var(--s3); }
.jac-steps { margin-top: var(--s4); display: grid; gap: .9rem; counter-reset: step; }
.jac-steps li { counter-increment: step; display: flex; align-items: baseline; gap: 1rem; color: var(--ink-3); transition: color var(--t-mid); }
.jac-steps li::before { content: counter(step); width: 1.6rem; flex-shrink: 0; font-size: .8125rem; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.jac-steps li.is-active { color: var(--ink); }
.jac-steps li.is-active::before { color: var(--cyan); }
.jac-steps li.is-done { color: var(--ink-2); }
.jac-steps li.is-done::before { content: "✓"; color: var(--ok); }
.jac-progress__note { margin-top: var(--s4); min-height: 3em; color: var(--ink-2); max-width: 34em; }
.jac-progress__note:empty { visibility: hidden; }

/* ---------- problem ---------- */
.jac-problem { max-width: 40rem; padding-top: var(--s7); padding-bottom: var(--s6); margin-inline: 0; }
.jac-problem .lede { margin: var(--s2) 0 var(--s4); }

/* ---------- result ---------- */
.jac-result { padding-top: var(--s6); }
.jac-score { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; row-gap: var(--s5); padding-bottom: var(--s5); border-bottom: 1px solid var(--line); }
.jac-score__main { grid-column: 1 / span 5; }
.jac-cats { grid-column: 7 / span 6; align-self: end; }
.jac-result__title { font-size: .95rem; font-weight: 700; letter-spacing: -.01em; }
.jac-score__job { margin-top: .25rem; color: var(--ink-2); font-size: .95rem; overflow-wrap: anywhere; }
.jac-score__value { margin-top: var(--s3); font-size: clamp(5rem, 3rem + 7vw, 9rem); line-height: .9; letter-spacing: -.06em; font-variant-numeric: tabular-nums; }
.jac-score__max { font-size: .3em; letter-spacing: -.02em; color: var(--ink-3); margin-left: .15em; }
.jac-score__band { margin-top: var(--s2); font-size: 1.15rem; }
.jac-rule--score { margin-top: var(--s2); max-width: 26rem; }
.jac-score__counts { margin-top: var(--s3); color: var(--ink-2); font-size: .95rem; }
.jac-disclaimer { margin-top: var(--s3); color: var(--ink-3); font-size: .8125rem; line-height: 1.5; max-width: 34em; }

.jac-cats li { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; row-gap: .45rem; padding: .85rem 0; border-top: 1px solid var(--line); font-size: .95rem; }
.jac-cats li:last-child { border-bottom: 1px solid var(--line); }
.jac-cats__score { color: var(--ink-2); font-variant-numeric: tabular-nums; }
.jac-cats .jac-rule { grid-column: 1 / -1; height: 3px; }
.jac-cats .jac-rule span { background: var(--ink-2); }
.jac-cats li.is-low .jac-rule span { background: var(--danger); }
.jac-cats li.is-full .jac-rule span { background: var(--ok); }

/* issues: each one is marked in the margin, like an editor's note */
.jac-issues { padding-top: var(--s5); max-width: 58rem; }
.jac-issues__list { margin-top: var(--s3); }
.jac-issue { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); column-gap: 1.5rem; padding: var(--s3) 0; border-top: 1px solid var(--line); }
.jac-issue__mark { font-family: var(--hand); font-size: 1.9rem; line-height: 1; color: var(--ink-2); transform: rotate(-4deg); padding-top: .15rem; }
.jac-issue--critical .jac-issue__mark { color: var(--danger); }
.jac-issue--warning .jac-issue__mark { color: var(--warn); }
.jac-issue__kind { font-size: .8125rem; color: var(--ink-3); }
.jac-issue--critical .jac-issue__kind { color: var(--danger); }
.jac-issue--warning .jac-issue__kind { color: var(--warn); }
.jac-issue__title { margin-top: .2rem; font-size: 1.2rem; line-height: 1.3; letter-spacing: -.015em; font-weight: 700; }
.jac-issue__detail { margin-top: .5rem; color: var(--ink-2); max-width: 40em; }
.jac-issue__quotes { margin-top: .85rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.jac-issue__quotes q { quotes: "“" "”"; font-size: .9rem; padding: .3rem .6rem; border-left: 2px solid var(--line-2); background: rgba(174, 190, 230, .05); color: var(--ink); overflow-wrap: anywhere; }
.jac-issue--critical .jac-issue__quotes q { border-left-color: var(--danger); }
.jac-issue--warning .jac-issue__quotes q { border-left-color: var(--warn); }
.jac-issue__fix { margin-top: .85rem; font-size: .95rem; color: var(--ink); max-width: 40em; }
.jac-issue__fix::before { content: "Fix: "; font-weight: 700; }
.jac-issues__none { margin-top: var(--s3); color: var(--ok); }

/* locked part */
.jac-locked { position: relative; margin-top: var(--s5); border-top: 1px solid var(--line); }
.jac-locked__ghost { display: grid; gap: 1.1rem; padding: var(--s4) 0; filter: blur(3px); opacity: .5; pointer-events: none; user-select: none; }
.jac-locked__ghost span { display: block; height: .8rem; border-radius: 2px; background: var(--line-2); }
.jac-locked__ghost span:nth-child(3n+1) { width: 92%; }
.jac-locked__ghost span:nth-child(3n+2) { width: 78%; }
.jac-locked__ghost span:nth-child(3n) { width: 58%; }
.jac-locked__ghost span:nth-child(4) { height: 1.2rem; width: 40%; margin-top: 1rem; }

.jac-locked__panel {
  position: relative; margin-top: calc(-1 * var(--s6)); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem;
  padding: var(--s4); border: 1px solid var(--line-2); border-radius: 4px; background: var(--panel);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.jac-locked__copy { grid-column: 1 / span 5; }
.jac-locked__what { margin-top: var(--s2); color: var(--ink-2); }
.jac-locked__matcher { margin-top: var(--s2); color: var(--ink-2); font-size: .9rem; padding-left: 1rem; border-left: 2px solid var(--cyan); }
.jac-signup { grid-column: 7 / span 6; }
.jac-signup__row { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }
.jac-check { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; margin-top: .9rem; font-size: .9rem; color: var(--ink-2); }
.jac-check input { width: 1.15rem; height: 1.15rem; margin: .2rem 0 0; accent-color: var(--cyan); cursor: pointer; }
.jac-check a { color: var(--ink); }
.jac-check + .field__err { margin-left: 1.9rem; }
.jac-required { margin: 1rem 0 1.25rem; font-size: .8125rem; color: var(--ink-3); }
.jac-signup > .btn { width: 100%; }
.jac-signup .form__status { margin-top: 1.25rem; }

.jac-again { margin-top: var(--s5); }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
  .jac-intro__copy, .jac-note { grid-column: 1 / -1; }
  .jac-note { margin-top: var(--s3); }
  .jac-panel__ad, .jac-panel__settings { grid-column: 1 / -1; }
  .jac-panel__settings { margin-top: var(--s4); }
  .jac-score__main, .jac-cats { grid-column: 1 / -1; }
  .jac-locked__copy, .jac-signup { grid-column: 1 / -1; }
  .jac-signup { margin-top: var(--s4); }
}
@media (max-width: 720px) {
  .jac-get__list { grid-template-columns: 1fr; }
  .jac-get__list li + li { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
  .jac-panel textarea { min-height: 16rem; }
  .jac-issue { grid-template-columns: 1fr; row-gap: .4rem; }
  .jac-issue__mark { font-size: 1.6rem; }
  .jac-locked__panel { padding: var(--s3) 1.25rem; margin-top: calc(-1 * var(--s5)); }
  .jac-signup__row { grid-template-columns: 1fr; }
}

/* ---------- notices ---------- */
.jac-notice { margin-bottom: var(--s3); padding: 1rem 1.25rem; border-left: 2px solid var(--warn); background: rgba(242, 196, 109, .06); color: var(--ink); max-width: 46rem; }

/* ---------- full report ---------- */
.jac-rule--loading { margin-top: var(--s3); }
.jac-rule--loading span { width: 30%; animation: jac-load 1.4s var(--ease-inout) infinite; }
@keyframes jac-load { 0% { transform: translateX(-100%); } 100% { transform: translateX(340%); } }
.jac-print-meta { display: none; }

.jac-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; padding: var(--s3) 0; border-bottom: 1px solid var(--line); }
.jac-copied { font-size: .875rem; color: var(--ok); }

.jac-block { padding-top: var(--s6); }
.jac-h2 { font-size: clamp(1.8rem, 1.2rem + 2vw, 3rem); line-height: 1.05; letter-spacing: -.035em; font-weight: 400; }
.jac-block__intro { margin-top: var(--s2); color: var(--ink-2); max-width: 40em; }
.jac-ph { background: rgba(242, 196, 109, .14); color: var(--warn); padding: 0 .2em; border-radius: 2px; }

.jac-cat { margin-top: var(--s5); max-width: 58rem; }
[tabindex="-1"]:focus { outline: none; }
.jac-cat__head { break-after: avoid; display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: .75rem; }
.jac-cat__head h3 { font-size: 1.15rem; font-weight: 700; letter-spacing: -.01em; }
.jac-cat__head span { color: var(--ink-2); font-variant-numeric: tabular-nums; }

.jac-writing { margin-top: var(--s3); padding: 1rem 1.25rem; border-left: 2px solid var(--cyan); background: rgba(106, 219, 255, .04); max-width: 46rem; }

.jac-compare { margin-top: var(--s4); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 1.5rem; }
.jac-tabs { display: none; }
.jac-pane--original { grid-column: 1 / span 5; order: 1; }
.jac-pane--improved { grid-column: 6 / span 7; order: 2; padding-left: 1.5rem; border-left: 1px solid var(--line); }
.jac-pane__label { font-size: .875rem; font-weight: 400; color: var(--ink-3); margin-bottom: var(--s2); }
.jac-original { white-space: pre-wrap; overflow-wrap: anywhere; font-size: .9rem; line-height: 1.6; color: var(--ink-3); }
.jac-improved h3 { font-size: 1.6rem; line-height: 1.15; letter-spacing: -.025em; font-weight: 400; overflow-wrap: anywhere; }
.jac-improved h4 { margin-top: var(--s3); font-size: 1rem; font-weight: 700; }
.jac-improved p { margin-top: .6rem; color: var(--ink-2); max-width: 40em; }
.jac-improved ul { margin-top: .6rem; list-style: disc; padding-left: 1.2rem; color: var(--ink-2); }
.jac-improved li + li { margin-top: .3rem; }

.jac-changes { margin-top: var(--s5); max-width: 58rem; }
.jac-changes__list { margin-top: var(--s2); }
.jac-changes__list li { padding: .85rem 0; border-top: 1px solid var(--line); }
.jac-changes__list strong { display: block; font-weight: 700; }
.jac-changes__list span { color: var(--ink-2); font-size: .95rem; }

.jac-criteria { margin-top: var(--s4); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); margin-bottom: var(--s3); }
.jac-criteria > div { padding: var(--s3) 1.5rem var(--s3) 0; }
.jac-criteria > div + div { padding-left: 1.5rem; border-left: 1px solid var(--line); }
.jac-criteria h3 { font-size: 1rem; font-weight: 700; }
.jac-criteria ul { margin-top: .75rem; list-style: disc; padding-left: 1.1rem; color: var(--ink-2); font-size: .95rem; }
.jac-criteria li + li { margin-top: .4rem; }
.jac-criteria .muted { list-style: none; margin-left: -1.1rem; }

.jac-cta { margin-top: var(--s6); padding: var(--s4); border: 1px solid var(--line-2); border-radius: 4px; background: var(--panel); max-width: 58rem; }
.jac-cta p { margin: var(--s2) 0 var(--s3); color: var(--ink-2); max-width: 40em; }
.jac-disclaimer--end { margin-top: var(--s5); }

@media (max-width: 860px) {
  .jac-tabs { display: flex; grid-column: 1 / -1; gap: .25rem; border-bottom: 1px solid var(--line); margin-bottom: var(--s3); }
  .jac-tabs button { background: none; border: 0; border-bottom: 2px solid transparent; padding: .75rem .25rem; margin-right: 1rem; color: var(--ink-2); cursor: pointer; font-size: .95rem; }
  .jac-tabs button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--cyan); }
  .jac-pane { grid-column: 1 / -1; display: none; }
  .jac-pane.is-active { display: block; }
  .jac-pane--improved { padding-left: 0; border-left: 0; }
  .jac-pane__label { display: none; }
  .jac-criteria { grid-template-columns: 1fr; }
  .jac-criteria > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--line); }
}

/* free CV test */
.jac-matcher { margin-top: var(--s6); max-width: 58rem; padding: var(--s4); border: 1px solid rgba(106, 219, 255, .45); border-radius: 4px; background: rgba(106, 219, 255, .035); }
.jac-matcher__kicker { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--cyan); margin-bottom: .6rem; }
.jac-matcher > p:not([class]) { margin-top: var(--s2); color: var(--ink-2); max-width: 40em; }
.jac-matcher__tip { margin-top: .75rem; font-size: .9rem; color: var(--ink); max-width: 40em; }
.jac-matcher__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: var(--s3); }
.btn--accent { border-color: var(--cyan); color: var(--ink); background: rgba(106, 219, 255, .08); }
.btn--accent:hover { background: rgba(106, 219, 255, .16); }
.jac-matcher__small { margin-top: 1rem; font-size: .8125rem; color: var(--ink-3); }
.jac-matcher:not([hidden]) + .jac-cta { margin-top: var(--s4); }

/* ---------- print / PDF ---------- */
@media print {
  @page { margin: 16mm 14mm; }
  .jac-report { background: #fff; color: #111; font-size: 10.5pt; }
  .jac-report .legal-header, .jac-report .footer, .jac-report .skip, .jac-actions, .jac-tabs, .jac-cta, .jac-matcher,
  .jac-report .btn, .jac-pane--original, .jac-writing, .jac-rule { display: none !important; }
  .jac-report * { color: #111 !important; background: none !important; box-shadow: none !important; }
  .jac-report .wrap { padding-inline: 0; max-width: none; }
  .jac-result { padding-top: 0; }
  .jac-print-meta { display: block; margin-top: .5rem; font-size: 9pt; }
  .jac-score__value { font-size: 44pt; }
  .jac-score { border-bottom: 1px solid #ccc; }
  .jac-cats li { border-color: #ddd !important; }
  .jac-block { padding-top: 18pt; }
  .jac-h2 { font-size: 18pt; }
  .jac-issue, .jac-changes__list li, .jac-criteria > div { border-color: #ddd !important; break-inside: avoid; }
  /* No points in the PDF: hide the margin marks and let each finding use the full width */
  .jac-issue__mark { display: none !important; }
  .jac-issue { grid-template-columns: 1fr; }
  .jac-issue--critical .jac-issue__kind { color: #B00020 !important; }
  .jac-issue__quotes q { border-left-color: #999 !important; }
  .jac-ph { background: #FFF1CC !important; }
  .jac-compare { display: block; }
  .jac-pane--improved { padding-left: 0; border-left: 0; display: block !important; }
  .jac-criteria { grid-template-columns: repeat(3, 1fr); }
  .jac-score__main { grid-column: 1 / span 6; }
  .jac-cats { grid-column: 7 / span 6; align-self: start; }
  .jac-cat__head, .jac-improved h4, .jac-criteria h3 { break-after: avoid; }
  a { text-decoration: none; }
}
