.tf-app{border:2px solid var(--color-primary);border-radius:14px;background:var(--color-surface);box-shadow:0 6px 22px #2c4a2a17;overflow:hidden}.tf-app-header{display:flex;align-items:center;gap:.6rem;padding:.7rem 1.25rem;background:var(--color-primary);color:#fff}.tf-app-header svg{width:1.6rem;height:1.6rem;flex-shrink:0;color:#fff}.tf-app-title{margin:0;font-family:var(--font-heading);font-weight:700;font-size:1.1rem;line-height:1.1;color:#fff}.tf-app-tag{margin-left:auto;padding:.2rem .65rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#ffffffe6;white-space:nowrap}.tf-app-body{padding:1.5rem 1.25rem}@media(min-width:640px){.tf-app-body{padding:2rem}}.tf-shell{display:grid;gap:2rem}.tf-quick{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width:768px){.tf-quick{grid-template-columns:320px 1fr}}.tf-filters{display:grid;gap:1.25rem}.tf-filter-group{display:grid;gap:.5rem}.tf-filter-label{font-weight:600;font-size:.875rem;color:var(--color-primary-dark)}.tf-filter-chips{display:flex;flex-wrap:wrap;gap:.4rem}.tf-chip{display:inline-flex;align-items:center;padding:.4rem .75rem;background:var(--color-background);border:1px solid var(--color-border-light);border-radius:999px;font-size:.85rem;cursor:pointer;transition:all .15s ease}.tf-chip:hover{border-color:var(--color-primary)}.tf-chip[aria-pressed=true],.tf-chip-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tf-chip-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tf-chip-label{display:inline-flex;align-items:center;padding:.4rem .75rem;background:var(--color-background);border:1px solid var(--color-border-light);border-radius:999px;font-size:.85rem;cursor:pointer;transition:all .15s ease;user-select:none}.tf-chip-label:hover{border-color:var(--color-primary)}.tf-chip-label:has(.tf-chip-input:checked){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tf-chip-input:focus-visible+span{outline:2px solid var(--color-primary-dark);outline-offset:4px;border-radius:999px}.tf-results{display:grid;gap:1.5rem}.tf-results-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border-light)}.tf-result-cards{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:640px){.tf-result-cards{grid-template-columns:repeat(3,1fr)}}.tf-card{background:#fff;border:1px solid var(--color-border-light);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.tf-card-stars{font-size:.85rem;color:var(--color-accent);letter-spacing:.1em}.tf-card h3{font-family:var(--font-heading);font-size:1.25rem;margin:0}.tf-card-sci{font-style:italic;font-size:.8rem;color:var(--color-text-muted)}.tf-card-stats{font-size:.8rem;color:var(--color-text-muted)}.tf-card-why{font-size:.9rem;line-height:1.5}.tf-card-cta{margin-top:auto;font-weight:600;color:var(--color-primary);text-decoration:none}.tf-card-cta:hover{text-decoration:underline}.tf-card-glyph{width:64px;height:64px;color:var(--color-primary)}.tf-card-img{display:block;width:100%;aspect-ratio:16 / 9;height:auto;object-fit:cover;border-radius:8px;background:var(--color-surface)}.tf-table{width:100%;border-collapse:collapse;font-size:.85rem}.tf-table th,.tf-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--color-border-light)}.tf-table th{background:var(--color-surface);font-weight:600;cursor:pointer;user-select:none}.tf-banner{padding:1rem 1.25rem;border-radius:8px;border-left:4px solid var(--color-accent);background:var(--color-surface)}.tf-banner-empty{border-left-color:var(--color-secondary)}.tf-empty-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.tf-actions{display:flex;gap:.75rem;flex-wrap:wrap}.tf-btn{display:inline-flex;align-items:center;padding:.5rem 1rem;font-size:.9rem;font-weight:600;border-radius:6px;border:1px solid var(--color-border-light);background:#fff;cursor:pointer}.tf-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.tf-mode-cards{display:grid;grid-template-columns:1fr;gap:1rem;margin:1.5rem 0}@media(min-width:640px){.tf-mode-cards{grid-template-columns:1fr 1fr}}.tf-mode-card{display:block;padding:1.5rem;background:#fff;border:1px solid var(--color-border-light);border-radius:12px;text-decoration:none;color:inherit;transition:all .15s ease}.tf-mode-card:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 4px 12px #0000000d}.tf-mode-card-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tf-mode-card-primary:hover{border-color:var(--color-primary-dark);background:var(--color-primary-dark);color:#fff}.tf-mode-card-title{font-family:var(--font-heading);font-size:1.15rem;font-weight:700;margin:0 0 .4rem}.tf-mode-card-primary .tf-mode-card-title{color:#fff}.tf-mode-card-desc{font-size:.9rem;opacity:.9;margin:0}.tf-guided-shell{display:grid;gap:1.5rem;max-width:640px;margin:0 auto}.tf-progress{display:flex;flex-direction:column;gap:.4rem}.tf-progress-text{font-size:.85rem;color:var(--color-text-muted)}.tf-progress-bar{height:6px;background:var(--color-border-light);border-radius:3px;overflow:hidden}.tf-progress-fill{height:100%;background:var(--color-primary);transition:width .2s ease}.tf-step{display:grid;gap:1rem}.tf-step-heading{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--color-primary-dark);margin:0}.tf-step-helper{font-size:.95rem;color:var(--color-text-muted);line-height:1.5;margin:0}.tf-step-helper a{color:var(--color-primary)}.tf-step-field{display:grid;gap:.5rem}.tf-step-field-prompt{font-weight:600;font-size:.9rem;color:var(--color-primary-dark)}.tf-step-options{display:grid;gap:.5rem}@media(min-width:640px){.tf-step-options{grid-template-columns:1fr 1fr}}.tf-step-option-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.tf-step-option-label{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:1rem;background:#fff;border:1px solid var(--color-border-light);border-radius:10px;cursor:pointer;text-align:left;transition:all .15s ease}.tf-step-option-label:hover{border-color:var(--color-primary)}.tf-step-option-label:has(.tf-step-option-input:checked){background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tf-step-option-input:focus-visible+.tf-step-option-content{outline:2px solid var(--color-primary-dark);outline-offset:4px;border-radius:10px}.tf-step-option-content{display:flex;flex-direction:column;gap:.2rem}.tf-step-option-title{font-weight:600;font-size:1rem}.tf-step-option-hint{font-size:.85rem;opacity:.8}.tf-guided-footer{display:flex;justify-content:space-between;gap:.75rem;padding-top:1rem;border-top:1px solid var(--color-border-light);flex-wrap:wrap}.tf-guided-footer-left,.tf-guided-footer-right{display:flex;gap:.5rem;flex-wrap:wrap}.tf-btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.tf-btn-primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.tf-btn-primary:disabled{opacity:.45;cursor:not-allowed}@media(max-width:640px){.tf-guided-footer{flex-direction:column-reverse}.tf-guided-footer-left,.tf-guided-footer-right{width:100%;justify-content:space-between}}.tf-authority-footer{margin-top:1.5rem;padding:1.25rem 1.5rem;background:var(--color-surface);border-radius:10px;border-left:3px solid var(--color-primary)}.tf-authority-footer h3{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--color-primary-dark);margin:0 0 .4rem}.tf-authority-footer p{font-size:.9rem;color:var(--color-text-muted);margin:0;line-height:1.5}.tf-authority-footer a{color:var(--color-primary);font-weight:600}.tf-step-graphic{display:block;width:100%;max-width:640px;height:auto;margin:0 auto .85rem;border-radius:8px;border:1px solid var(--color-border-light);background:#fff;cursor:zoom-in}.tf-lightbox{position:fixed;inset:0;background:#faf8f3f2;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:1000;cursor:zoom-out;opacity:0;transition:opacity .15s ease-out}.tf-lightbox.is-open{opacity:1}.tf-lightbox img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:8px;box-shadow:0 10px 40px #00000040;background:#fff}.tf-lightbox-close{position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;border-radius:50%;border:none;background:var(--color-primary);color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.tf-lightbox-close:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}
