:root{--tf-ink: #14231f;--tf-muted: #52615c;--tf-paper: #f3f6f4;--tf-surface: #ffffff;--tf-line: #dde5e1;--tf-line-strong: #c3d0ca;--tf-accent: #0f766e;--tf-accent-dark: #0b4f4a;--tf-accent-soft: rgba(15, 118, 110, 0.09);--tf-warm: #b45309;--tf-warm-soft: rgba(180, 83, 9, 0.1);--tf-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--tf-shadow: 0 18px 40px rgba(20, 35, 31, 0.08);--primary: var(--tf-accent);--primary-dark: var(--tf-accent-dark);--border: var(--tf-line);--surface: var(--tf-surface);--surface-muted: var(--tf-paper);--shadow-soft: var(--tf-shadow);--text-main: var(--tf-ink);--text-muted: var(--tf-muted);}
.tf-page{color: var(--tf-ink);padding-bottom: 3rem;}
.tf-page code{font-family: var(--tf-mono);font-size: 0.86em;color: var(--tf-accent-dark);background: var(--tf-accent-soft);padding: 0.08em 0.36em;border-radius: 5px;}
.tf-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.5rem 1.25rem;font-size: 0.88rem;color: var(--tf-muted);margin: 0 0 1rem;padding: 0 0.25rem;}
.tf-byline .author-link{color: var(--tf-accent-dark);font-weight: 600;text-decoration: none;}
.tf-byline .author-link:hover{text-decoration: underline;}
.tf-desk{display: grid;grid-template-columns: minmax(300px, 380px) minmax(0, 1fr);gap: 1.25rem;align-items: start;margin-bottom: 2.75rem;}
.tf-panel{background: var(--tf-surface);border: 1px solid var(--tf-line);border-radius: 18px;box-shadow: var(--tf-shadow);padding: 1.35rem;min-width: 0;}
.tf-panel-title{font-size: 1rem;font-weight: 700;margin: 0 0 0.75rem;display: flex;align-items: center;gap: 0.5rem;}
.tf-panel-title i{color: var(--tf-accent);}
.tf-presets{display: flex;flex-wrap: wrap;gap: 0.4rem;margin: 0 0 1rem;}
.tf-preset{border: 1px solid var(--tf-line-strong);background: var(--tf-surface);color: var(--tf-ink);border-radius: 999px;padding: 0.32rem 0.8rem;font-size: 0.82rem;font-weight: 600;cursor: pointer;transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;}
.tf-preset:hover{border-color: var(--tf-accent);color: var(--tf-accent-dark);}
.tf-preset.is-active{background: var(--tf-accent);border-color: var(--tf-accent);color: #ffffff;}
.tf-steps{list-style: none;margin: 0;padding: 0;counter-reset: tfstep;}
.tf-step{position: relative;display: grid;grid-template-columns: 26px minmax(0, 1fr);gap: 0.2rem 0.7rem;padding: 0.7rem 0;border-top: 1px dashed var(--tf-line);}
.tf-step:first-child{border-top: 0;padding-top: 0.2rem;}
.tf-step::before{counter-increment: tfstep;content: counter(tfstep);grid-row: 1 / span 3;width: 26px;height: 26px;border-radius: 8px;display: inline-flex;align-items: center;justify-content: center;font-size: 0.78rem;font-weight: 700;font-family: var(--tf-mono);background: var(--tf-paper);color: var(--tf-muted);border: 1px solid var(--tf-line);transition: background 0.15s ease, color 0.15s ease;}
.tf-step.is-on::before{background: var(--tf-accent);border-color: var(--tf-accent);color: #ffffff;}
.tf-step-head{display: flex;align-items: center;justify-content: space-between;gap: 0.5rem;min-width: 0;}
.tf-step-head label{display: flex;align-items: center;gap: 0.5rem;font-weight: 600;font-size: 0.92rem;margin: 0;cursor: pointer;}
.tf-step-head .tf-step-name{font-weight: 600;font-size: 0.92rem;}
.tf-step input[type="checkbox"]{width: 16px;height: 16px;accent-color: var(--tf-accent);flex: 0 0 auto;}
.tf-step-note{grid-column: 2;font-size: 0.8rem;line-height: 1.45;color: var(--tf-muted);margin: 0;}
.tf-sub{grid-column: 2;display: flex;flex-wrap: wrap;align-items: center;gap: 0.45rem 0.7rem;margin-top: 0.35rem;font-size: 0.82rem;}
.tf-sub label{display: inline-flex;align-items: center;gap: 0.35rem;margin: 0;color: var(--tf-muted);cursor: pointer;}
.tf-sub select,.tf-sub input[type="number"]{border: 1px solid var(--tf-line-strong);border-radius: 8px;padding: 0.22rem 0.4rem;font-size: 0.82rem;background: var(--tf-surface);color: var(--tf-ink);}
.tf-sub input[type="number"]{width: 4.6rem;}
.tf-sub select:focus,.tf-sub input:focus,.tf-field textarea:focus{outline: 2px solid var(--tf-accent);outline-offset: 1px;}
.tf-chip{flex: 0 0 auto;font-family: var(--tf-mono);font-size: 0.72rem;padding: 0.12rem 0.5rem;border-radius: 999px;background: var(--tf-paper);color: var(--tf-muted);border: 1px solid var(--tf-line);white-space: nowrap;}
.tf-chip.is-hit{background: var(--tf-accent-soft);color: var(--tf-accent-dark);border-color: rgba(15, 118, 110, 0.3);}
.tf-chip.is-off{opacity: 0.6;}
.tf-chip.is-skip{background: var(--tf-warm-soft);color: var(--tf-warm);border-color: rgba(180, 83, 9, 0.3);cursor: help;}
.tf-field{margin-bottom: 1rem;}
.tf-field-head{display: flex;align-items: baseline;justify-content: space-between;gap: 0.75rem;margin-bottom: 0.4rem;}
.tf-field-head label{font-weight: 700;font-size: 0.95rem;margin: 0;}
.tf-field-head span{font-size: 0.8rem;color: var(--tf-muted);}
.tf-field textarea{display: block;width: 100%;min-height: 230px;resize: vertical;border: 1px solid var(--tf-line-strong);border-radius: 12px;padding: 0.85rem 0.95rem;font-family: var(--tf-mono);font-size: 0.86rem;line-height: 1.6;color: var(--tf-ink);background: var(--tf-surface);tab-size: 4;white-space: pre;overflow-wrap: normal;overflow-x: auto;}
.tf-field textarea[readonly]{background: var(--tf-paper);}
.tf-tools{display: flex;flex-wrap: wrap;gap: 0.45rem;}
.tf-btn{display: inline-flex;align-items: center;gap: 0.4rem;border: 1px solid var(--tf-line-strong);background: var(--tf-surface);color: var(--tf-ink);border-radius: 10px;padding: 0.42rem 0.8rem;font-size: 0.85rem;font-weight: 600;cursor: pointer;transition: border-color 0.15s ease, background 0.15s ease;}
.tf-btn:hover{border-color: var(--tf-accent);background: var(--tf-accent-soft);}
.tf-btn.is-main{background: var(--tf-accent);border-color: var(--tf-accent);color: #ffffff;}
.tf-btn.is-main:hover{background: var(--tf-accent-dark);border-color: var(--tf-accent-dark);}
.tf-stats{display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));gap: 0.5rem;margin: 0 0 1rem;}
.tf-stat{background: var(--tf-paper);border: 1px solid var(--tf-line);border-radius: 10px;padding: 0.5rem 0.65rem;}
.tf-stat b{display: block;font-family: var(--tf-mono);font-size: 1.02rem;color: var(--tf-ink);}
.tf-stat span{font-size: 0.74rem;color: var(--tf-muted);}
.tf-status{min-height: 1.3em;font-size: 0.84rem;color: var(--tf-accent-dark);font-weight: 600;margin: 0.6rem 0 0;}
.tf-sec{margin: 0 0 2.75rem;}
.tf-sec h2{font-size: clamp(1.35rem, 2.6vw, 1.7rem);font-weight: 800;margin: 0 0 0.6rem;}
.tf-sec > p,.tf-lede{color: var(--tf-muted);line-height: 1.7;}
.tf-order{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 1rem;margin: 1rem 0 0;}
.tf-order div{border-left: 3px solid var(--tf-accent);background: var(--tf-surface);border-radius: 0 14px 14px 0;padding: 0.9rem 1.1rem;box-shadow: var(--tf-shadow);}
.tf-order dt{font-weight: 700;margin-bottom: 0.35rem;}
.tf-order dd{margin: 0;color: var(--tf-muted);line-height: 1.6;font-size: 0.94rem;}
.tf-ba{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 1rem;margin: 1rem 0;}
.tf-ba figure{margin: 0;min-width: 0;}
.tf-ba figcaption{font-size: 0.8rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.06em;color: var(--tf-muted);margin-bottom: 0.4rem;}
.tf-ba pre{margin: 0;background: #0f1f1c;color: #d7ece6;border-radius: 14px;padding: 1rem 1.1rem;font-family: var(--tf-mono);font-size: 0.8rem;line-height: 1.7;overflow-x: auto;white-space: pre;}
.tf-mark{display: inline-block;font-size: 0.68rem;line-height: 1.2;padding: 0 0.3em;margin: 0 1px;border-radius: 4px;background: #b45309;color: #fff7ed;vertical-align: 1px;}
.tf-legend{font-size: 0.84rem;color: var(--tf-muted);margin: 0 0 0.25rem;}
.tf-tally{list-style: none;padding: 0;margin: 1rem 0 0;display: grid;grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));gap: 0.6rem;}
.tf-tally li{background: var(--tf-paper);border: 1px solid var(--tf-line);border-radius: 12px;padding: 0.7rem 0.9rem;font-size: 0.9rem;line-height: 1.55;color: var(--tf-muted);}
.tf-tally b{font-family: var(--tf-mono);color: var(--tf-accent-dark);font-size: 1.05rem;margin-right: 0.3rem;}
.tf-note{border: 1px solid rgba(180, 83, 9, 0.3);background: var(--tf-warm-soft);border-radius: 12px;padding: 0.8rem 1rem;font-size: 0.92rem;line-height: 1.6;margin: 1rem 0 0;}
.tf-table-wrap{overflow-x: auto;border: 1px solid var(--tf-line);border-radius: 14px;background: var(--tf-surface);margin-top: 1rem;}
.tf-table{width: 100%;border-collapse: collapse;font-size: 0.9rem;min-width: 640px;}
.tf-table th,.tf-table td{padding: 0.7rem 0.9rem;text-align: left;vertical-align: top;border-bottom: 1px solid var(--tf-line);line-height: 1.55;}
.tf-table thead th{background: var(--tf-paper);font-size: 0.78rem;text-transform: uppercase;letter-spacing: 0.05em;color: var(--tf-muted);}
.tf-table tbody tr:last-child td{border-bottom: 0;}
.tf-table td:first-child{font-weight: 600;white-space: nowrap;}
.tf-issues{list-style: none;margin: 1rem 0 0;padding: 0;display: grid;gap: 0.75rem;}
.tf-issues li{display: grid;grid-template-columns: minmax(0, 1fr) minmax(200px, 300px);gap: 1rem;align-items: center;background: var(--tf-surface);border: 1px solid var(--tf-line);border-radius: 14px;padding: 0.95rem 1.1rem;}
.tf-issues h3{font-size: 1rem;font-weight: 700;margin: 0 0 0.3rem;}
.tf-issues p{margin: 0;color: var(--tf-muted);line-height: 1.6;font-size: 0.92rem;}
.tf-swap{font-family: var(--tf-mono);font-size: 0.8rem;background: var(--tf-paper);border-radius: 10px;padding: 0.55rem 0.7rem;line-height: 1.7;}
.tf-swap span{display: block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
.tf-swap .tf-in{color: var(--tf-muted);}
.tf-swap .tf-out{color: var(--tf-warm);font-weight: 600;}
.tf-page a:not(.author-link):not(.btn){color: var(--tf-accent-dark);}
@media (max-width: 991.98px){.tf-desk{grid-template-columns: 1fr;}.tf-order{grid-template-columns: 1fr;}}
@media (max-width: 767.98px){.tf-page .tool-hero{padding: 1.6rem 1.25rem;}.tf-page .tool-hero::after{display: none;}.tf-panel{padding: 1rem;}.tf-ba{grid-template-columns: 1fr;}.tf-stats{grid-template-columns: repeat(2, minmax(0, 1fr));}.tf-issues li{grid-template-columns: 1fr;}.tf-swap span{white-space: normal;}}