.tf-builder{--tf-bg: var(--color-surface);--tf-panel: var(--color-bg);--tf-hover: var(--color-surface-hover);--tf-border: var(--color-border);--tf-text: var(--color-text);--tf-muted: var(--color-text-secondary);color:var(--tf-text);background:var(--tf-bg);border:1px solid var(--tf-border);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.6;letter-spacing:.01em;color-scheme:dark;position:relative}.tf-builder *{box-sizing:border-box}.tf-builder h1,.tf-builder h2,.tf-builder h3,.tf-builder p{margin:0}.tf-builder h1{font-size:clamp(20px,2.3vw,28px);font-weight:600;line-height:1.3;letter-spacing:-.04em}.tf-builder h2,.tf-builder h3{font-size:13px;font-weight:600}.tf-builder button,.tf-builder input,.tf-builder select{font:inherit;border-radius:0}.tf-builder button{cursor:pointer;border:1px solid var(--tf-border);background:var(--tf-bg);padding:7px 10px;text-align:left;color:var(--tf-text)}.tf-builder button:hover{background:var(--tf-hover);border-color:var(--tf-muted)}.tf-builder :focus-visible{outline:2px solid var(--tf-text);outline-offset:3px}.tf-builder button:disabled,.tf-builder input:disabled,.tf-builder select:disabled{cursor:not-allowed;opacity:.5}.tf-builder a{text-decoration:underline;text-underline-offset:3px}.tf-builder input[type=checkbox],.tf-builder input[type=radio]{accent-color:var(--tf-text);width:15px;height:15px;flex:0 0 15px;margin:3px 0 0}.tf-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px}.tf-header p{color:var(--tf-muted);margin-top:8px;max-width:68ch}.tf-builder .tf-primary{background:var(--tf-text);color:var(--tf-panel);border-color:var(--tf-text);white-space:nowrap;padding:11px 16px}.tf-builder .tf-primary:hover{background:var(--tf-muted)}.tf-patterns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:0;border-top:1px solid var(--tf-border);padding:0;margin:0;min-width:0}.tf-patterns legend{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.tf-pattern{padding:18px;display:flex;gap:10px;align-items:flex-start;cursor:pointer;border-right:1px solid var(--tf-border);border-bottom:3px solid transparent;background:var(--tf-panel)}.tf-pattern:last-child{border-right:0}.tf-pattern-selected{background:var(--tf-hover);border-bottom-color:var(--tf-text)}.tf-pattern strong,.tf-toggle strong{font-size:12px;font-weight:600;display:block}.tf-pattern small,.tf-toggle small{display:block;font-size:10px;color:var(--tf-muted);margin-top:4px}.tf-workspace{display:grid;grid-template-columns:310px minmax(0,1fr);border-top:1px solid var(--tf-border)}.tf-settings{background:var(--tf-panel);padding:22px 18px;border-right:1px solid var(--tf-border)}.tf-settings fieldset{border:0;padding:0;margin:0;min-width:0}.tf-settings legend{font-size:14px;font-weight:600;padding:0 0 18px}.tf-settings h2{border-top:1px solid var(--tf-border);padding-top:19px;margin:22px 0 10px}.tf-field{display:flex;flex-direction:column;gap:5px;font-size:11px;margin-bottom:13px}.tf-field input,.tf-field select{width:100%;border:1px solid var(--tf-border);padding:8px;color:var(--tf-text);background:var(--tf-bg);min-height:36px}.tf-builder .tf-field-error{font-size:10px;padding:8px;border-left:2px solid var(--tf-text);margin:0 0 12px}.tf-toggle{display:flex;align-items:flex-start;gap:9px;padding:11px 0;border-bottom:1px solid var(--tf-border);cursor:pointer}.tf-builder .tf-note{font-size:10px;color:var(--tf-muted);line-height:1.7}.tf-settings-actions{margin:22px 0 12px;display:flex;gap:7px;flex-wrap:wrap}.tf-settings-actions button{font-size:10px}.tf-results{min-width:0}.tf-tablist{display:flex;border-bottom:1px solid var(--tf-border);background:var(--tf-panel)}.tf-tablist button{border:0;border-right:1px solid var(--tf-border);border-bottom:2px solid transparent;padding:14px 19px;font-size:11px}.tf-tablist button[aria-selected=true]{font-weight:700;background:var(--tf-bg);border-bottom-color:var(--tf-text)}.tf-diagram-caption{display:flex;justify-content:space-between;gap:12px;padding:17px 20px 0;font-size:10px;color:var(--tf-muted)}.tf-architecture-groups{display:grid;gap:16px;padding:16px 20px}.tf-architecture-group{min-width:0;border:1px solid var(--tf-border)}.tf-builder .tf-architecture-group>h3{padding:10px 12px;border-bottom:1px solid var(--tf-border);color:var(--tf-muted);font-size:10px;letter-spacing:.12em;overflow-wrap:anywhere}.tf-architecture-list{display:grid;gap:8px;list-style:none;margin:0;padding:12px}.tf-architecture-list li{min-width:0}.tf-builder .tf-node{display:flex;align-items:center;gap:12px;width:100%;padding:12px;background:var(--tf-panel)}.tf-builder .tf-node[aria-pressed=true]{background:var(--tf-hover);border-color:var(--tf-text);box-shadow:inset 3px 0 var(--tf-text)}.tf-node-content{display:block;min-width:0;overflow-wrap:anywhere}.tf-node-title{display:block;font-size:12px;font-weight:600}.tf-node-detail{display:block;color:var(--tf-muted);font-size:10px}.tf-results>[role=tabpanel]>.tf-note{margin:0 20px 16px}.tf-builder .tf-callout{padding:12px 14px;border:1px solid var(--tf-border);border-left:3px solid var(--tf-text);font-size:11px;background:var(--tf-panel);margin:16px 20px}.tf-inspector{border-top:1px solid var(--tf-border);border-bottom:1px solid var(--tf-border);padding:18px 20px}.tf-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.tf-panel-heading p{color:var(--tf-muted);font-size:10px;margin-top:4px}.tf-panel-heading button{flex-shrink:0;font-size:10px}.tf-resource-list{list-style:none;padding:0;margin:0;max-height:230px;overflow:auto}.tf-resource-list li{font-size:10px;border-top:1px solid var(--tf-border);padding:5px 0;overflow-wrap:anywhere;display:flex;gap:12px;justify-content:space-between;align-items:baseline}.tf-resource-list li span{color:var(--tf-muted)}.tf-builder .tf-text-button{border:0;padding:0;background:transparent;text-decoration:underline;overflow-wrap:anywhere}.tf-inventory{padding:17px 20px}.tf-inventory summary{cursor:pointer;margin-bottom:8px}.tf-controls,.tf-files{padding:20px}.tf-controls .tf-callout{margin:16px 0}.tf-control-counts{display:flex;flex-wrap:wrap;gap:12px;border-block:1px solid var(--tf-border);padding:14px 0;font-size:10px}.tf-control-counts strong{font-size:16px}.tf-control-filters{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:16px;margin-top:18px}.tf-control{border-top:1px solid var(--tf-border)}.tf-control:last-child{border-bottom:1px solid var(--tf-border)}.tf-control summary{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:12px;align-items:center;justify-content:space-between;cursor:pointer;padding:12px 0;font-size:11px}.tf-control summary small{font-size:9px;display:block;color:var(--tf-muted)}.tf-badge{border:1px solid var(--tf-border);padding:3px 6px;font-size:9px;white-space:nowrap}.tf-badge-included{background:var(--tf-hover)}.tf-badge-disabled{color:var(--tf-muted)}.tf-control>div{padding:0 0 16px 14px;font-size:11px;max-width:80ch;color:var(--tf-muted)}.tf-control a{display:inline-block;margin-top:9px;font-size:10px}.tf-file-workspace{display:grid;grid-template-columns:170px minmax(0,1fr);margin-top:17px;border:1px solid var(--tf-border)}.tf-file-list{display:flex;flex-direction:column;border-right:1px solid var(--tf-border);background:var(--tf-panel);max-height:720px;overflow:auto}.tf-file-list button{border:0;border-bottom:1px solid var(--tf-border);padding:10px;font-size:10px;overflow-wrap:anywhere}.tf-file-list button[aria-current=true]{background:var(--tf-hover);font-weight:700;box-shadow:inset 3px 0 var(--tf-text)}.tf-code-panel{min-width:0}.tf-code-toolbar{padding:10px;border-bottom:1px solid var(--tf-border);display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;flex-wrap:wrap;overflow-wrap:anywhere}.tf-code-toolbar>div{display:flex;gap:5px}.tf-code-toolbar button{font-size:10px;padding:4px 7px}.tf-code-panel pre{margin:0;padding:17px;font-size:11px;line-height:1.7;overflow:auto;max-height:660px;min-height:450px;background:var(--tf-panel);tab-size:2}.tf-footer{border-top:1px solid var(--tf-border);padding:12px 18px;display:flex;gap:16px;justify-content:space-between;font-size:10px;color:var(--tf-muted)}.tf-footer span{white-space:nowrap}@media (min-width: 1400px){.tf-workspace{grid-template-columns:320px minmax(0,1fr)}}@media (max-width: 900px){.tf-header{align-items:flex-start;flex-direction:column;padding:20px;gap:16px}.tf-workspace{grid-template-columns:270px minmax(0,1fr)}.tf-pattern{padding:14px 10px}.tf-pattern small{font-size:9px}.tf-tablist button{padding:12px 10px;font-size:10px}.tf-file-workspace{grid-template-columns:1fr}.tf-file-list{max-height:160px;border-right:0;border-bottom:1px solid var(--tf-border)}.tf-footer{flex-direction:column;gap:5px}}@media (max-width: 650px){.tf-patterns{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-pattern:nth-child(2){border-right:0}.tf-pattern:nth-child(-n+2){border-top:1px solid var(--tf-border)}.tf-workspace{grid-template-columns:1fr}.tf-settings{border-right:0;border-bottom:1px solid var(--tf-border)}.tf-settings fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}.tf-settings fieldset>.tf-note,.tf-settings fieldset>h2,.tf-settings fieldset>.tf-toggle,.tf-settings fieldset>.tf-field-error{grid-column:1 / -1}.tf-settings .tf-toggle{padding:9px 0}.tf-settings h2{margin-top:14px;padding-top:14px}.tf-diagram-caption{flex-direction:column;gap:4px}.tf-controls,.tf-files,.tf-inspector{padding:16px}.tf-control-filters{grid-template-columns:1fr;gap:0}.tf-control summary{align-items:flex-start}.tf-tablist button{flex:1;text-align:center;padding-inline:6px}.tf-panel-heading{flex-wrap:wrap}.tf-resource-list li{flex-direction:column;gap:0}}html.light .tf-builder{color-scheme:light}.tf-builder a,.tf-builder code,.tf-code-panel pre{color:var(--tf-text)}.tf-service-icon{display:block;object-fit:contain;flex-shrink:0}.tf-service-icon[src$="valkey.svg"]{background:#fff;padding:3px}.tf-builder .tf-doc-link{display:inline-block;color:var(--tf-muted);font-size:10px;line-height:1.5;margin-top:5px}.tf-pattern{align-items:center;gap:9px}.tf-pattern>span{min-width:0}.tf-capability{padding:7px 0 12px;border-bottom:1px solid var(--tf-border)}.tf-capability>.tf-toggle{border:0;padding-bottom:0}.tf-capability>.tf-doc-link{margin-left:24px}.tf-toggle>span{min-width:0}.tf-toggle .tf-service-icon{margin-top:1px}.tf-option-group{margin-top:12px;border:1px solid var(--tf-border);background:var(--tf-bg)}.tf-option-group>summary{display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:8px;cursor:pointer;padding:10px;font-size:10px;font-weight:600;list-style:none}.tf-control>summary{list-style:none}.tf-option-group>summary::-webkit-details-marker,.tf-control>summary::-webkit-details-marker{display:none}.tf-disclosure-mark{display:inline-grid;place-items:center;align-self:center;width:12px;line-height:1}.tf-disclosure-mark:before{content:"+"}.tf-option-group[open]>summary .tf-disclosure-mark:before,.tf-control[open]>summary .tf-disclosure-mark:before{content:"−"}.tf-option-group>div{padding:0 12px 12px}.tf-option-row{border-top:1px solid var(--tf-border);padding-bottom:10px}.tf-option-row .tf-toggle{border:0;padding-bottom:0}.tf-option-row .tf-toggle strong{font-size:10px}.tf-option-row .tf-doc-link{margin-left:24px}.tf-option-group .tf-field{margin-top:12px}.tf-builder .tf-baseline{font-size:10px;padding-bottom:12px;color:var(--tf-muted)}.tf-option-group .tf-field-error{overflow-wrap:anywhere;margin-top:10px}@media (max-width: 650px){.tf-settings fieldset>.tf-capability{grid-column:1 / -1}.tf-control summary{gap:7px;grid-template-columns:12px minmax(0,1fr)}.tf-control summary .tf-badge{grid-column:2;justify-self:start}.tf-pattern{align-items:flex-start}.tf-pattern .tf-service-icon{width:25px;height:25px}}
