/* Public tools only. Shared brand tokens and fonts come from dossier.css. */
.tm-tools { --tm-radius: 20px; }
.tm-tools [hidden] { display: none !important; }
.tm-tools .tm-shell { width: min(1240px, calc(100% - 80px)); margin-inline: auto; }
.tm-tools .tm-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 96px; border-bottom: 1px solid var(--dc-line); }
.tm-tools .tm-header a { color: var(--dc-text); }
.tm-tools .tm-header nav { display: flex; align-items: center; gap: 30px; margin-left: auto; font-size: 14px; }
.tm-tools .tm-header nav a[aria-current] { color: var(--dc-accent); }
.tm-tools .tm-header__actions { display: flex; align-items: center; gap: 12px; }
.tm-tools .tm-header__login { border: 1px solid var(--dc-line); border-radius: 999px; padding: 10px 20px; font-size: 13px; white-space: nowrap; }
.tm-tools .tm-header__login:hover { border-color: var(--dc-accent); }
.tm-tools .tm-header__login svg { width: 14px; height: 14px; vertical-align: middle; margin-left: 6px; }
.tm-tools a:focus-visible, .tm-tools button:focus-visible, .tm-tools summary:focus-visible { outline: 2px solid var(--dc-accent); outline-offset: 5px; }
.tm-tools .tm-skip { position: absolute; left: 20px; top: -100px; padding: 12px 20px; z-index: 200; background: var(--dc-card-solid); }
.tm-tools .tm-skip:focus { top: 12px; }
.tm-tools .tm-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-block: 28px 0; font-size: 12px; color: var(--dc-muted); list-style: none; }
.tm-tools .tm-breadcrumb a { color: var(--dc-muted); }
.tm-tools .tm-breadcrumb li + li::before { content: '/'; margin-right: 10px; color: var(--dc-faint); }
.tm-tools .tm-eyebrow { display: flex; align-items: center; gap: 10px; color: var(--dc-accent); font-family: var(--dc-font-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.tm-tools .tm-eyebrow::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.tm-tools .tm-hero { padding-block: 60px 44px; max-width: 970px; }
.tm-tools .tm-hero h1 { margin-top: 20px; font-family: var(--dc-font-display); font-size: clamp(30px, 3.6vw, 49px); font-weight: 600; line-height: 1.2; letter-spacing: -.04em; }
.tm-tools .tm-hero h1 span { color: var(--dc-accent); }
.tm-tools .tm-hero__lead { margin-top: 24px; max-width: 730px; font-size: 18px; line-height: 1.65; color: var(--dc-muted); }
.tm-tools .tm-hero__meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 24px; color: var(--dc-muted); font-size: 13px; }
.tm-tools .tm-hero__meta span { display: flex; align-items: center; gap: 8px; }
.tm-tools .tm-hero__meta svg { width: 15px; height: 15px; color: var(--dc-accent); }
.tm-tools .tm-hub-hero { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 64px; align-items: center; padding-block: 68px 58px; max-width: none; }
.tm-tools .tm-hub-hero h1 { font-size: clamp(32px, 4.2vw, 58px); }
.tm-tools .tm-quota-art { position: relative; border: 1px solid var(--dc-accent-border); border-radius: 50%; aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; background: radial-gradient(ellipse at center, var(--dc-accent-soft), transparent 70%); }
.tm-tools .tm-quota-art::before, .tm-tools .tm-quota-art::after { content: ''; position: absolute; inset: 16px; border: 1px dashed var(--dc-line); border-radius: 50%; }
.tm-tools .tm-quota-art::after { inset: -15px; border-style: solid; border-color: var(--dc-line-soft); }
.tm-tools .tm-quota-art strong { font-family: var(--dc-font-display); font-weight: 600; font-size: 82px; line-height: 1.2; color: var(--dc-accent); }
.tm-tools .tm-quota-art span { color: var(--dc-muted); font-size: 13px; }
.tm-tools .tm-section-label { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 22px; }
.tm-tools .tm-section-label h2 { font-size: 18px; font-weight: 600; }
.tm-tools .tm-section-label > span { color: var(--dc-muted); font-family: var(--dc-font-mono); font-size: 11px; }
.tm-tools .tm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tm-tools .tm-card { display: flex; flex-direction: column; min-width: 0; padding: 30px; border: 1px solid var(--dc-line); background: var(--dc-card); border-radius: var(--tm-radius); transition: border-color .2s, transform .2s; color: var(--dc-text); }
.tm-tools .tm-card:hover { border-color: var(--dc-accent-border); transform: translateY(-3px); color: var(--dc-text); }
.tm-tools .tm-card__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; }
.tm-tools .tm-icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 14px; background: var(--dc-accent-soft); color: var(--dc-accent); border: 1px solid var(--dc-accent-border); flex: none; }
.tm-tools .tm-icon svg { width: 24px; height: 24px; }
.tm-tools .tm-card__number { font: 12px var(--dc-font-mono); color: var(--dc-faint); }
.tm-tools .tm-card h3 { font-size: 23px; font-weight: 600; letter-spacing: -.02em; }
.tm-tools .tm-card p { color: var(--dc-muted); font-size: 15px; line-height: 1.65; margin-block: 12px 28px; }
.tm-tools .tm-card__bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--dc-line-soft); font-size: 13px; color: var(--dc-accent); }
.tm-tools .tm-card__bottom svg { width: 20px; height: 20px; }
.tm-tools .tm-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 32px; align-items: start; }
.tm-tools .tm-form-panel { border: 1px solid var(--dc-line); border-radius: var(--tm-radius); background: var(--dc-card); overflow: hidden; }
.tm-tools .tm-form-panel__header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 28px; border-bottom: 1px solid var(--dc-line-soft); }
.tm-tools .tm-form-panel__heading { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; }
.tm-tools .tm-form-panel__heading svg { width: 21px; height: 21px; color: var(--dc-accent); }
.tm-tools .tm-free-badge { padding: 4px 9px; border: 1px solid var(--dc-accent-border); border-radius: 5px; font: 10px var(--dc-font-mono); color: var(--dc-accent); white-space: nowrap; }
.tm-tools .tm-form { padding: 30px 28px 24px; }
.tm-tools .tm-form label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.tm-tools .tm-input-row { display: flex; align-items: stretch; gap: 10px; }
.tm-tools .tm-input { width: 100%; min-width: 0; border: 1px solid var(--dc-line); border-radius: 10px; padding: 15px 16px; background: var(--dc-bg); font-family: var(--dc-font-body); font-size: 16px; color: var(--dc-text); }
.tm-tools .tm-input::placeholder { color: var(--dc-faint); }
.tm-tools .tm-input:focus { outline: 2px solid var(--dc-accent-border); outline-offset: 2px; border-color: var(--dc-accent); }
.tm-tools .tm-input[aria-invalid='true'] { border-color: var(--dc-warn); }
.tm-tools .tm-submit { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 22px; border-radius: 10px; background: var(--dc-accent-deep); color: var(--dc-on-accent); font-size: 14px; font-weight: 600; font-family: inherit; white-space: nowrap; cursor: pointer; }
.tm-tools .tm-submit:hover:not(:disabled) { filter: brightness(1.1); }
.tm-tools .tm-submit:disabled { opacity: .55; cursor: not-allowed; }
.tm-tools .tm-submit svg { width: 18px; height: 18px; }
.tm-tools .tm-field-hint { margin-top: 10px; font-size: 12px; line-height: 1.65; color: var(--dc-muted); }
.tm-tools .tm-status { font-size: 13px; line-height: 1.65; margin-top: 16px; min-height: 21px; overflow-wrap: anywhere; }
.tm-tools .tm-status[data-kind='error'] { color: var(--dc-warn); }
.tm-tools .tm-status[data-kind='loading'] { color: var(--dc-accent); }
.tm-tools .tm-status[data-kind='loading']::before { display: inline-block; content: ''; width: 10px; height: 10px; margin-right: 8px; border: 1px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: tm-spin 1s linear infinite; }
.tm-tools .tm-secondary { display: inline-flex; margin-top: 10px; background: transparent; color: var(--dc-accent); border-bottom: 1px solid currentColor; font: inherit; font-size: 13px; cursor: pointer; padding: 4px 0; }
.tm-tools .tm-quota { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 16px 28px; border-top: 1px solid var(--dc-line-soft); color: var(--dc-muted); font-size: 12px; line-height: 1.6; }
.tm-tools .tm-quota svg { width: 16px; height: 16px; color: var(--dc-accent); flex: none; }
.tm-tools .tm-quota strong { color: var(--dc-text); font-weight: 600; }
.tm-tools .tm-aside { padding-block: 8px; }
.tm-tools .tm-aside h2 { font-size: 14px; margin-bottom: 18px; }
.tm-tools .tm-checklist { display: flex; flex-direction: column; gap: 15px; }
.tm-tools .tm-checklist li { display: flex; gap: 10px; align-items: start; font-size: 13px; line-height: 1.6; color: var(--dc-muted); }
.tm-tools .tm-checklist svg { width: 16px; height: 16px; margin-top: 3px; color: var(--dc-accent); flex: none; }
.tm-tools .tm-aside__note { border-top: 1px solid var(--dc-line); padding-top: 18px; margin-top: 24px; font-size: 12px; line-height: 1.7; color: var(--dc-muted); }
.tm-tools .tm-results { margin-top: 28px; border: 1px solid var(--dc-line); border-radius: var(--tm-radius); padding: 28px; background: var(--dc-card); overflow-wrap: anywhere; }
.tm-tools .tm-results:focus { outline: 2px solid var(--dc-accent-border); outline-offset: 4px; }
.tm-tools .tm-results__header { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.tm-tools .tm-results h2 { font-size: 20px; }
.tm-tools .tm-result-status { font-size: 11px; padding: 5px 9px; border: 1px solid var(--dc-accent-border); color: var(--dc-accent); border-radius: 6px; white-space: nowrap; }
.tm-tools .tm-result-status[data-partial='true'] { color: var(--dc-warn); border-color: var(--dc-warn-border); }
.tm-tools .tm-result-summary { color: var(--dc-muted); font-size: 14px; line-height: 1.7; }
.tm-tools .tm-result-list { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.tm-tools .tm-result-item { border-top: 1px solid var(--dc-line-soft); padding-top: 15px; font-size: 14px; line-height: 1.65; }
.tm-tools .tm-result-item h3 { font-size: 15px; font-weight: 600; margin-bottom: 6px; }
.tm-tools .tm-result-item p { color: var(--dc-muted); margin-top: 4px; }
.tm-tools .tm-result-item a { display: inline-block; margin-top: 6px; }
.tm-tools .tm-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.tm-tools .tm-fact { padding: 16px; border: 1px solid var(--dc-line-soft); border-radius: 10px; }
.tm-tools .tm-fact dt { font-size: 12px; color: var(--dc-muted); margin-bottom: 7px; }
.tm-tools .tm-fact dd { margin: 0; font-size: 14px; }
.tm-tools .tm-result-note { font-size: 12px; line-height: 1.7; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--dc-line-soft); color: var(--dc-muted); }
.tm-tools .tm-section { margin-top: 68px; padding-top: 40px; border-top: 1px solid var(--dc-line); }
.tm-tools .tm-section h2 { font-size: 26px; letter-spacing: -.025em; font-weight: 600; line-height: 1.35; }
.tm-tools .tm-section__lead { max-width: 780px; margin-top: 16px; color: var(--dc-muted); font-size: 15px; line-height: 1.8; }
.tm-tools .tm-explainer { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px; margin-top: 32px; }
.tm-tools .tm-explainer__number { font: 11px var(--dc-font-mono); color: var(--dc-accent); margin-bottom: 14px; }
.tm-tools .tm-explainer h3 { font-size: 16px; font-weight: 600; margin-bottom: 10px; }
.tm-tools .tm-explainer p { font-size: 14px; line-height: 1.75; color: var(--dc-muted); }
.tm-tools .tm-faq { margin-top: 26px; }
.tm-tools .tm-faq details { border-bottom: 1px solid var(--dc-line-soft); }
.tm-tools .tm-faq summary { list-style: none; position: relative; padding: 22px 36px 22px 0; cursor: pointer; font-size: 15px; font-weight: 500; }
.tm-tools .tm-faq summary::-webkit-details-marker { display: none; }
.tm-tools .tm-faq summary::after { position: absolute; right: 0; content: '+'; font-size: 22px; font-weight: 300; color: var(--dc-accent); line-height: 1; }
.tm-tools .tm-faq details[open] summary::after { content: '−'; }
.tm-tools .tm-faq p { max-width: 850px; padding-bottom: 24px; color: var(--dc-muted); font-size: 14px; line-height: 1.8; }
.tm-tools .tm-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.tm-tools .tm-related a { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 22px; border: 1px solid var(--dc-line); border-radius: 12px; color: var(--dc-text); font-size: 14px; line-height: 1.5; }
.tm-tools .tm-related a:hover { border-color: var(--dc-accent-border); }
.tm-tools .tm-related svg { width: 18px; height: 18px; flex: none; color: var(--dc-accent); }
.tm-tools .tm-cta { display: flex; justify-content: space-between; align-items: center; gap: 32px; margin-top: 64px; padding: 32px; background: var(--dc-accent-soft); border: 1px solid var(--dc-accent-border); border-radius: var(--tm-radius); }
.tm-tools .tm-cta h2 { font-size: 21px; font-weight: 600; }
.tm-tools .tm-cta p { margin-top: 10px; font-size: 14px; line-height: 1.7; color: var(--dc-muted); max-width: 650px; }
.tm-tools .tm-cta a { flex: none; }
.tm-tools .tm-cta .dc-btn svg { width: 18px; height: 18px; flex: none; }
.tm-tools .tm-footer { margin-top: 76px; padding-block: 32px; border-top: 1px solid var(--dc-line); display: grid; grid-template-columns: 1fr auto; gap: 28px; color: var(--dc-muted); font-size: 12px; line-height: 1.75; }
.tm-tools .tm-footer__brand { color: var(--dc-text); font: 700 15px var(--dc-font-display); margin-bottom: 12px; }
.tm-tools .tm-footer nav { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: flex-end; max-width: 520px; align-content: start; }
.tm-tools .tm-footer a { color: var(--dc-muted); }
.tm-tools .tm-footer a:hover { color: var(--dc-accent); }
.tm-tools .tm-footer__legal { grid-column: 1 / -1; border-top: 1px solid var(--dc-line-soft); padding-top: 20px; font-size: 11px; }
@keyframes tm-spin { to { transform: rotate(360deg); } }
@media (max-width: 1000px) {
  .tm-tools .tm-shell { width: calc(100% - 48px); }
  .tm-tools .tm-hub-hero { grid-template-columns: minmax(0, 1fr) 220px; gap: 36px; }
  .tm-tools .tm-workspace { grid-template-columns: minmax(0, 1fr) 240px; gap: 22px; }
  .tm-tools .tm-input-row { flex-direction: column; }
  .tm-tools .tm-explainer { gap: 24px; }
}
@media (max-width: 700px) {
  .tm-tools .tm-shell { width: calc(100% - 36px); }
  .tm-tools .tm-header { min-height: 80px; gap: 12px; flex-wrap: wrap; padding-block: 16px; }
  .tm-tools .tm-header .dc-logo { font-size: 17px; }
  .tm-tools .tm-header nav { order: 3; flex-basis: 100%; gap: 24px; font-size: 12px; }
  .tm-tools .tm-header__actions { margin-left: auto; gap: 8px; }
  .tm-tools .tm-header__login { font-size: 12px; padding: 10px 12px; }
  .tm-tools .tm-header .header__prefs__btn { min-width: 38px; min-height: 38px; }
  .tm-tools .tm-hero, .tm-tools .tm-hub-hero { padding-block: 36px 30px; }
  .tm-tools .tm-hub-hero { grid-template-columns: minmax(0, 1fr); }
  .tm-tools .tm-quota-art { display: none; }
  .tm-tools .tm-hero h1, .tm-tools .tm-hub-hero h1 { font-size: clamp(27px, 7.2vw, 42px); line-height: 1.3; }
  .tm-tools .tm-hero__lead { font-size: 16px; margin-top: 18px; }
  .tm-tools .tm-grid, .tm-tools .tm-workspace, .tm-tools .tm-explainer, .tm-tools .tm-related { grid-template-columns: minmax(0, 1fr); }
  .tm-tools .tm-section-label { align-items: start; }
  .tm-tools .tm-section-label > span { max-width: 105px; text-align: right; }
  .tm-tools .tm-card { padding: 24px; }
  .tm-tools .tm-card h3 { font-size: 21px; }
  .tm-tools .tm-aside { border: 1px solid var(--dc-line-soft); border-radius: 12px; padding: 22px; }
  .tm-tools .tm-form-panel__header { padding: 18px 20px; gap: 12px; }
  .tm-tools .tm-form-panel__heading { font-size: 13px; gap: 8px; }
  .tm-tools .tm-form { padding: 24px 20px 20px; }
  .tm-tools .tm-quota { padding: 16px 20px; }
  .tm-tools .tm-results { padding: 22px 20px; }
  .tm-tools .tm-results__header { flex-wrap: wrap; }
  .tm-tools .tm-facts { grid-template-columns: minmax(0, 1fr); }
  .tm-tools .tm-section { margin-top: 44px; padding-top: 30px; }
  .tm-tools .tm-section h2 { font-size: 23px; }
  .tm-tools .tm-explainer { gap: 26px; }
  .tm-tools .tm-explainer__number { margin-bottom: 8px; }
  .tm-tools .tm-cta { flex-direction: column; align-items: stretch; padding: 24px; margin-top: 44px; gap: 22px; }
  .tm-tools .tm-cta .dc-btn { padding: 15px 22px; font-size: 14px; }
  .tm-tools .tm-footer { grid-template-columns: minmax(0, 1fr); margin-top: 50px; }
  .tm-tools .tm-footer nav { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .tm-tools *, .tm-tools *::before, .tm-tools *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
