/* Functional tools lab: editorial shell with dense, accessible working surfaces. */
.tools-page { background: var(--ap-paper); }
.tools-page main { overflow: clip; }
.tools-page .container,
.tool-container { width: min(calc(100% - 48px),1120px) !important; max-width: 1120px !important; margin-inline: auto !important; }
.tools-hero { position: relative; min-height: 76svh; display: grid; align-items: end; overflow: hidden; padding: 145px 0 82px !important; background: radial-gradient(circle at 82% 20%,rgba(221,168,95,.14),transparent 30%),var(--ap-navy-deep) !important; color: #fff; text-align: left !important; }
.tools-hero::before { content: ""; position: absolute; inset: 0; opacity: .55; background-image: linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size: 72px 72px; }
.tools-hero::after { content: "06"; position: absolute; right: -.05em; bottom: -.22em; color: rgba(255,255,255,.035); font: 600 clamp(16rem,34vw,34rem)/.8 var(--ap-heading); letter-spacing: -.1em; }
.tools-hero .container { position: relative; z-index: 1; }
.tools-hero h1 { max-width: 9ch; margin: 0 0 25px !important; color: #fff; font: 600 clamp(4.2rem,8vw,8.3rem)/.89 var(--ap-heading) !important; letter-spacing: -.07em; }
.tools-hero h1 .highlight { color: var(--ap-gold-bright) !important; font-style: italic; font-weight: 500; }
.tools-hero p { max-width: 60ch !important; margin: 0 !important; color: rgba(255,255,255,.6) !important; font-size: 1.05rem !important; line-height: 1.8; }
.tool-nav { display: flex !important; justify-content: flex-start !important; gap: 0 !important; margin-top: 35px !important; border-top: 1px solid var(--ap-dark-line); border-left: 1px solid var(--ap-dark-line); }
.tool-nav a { min-height: 45px; display: inline-flex !important; align-items: center; padding: 0 14px !important; border: 0 !important; border-right: 1px solid var(--ap-dark-line) !important; border-bottom: 1px solid var(--ap-dark-line) !important; border-radius: 0 !important; background: transparent !important; color: rgba(255,255,255,.7) !important; font-size: .68rem !important; letter-spacing: .04em; }
.tool-nav a:hover { background: rgba(255,255,255,.07) !important; color: #fff !important; transform: none !important; }

.tools-section { position: relative; padding: clamp(100px,11vw,155px) 0 !important; background: var(--ap-paper) !important; }
.tools-section:nth-of-type(odd) { background: rgba(255,255,255,.3) !important; }
.tools-section::after { content: attr(data-market-index); position: absolute; right: clamp(18px,4vw,64px); top: 45px; z-index: 0; color: var(--ap-navy); font: 600 clamp(10rem,20vw,19rem)/.75 var(--ap-heading); letter-spacing: -.09em; opacity: .025; pointer-events: none; }
.tool-container { position: relative; z-index: 1; }
.tool-header { display: grid !important; grid-template-columns: minmax(0,1.15fr) minmax(260px,.85fr); align-items: end; gap: 24px 70px; margin-bottom: 50px !important; text-align: left !important; }
.tool-header h2 { max-width: 11ch; margin: 0 !important; color: var(--ap-navy) !important; font: 600 clamp(3rem,5.7vw,5.6rem)/.94 var(--ap-heading) !important; letter-spacing: -.055em; text-wrap: balance; }
.tool-header p { max-width: 48ch; margin: 0 0 8px !important; color: var(--ap-muted) !important; font-size: .96rem !important; line-height: 1.8; }
.tool-card { padding: clamp(22px,4vw,46px) !important; border: 1px solid var(--ap-line) !important; border-radius: 0 !important; background: rgba(255,253,250,.72) !important; box-shadow: 0 22px 70px rgba(13,28,46,.07) !important; }

.tool-textarea,
.cite-field input,
.cite-field select,
.grade-row input { width: 100%; border: 1px solid rgba(30,58,95,.25) !important; border-radius: 3px !important; background: rgba(255,255,255,.75) !important; color: var(--ap-ink) !important; font-family: var(--ap-body) !important; transition: border-color .2s ease,box-shadow .2s ease,background .2s ease !important; }
.tool-textarea { min-height: 210px !important; padding: 17px !important; font-size: .94rem !important; line-height: 1.7; }
.cite-field input,
.cite-field select,
.grade-row input { min-height: 48px; padding: 0 14px !important; }
.tool-textarea:focus,
.cite-field input:focus,
.cite-field select:focus,
.grade-row input:focus { outline: none !important; border-color: var(--ap-gold) !important; background: #fff !important; box-shadow: 0 0 0 3px rgba(184,119,47,.12) !important; }
.cite-field label { color: var(--ap-navy) !important; font-size: .68rem !important; font-weight: 750 !important; letter-spacing: .08em; text-transform: uppercase; }
.cite-form { gap: 18px !important; }
.cite-row { gap: 18px !important; }

.cite-btn,
.grade-add { min-height: 48px; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 21px !important; border: 1px solid var(--ap-navy) !important; border-radius: 4px !important; background: var(--ap-navy) !important; color: #fff !important; box-shadow: none !important; font-size: .8rem !important; font-weight: 750 !important; cursor: pointer; transition: transform .25s var(--ap-ease),background .2s ease,border-color .2s ease !important; }
.cite-btn:hover,
.grade-add:hover { transform: translateY(-2px) !important; border-color: var(--ap-gold) !important; background: var(--ap-gold) !important; }
.grade-add { border-style: dashed !important; background: transparent !important; color: var(--ap-navy) !important; }
.grade-add:hover { color: #fff !important; }

.tool-results,
.grade-results { gap: 0 !important; border-top: 1px solid var(--ap-line); border-left: 1px solid var(--ap-line); }
.tool-stat,
.grade-result-card { min-height: 128px; display: flex; flex-direction: column; justify-content: center; padding: 18px !important; border: 0 !important; border-right: 1px solid var(--ap-line) !important; border-bottom: 1px solid var(--ap-line) !important; border-radius: 0 !important; background: rgba(246,242,233,.62) !important; box-shadow: none !important; transform: none !important; text-align: left !important; }
.tool-stat .stat-value,
.grade-result-card .grade-val { color: var(--ap-gold) !important; font: 600 clamp(1.7rem,3vw,2.5rem)/1 var(--ap-heading) !important; letter-spacing: -.04em; }
.tool-stat .stat-label,
.grade-result-card .grade-lbl { color: var(--ap-muted) !important; font-size: .58rem !important; font-weight: 700; letter-spacing: .1em !important; }

.cite-output,
.tool-output { margin-top: 24px !important; padding: 24px !important; border: 1px solid var(--ap-line) !important; border-radius: 0 !important; background: var(--ap-paper-deep) !important; color: var(--ap-ink) !important; }
.cite-style-tabs { gap: 0 !important; margin-bottom: 16px !important; }
.cite-tab { min-height: 39px; padding: 0 14px !important; border: 1px solid var(--ap-line) !important; border-radius: 0 !important; background: transparent !important; color: var(--ap-muted) !important; }
.cite-tab + .cite-tab { margin-left: -1px; }
.cite-tab.active { border-color: var(--ap-navy) !important; background: var(--ap-navy) !important; color: #fff !important; }
.cite-result { min-height: 100px; padding: 22px 105px 22px 22px !important; border: 0 !important; border-left: 2px solid var(--ap-gold) !important; border-radius: 0 !important; background: rgba(255,255,255,.58) !important; color: var(--ap-ink) !important; }
.cite-copy { top: 14px !important; right: 14px !important; min-height: 36px; padding: 0 12px !important; border-radius: 3px !important; background: var(--ap-navy) !important; }

.grade-row { gap: 10px !important; }
.grade-remove { border: 1px solid rgba(164,52,52,.25) !important; border-radius: 3px !important; background: transparent !important; color: #a43434 !important; }
.grade-actions { align-items: center; }
.tool-help { color: var(--ap-muted) !important; }
.tool-help a { color: var(--ap-gold) !important; text-underline-offset: 3px; }
.tool-output h3 { color: var(--ap-navy) !important; font: 600 1.7rem/1.15 var(--ap-heading) !important; }
.tool-output strong,
.timeline-date { color: var(--ap-navy) !important; }
.tool-output-grid,
.check-results { gap: 0 !important; border-top: 1px solid var(--ap-line); border-left: 1px solid var(--ap-line); }
.mini-stat,
.check-card,
.timeline-item,
.outline-item { border: 0 !important; border-right: 1px solid var(--ap-line) !important; border-bottom: 1px solid var(--ap-line) !important; border-radius: 0 !important; background: rgba(255,255,255,.5) !important; color: var(--ap-ink) !important; }
.mini-stat b { color: var(--ap-gold) !important; font-family: var(--ap-heading) !important; }
.outline-item { border-left: 2px solid var(--ap-gold) !important; }
.outline-item h4,
.check-card h4 { color: var(--ap-navy) !important; }
.check-card ul { color: var(--ap-muted) !important; }

.tools-page .contact { padding: clamp(110px,12vw,170px) 0; }

@media (max-width: 800px) {
  .tools-page .container,.tool-container { width: min(calc(100% - 32px),1120px) !important; }
  .tools-hero { min-height: auto; padding: 125px 0 74px !important; }
  .tool-nav { display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tool-header { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 560px) {
  .tools-hero h1 { font-size: clamp(3.6rem,17vw,5.2rem) !important; }
  .tool-nav { grid-template-columns: 1fr; }
  .tools-section { padding: 85px 0 105px !important; }
  .tool-header h2 { font-size: clamp(2.8rem,13vw,4.2rem) !important; }
  .tool-card { padding: 18px !important; }
  .tool-results { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .tool-stat { min-height: 105px; }
  .cite-row { grid-template-columns: 1fr !important; }
  .grade-row { grid-template-columns: 1fr 1fr !important; }
  .grade-row input:first-child { grid-column: 1 / -1; }
  .grade-results,.tool-output-grid,.check-results { grid-template-columns: 1fr !important; }
  .cite-result { padding: 64px 16px 18px !important; overflow-wrap: anywhere; }
  .cite-copy { left: 14px; right: auto !important; }
  .timeline-item { grid-template-columns: 1fr !important; }
}
