/* Interactive tools use the project detail layout and shared theme variables. */
.free-kicker { display: block; font-size: 13px; letter-spacing: .22em; text-transform: uppercase; font-weight: 700; color: var(--fg); margin-bottom: 10px; }
.free-title { font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 900; margin: 0 0 10px; }
.free-sub { color: var(--muted); font-size: 1.15rem; max-width: 34em; margin-bottom: 30px; }
.free-list { display: flex; flex-direction: column; gap: 18px; max-width: 860px; }
.free-card {
  display: block; padding: 22px 26px; border: 1px solid var(--line); border-radius: 10px; background: var(--card);
  color: var(--fg); text-decoration: none; transition: border-color .25s, transform .25s;
}
.free-card:hover { border-color: var(--accent); transform: translateY(-2px); color: var(--fg); text-decoration: none; }
.free-card h3 { font-size: 1.25rem; font-weight: 900; margin: 0; }
.free-card p { margin: 8px 0 0; color: var(--muted); line-height: 1.65; font-size: 15.5px; }
.free-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.free-badge { font-size: 11px; font-weight: 800; letter-spacing: .1em; padding: 3px 9px; border-radius: 20px; background: var(--accent); color: #fff; }

/* Tool detail form and result panels */
.tool-detail-layout { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 20px; }
.tool-detail-main { display: grid; width: 100%; gap: 24px; }
.tool-detail-header { margin-bottom: 20px; }
.tool-form-panel { min-width: 0; }
.tool-form-panel h2 { margin-bottom: 18px; }
.tool-related { margin-top: 30px; }
.tool-detail-page .project-detail-footer { flex-wrap: wrap; }
.tool-detail-page .ft-result { min-width: 0; }
.tool-detail-page .ft-result[hidden] { display: none; }
.ft-back a { color: var(--muted); font-size: 14px; }
.ft-intro { color: var(--muted); font-size: 1.05rem; margin-bottom: 26px; }
.ft-form { margin-bottom: 10px; }
.ft-field { margin-bottom: 20px; }
.ft-field label { display: block; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; margin-bottom: 8px; }
.ft-field input, .ft-field textarea, .ft-field select {
  width: 100%; background: var(--card); color: var(--fg); border: 1px solid var(--line); border-radius: 8px;
  padding: 12px 14px; font-size: 16px; font-family: inherit; line-height: 1.5;
}
.ft-select-wrap { position: relative; display: block; width: 100%; }
.ft-field select {
  min-height: 50px;
  padding-right: 44px;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  color-scheme: dark;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.ft-select-wrap::after {
  position: absolute;
  top: 50%;
  right: 18px;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  content: "";
  pointer-events: none;
  transform: translateY(-70%) rotate(45deg);
}
.ft-field select option,
.ft-field select option:checked {
  background-color: #191919;
  color: #fff;
}
html[data-theme="light"] .ft-field select { color-scheme: light; }
html[data-theme="light"] .ft-field select option,
html[data-theme="light"] .ft-field select option:checked {
  background-color: #fff;
  color: #171717;
}
.ft-field textarea { resize: vertical; min-height: 90px; }
.ft-field input:focus, .ft-field textarea:focus, .ft-field select:focus { outline: none; border-color: var(--accent); }
.ft-field input:focus-visible, .ft-field textarea:focus-visible, .ft-field select:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent); }
.ft-status { margin-left: 14px; color: var(--muted); font-size: 14px; }
.ft-note { margin-top: 28px; font-size: 13.5px; color: var(--muted); }

.ft-result { margin-top: 30px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); padding: 24px 26px; }
.ft-result[hidden] { display: none; }
.ft-result h3 { font-size: 1.2rem; font-weight: 900; margin: 0 0 14px; }
.ft-text { white-space: pre-wrap; word-wrap: break-word; line-height: 1.8; font-size: 16.5px; }
.ft-error { color: #ff6b6b; font-weight: 700; }
html[data-theme="light"] .ft-error { color: #c0152b; }
.ft-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ft-btn { cursor: pointer; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 9px 18px; border-radius: 30px;
  border: 1px solid var(--line); background: transparent; color: var(--fg); text-decoration: none; }
.ft-btn:hover { border-color: var(--accent); color: var(--fg); text-decoration: none; }
.ft-meta { color: var(--muted); font-size: 13.5px; margin: 0 0 14px; }

.ft-check { border-top: 1px solid var(--line); padding: 16px 0; }
.ft-check:first-of-type { border-top: 0; padding-top: 0; }
.ft-check-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.ft-check-head strong { font-size: 16.5px; }
.ft-pill { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 3px 10px; border-radius: 20px; color: #fff; }
.ft-pill.ok { background: #1f9d55; } .ft-pill.warn { background: #c98a00; } .ft-pill.fail { background: #d63447; } .ft-pill.info { background: #3b82c4; }
.ft-check ul { margin: 10px 0 0; padding-left: 18px; color: var(--muted); font-size: 14.5px; line-height: 1.7; word-break: break-word; }
.ft-check code { font-size: 13px; }

.ft-sublist { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 28px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 14px; }
.ft-sublist li { padding: 3px 0; break-inside: avoid; word-break: break-all; }
.ft-verification { margin: 18px 0 0; }
.ft-verification dt { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.ft-verification dd { margin: 5px 0 16px; padding: 12px; border: 1px solid var(--line); border-radius: 6px; overflow-wrap: anywhere; }
.ft-code { font-family: ui-monospace, Menlo, Consolas, monospace; overflow-wrap: anywhere; }
.ft-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
.ft-subdomain-table { width: 100%; border-collapse: collapse; }
.ft-subdomain-table th, .ft-subdomain-table td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.ft-subdomain-table th { color: var(--muted); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.ft-subdomain-table tr:last-child td { border-bottom: 0; }
.ft-subdomain-table td:first-child { overflow-wrap: anywhere; }
@media (max-width: 575px) { .ft-sublist { columns: 1; } }
.ft-spinner { display: inline-block; width: 14px; height: 14px; border: 2px solid var(--line); border-top-color: var(--accent); border-radius: 50%; animation: ftspin .8s linear infinite; vertical-align: -2px; margin-right: 8px; }
@keyframes ftspin { to { transform: rotate(360deg); } }
@media (max-width: 767.98px) {
  .tool-detail-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 575.98px) {
  .tool-detail-page .project-detail-footer { flex-direction: column; }
  .tool-detail-page .project-detail-footer .btn { width: 100%; text-align: center; }
}
