[hidden]{display:none!important}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-family:var(--fk-font);color:var(--fk-text);background:var(--fk-bg);font-size:13px}#app{flex-direction:column;height:100dvh;display:flex}input[type=search]::-webkit-search-cancel-button{appearance:none;display:none}input[type=search]::-webkit-search-decoration{appearance:none;display:none}input[type=search]::-webkit-search-results-button{appearance:none;display:none}input[type=search]::-webkit-search-results-decoration{appearance:none;display:none}.fk-search{align-items:stretch;min-width:0;display:flex;position:relative}.fk-search>input{flex:auto;min-width:0;padding-right:26px}.fk-search-clear{width:24px;height:24px;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;margin:0;padding:0;display:flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.fk-search-clear:before{content:"";background:0 0;border-radius:50%;position:absolute;inset:1px}.fk-search-clear:hover{color:var(--fk-text)}.fk-search-clear:hover:before{background:color-mix(in srgb, var(--fk-text) 10%, transparent)}.fk-search-clear:focus-visible{outline:2px solid var(--fk-accent);outline-offset:-1px}.fk-search-clear svg{pointer-events:none;width:12px;height:12px;display:block;position:relative}#toolbar{background:var(--fk-surface);border-bottom:1px solid var(--fk-border);flex:none;align-items:center;gap:8px;height:46px;padding:0 12px;display:flex}.brand{-webkit-user-select:none;user-select:none;align-items:center;gap:7px;margin-right:2px;display:flex}.brand-mark{color:var(--fk-accent);font-size:19px;line-height:1;transform:translateY(-1px)}.brand-mark svg,.es-mark svg,.fk-about-mark svg{display:block}.brand.is-update .brand-mark{color:var(--fk-update);filter:drop-shadow(0 0 7px color-mix(in srgb, var(--fk-update) 90%, transparent))}.brand-update-dot{background:var(--fk-update);width:7px;height:7px;box-shadow:0 0 0 2px var(--fk-surface);border-radius:50%;flex:none;align-self:flex-start;margin-top:1px;margin-left:-9px}.brand-name{letter-spacing:.01em;font-weight:650}.tb-group{align-items:center;gap:2px;display:flex}.tb-sep{background:var(--fk-border);width:1px;height:18px}.tb-flex{flex:1}.tb-btn.is-active{background:color-mix(in srgb, var(--fk-accent) 14%, transparent);color:var(--fk-accent)}.tb-select{height:28px;font:inherit;color:var(--fk-text-muted);background-color:var(--fk-surface);cursor:pointer;border:1px solid #0000;border-radius:7px;padding:0 6px;font-size:11.5px;transition:border-color .12s,color .12s}.tb-select option{background-color:var(--fk-surface);color:var(--fk-text)}.tb-select:hover{color:var(--fk-text);border-color:var(--fk-border)}.tb-select:focus-visible{border-color:var(--fk-accent);color:var(--fk-text);outline:none}.tb-export{position:relative}.tb-caret{opacity:.7;margin-left:3px}.tb-popover{z-index:20;background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:10px;flex-direction:column;gap:1px;min-width:190px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 28px #0f172a38}.tb-pop-field{justify-content:space-between;align-items:center;gap:8px;padding:2px 6px 2px 8px;display:flex}.tb-pop-field .insp-input{text-overflow:ellipsis;flex:1 1 0;min-width:0}.tb-pop-field[data-current=true]{background:color-mix(in srgb, var(--fk-accent) 10%, transparent);border-radius:7px}.tb-pop-field[data-active=true]{box-shadow:inset 3px 0 0 0 var(--fk-accent)}.tb-pop-field .tb-active{cursor:pointer;align-items:center;padding:0;display:inline-flex}.tb-pop-field .tb-active input{width:13px;height:13px;accent-color:var(--fk-accent);cursor:pointer;margin:0}.tb-pop-field .tb-active input:disabled{cursor:default;opacity:.35}.tb-pop-field[data-layer-id]{gap:6px}.tb-pop-field[data-layer-id] .insp-input{padding-left:6px;padding-right:6px}#layers-popover{max-width:340px}.tb-pop-field .tb-grip{cursor:grab;min-width:14px;color:var(--fk-text-muted);padding:0 2px;line-height:1}.tb-pop-field .tb-grip:disabled{cursor:default;opacity:.35}.tb-pop-field.is-dragging{opacity:.5}.tb-pop-field.drop-before{box-shadow:inset 0 2px 0 0 var(--fk-accent)}.tb-pop-field.drop-after{box-shadow:inset 0 -2px 0 0 var(--fk-accent)}.tb-pop-label{color:var(--fk-text-muted);-webkit-user-select:none;user-select:none;font-size:11.5px}.tb-check.tb-pop-check{width:100%;color:var(--fk-text);border-radius:6px;padding:7px 10px;font-size:12.5px;display:flex}.tb-check.tb-pop-check:hover{background:color-mix(in srgb, var(--fk-accent) 12%, transparent);color:var(--fk-accent)}.tb-pop-sep{background:var(--fk-border);height:1px;margin:5px 4px}.quick-pop{min-width:220px}.quick-head,.tb-pop-head{letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);-webkit-user-select:none;user-select:none;padding:6px 10px 2px;font-size:10.5px;font-weight:600}.quick-item{align-items:center}.quick-ic{flex:none}.quick-ic svg{width:18px;height:18px;display:block}.quick-empty{max-width:230px;color:var(--fk-text-muted);margin:0;padding:8px 10px;font-size:12px}.quick-pop>.fk-search{width:calc(100% - 12px);margin:2px 6px 4px}.quick-search{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:6px;padding:5px 8px;font-size:12px}.quick-results{max-height:300px;overflow-y:auto}.quick-toggle--section .quick-toggle-label{font-weight:600}.quick-star{color:var(--fk-text-muted);flex:none;margin-left:auto}.quick-star svg{width:12px;height:12px;display:block}.quick-star.is-on{color:var(--fk-accent)}.quick-star.is-on svg path{fill:currentColor}#btn-quick{gap:3px}.view-pop{min-width:200px}#btn-view{gap:3px}.view-eye{display:inline-flex}.view-eye svg{display:block}#btn-view.is-filtered{color:var(--fk-accent)}.tb-pop-item{width:100%;font:inherit;text-align:left;color:var(--fk-text);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:6px;padding:7px 10px;font-size:12.5px;display:flex}.tb-pop-item:hover:not(:disabled){background:color-mix(in srgb, var(--fk-accent) 12%, transparent);color:var(--fk-accent)}.tb-pop-item:disabled{opacity:.45;cursor:default}.tb-pop-link{text-decoration:none}.tb-pop-note{color:var(--fk-text-muted);margin-left:auto;font-size:10.5px}.tb-pop-gap{width:100%;color:var(--fk-text);align-items:center;gap:6px;padding:7px 10px;font-size:12.5px;display:flex}.tb-pop-gap-caption{margin-right:auto}.tb-pop-gap-value{font-variant-numeric:tabular-nums;text-align:center;min-width:54px;color:var(--fk-text-muted)}.tb-pop-gap-btn{width:22px;height:22px;font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:6px;padding:0;font-size:14px;line-height:1}.tb-pop-gap-btn:hover:not(:disabled){color:var(--fk-accent);border-color:var(--fk-accent);background:color-mix(in srgb, var(--fk-accent) 12%, transparent)}.tb-pop-gap-btn:disabled{opacity:.45;cursor:default}.tb-pop-item:hover:not(:disabled) .tb-pop-note{color:inherit}.inspector{z-index:4;overscroll-behavior:contain;background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:12px;flex-direction:column;gap:12px;width:232px;max-height:calc(100% - 24px);padding:12px;display:flex;position:absolute;top:12px;right:12px;overflow-y:auto;box-shadow:0 8px 28px #0f172a17}.insp-section{flex-direction:column;gap:6px;display:flex}.insp-title{letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);font-size:10.5px;font-weight:600;line-height:1.1}.insp-panel.is-block>:not(#insp-block-row){display:none}.insp-panel.is-block.is-block-label>#insp-label-section{display:flex}.insp-note{color:var(--fk-text-muted);margin:0;font-size:11.5px;line-height:1.45}.insp-input{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:7px;outline:none;padding:5px 9px;font-size:12.5px}.insp-textarea{resize:none;width:100%;min-height:28px;max-height:160px;line-height:1.35;overflow-y:auto}.insp-select{cursor:pointer;flex:auto;min-width:0}#btn-text-scale-all,#btn-font-size-reset{white-space:nowrap;flex:none}.insp-input:focus{border-color:var(--fk-accent)}.insp-input:disabled{opacity:.5}.insp-btnrow{gap:4px;display:flex}.insp-btn{font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;flex:1;padding:4px 0;font-size:12px}.insp-btn:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent)}.insp-btn.is-active{background:color-mix(in srgb, var(--fk-accent) 14%, transparent);border-color:var(--fk-accent);color:var(--fk-accent)}.insp-layer-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%;padding:4px 8px;display:block;overflow:hidden}.insp-swatches{flex-wrap:wrap;gap:6px;display:flex}.insp-swatch{border:1.5px solid var(--fk-border);cursor:pointer;border-radius:50%;width:22px;height:22px;padding:0}.insp-swatch.is-active{outline:2px solid var(--fk-accent);outline-offset:1px}.insp-swatch--default{background:linear-gradient(135deg, transparent 44%, var(--fk-text-muted) 46%, var(--fk-text-muted) 54%, transparent 56%), var(--fk-surface)}.insp-swatch-sep{background:var(--fk-border);flex:none;align-self:center;width:1px;height:18px;margin:0 2px}.insp-color-pick{display:inline-flex;position:relative}.insp-swatch--custom{background:conic-gradient(from .25turn,#da291c,#9063cd,#307fe2,#2cccd3,#3cb17e,#da291c)}.insp-color-pop{z-index:40;background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:9px;flex-direction:column;gap:8px;width:200px;padding:8px;display:flex;position:fixed;box-shadow:0 8px 24px #00000038}.insp-color-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;display:grid}.insp-color-cell{cursor:pointer;border:1px solid #80808066;border-radius:3px;width:100%;height:16px;padding:0}.insp-color-cell:hover,.insp-color-cell:focus-visible{border-color:var(--fk-text);outline:none}.insp-color-cell.is-current{outline:2px solid var(--fk-accent);outline-offset:1px}.insp-color-row{color:var(--fk-text-muted);align-items:center;gap:6px;font-size:11.5px;display:flex}.insp-color-row>span{flex:none;min-width:28px}.insp-color-row--pick{cursor:pointer}.insp-color-hex{font:inherit;width:100%;min-width:0;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:6px;outline:none;padding:4px 7px;font-size:12px}.insp-color-hex:focus{border-color:var(--fk-accent)}.insp-color-hex.is-invalid,.insp-input.is-invalid{border-color:var(--fk-family-security)}.insp-color-native{border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:6px;width:28px;height:22px;padding:0}.insp-color-hint{color:var(--fk-family-security);margin:0;font-size:11px}.insp-color-hint:empty{display:none}.insp-speed-chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.insp-speed-chip{min-width:0;font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;justify-content:center;align-items:center;gap:5px;padding:4px;font-size:11px;display:flex}.insp-speed-chip:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent)}.insp-speed-chip.is-active{background:color-mix(in srgb, var(--fk-accent) 14%, transparent);border-color:var(--fk-accent)}.insp-speed-dot{width:9px;height:9px;box-shadow:0 0 0 1px color-mix(in srgb, var(--fk-text) 18%, transparent);border-radius:50%;flex:none}.insp-speed-chip--none .insp-speed-dot{background:linear-gradient(135deg, transparent 40%, var(--fk-text-muted) 42%, var(--fk-text-muted) 58%, transparent 60%), var(--fk-surface)}.insp-medium-chips{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.insp-medium-chip{font:inherit;text-align:center;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;min-width:0;padding:5px 4px;font-size:11px;line-height:1.25}.insp-medium-chip:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent)}.insp-medium-chip.is-active{background:color-mix(in srgb, var(--fk-accent) 14%, transparent);border-color:var(--fk-accent)}.insp-medium-chip--none{color:var(--fk-text-muted)}.insp-wavelength{gap:4px;margin-top:8px;display:grid}#insp-medium-part:empty{display:none}.insp-speed-recolor{align-items:center;gap:6px;margin-top:6px;display:flex}.insp-hint{color:var(--fk-text-muted);margin:0 0 6px;font-size:11px;line-height:1.4}.insp-recolor-label{color:var(--fk-text-muted);font-size:11px}.insp-ring-select{flex:1;min-width:0;height:24px}.insp-speed-color{border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:6px;width:28px;height:22px;padding:0}.insp-btn--mini{flex:none;padding:3px 8px;font-size:11px}.tb-btn.is-dirty:after{content:"";background:var(--fk-accent);border-radius:50%;width:6px;height:6px;margin-left:6px}.tb-btn{height:28px;font:inherit;color:var(--fk-text);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;padding:0 10px;transition:background-color .12s;display:inline-flex}.tb-btn--icon{flex:none;width:28px;padding:0;font-size:13px;line-height:1}.tb-btn:hover:not(:disabled){background:color-mix(in srgb, var(--fk-text) 8%, transparent)}.tb-btn:active:not(:disabled){background:color-mix(in srgb, var(--fk-text) 14%, transparent)}.tb-btn:disabled{opacity:.38;cursor:default}.tb-btn:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.tb-icon{width:28px;padding:0}.tb-zoom-level{font-variant-numeric:tabular-nums;min-width:48px;color:var(--fk-text-muted)}.tb-badge{color:var(--fk-family-people);border:1px solid var(--fk-family-people);background:color-mix(in srgb, var(--fk-family-people) 10%, transparent);-webkit-user-select:none;user-select:none;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600}#workspace{flex:1;min-height:0;display:flex}.insp-range{min-width:0;accent-color:var(--fk-accent);flex:1}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/app/assets/inter-400-700-normal-j6BbcsN8.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:400 700;font-display:swap;src:url(/app/assets/inter-400-700-italic-CpDjs_zY.woff2)format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:400;font-display:swap;src:url(/app/assets/lato-400-normal-DXRmO6t1.woff2)format("woff2")}@font-face{font-family:Lato;font-style:normal;font-weight:700;font-display:swap;src:url(/app/assets/lato-700-normal-D0hIvJyG.woff2)format("woff2")}@font-face{font-family:Lato;font-style:italic;font-weight:400;font-display:swap;src:url(/app/assets/lato-400-italic-CBz-5j84.woff2)format("woff2")}@font-face{font-family:Lato;font-style:italic;font-weight:700;font-display:swap;src:url(/app/assets/lato-700-italic-BkognA_z.woff2)format("woff2")}@font-face{font-family:Roboto Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/app/assets/roboto-mono-400-700-normal-BAKpfWyj.woff2)format("woff2")}@font-face{font-family:Roboto Mono;font-style:italic;font-weight:400 700;font-display:swap;src:url(/app/assets/roboto-mono-400-700-italic-D_P-kX1t.woff2)format("woff2")}.insp-btn--typo{min-width:30px;font-size:13px}.fk-face--mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,DejaVu Sans Mono,monospace}.fk-face--serif{font-family:Georgia,Times New Roman,Liberation Serif,serif}.fk-face--comic{font-family:Comic Sans MS,Chalkboard SE,Comic Neue,cursive}.fk-face--inter{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}.fk-face--lato{font-family:Lato,system-ui,-apple-system,Segoe UI,sans-serif}.fk-face--robotoMono{font-family:Roboto Mono,ui-monospace,SF Mono,Menlo,Consolas,monospace}#palette{background:var(--fk-surface);border-right:1px solid var(--fk-border);scrollbar-width:none;flex:none;width:208px;padding:10px 10px 28px;overflow-y:auto}#palette::-webkit-scrollbar{width:0;height:0}.pal-header{z-index:1;background:var(--fk-surface);margin:-10px -10px 4px;padding:10px 10px 6px;position:sticky;top:-10px}.pal-search{margin-bottom:8px}.pal-tools{align-items:center;gap:6px;display:flex}.pal-tools--pair{flex-wrap:wrap;justify-content:space-between;column-gap:4px;margin-top:10px}.pal-collapse-icon{width:11px;height:11px;display:inline-flex}.pal-collapse-icon svg{width:100%;height:100%}.pal-tool-btn[data-action=expand] .pal-collapse-icon{transform:rotate(180deg)}.pal-tool{max-width:100%;font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;align-items:center;gap:5px;padding:4px 7px;font-size:11.5px;display:inline-flex}.pal-tool-btn--nowrap{white-space:nowrap}.pal-tool-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.pal-tool:hover{border-color:var(--fk-accent);color:var(--fk-accent)}.pal-tool.is-armed{color:var(--fk-accent);border-color:var(--fk-accent);background:color-mix(in srgb, var(--fk-accent) 12%, transparent)}.pal-tool-icon{width:14px;height:14px;display:inline-flex}.pal-tool-icon svg{width:100%;height:100%}.pal-tool-btn{max-width:100%;font:inherit;letter-spacing:.02em;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;align-items:center;gap:5px;padding:2px 6px;font-size:10.5px;display:inline-flex}.pal-tool-btn:hover{color:var(--fk-accent);background:color-mix(in srgb, var(--fk-accent) 10%, transparent)}.pal-search-input{width:100%;font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:7px;padding:5px 9px;font-size:12.5px}.pal-search-input::placeholder{color:var(--fk-text-muted)}.pal-search-input:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px;border-color:var(--fk-accent)}.pal-empty{color:var(--fk-text-muted);text-align:center;margin:8px 4px;font-size:12px}#palette.is-searching .pal-group.is-collapsed .pal-grid{display:grid}.pal-group.is-empty{display:none}.pal-group+.pal-group{margin-top:14px}.pal-heading{width:100%;min-width:0;font:inherit;letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;margin:0 0 6px;padding:3px 4px;font-size:10.5px;font-weight:600;display:flex}.pal-heading:hover{background:var(--fk-bg);color:var(--fk-text)}.pal-heading:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.pal-heading-text{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pal-heading-count{letter-spacing:0;white-space:nowrap;color:var(--fk-text-muted);opacity:.7;flex:none;font-size:10px;font-weight:600}.pal-chevron{width:12px;height:12px;color:var(--fk-text-muted);flex:none;transition:transform .15s}.pal-group.is-collapsed .pal-chevron{transform:rotate(-90deg)}.pal-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;display:grid}.pal-group.is-collapsed .pal-grid{display:none}.pal-cell{min-width:0;display:flex;position:relative}.pal-item{min-width:0;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:10px 4px 8px;transition:background-color .12s,border-color .12s;display:flex}.pal-item:hover{background:var(--fk-bg);border-color:var(--fk-border)}.pal-item.is-armed{background:color-mix(in srgb, var(--fk-accent) 9%, transparent);border-color:var(--fk-accent)}.pal-item:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.pal-icon svg{width:30px;height:30px;display:block}.pal-label{text-align:center;overflow-wrap:break-word;color:var(--fk-text-muted);-webkit-user-select:none;user-select:none;font-size:11px;line-height:1.2}.pal-copy{width:20px;height:20px;color:var(--fk-text-muted);visibility:hidden;background:var(--fk-surface);border:1px solid var(--fk-border);cursor:pointer;opacity:0;border-radius:6px;place-items:center;padding:0;transition:opacity .12s,color .12s;display:grid;position:absolute;top:2px;right:2px}.pal-copy svg{width:11px;height:11px;display:block}.pal-cell:hover .pal-copy,.pal-copy:focus-visible{visibility:visible;opacity:1}.pal-copy:hover{color:var(--fk-accent);border-color:var(--fk-accent)}.pal-fav{width:20px;height:20px;color:var(--fk-text-muted);visibility:hidden;background:var(--fk-surface);border:1px solid var(--fk-border);cursor:pointer;opacity:0;border-radius:6px;place-items:center;padding:0;transition:opacity .12s,color .12s;display:grid;position:absolute;top:2px;left:2px}.pal-fav svg{width:11px;height:11px;display:block}.pal-cell:hover .pal-fav,.pal-fav:focus-visible,.pal-fav.is-on{visibility:visible;opacity:1}.pal-fav:hover{color:var(--fk-accent);border-color:var(--fk-accent)}.pal-fav.is-on{color:var(--fk-accent)}.pal-fav.is-on svg path{fill:currentColor}.pal-head-row{align-items:center;margin:0 0 6px;display:flex;position:relative}.pal-head-row .pal-heading{flex:1;min-width:0;margin:0}.pal-fav--section{flex:none;margin-left:4px;position:static}.pal-head-row:hover .pal-fav--section,.pal-fav--section:focus-visible,.pal-fav--section.is-on{visibility:visible;opacity:1}#canvas-host{background:var(--fk-bg);flex:1;min-width:0;position:relative}.fk-canvas{touch-action:none;-webkit-user-select:none;user-select:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.fk-hide-grid .fk-grid-rect{display:none}.fk-minimap{z-index:3;background:color-mix(in srgb, var(--fk-surface) 88%, transparent);border:1px solid var(--fk-border);border-radius:10px;padding:4px;transition:right .16s;position:absolute;bottom:12px;right:12px;box-shadow:0 4px 16px #0f172a14}.fk-minimap-svg{background:var(--fk-bg);cursor:pointer;touch-action:none;border-radius:6px;display:block}.fk-mm-bus{fill:var(--fk-node-accent,#4a79d9);fill-opacity:.9;stroke:none}.fk-mm-edge{stroke:var(--fk-edge,#3a4358);stroke-width:1px;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.85}.fk-mm-edge--wan{stroke-dasharray:4.5 2.5}.fk-mm-edge--ipsec{stroke-dasharray:2.5 1.8}.fk-mm-edge--mgmt{stroke-dasharray:.1 2.2;stroke-linecap:round}.fk-mm-edge--wireless{stroke-dasharray:3 1.5 .5 1.5;stroke-linecap:round}.fk-mm-edge--fieldbus{stroke-dasharray:1.2 1.2;stroke-width:.75px}.fk-mm-edge--trunk{stroke-width:2px}.fk-mm-edge--lag{stroke-width:1.6px}.fk-mm-edge--conduit{stroke-width:1.4px}.fk-mm-flow{stroke:#d02f34;stroke-width:1.5px;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.9}.fk-mm-tile{fill:var(--fk-node-fill,#fff);stroke:var(--fk-border,#d4dae6);stroke-width:1px;vector-effect:non-scaling-stroke}.fk-mm-icon{color:var(--fk-node-accent,var(--fk-text-muted,#5f6b81));fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.fk-mm-zone{fill:var(--fk-node-accent,#66748e);fill-opacity:.05;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.55;stroke-width:1px;stroke-dasharray:3 3}.fk-mm-prim{fill:var(--fk-node-accent,#66748e);fill-opacity:.08;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.8;stroke-width:1px}.fk-mm-prim--filled{fill-opacity:.28}.fk-mm-line{stroke:var(--fk-family-annotation,#66748e);stroke-width:1px;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.9}.fk-mm-note{fill:var(--fk-node-accent,var(--fk-text-muted,#5f6b81));fill-opacity:.09;stroke:var(--fk-node-accent,var(--fk-text-muted,#5f6b81));stroke-opacity:.4;stroke-width:1px;vector-effect:non-scaling-stroke}.fk-mm-group{fill:none;stroke:var(--fk-text-muted,#5f6b81);stroke-opacity:.45;stroke-width:1px;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.fk-mm-titlecell{fill:none;stroke:var(--fk-text-muted,#5f6b81);stroke-opacity:.7;stroke-width:1px}.fk-mm-zone.fk-frame-noborder{stroke:none}.fk-mm-zone.fk-frame-nofill{fill:none;vector-effect:non-scaling-stroke}.fk-mm-purdue-rule{fill:none;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.4;stroke-width:1px;vector-effect:non-scaling-stroke}.fk-mm-purdue-rule--boundary{stroke-opacity:.75;stroke-dasharray:4 3}.fk-mm-world{fill:var(--fk-node-accent,#66748e);fill-opacity:.3;stroke:none}.fk-minimap-view{fill:color-mix(in srgb, var(--fk-accent) 14%, transparent);stroke:var(--fk-accent);stroke-width:1.5px;pointer-events:none}#canvas-host[data-cursor=pan] .fk-canvas{cursor:grab}#canvas-host[data-cursor=panning] .fk-canvas{cursor:grabbing}#canvas-host[data-cursor=place] .fk-canvas,#canvas-host[data-cursor=connect] .fk-canvas{cursor:crosshair}#canvas-host[data-cursor=drag] .fk-canvas,#canvas-host:not([data-cursor]) .fk-node,#canvas-host:not([data-cursor]) .fk-zone-hit,#canvas-host:not([data-cursor]) .fk-zone-label{cursor:move}#canvas-host:not([data-cursor]) .fk-edge-hit,#canvas-host:not([data-cursor]) .fk-conn{cursor:pointer}.fk-smart-guide{stroke:var(--fk-accent);stroke-width:1px;stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}.fk-align-guide{stroke:var(--fk-accent);stroke-width:1.5px;stroke-dasharray:7 5;pointer-events:none;opacity:0;animation:1.1s ease-out forwards fk-align-flash}@keyframes fk-align-flash{0%{opacity:0}12%{opacity:1}65%{opacity:1}to{opacity:0}}.fk-find{z-index:6;background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:10px;align-items:center;gap:8px;padding:6px 10px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0f172a1f}.fk-find-input{font:inherit;width:180px;color:var(--fk-text);background:0 0;border:none;outline:none;font-size:13px}.fk-find-count{text-align:right;min-width:3.5em;color:var(--fk-text-muted);white-space:nowrap;font-size:11px}.fk-find-flash{fill:none;stroke:var(--fk-accent);stroke-width:2.5px;pointer-events:none;opacity:0;animation:1.2s ease-out forwards fk-find-pulse}@keyframes fk-find-pulse{0%{opacity:0}12%{opacity:1}60%{opacity:1}to{opacity:0}}.fk-selection-rect{fill:none;stroke:var(--fk-selection);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.fk-edge-halo{fill:none;stroke:var(--fk-selection);stroke-opacity:.45;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.fk-edge:not(.is-selected) .fk-edge-halo{stroke-opacity:.2}.fk-conn-halo{fill:none;stroke:var(--fk-selection);stroke-opacity:.45;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.fk-conn:not(.is-selected) .fk-conn-halo{stroke-opacity:.2}.fk-marquee{fill:color-mix(in srgb, var(--fk-accent) 10%, transparent);stroke:var(--fk-accent);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.fk-handle{fill:var(--fk-surface);stroke:var(--fk-accent);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:crosshair;transition:fill .1s}.fk-handle.fk-handle-halo,.fk-handle.fk-handle-halo:hover{fill:#0000;stroke:none}.fk-handle-halo:hover+.fk-handle{fill:var(--fk-accent)}.fk-conn-center{fill:var(--fk-surface);fill-opacity:.5;stroke:var(--fk-accent);stroke-width:1.25px;stroke-opacity:.7;vector-effect:non-scaling-stroke;pointer-events:none}.fk-resize-handle{fill:var(--fk-surface);stroke:var(--fk-selection);stroke-width:1.5px;vector-effect:non-scaling-stroke}.fk-resize-handle:hover{fill:var(--fk-selection)}.fk-anchor-dot{fill:var(--fk-surface);stroke:var(--fk-accent);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.fk-anchor-dot--auto{stroke-dasharray:2 2}.fk-anchor-dot.is-active{fill:var(--fk-accent)}.fk-endpoint-handle{fill:var(--fk-selection);stroke:var(--fk-surface);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:grab}.fk-endpoint-handle:hover{fill:var(--fk-accent)}.fk-endpoint-handle--attached{fill:var(--fk-surface);stroke:var(--fk-selection);stroke-width:2.5px}.fk-endpoint-handle--attached:hover{fill:var(--fk-surface);stroke:var(--fk-accent)}.fk-endpoint-hit{fill:#0000;stroke:none;cursor:grab}.fk-waypoint-handle{fill:var(--fk-surface);stroke:var(--fk-selection);stroke-width:1.5px;vector-effect:non-scaling-stroke;cursor:grab}.fk-waypoint-handle:hover{fill:var(--fk-selection)}.fk-leader-handle{fill:var(--fk-selection);stroke:var(--fk-surface)}.fk-leader-handle:hover{fill:var(--fk-accent)}.fk-waypoint-insert{fill:var(--fk-surface);stroke:var(--fk-selection);stroke-width:1.25px;vector-effect:non-scaling-stroke;opacity:.55;cursor:copy}.fk-waypoint-insert:hover{opacity:1;fill:var(--fk-selection)}.fk-handle:hover{fill:var(--fk-accent)}.fk-temp-edge{fill:none;stroke:var(--fk-accent);stroke-width:1.75px;stroke-dasharray:5 5;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.fk-node.is-target .fk-node-tile{stroke:var(--fk-accent);stroke-width:2px}.fk-label-editor{z-index:10;min-width:180px;max-width:420px;max-height:220px;font-family:var(--fk-font);color:var(--fk-text);text-align:center;resize:none;background:var(--fk-surface);border:1px solid var(--fk-accent);border-radius:6px;padding:4px 7px;line-height:1.35;position:absolute;overflow-y:auto;box-shadow:0 2px 10px #0000001f}.fk-label-editor--left{text-align:left}.fk-label-editor:focus{outline:none}#empty-state{text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none;place-content:start center;justify-items:center;gap:2px;padding-top:clamp(20px,6dvh,72px);display:grid;position:absolute;inset:0}.es-mark{color:var(--fk-text-muted);opacity:.22;margin-bottom:10px;font-size:64px;line-height:1}.es-title{color:var(--fk-text);margin:0;font-size:14px;font-weight:550}.es-sub{color:var(--fk-text-muted);margin:0;font-size:12px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}.tpl-overlay{z-index:20;background:var(--fk-scrim);place-items:center;padding:12px;display:grid;position:fixed;inset:0}.tpl-panel{background:var(--fk-surface);border:1px solid var(--fk-border);width:min(1560px,100%);height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);box-shadow:var(--fk-shadow-dialog);border-radius:14px;outline:none;flex-direction:column;display:flex;overflow:hidden}.tpl-head{border-bottom:1px solid var(--fk-border);flex:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.tpl-title{letter-spacing:.01em;margin:0;font-size:13px;font-weight:650}.tpl-close{width:26px;height:26px;font:inherit;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:0;font-size:16px;line-height:1}.tpl-close:hover{color:var(--fk-text);background:color-mix(in srgb, var(--fk-text) 8%, transparent)}.tpl-body{padding:14px 16px 18px;overflow-y:auto}.tpl-gallery{flex-direction:column;gap:16px;display:flex}.tpl-actions{flex-wrap:wrap;gap:8px;display:flex}.tpl-btn{font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;padding:5px 10px;font-size:12px;transition:background-color .12s,border-color .12s}.tpl-btn:hover:not(:disabled){background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.tpl-btn:disabled{opacity:.38;cursor:default}.tpl-btn:focus-visible,.tpl-close:focus-visible,.tpl-mini:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.tpl-section{flex-direction:column;gap:8px;display:flex}.tpl-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);-webkit-user-select:none;user-select:none;margin:0;font-size:10.5px;font-weight:600}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:14px;display:grid}.tpl-card{background:var(--fk-surface);border:1px solid var(--fk-border);cursor:pointer;border-radius:10px;flex-direction:column;transition:border-color .12s,box-shadow .12s;display:flex;position:relative;overflow:hidden}.tpl-card:hover{border-color:var(--fk-accent);box-shadow:0 4px 16px #090c141a}.tpl-card:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.tpl-thumb{background:var(--fk-bg);border-bottom:1px solid var(--fk-border)}.tpl-thumb-svg{width:100%;height:auto;display:block}.fk-thumb-node{fill:var(--fk-node-fill);stroke:var(--fk-node-stroke);stroke-width:1px}.fk-thumb-purdue-rule{fill:none;stroke:var(--fk-family-annotation,#66748e);stroke-opacity:.45;stroke-width:1px}.fk-thumb-purdue-rule--boundary{stroke-opacity:.8;stroke-dasharray:3 2}.fk-thumb-zone{fill:color-mix(in srgb, var(--fk-accent) 6%, transparent);stroke:var(--fk-node-stroke);stroke-width:1px;stroke-dasharray:3 3}.fk-thumb-edge{stroke:var(--fk-edge);stroke-width:1px;opacity:.5}.fk-thumb-map-frame{fill:color-mix(in srgb, var(--fk-accent) 4%, transparent);stroke:var(--fk-node-stroke);stroke-width:1px}.fk-thumb-map-land{fill:var(--fk-node-stroke);opacity:.3}.tpl-meta{flex-direction:column;gap:2px;padding:8px 10px 10px;display:flex}.tpl-name{color:var(--fk-text);font-size:12.5px;font-weight:600}.tpl-desc{color:var(--fk-text-muted);font-size:11.5px;line-height:1.35}.tpl-card-actions{opacity:0;gap:4px;transition:opacity .12s;display:flex;position:absolute;top:6px;right:6px}.tpl-card:hover .tpl-card-actions,.tpl-card:focus-within .tpl-card-actions{opacity:1}.tpl-mini{width:22px;height:22px;font:inherit;color:var(--fk-text-muted);background:var(--fk-surface);border:1px solid var(--fk-border);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:inline-flex}.tpl-mini:hover{color:var(--fk-accent);border-color:var(--fk-accent)}.tpl-mini--danger:hover{color:var(--fk-family-security);border-color:var(--fk-family-security)}.tpl-empty-gallery{pointer-events:auto;text-align:left;width:min(1200px,100vw - 320px);max-height:calc(100dvh - 280px);margin-top:20px;padding:2px;overflow-y:auto}#canvas-host:not([data-cursor]) .fk-rack-hit,#canvas-host:not([data-cursor]) .fk-rack-title-strip,#canvas-host:not([data-cursor]) .fk-rack-label{cursor:move}#empty-state{z-index:3}button.brand{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:2px 7px 2px 4px;transition:background-color .12s}button.brand:hover{background:color-mix(in srgb, var(--fk-text) 6%, transparent)}button.brand:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.tb-check{color:var(--fk-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;padding:0 6px;font-size:11.5px;display:inline-flex}.tb-check input{accent-color:var(--fk-accent);cursor:pointer;margin:0}.tb-check:hover{color:var(--fk-text)}.fk-toasts{z-index:40;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.fk-toast{max-width:min(480px,100vw - 48px);color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);pointer-events:auto;border-radius:10px;align-items:center;gap:10px;padding:8px 10px 8px 13px;font-size:12.5px;line-height:1.4;animation:.16s fk-toast-in;display:flex;box-shadow:0 10px 30px #090c142e}.fk-toast.is-leaving{opacity:0;transition:opacity .15s}@keyframes fk-toast-in{0%{opacity:0;transform:translateY(6px)}}.fk-toast-action{font:inherit;color:var(--fk-accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:none;padding:3px 8px;font-size:12px;font-weight:600}.fk-toast-action:hover{background:color-mix(in srgb, var(--fk-accent) 10%, transparent)}.fk-toast-close{width:20px;height:20px;font:inherit;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:0;font-size:14px;line-height:1}.fk-toast-close:hover{color:var(--fk-text);background:color-mix(in srgb, var(--fk-text) 8%, transparent)}.fk-toast-action:focus-visible,.fk-toast-close:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-about{width:min(420px,100vw - 48px);color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);box-shadow:var(--fk-shadow-dialog);border-radius:14px;padding:20px 22px 16px}.fk-about::backdrop{background:var(--fk-scrim)}.fk-about-head{align-items:center;gap:9px;margin-bottom:2px;display:flex}.fk-about-mark{color:var(--fk-accent);font-size:26px;line-height:1}.fk-about-name{letter-spacing:.01em;font-size:14px;font-weight:650}.fk-about-version{color:var(--fk-text-muted);font-variant-numeric:tabular-nums;margin:4px 0 12px;font-size:11.5px}.fk-about-copy{font:inherit;color:var(--fk-text-muted);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:5px;margin-left:8px;padding:1px 6px;font-size:10.5px}.fk-about-copy:hover{color:var(--fk-text);border-color:var(--fk-accent)}.fk-about-line{color:var(--fk-text-muted);margin:0 0 10px;font-size:12px;line-height:1.5}.fk-about-line a{color:var(--fk-accent);text-decoration:none}.fk-about-line a:hover{text-decoration:underline}.fk-about-news{background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:10px;margin:0 0 12px;padding:11px 12px 9px}.fk-about-news-head{margin:0 0 7px;font-size:12px;font-weight:640}.fk-about-news-body{scrollbar-width:thin;max-height:min(300px,34vh);padding-right:6px;overflow-y:auto}.fk-about-news-body.is-clipped{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000);mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.fk-about-news-body .fk-man-p,.fk-about-news-body .fk-man-list{color:var(--fk-text-muted);font-size:12px;line-height:1.55}.fk-about-news-body .fk-man-p:last-child,.fk-about-news-body .fk-man-list:last-child{margin-bottom:0}.fk-about-news-body .fk-man-p strong{color:var(--fk-text);font-weight:620}.fk-about-news-body .fk-man-h{margin:12px 0 4px;font-size:12px;font-weight:640}.fk-about-news-body a{color:var(--fk-accent);text-decoration:none}.fk-about-news-body a:hover{text-decoration:underline}.fk-about-news-all{color:var(--fk-text-muted);margin-top:8px;font-size:11.5px;text-decoration:none;display:inline-block}.fk-about-news-all:hover{color:var(--fk-accent);text-decoration:underline}.fk-about-news-all:focus-visible{outline:2px solid var(--fk-accent);outline-offset:2px;border-radius:4px}.fk-about-pending{border:1px solid color-mix(in srgb, var(--fk-update) 40%, transparent);background:color-mix(in srgb, var(--fk-update) 8%, transparent);border-radius:10px;margin:14px 0 4px;padding:12px 14px}.fk-about-pending-head{align-items:center;gap:8px;margin:0 0 4px;font-weight:600;display:flex}.fk-about-pending-dot{background:var(--fk-update);border-radius:50%;flex:none;width:7px;height:7px}.fk-about-pending-sub{color:var(--fk-text-muted);margin:0 0 10px;font-size:12px}.fk-about-pending-notes{scrollbar-width:thin;border-top:1px solid var(--fk-border);max-height:min(200px,26vh);margin:0 0 11px;padding:9px 6px 0 0;overflow-y:auto}.fk-about-pending-notes .fk-man-p,.fk-about-pending-notes .fk-man-list{color:var(--fk-text-muted);font-size:12px;line-height:1.55}.fk-about-pending-notes .fk-man-p:last-child,.fk-about-pending-notes .fk-man-list:last-child{margin-bottom:0}.fk-about-pending-notes .fk-man-p strong{color:var(--fk-text);font-weight:620}.fk-about-pending-notes .fk-man-h{margin:12px 0 4px;font-size:12px;font-weight:640}.fk-about-pending-notes a{color:var(--fk-accent);text-decoration:none}.fk-about-pending-notes a:hover{text-decoration:underline}.fk-about-pending-notes.is-clipped{-webkit-mask-image:linear-gradient(#000 calc(100% - 24px),#0000);mask-image:linear-gradient(#000 calc(100% - 24px),#0000)}.fk-about-pending-actions{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.fk-about-pending-actions .fk-about-download{color:var(--fk-bg);background:var(--fk-accent);border:1px solid var(--fk-accent);border-radius:7px;padding:5px 12px;font-weight:600}.fk-about-pending-actions .fk-about-download:hover{background:color-mix(in srgb, var(--fk-accent) 85%, var(--fk-text));border-color:color-mix(in srgb, var(--fk-accent) 85%, var(--fk-text));text-decoration:none}a.fk-about-check{align-items:center;text-decoration:none;display:inline-flex}.fk-about-updates{border-top:1px solid var(--fk-border);margin-top:12px;padding-top:12px}.fk-about-updates-row{align-items:center;gap:10px;display:flex}.fk-about-check{font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;padding:5px 12px;font-size:12px}.fk-about-check:hover:not(:disabled){background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.fk-about-check:disabled{opacity:.6;cursor:default}.fk-about-updates-status{color:var(--fk-text-muted);font-size:12px}.fk-about-download{font:inherit;color:var(--fk-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:600}.fk-about-download:hover{text-decoration:underline}.fk-about-updates-toggle{color:var(--fk-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin-top:10px;font-size:12px;display:flex}.fk-about-updates-toggle input{accent-color:var(--fk-accent)}.fk-about-check:focus-visible,.fk-about-download:focus-visible,.fk-about-updates-toggle input:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-about-foot{justify-content:flex-end;margin-top:14px;display:flex}.fk-about-close{font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;padding:5px 14px;font-size:12.5px}.fk-about-close:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.fk-about-close:focus-visible,.fk-about-line a:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-replace{width:min(420px,100vw - 48px);color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);box-shadow:var(--fk-shadow-dialog);border-radius:14px;padding:18px 20px 14px}.fk-replace::backdrop{background:var(--fk-scrim)}.fk-replace-head{letter-spacing:.01em;margin-bottom:12px;font-size:13.5px;font-weight:650}.fk-replace-row{align-items:center;gap:10px;margin-bottom:9px;display:flex}.fk-replace-label{color:var(--fk-text-muted);flex:0 0 58px;font-size:12px}.fk-replace-row>.fk-search{flex:auto;min-width:0}.fk-replace-input{font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:7px;padding:5px 9px;font-size:12.5px}.fk-replace-input:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-replace-options{border-top:1px solid var(--fk-border);flex-wrap:wrap;align-items:center;gap:8px 16px;margin:12px 0 6px;padding-top:10px;display:flex}.fk-replace-scope{align-items:center;gap:14px;margin-left:auto;display:flex}.fk-replace-check{color:var(--fk-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12px;display:inline-flex}.fk-replace-check input{accent-color:var(--fk-accent)}.fk-replace-check.is-disabled{opacity:.45;cursor:default}.fk-replace-check input:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-replace-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.fk-replace-count{min-width:0;color:var(--fk-text-muted);font-variant-numeric:tabular-nums;flex:auto;font-size:11.5px}.fk-replace-count.is-error{color:#d9544f}.fk-replace-actions{flex:none;gap:8px;margin-left:auto;display:flex}.fk-replace-close,.fk-replace-apply{font:inherit;white-space:nowrap;cursor:pointer;border-radius:7px;padding:5px 14px;font-size:12.5px}.fk-replace-close{color:var(--fk-text);border:1px solid var(--fk-border);background:0 0}.fk-replace-close:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.fk-replace-apply{color:#fff;background:var(--fk-accent);border:1px solid var(--fk-accent)}.fk-replace-apply:hover:not(:disabled){filter:brightness(1.05)}.fk-replace-apply:disabled{opacity:.5;cursor:default}.fk-replace-close:focus-visible,.fk-replace-apply:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-docinfo{width:min(460px,100vw - 48px);color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);box-shadow:var(--fk-shadow-dialog);border-radius:14px;padding:18px 20px 14px}.fk-docinfo::backdrop{background:var(--fk-scrim)}.fk-docinfo-head{letter-spacing:.01em;font-size:13.5px;font-weight:650}.fk-docinfo-hint{color:var(--fk-text-muted);margin:4px 0 12px;font-size:11.5px;line-height:1.45}.fk-docinfo-row{align-items:center;gap:10px;margin-bottom:9px;display:flex}.fk-docinfo-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--fk-text-muted);flex:0 0 max(96px,13ch);font-size:12px;overflow:hidden}.fk-docinfo-input{min-width:0;font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:7px;flex:auto;padding:5px 9px;font-size:12.5px}.fk-docinfo-input:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-docinfo-logo-row{border-top:1px solid var(--fk-border);padding-top:10px}.fk-docinfo-logo{object-fit:contain;max-width:108px;max-height:34px}.fk-docinfo-btn{font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;padding:4px 11px;font-size:12px}.fk-docinfo-btn:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.fk-docinfo-section{letter-spacing:.09em;text-transform:uppercase;color:var(--fk-text-muted);border-top:1px solid var(--fk-border);margin:14px 0 2px;padding-top:12px;font-size:11px;font-weight:700}.fk-docinfo-presets{flex-wrap:wrap;gap:5px;margin:0 0 9px 106px;display:flex}.fk-docinfo-chip{font:inherit;letter-spacing:.06em;color:var(--fk-text-muted);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:999px;padding:3px 8px;font-size:10.5px}.fk-docinfo-chip:hover{color:var(--fk-accent);border-color:var(--fk-accent)}.fk-docinfo-range{min-width:0;accent-color:var(--fk-accent);flex:auto}.fk-docinfo-check{color:var(--fk-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin:4px 0 2px;font-size:11.5px;display:inline-flex}.fk-docinfo-check input{accent-color:var(--fk-accent)}.fk-docinfo-foot{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.fk-docinfo-cancel,.fk-docinfo-save{font:inherit;cursor:pointer;border-radius:7px;padding:5px 14px;font-size:12.5px}.fk-docinfo-cancel{color:var(--fk-text);border:1px solid var(--fk-border);background:0 0}.fk-docinfo-cancel:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.fk-docinfo-save{color:#fff;background:var(--fk-accent);border:1px solid var(--fk-accent)}.fk-docinfo-save:hover{filter:brightness(1.05)}.fk-docinfo-cancel:focus-visible,.fk-docinfo-save:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}#blocks-popover{min-width:150px}.fk-revs{width:min(560px,100vw - 48px);color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);box-shadow:var(--fk-shadow-dialog);border-radius:14px;padding:18px 20px 14px}.fk-revs::backdrop{background:var(--fk-scrim)}.fk-revs-head{letter-spacing:.01em;font-size:13.5px;font-weight:650}.fk-revs-hint,.fk-revs-empty,.fk-revs-foot-note{color:var(--fk-text-muted);margin:4px 0 12px;font-size:11.5px;line-height:1.45}.fk-revs-list{max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.fk-revs-row{border-top:1px solid var(--fk-border);align-items:center;gap:10px;padding:7px 0;display:flex}.fk-revs-main{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.fk-revs-label{font-variant-numeric:tabular-nums;font-size:12px}.fk-revs-note,.fk-revs-size{color:var(--fk-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.fk-revs-actions{flex:none;gap:6px;display:flex}.fk-revs-btn{font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;padding:4px 11px;font-size:12px}.fk-revs-btn:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.fk-revs-foot{align-items:center;gap:8px;margin-top:12px;display:flex}.fk-revs-note-input{min-width:0;font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:7px;flex:auto;padding:5px 9px;font-size:12.5px}.fk-revs-note-input:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-revs-close,.fk-revs-save{font:inherit;cursor:pointer;border-radius:7px;padding:5px 14px;font-size:12.5px}.fk-revs-close{color:var(--fk-text);border:1px solid var(--fk-border);background:0 0}.fk-revs-close:hover{background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-color:var(--fk-accent)}.fk-revs-save{color:#fff;background:var(--fk-accent);border:1px solid var(--fk-accent)}.fk-revs-save:hover:not(:disabled){filter:brightness(1.05)}.fk-revs-save:disabled{opacity:.5;cursor:default}.fk-revs-btn:focus-visible,.fk-revs-close:focus-visible,.fk-revs-save:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}#pages-bar{z-index:5;background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:10px;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:3px;display:flex;position:absolute;bottom:12px;left:12px;box-shadow:0 4px 16px #0f172a14}.pages-tabs{scrollbar-width:thin;align-items:center;gap:2px;display:flex;overflow-x:auto}.pages-tab{height:26px;color:var(--fk-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:7px;align-items:center;gap:3px;padding:0 9px;font-size:12.5px;display:flex}.pages-tab:hover{background:var(--fk-bg);color:var(--fk-text)}.pages-tab.is-active{color:var(--fk-accent);background:color-mix(in srgb, var(--fk-accent) 10%, transparent);font-weight:600}.pages-tab.is-readonly{opacity:.5;cursor:not-allowed}.pages-tab.is-dragging{opacity:.4}.pages-tab.drop-before{box-shadow:inset 2px 0 0 var(--fk-accent)}.pages-tab.drop-after{box-shadow:inset -2px 0 0 var(--fk-accent)}.pages-tab-label{text-overflow:ellipsis;max-width:140px;overflow:hidden}.pages-tab-peers{align-items:center;gap:2px;margin-left:2px;display:inline-flex}.pages-tab-peer{width:7px;height:7px;box-shadow:0 0 0 1px var(--fk-surface);border-radius:50%}.pages-tab.peers-elsewhere{color:var(--fk-text);animation:1.6s ease-in-out infinite pages-tab-peer-pulse}@keyframes pages-tab-peer-pulse{0%,to{background:0 0}50%{background:color-mix(in srgb, var(--fk-accent) 16%, transparent)}}@media (prefers-reduced-motion:reduce){.pages-tab.peers-elsewhere{background:color-mix(in srgb, var(--fk-accent) 12%, transparent);animation:none}}.pages-tab-close{width:15px;height:15px;font:inherit;color:var(--fk-text-muted);cursor:pointer;visibility:hidden;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin-right:-4px;padding:0;font-size:13px;line-height:1;display:inline-flex}.pages-tab:hover .pages-tab-close{visibility:visible}.pages-tab-close:hover{color:var(--fk-text);background:color-mix(in srgb, var(--fk-text) 12%, transparent)}.pages-tab-rename{width:110px;height:20px;font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-accent);border-radius:5px;outline:none;padding:0 4px;font-size:12.5px}.pages-add{width:26px;height:26px;font:inherit;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:none;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}.pages-add:hover{color:var(--fk-accent);background:color-mix(in srgb, var(--fk-accent) 10%, transparent)}.fk-node.is-target .fk-image-frame{stroke:var(--fk-accent);stroke-width:2px}.fk-pill{height:22px;font:inherit;color:var(--fk-text-muted);background:color-mix(in srgb, var(--fk-text) 6%, transparent);border:1px solid var(--fk-border);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.fk-pill:before{content:"";background:var(--fk-text-muted);border-radius:50%;width:7px;height:7px}.fk-pill.is-live{color:var(--fk-family-compute);border-color:color-mix(in srgb, var(--fk-family-compute) 45%, transparent);background:color-mix(in srgb, var(--fk-family-compute) 10%, transparent)}.fk-pill.is-live:before{background:var(--fk-family-compute)}.fk-pill.is-live.is-following{color:var(--fk-family-network);border-color:color-mix(in srgb, var(--fk-family-network) 45%, transparent);background:color-mix(in srgb, var(--fk-family-network) 10%, transparent)}.fk-pill.is-live.is-following:before{background:var(--fk-family-network)}.fk-pill.is-live.is-open-door{color:var(--fk-family-people);border-color:color-mix(in srgb, var(--fk-family-people) 55%, transparent);background:color-mix(in srgb, var(--fk-family-people) 14%, transparent)}.fk-pill.is-live.is-open-door:before{background:var(--fk-family-people)}.fk-pill.is-warn{color:var(--fk-family-people);border-color:color-mix(in srgb, var(--fk-family-people) 45%, transparent);background:color-mix(in srgb, var(--fk-family-people) 10%, transparent)}.fk-pill.is-warn:before{background:var(--fk-family-people)}.fk-pill.is-lost{color:var(--fk-family-security);border-color:color-mix(in srgb, var(--fk-family-security) 45%, transparent);background:color-mix(in srgb, var(--fk-family-security) 10%, transparent)}.fk-pill.is-lost:before{background:var(--fk-family-security)}.fk-share-pop{z-index:30;width:320px;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex;position:fixed;box-shadow:0 12px 36px #090c142e}.fk-pop-title{font-size:13px;font-weight:650}.fk-pop-sub{color:var(--fk-text-muted);margin:0;font-size:12px;line-height:1.45}.fk-pop-warn{border:1px solid color-mix(in srgb, var(--fk-update) 40%, transparent);background:color-mix(in srgb, var(--fk-update) 8%, transparent);border-radius:10px;margin:0;padding:8px 10px;font-size:12px;line-height:1.45}.fk-pop-warn .fk-pop-quiet{margin-top:6px}.fk-pop-label{letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);flex-direction:column;gap:6px;font-size:10.5px;font-weight:600;display:flex}.fk-pop-row{gap:6px;display:flex}.fk-pop-tabs{background:color-mix(in srgb, var(--fk-text) 7%, transparent);border-radius:8px;gap:2px;padding:2px;display:flex}.fk-pop-tab{font:inherit;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:5px 0;font-size:12px;font-weight:550}.fk-pop-tab:hover:not(.is-on){color:var(--fk-text)}.fk-pop-tab.is-on{color:var(--fk-text);background:var(--fk-surface);box-shadow:0 1px 3px #090c1429}.fk-pop-more{flex-wrap:wrap;gap:4px 12px;display:flex}.fk-pop-more-btn{font:inherit;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:11.5px}.fk-pop-more-btn:hover{color:var(--fk-accent);text-decoration:underline}.fk-pop-more-btn.is-revoke{margin-left:auto}.fk-pop-more-btn.is-revoke:hover{color:var(--fk-family-security)}.fk-pop-row .insp-btn{flex:none;padding:4px 10px}.fk-pop-link{min-width:0;font-family:var(--fk-font-mono);flex:1;font-size:11px}.fk-pop-primary{font:inherit;color:#fff;background:var(--fk-accent);cursor:pointer;border:none;border-radius:8px;padding:7px 0;font-size:12.5px;font-weight:600}.fk-pop-primary:hover:not(:disabled){filter:brightness(1.06)}.fk-pop-primary:disabled{opacity:.6;cursor:default}.fk-pop-quiet{font:inherit;color:var(--fk-text-muted);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;align-self:flex-start;padding:4px 10px;font-size:12px}.fk-pop-quiet:hover{color:var(--fk-family-security);border-color:var(--fk-family-security)}.fk-pop-people{flex-direction:column;gap:6px;display:flex}.fk-peer{align-items:center;gap:8px;font-size:12.5px;display:flex}.fk-peer-dot{border-radius:50%;flex:none;width:9px;height:9px}.fk-peer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.fk-peer-rename{min-width:0;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:5px;margin:-1px -4px;padding:1px 4px}.fk-peer-rename:hover{border-color:var(--fk-border)}.fk-peer-rename:focus{border-color:var(--fk-accent);background:var(--fk-bg);outline:none}.fk-peer-you{color:var(--fk-text-muted);flex:none}.fk-peer-kind{letter-spacing:.04em;color:var(--fk-text-muted);border:1px solid var(--fk-border);border-radius:999px;flex:none;padding:1px 7px;font-size:10px;font-weight:600}.fk-peer-kick{font:inherit;color:var(--fk-text-muted);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px;font-size:11px}.fk-peer-kick:hover{color:var(--fk-family-security);border-color:var(--fk-family-security)}.fk-peer-viewer{color:var(--fk-family-people);border-color:color-mix(in srgb, var(--fk-family-people) 45%, transparent)}.fk-peer-follow{font:inherit;color:var(--fk-text-muted);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px;font-size:11px}.fk-peer-follow:hover{color:var(--fk-family-network);border-color:var(--fk-family-network)}.fk-peer-follow.is-active{color:var(--fk-family-network);border-color:color-mix(in srgb, var(--fk-family-network) 55%, transparent);background:color-mix(in srgb, var(--fk-family-network) 14%, transparent)}.fk-lobby-row{background:color-mix(in srgb, var(--fk-accent) 8%, transparent);border-radius:7px;align-items:center;gap:6px;padding:5px 6px;display:flex}.fk-lobby-row .fk-peer-name{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.fk-lobby-allow{color:#fff!important;background:var(--fk-accent)!important;border-color:var(--fk-accent)!important}.fk-door{border:1px solid var(--fk-border);border-radius:9px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.fk-door.is-open{border-color:color-mix(in srgb, var(--fk-family-people) 45%, transparent);background:color-mix(in srgb, var(--fk-family-people) 10%, transparent)}.fk-door-head{align-items:center;gap:8px;display:flex}.fk-door-title{flex:1;min-width:0;font-size:12.5px;font-weight:600}.fk-door-btn{font:inherit;color:var(--fk-text-muted);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px;font-size:11px}.fk-door-btn:hover:not(:disabled){color:var(--fk-family-people);border-color:var(--fk-family-people)}.fk-door-btn.is-end:hover:not(:disabled){color:var(--fk-family-security);border-color:var(--fk-family-security)}.fk-door-btn:disabled{opacity:.6;cursor:default}.fk-door-on{letter-spacing:.08em;text-transform:uppercase;color:var(--fk-family-people);align-items:center;gap:5px;font-size:10.5px;font-weight:700;display:inline-flex}.fk-door-on:before{content:"";background:var(--fk-family-people);border-radius:50%;width:7px;height:7px}.fk-door-note{text-align:right;align-self:flex-end}.fk-door-never{margin-top:-4px}.fk-door-foot{align-items:center;gap:8px;display:flex}.fk-door-time{font-variant-numeric:tabular-nums;min-width:0;color:var(--fk-family-people);flex:1;font-size:12px;font-weight:600}.fk-join-saved{flex-direction:column;gap:3px;display:flex}.fk-saved-row{border-radius:7px;align-items:center;gap:8px;padding:4px;display:flex}.fk-saved-row:hover{background:var(--fk-bg)}.fk-saved-dot{background:var(--fk-text-muted);opacity:.5;border-radius:50%;flex:none;width:9px;height:9px}.fk-saved-dot.is-online{opacity:1;background:#30a46c;box-shadow:0 0 0 3px #30a46c40}.fk-saved-dot.is-offline{background:var(--fk-text-muted);opacity:.4}.fk-saved-name{text-overflow:ellipsis;text-align:left;min-width:0;font:inherit;color:var(--fk-text);cursor:pointer;background:0 0;border:none;flex:1;padding:2px 0;overflow:hidden}.fk-saved-name:hover{color:var(--fk-accent)}.fk-join[open],.fk-join-confirm[open]{flex-direction:column;gap:10px;display:flex}.fk-join-input{resize:none;font-family:var(--fk-font-mono);word-break:break-all;font-size:11px;line-height:1.5}.fk-join-foot{gap:6px;margin-top:4px}.fk-join-go{color:#fff;background:var(--fk-accent);border-color:var(--fk-accent)}.fk-join-go:hover:not(:disabled){background:var(--fk-accent);filter:brightness(1.06)}.fk-join-error{color:var(--fk-family-security);margin:0;font-size:12px;line-height:1.45}.fk-join-steps{flex-direction:column;gap:4px;margin:0;padding:0 0 0 4px;list-style:none;display:flex}.fk-join-step{color:var(--fk-text-muted);padding-left:18px;font-size:12px;position:relative}.fk-join-step:before{content:"";border:1.5px solid var(--fk-border);border-radius:50%;width:7px;height:7px;position:absolute;top:5px;left:2px}.fk-join-step.is-current{color:var(--fk-text)}.fk-join-step.is-current:before{border-color:var(--fk-accent);background:color-mix(in srgb, var(--fk-accent) 30%, transparent)}.fk-join-step.is-done{color:var(--fk-text-muted)}.fk-join-step.is-done:before{border-color:var(--fk-family-compute);background:var(--fk-family-compute)}.fk-collab-banner{z-index:6;max-width:min(560px,100% - 48px);color:var(--fk-text);background:var(--fk-surface);border:1px solid color-mix(in srgb, var(--fk-family-security) 40%, var(--fk-border));border-radius:10px;align-items:center;gap:10px;padding:8px 10px 8px 14px;font-size:12.5px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #090c142e}.fk-banner-msg{line-height:1.4}.fk-banner-action{font:inherit;color:var(--fk-accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:none;padding:3px 10px;font-size:12px;font-weight:600}.fk-banner-action:hover{background:color-mix(in srgb, var(--fk-accent) 10%, transparent)}.fk-banner-close{width:20px;height:20px;font:inherit;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:0;font-size:14px;line-height:1}.fk-banner-close:hover{color:var(--fk-text);background:color-mix(in srgb, var(--fk-text) 8%, transparent)}.fk-presence{z-index:3;pointer-events:none;position:absolute;inset:0;overflow:hidden}.fk-remote-cursor{filter:drop-shadow(0 1px 2px #090c1440);align-items:flex-start;display:flex;position:absolute;transform:translate(-1px,-1px)}.fk-remote-name{color:#fff;white-space:nowrap;border-radius:4px 8px 8px;margin:14px 0 0 -2px;padding:1px 7px 2px;font-size:10.5px;font-weight:600}.fk-remote-sel-ring{fill:none;stroke-width:2px;opacity:.65;vector-effect:non-scaling-stroke}.gen-overlay{z-index:30;background:var(--fk-scrim);place-items:center;padding:12px;display:grid;position:fixed;inset:0}.gen-panel{background:var(--fk-surface);border:1px solid var(--fk-border);width:min(760px,100%);max-height:calc(100dvh - 24px);box-shadow:var(--fk-shadow-dialog);border-radius:14px;outline:none;flex-direction:column;display:flex;overflow:hidden}.gen-head{border-bottom:1px solid var(--fk-border);flex:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.gen-title{letter-spacing:.01em;margin:0;font-size:13px;font-weight:650}.gen-body{gap:18px;padding:14px 16px;display:flex;overflow-y:auto}.gen-questions{flex-direction:column;flex:55%;gap:10px;min-width:0;display:flex}.gen-row{flex-direction:column;gap:4px;display:flex}.gen-q{color:var(--fk-text-muted);-webkit-user-select:none;user-select:none;font-size:11.5px;font-weight:600}.gen-seg{flex-wrap:wrap;gap:4px;display:inline-flex}.gen-opt{min-width:30px;font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:7px;padding:4px 9px;font-size:12px;transition:background-color .12s,border-color .12s}.gen-opt:hover{border-color:var(--fk-accent)}.gen-opt.is-active{color:var(--fk-accent);background:color-mix(in srgb, var(--fk-accent) 12%, transparent);border-color:var(--fk-accent);font-weight:600}.gen-opt:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.gen-side{flex-direction:column;flex:45%;gap:6px;min-width:0;display:flex}.gen-preview{background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:10px;overflow:hidden}.gen-preview svg{width:100%;height:auto;display:block}.gen-count{color:var(--fk-text-muted);text-align:center;-webkit-user-select:none;user-select:none;font-size:11px}.gen-foot{border-top:1px solid var(--fk-border);flex:none;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.gen-primary{color:#fff;background:var(--fk-accent);border-color:var(--fk-accent)}.gen-primary:hover:not(:disabled){color:#fff;background:color-mix(in srgb, var(--fk-accent) 88%, #000)}.tpl-card--generate{border-style:dashed}.tpl-card--generate .tpl-name:before{content:"✦ ";color:var(--fk-accent)}.insp-combo{position:relative}.insp-combo-button{cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:6px;width:100%;display:flex}.insp-combo-button:after{content:"";opacity:.5;border-bottom:1.4px solid;border-right:1.4px solid;flex:none;width:7px;height:7px;transform:translateY(-2px)rotate(45deg)}.insp-combo-button.is-mixed{color:var(--fk-text-muted)}.insp-combo-pop{z-index:20;background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:9px;flex-direction:column;gap:6px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #00000038}.insp-combo-pop.is-above{top:auto;bottom:calc(100% + 4px)}.insp-combo-search{font:inherit;width:100%;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:7px;outline:none;padding:5px 9px;font-size:12.5px}.insp-combo-search:focus{border-color:var(--fk-accent)}.insp-combo-list{overscroll-behavior:contain;max-height:260px;overflow-y:auto}.insp-combo-group{letter-spacing:.06em;text-transform:uppercase;color:var(--fk-text-muted);padding:6px 6px 2px;font-size:9.5px;font-weight:600}.insp-combo-opt{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 6px;font-size:12.5px;display:flex}.insp-combo-opt.is-active{background:var(--fk-bg)}.insp-combo-opt.is-current{font-weight:600}.insp-combo-opt.is-current:after{content:"✓";color:var(--fk-accent);margin-left:auto;font-size:11px}.insp-combo-icon{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.insp-suggest{position:relative}.insp-suggest-input{padding-right:26px}.insp-suggest-toggle{width:22px;height:22px;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.insp-suggest-toggle:after{content:"";border-bottom:1.4px solid;border-right:1.4px solid;width:7px;height:7px;transform:translateY(-2px)rotate(45deg)}.insp-suggest-toggle:hover{background:var(--fk-bg);color:var(--fk-text)}.insp-suggest-toggle[aria-expanded=true]{color:var(--fk-accent)}.insp-suggest.has-no-options .insp-suggest-toggle{display:none}.insp-suggest.has-no-options .insp-suggest-input{padding-right:9px}.insp-suggest-pop .insp-combo-list{max-height:260px}.insp-suggest-label{flex:auto}.insp-suggest-note{color:var(--fk-text-muted);text-align:right;flex:none;padding-left:10px;font-size:11.5px}.insp-combo-empty{color:var(--fk-text-muted);padding:10px 6px;font-size:12.5px}#toolbar{overflow:hidden}.tb-group,.tb-more-wrap{flex:none}.tb-more-pop{min-width:180px;max-height:min(70vh,520px);padding:6px;right:0;overflow-y:auto}.tb-more-section{flex-direction:column;gap:2px;padding:4px 0;display:flex}.tb-more-section+.tb-more-section{border-top:1px solid var(--fk-border)}.tb-more-label{letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);padding:6px 10px 2px;font-size:10.5px;font-weight:600}.tb-more-section .tb-group,.tb-more-section>.tb-group{flex-flow:wrap;gap:2px;display:flex}.tb-more-section .tb-btn:not(.tb-icon){text-align:left;flex:1;justify-content:flex-start}.insp-check{padding:0;font-size:12px}.rb-overlay{z-index:40;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.rb-panel{background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:12px;flex-direction:column;width:min(860px,100%);max-height:100%;display:flex;overflow:hidden;box-shadow:0 18px 48px #00000057}.rb-head{border-bottom:1px solid var(--fk-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.rb-rear-label{color:var(--fk-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;margin-left:auto;font-size:12px;display:flex}.rb-rear{cursor:pointer}.rb-title{margin:0;font-size:14px;font-weight:600}.rb-done{font:inherit;border:1px solid var(--fk-accent);background:var(--fk-accent);color:#fff;cursor:pointer;border-radius:7px;padding:6px 14px;font-size:13px;font-weight:600}.rb-body{flex:1;grid-template-columns:190px 1fr;gap:0;min-height:0;display:grid}.rb-side{border-right:1px solid var(--fk-border);flex-direction:column;gap:8px;min-height:0;padding:12px;display:flex}.rb-search{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:7px;outline:none;padding:6px 9px;font-size:12.5px}.rb-search:focus{border-color:var(--fk-accent)}.rb-list{flex-direction:column;gap:1px;min-height:0;display:flex;overflow-y:auto}.rb-item{font:inherit;text-align:left;color:var(--fk-text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:5px 7px;font-size:12.5px;display:flex}.rb-item:hover{background:var(--fk-bg)}.rb-item.is-armed{border-color:var(--fk-accent);background:var(--fk-bg);font-weight:600}.rb-item-icon{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.rb-main{flex-direction:column;min-height:0;display:flex}.rb-grid{flex:1;min-height:0;padding:12px;overflow-y:auto}.rb-row{grid-template-columns:28px repeat(var(--rb-faces,1), 1fr);align-items:stretch;gap:6px;display:grid}.rb-row--head{background:var(--fk-surface);z-index:1;padding-bottom:4px;position:sticky;top:0}.rb-colhead{letter-spacing:.06em;text-transform:uppercase;color:var(--fk-text-muted);text-align:center;font-size:9.5px;font-weight:600}.rb-u{color:var(--fk-text-muted);text-align:right;font-variant-numeric:tabular-nums;padding-right:2px;font-size:10px;line-height:26px}.rb-cell{border:1px solid var(--fk-border);border-radius:5px;align-items:center;min-height:26px;padding:0 8px;font-size:12px;display:flex}.rb-cell.is-empty{opacity:.6;border-style:dashed}.rb-cell.is-armable{cursor:copy;opacity:1}.rb-cell.is-armable:hover{border-color:var(--fk-accent);border-style:solid}.rb-cell.is-filled{background:var(--fk-bg);cursor:grab}.rb-cell.is-continued{border-top-color:#0000;border-top-left-radius:0;border-top-right-radius:0}.rb-cell.is-selected{border-color:var(--fk-accent);box-shadow:inset 0 0 0 1px var(--fk-accent)}.rb-cell-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rb-detail{border-top:1px solid var(--fk-border);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.rb-hint{color:var(--fk-text-muted);margin:0;font-size:12px}.rb-name{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:7px;outline:none;padding:6px 9px;font-size:13px}.rb-name:focus{border-color:var(--fk-accent)}.rb-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.rb-btn{font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:12px}.rb-btn:hover{border-color:var(--fk-accent)}.rb-btn.is-active{border-color:var(--fk-accent);font-weight:600}.rb-btn--danger{color:#c0392b;margin-left:auto}.rb-size{color:var(--fk-text-muted);font-variant-numeric:tabular-nums;min-width:26px;font-size:12px}.fk-man{width:min(1040px,100vw - 40px);max-width:none;height:min(760px,100vh - 48px);max-height:none;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);box-shadow:var(--fk-shadow-dialog);border-radius:14px;padding:0;overflow:hidden}.fk-man::backdrop{background:var(--fk-scrim)}.fk-man-head{border-bottom:1px solid var(--fk-border);align-items:center;gap:12px;padding:12px 16px;display:flex}.fk-man-title{letter-spacing:.01em;margin:0;font-size:13.5px;font-weight:650}.fk-man-head>.fk-search{flex:1;min-width:0;max-width:380px}.fk-man-search{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:7px;padding:5px 9px;font-size:12.5px}.fk-man-search:focus-visible,.fk-man-close:focus-visible,.fk-man-link:focus-visible,.fk-man-result:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-man-close{font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);cursor:pointer;border-radius:7px;margin-left:auto;padding:5px 14px;font-size:12.5px}.fk-man-close:hover{border-color:var(--fk-accent)}.fk-man-layout{height:calc(100% - 53px);display:flex}.fk-man-side{background:var(--fk-bg);border-right:1px solid var(--fk-border);flex:none;width:236px;padding:10px 8px 16px;overflow-y:auto}.fk-man-group{letter-spacing:.06em;text-transform:uppercase;color:var(--fk-text-muted);padding:12px 8px 4px;font-size:10.5px;font-weight:650}.fk-man-link{text-align:left;width:100%;font:inherit;color:var(--fk-text);cursor:pointer;background:0 0;border:0;border-radius:6px;margin:1px 0;padding:5px 8px;font-size:12.5px;display:block}.fk-man-link:hover{background:var(--fk-surface)}.fk-man-link.is-active{color:var(--fk-accent);background:var(--fk-surface);font-weight:600}.fk-man-result{text-align:left;width:100%;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;margin:2px 0;padding:6px 8px;display:block}.fk-man-result:hover{background:var(--fk-surface)}.fk-man-result-where{color:var(--fk-accent);font-size:11px;font-weight:600;display:block}.fk-man-result-snip{color:var(--fk-text-muted);font-size:11.5px;line-height:1.4;display:block}.fk-man-empty{color:var(--fk-text-muted);margin:0;padding:10px 8px;font-size:12px}.fk-man-body{flex:1;min-width:0;padding:22px 34px 48px;overflow-y:auto}.fk-man-page-title{letter-spacing:-.01em;margin:0 0 16px;font-size:21px;font-weight:660}.fk-man-body h2.fk-man-h{margin:26px 0 8px;font-size:15.5px;font-weight:640}.fk-man-body h3.fk-man-h{margin:20px 0 6px;font-size:13.5px;font-weight:640}.fk-man-body h4.fk-man-h{color:var(--fk-text-muted);margin:16px 0 4px;font-size:12.5px;font-weight:640}.fk-man-p{max-width:68ch;margin:0 0 10px;font-size:13px;line-height:1.62}.fk-man-list{max-width:68ch;margin:0 0 12px;padding-left:20px;font-size:13px;line-height:1.62}.fk-man-list li{margin:3px 0}.fk-man-body code{font-family:var(--fk-font-mono);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:5px;padding:1px 5px;font-size:.9em}.fk-man-pre{background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:8px;margin:0 0 12px;padding:10px 12px;font-size:12px;line-height:1.5;overflow-x:auto}.fk-man-pre code{background:0 0;border:0;padding:0}.fk-man-table-wrap{margin:0 0 14px;overflow-x:auto}.fk-man-table{border-collapse:collapse;font-size:12.5px}.fk-man-table th,.fk-man-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--fk-border);padding:5px 12px 5px 0}.fk-man-table th{color:var(--fk-text-muted);white-space:nowrap;font-weight:640}.fk-man-body hr{border:0;border-top:1px solid var(--fk-border);margin:22px 0}.fk-man-body a{color:var(--fk-accent)}.fk-man-xref{text-underline-offset:2px;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px}.fk-man-xref:hover{text-decoration-thickness:2px}@media (width<=720px){.fk-man-side{width:170px}.fk-man-body{padding:18px 18px 40px}}.fk-lib{width:min(1180px,100vw - 40px);max-width:none;height:min(800px,100vh - 48px);max-height:none;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);box-shadow:var(--fk-shadow-dialog);border-radius:14px;padding:0;overflow:hidden}.fk-lib::backdrop{background:var(--fk-scrim)}.fk-lib-head{border-bottom:1px solid var(--fk-border);align-items:center;gap:12px;padding:12px 16px;display:flex}.fk-lib-title{letter-spacing:.01em;margin:0;font-size:13.5px;font-weight:650}.fk-lib-count{color:var(--fk-text-muted);font-variant-numeric:tabular-nums;font-size:11.5px}.fk-lib-head>.fk-search{flex:1;min-width:0;max-width:380px;margin-left:auto}.fk-lib-search{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:7px;padding:5px 9px;font-size:12.5px}.fk-lib-close{font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);cursor:pointer;border-radius:7px;padding:5px 14px;font-size:12.5px}.fk-lib-close:hover{border-color:var(--fk-accent);color:var(--fk-accent)}.fk-lib-body{height:calc(100% - 57px);padding:4px 16px 20px;overflow-y:auto}.fk-lib-group{padding-top:14px}.fk-lib-heading{z-index:1;letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);background:var(--fk-surface);align-items:baseline;gap:8px;margin:0 0 8px;padding:8px 0 6px;font-size:11px;font-weight:650;display:flex;position:sticky;top:0}.fk-lib-n{letter-spacing:0;color:var(--fk-text-muted);opacity:.7;font-size:10.5px;font-weight:500}.fk-lib-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;display:grid}.fk-lib-card{font:inherit;color:var(--fk-text);background:var(--fk-node-fill);border:1px solid var(--fk-border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px 10px;transition:border-color .12s,transform .12s;display:flex}.fk-lib-card:hover{border-color:var(--fk-accent);transform:translateY(-1px)}.fk-lib-card:focus-visible{outline:2px solid var(--fk-accent);outline-offset:2px}.fk-lib-art svg{width:34px;height:34px;display:block}.fk-lib-label{text-align:center;font-size:12px;line-height:1.25}.fk-lib-kind{color:var(--fk-text-muted);opacity:.75;font-size:10px}.fk-lib-empty{color:var(--fk-text-muted);padding:24px 2px;font-size:12.5px}.fk-diff-box,.fk-diff-line{fill:none;stroke-width:2px;vector-effect:non-scaling-stroke}.fk-diff--added .fk-diff-box,.fk-diff--added .fk-diff-line{stroke:#16794c}.fk-diff--removed .fk-diff-box,.fk-diff--removed .fk-diff-line{stroke:#b5341c;stroke-dasharray:2 3}.fk-diff--changed .fk-diff-box,.fk-diff--changed .fk-diff-line{stroke:#9a6400;stroke-dasharray:8 4}.fk-diff-box.is-ghost{opacity:.55;stroke-dasharray:2 3}.fk-diff-pill{fill:#fff;stroke-width:1px}.fk-diff--added .fk-diff-pill{stroke:#16794c}.fk-diff--removed .fk-diff-pill{stroke:#b5341c}.fk-diff--changed .fk-diff-pill{stroke:#9a6400}.fk-diff-glyph,.fk-diff-caption{font-family:var(--fk-font,system-ui, sans-serif);dominant-baseline:auto;font-size:9px;font-weight:700}.fk-diff-caption{font-weight:500}.fk-diff--added .fk-diff-glyph,.fk-diff--added .fk-diff-caption{fill:#16794c}.fk-diff--removed .fk-diff-glyph,.fk-diff--removed .fk-diff-caption{fill:#b5341c}.fk-diff--changed .fk-diff-glyph,.fk-diff--changed .fk-diff-caption{fill:#9a6400}.fk-diff-panel{z-index:7;width:264px;max-height:calc(100% - 24px);color:var(--fk-text,#16202e);background:var(--fk-surface,#fff);border:1px solid var(--fk-border,#d7dce4);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;font-size:12px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 8px 28px #0f172a1f}.fk-diff-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.fk-diff-name{overflow-wrap:anywhere;font-weight:600}.fk-diff-sub,.fk-diff-note{color:var(--fk-text-muted,#64748b);margin:0;font-size:11px}.fk-diff-counts{flex-wrap:wrap;gap:8px;margin:0;font-size:11px;display:flex}.fk-diff-count{white-space:nowrap}.fk-diff-list{margin:0;padding:0;list-style:none;overflow-y:auto}.fk-diff-row{width:100%;font:inherit;text-align:left;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:baseline;gap:6px;padding:3px 4px;display:flex}.fk-diff-row:hover{background:color-mix(in srgb, var(--fk-text) 6%, transparent)}.fk-diff-chip{text-align:center;border:1px solid;border-radius:4px;flex:none;width:15px;font-weight:700}.fk-diff-row .fk-diff-label{overflow-wrap:anywhere;font-weight:600}.fk-diff-row .fk-diff-what{color:var(--fk-text-muted,#64748b)}.fk-diff-chip.is-added,.fk-diff-count.is-added{color:#16794c}.fk-diff-chip.is-removed,.fk-diff-count.is-removed{color:#b5341c}.fk-diff-chip.is-changed,.fk-diff-count.is-changed{color:#9a6400}.fk-bug{width:min(560px,100vw - 48px)}.fk-bug-intro{color:var(--fk-text-muted);margin:0 0 12px;font-size:12px;line-height:1.45}.fk-bug-count{color:var(--fk-text-muted);margin:4px 0 0;font-size:11.5px;line-height:1.45}.fk-bug-text[readonly]{cursor:default;opacity:.85}.fk-bug-budget{color:var(--fk-text-muted);margin:4px 0 0;font-size:11.5px;line-height:1.45}.fk-bug-text{width:100%;font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);resize:vertical;border-radius:7px;padding:7px 9px;font-size:12.5px;line-height:1.45;display:block}.fk-bug-text:focus-visible{outline:2px solid var(--fk-accent);outline-offset:1px}.fk-bug-diag{color:var(--fk-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.fk-bug-text:disabled{opacity:.5}.fk-bug-wide-label{flex:none}.fk-bug-select{font:inherit;color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);border-radius:7px;padding:4px 8px;font-size:12px}.fk-bug-attach-row{gap:8px}.fk-bug-files{margin:8px 0 0;padding:0;list-style:none}.fk-bug-file{color:var(--fk-text-muted);justify-content:space-between;align-items:center;gap:10px;padding:4px 0;font-size:12px;display:flex}.fk-bug-file-drop{font:inherit;color:var(--fk-text);border:1px solid var(--fk-border);cursor:pointer;background:0 0;border-radius:6px;padding:2px 8px;font-size:11.5px}.fk-bug-file-drop:hover{border-color:var(--fk-accent)}.pal-country{margin-top:6px;display:flex}.pal-country>*{flex:1;min-width:0}.insp-tabs{background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:8px;flex-wrap:wrap;gap:2px;margin:0 -8px;padding:2px;display:flex}.insp-tab{white-space:nowrap;min-width:0;font:inherit;color:var(--fk-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:auto;justify-content:center;align-items:center;gap:3px;padding:4px 0;font-size:11px;display:inline-flex}.insp-tab-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.insp-tab-count{background:var(--fk-surface);color:var(--fk-text-muted);border-radius:999px;flex:none;padding:2px 4px;font-size:9px;font-weight:600;line-height:1}.insp-tab.is-active{color:var(--fk-text);background:var(--fk-surface);box-shadow:0 1px 2px #0f172a14}.insp-tab.is-active .insp-tab-count{background:var(--fk-bg)}.insp-panel{flex-direction:column;gap:12px;min-width:0;display:flex}.conn-section{gap:8px}.conn-row{background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:8px;flex-direction:column;gap:5px;padding:7px 8px;display:flex}.conn-row:hover{border-color:var(--fk-selection,#3e63dd)}.conn-peer{color:var(--fk-text);align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:600;display:flex}.conn-peertext{overflow-wrap:anywhere}.conn-pair{gap:5px;min-width:0;display:flex}.conn-field{flex-direction:column;flex:1 1 0;gap:2px;min-width:0;display:flex}.conn-cap{color:var(--fk-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.conn-agg{letter-spacing:.02em;color:var(--fk-text-muted);margin-top:-2px;font-size:10px;font-weight:600}.conn-ringplace{flex-direction:column;gap:5px;display:flex}.conn-follow{color:var(--fk-text-muted);align-items:center;gap:6px;font-size:11px;display:flex}.conn-follow input{margin:0}.conn-members{flex-direction:column;gap:4px;display:flex}.conn-memberhead{gap:5px;margin-top:2px}.conn-membercap{flex:1 1 0;min-width:0}.conn-ringcap{flex:0 0 40px;padding-left:2px}.conn-member{align-items:center;gap:4px;min-width:0;display:flex}.conn-member .conn-pair{flex:auto}.conn-ringmini{flex:0 0 40px;min-width:0;padding-left:4px;padding-right:0}.conn-member .conn-input{padding:3px 4px;font-size:11px}.conn-member .conn-pair{gap:4px}.conn-input{width:100%;min-width:0;padding:3px 6px;font-size:12px}.conn-paint{justify-content:flex-end;gap:5px;display:flex}.conn-paint .insp-btn{flex:none;padding:2px 10px}.conn-delete{color:#c0392b;margin-right:auto}.grp-row{background:var(--fk-bg);border:1px solid var(--fk-border);cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;padding:7px 8px;display:flex}.grp-row:hover{border-color:var(--fk-selection,#3e63dd)}.grp-head{align-items:center;gap:6px;min-width:0;display:flex}.grp-name{cursor:text;flex:1;min-width:0}.grp-count{color:var(--fk-text-muted);flex:none;font-size:11px}.grp-members{font:inherit;text-align:left;color:var(--fk-text-muted);cursor:pointer;-webkit-line-clamp:2;background:0 0;border:none;-webkit-box-orient:vertical;padding:0;font-size:11px;display:-webkit-box;overflow:hidden}.fk-objs-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12.5px}.fk-objs-table th{z-index:1;text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--fk-text-muted);background:var(--fk-surface);border-bottom:1px solid var(--fk-border);padding:6px 8px;font-size:10px;font-weight:600;position:sticky;top:0}.fk-objs-table td{border-bottom:1px solid var(--fk-border);white-space:nowrap;padding:5px 8px}.fk-objs-table td.fk-objs-kind,.fk-objs-table td.fk-objs-conns,.fk-objs-table td.fk-objs-layer{text-overflow:ellipsis;overflow:hidden}.fk-objs-tick{width:40px;overflow:visible}.fk-objs-kind{width:20%;color:var(--fk-text-muted)}.fk-objs-conns{width:34%;color:var(--fk-text-muted)}.fk-objs-layer{width:15%;color:var(--fk-text-muted)}.fk-objs-row:hover td{background:var(--fk-bg)}.fk-objs-row.is-marked td{background:color-mix(in srgb, var(--fk-selection,#3e63dd) 10%, transparent)}.fk-objs-row.is-annotation .fk-objs-label{color:var(--fk-text-muted);font-style:italic}.fk-objs-name-inner{align-items:center;gap:8px;min-width:0;display:flex}.fk-objs-art{flex:none;width:18px;height:18px;display:inline-flex}.fk-objs-art svg{width:100%;height:100%}.fk-objs-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fk-cables{border:0;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none}.fk-cables[open]{flex-direction:column;display:flex}.fk-cables-head{padding-top:max(12px, env(safe-area-inset-top));flex-wrap:wrap;flex:none;row-gap:8px}.fk-cables-actions{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.fk-cables-hero{border-bottom:1px solid var(--fk-border);flex:none;padding:12px 16px 10px}.fk-cables-shared{letter-spacing:.02em;color:var(--fk-update);margin-bottom:4px;font-size:12px;font-weight:600}.fk-cables-shared:empty{display:none}.fk-cables-hero-value{color:var(--fk-text);font-size:40px;font-weight:600;line-height:1.05}.fk-cables-hero-note{color:var(--fk-text-muted);margin:2px 0 10px;font-size:12.5px}.fk-meter{background:color-mix(in srgb, var(--fk-accent) 16%, transparent);border-radius:999px;height:10px;overflow:hidden}.fk-meter--small{height:6px;margin:0 0 8px}.fk-meter-fill{background:var(--fk-accent);border-radius:999px;width:0;height:100%;transition:width .14s ease-out}.fk-meter-fill.is-complete{background:color-mix(in srgb, var(--fk-accent) 55%, #1f9d55)}.fk-cables-filters{border-bottom:1px solid var(--fk-border);flex:none;align-items:center;gap:10px;padding:10px 16px;display:flex}.fk-cables-filters>.fk-search{flex:auto;min-width:0}.fk-cables-hide{color:var(--fk-text-muted);white-space:nowrap;align-items:center;gap:6px;min-height:44px;font-size:13px;display:flex}.fk-cables-code{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);border-radius:8px;min-width:0;padding:7px 10px;font-size:13px}.fk-cables-paste{border-bottom:1px solid var(--fk-border);flex:none;grid-template-columns:1fr auto;gap:8px;padding:10px 16px;display:grid}.fk-cables-paste-note{color:var(--fk-text-muted);grid-column:1/-1;margin:0;font-size:12.5px}.fk-cables-paste-note.is-bad{color:var(--fk-update)}.fk-cables-paste-note:empty{display:none}.fk-cables-body{min-height:0;padding:8px 12px max(16px, env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;flex:auto;overflow-y:auto}.fk-cable-group{margin:0 0 18px}.fk-cable-group-head{z-index:1;background:var(--fk-surface);justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0 4px;display:flex;position:sticky;top:-8px}.fk-cable-group-name{color:var(--fk-text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:600;overflow:hidden}.fk-cable-group-count{color:var(--fk-text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.fk-cable-row{border:1px solid var(--fk-border);cursor:pointer;background:var(--fk-surface);border-radius:10px;align-items:flex-start;gap:12px;min-height:44px;margin-bottom:6px;padding:9px 10px;display:flex}.fk-cable-row:hover{background:color-mix(in srgb, var(--fk-accent) 6%, var(--fk-surface))}.fk-cable-row.is-done .fk-cable-line{color:var(--fk-text-muted);text-decoration:line-through}.fk-cable-tick{width:22px;height:22px;accent-color:var(--fk-accent);flex:none;margin:1px 0 0}.fk-cable-text{flex:auto;min-width:0}.fk-cable-line{color:var(--fk-text);align-items:baseline;gap:7px;min-width:0;font-size:15px;display:flex}.fk-cable-port{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.fk-cable-port.is-missing{color:var(--fk-update);font-weight:500}.fk-cable-arrow{color:var(--fk-text-muted);flex:none}.fk-cable-dest{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fk-cable-meta{color:var(--fk-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}@media (width>=700px){.fk-cables{border:1px solid var(--fk-border);border-radius:14px;width:min(820px,100vw - 40px);height:min(860px,100vh - 48px)}.fk-cables-body{padding-inline:16px}.fk-cable-row{align-items:center}.fk-cable-text{align-items:baseline;gap:14px;display:flex}.fk-cable-meta{text-align:right;margin-top:0;margin-left:auto}}.fk-optics-table td:not(:first-child),.fk-optics-table th:not(:first-child){width:22%}.fk-optics-table td:first-child,.fk-optics-table th:first-child{text-overflow:ellipsis;overflow:hidden}.fk-optics-notes{color:var(--fk-text-muted);margin:0;padding-left:18px;font-size:12.5px;line-height:1.5}.fk-optics-notes li+li{margin-top:6px}.fk-objs-select:disabled{opacity:.45;cursor:default}.fk-gap-guide{fill:none;stroke:var(--fk-accent);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.fk-route-pill{z-index:3;background:var(--fk-surface);border:1px solid var(--fk-border);color:var(--fk-text);border-radius:999px;align-items:center;gap:10px;padding:6px 10px;font-size:12px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 2px 8px #0000001f}.fk-route-pill-text:before{content:"";vertical-align:-1px;border:2px solid var(--fk-accent);border-top-color:#0000;border-radius:50%;width:10px;height:10px;margin-right:7px;animation:.9s linear infinite fk-route-pill-spin;display:inline-block}@keyframes fk-route-pill-spin{to{transform:rotate(360deg)}}.fk-route-pill-cancel{color:var(--fk-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.fk-route-pill-cancel:hover{text-decoration:underline}.fk-export-quality{width:min(400px,100vw - 48px);color:var(--fk-text);background:var(--fk-surface);border:1px solid var(--fk-border);box-shadow:var(--fk-shadow-dialog);border-radius:14px;padding:18px 20px 14px}.fk-export-quality::backdrop{background:var(--fk-scrim)}.fk-export-quality-head{letter-spacing:.01em;margin-bottom:10px;font-size:13.5px;font-weight:650}.fk-export-quality-head:before{content:"";vertical-align:-1px;border:2px solid var(--fk-accent);border-top-color:#0000;border-radius:50%;width:11px;height:11px;margin-right:8px;animation:.9s linear infinite fk-route-pill-spin;display:inline-block}.fk-export-quality-body{color:var(--fk-text-muted);margin:0 0 14px;font-size:12.5px;line-height:1.5}.fk-export-quality-actions{justify-content:flex-end;gap:10px;display:flex}.fk-export-quality-actions button{font:inherit;color:var(--fk-text);background:var(--fk-bg);border:1px solid var(--fk-border);cursor:pointer;border-radius:8px;padding:5px 12px;font-size:12.5px}.fk-export-quality-actions button:hover{border-color:var(--fk-accent)}.fk-carry-skip{opacity:.38}.insp-asset-link{align-items:center;gap:6px;display:flex}.insp-asset-link .insp-input{flex:auto;min-width:0}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--fk-bg:#f2f4f7;--fk-surface:#fff;--fk-border:#e3e7ed;--fk-text:#1c2333;--fk-text-muted:#5f6b81;--fk-accent:#3e63dd;--fk-update:#b06f00;--fk-grid-dot:#d2d8e1;--fk-node-fill:#fff;--fk-node-stroke:#c8cfda;--fk-edge:#3a4358;--fk-selection:#3e63dd;--fk-family-security:#b4453f;--fk-family-network:#3466c2;--fk-family-compute:#2e8564;--fk-family-data:#7458be;--fk-family-cloud:#2b8fa8;--fk-family-ot:#74881f;--fk-family-people:#a0722a;--fk-family-annotation:#66748e;--fk-font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fk-font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--fk-radius-node:10px;--fk-shadow-node:0 1px 2px #1018280f, 0 2px 6px #1018280f;--fk-shadow-dialog:0 18px 48px #090c1447;--fk-scrim:#090c1473}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--fk-bg:#15171c;--fk-surface:#1d2026;--fk-border:#2c313a;--fk-text:#e7eaf1;--fk-text-muted:#9aa3b5;--fk-accent:#829bf5;--fk-update:#ffb020;--fk-grid-dot:#23272f;--fk-node-fill:#20242c;--fk-node-stroke:#3b424e;--fk-edge:#acb6c8;--fk-selection:#829bf5;--fk-family-security:#e27f76;--fk-family-network:#82a3f0;--fk-family-compute:#5cbe94;--fk-family-data:#ac93e8;--fk-family-cloud:#64bad1;--fk-family-ot:#b3c65a;--fk-family-people:#d3a55e;--fk-family-annotation:#94a0b8;--fk-shadow-node:0 1px 2px #00000059, 0 2px 8px #0000004d;--fk-shadow-dialog:0 18px 48px #090c1447;--fk-scrim:#090c1473}}:root[data-theme=dark],[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--fk-bg:#15171c;--fk-surface:#1d2026;--fk-border:#2c313a;--fk-text:#e7eaf1;--fk-text-muted:#9aa3b5;--fk-accent:#829bf5;--fk-update:#ffb020;--fk-grid-dot:#23272f;--fk-node-fill:#20242c;--fk-node-stroke:#3b424e;--fk-edge:#acb6c8;--fk-selection:#829bf5;--fk-family-security:#e27f76;--fk-family-network:#82a3f0;--fk-family-compute:#5cbe94;--fk-family-data:#ac93e8;--fk-family-cloud:#64bad1;--fk-family-ot:#b3c65a;--fk-family-people:#d3a55e;--fk-family-annotation:#94a0b8;--fk-shadow-node:0 1px 2px #00000059, 0 2px 8px #0000004d;--fk-shadow-dialog:0 18px 48px #090c1447;--fk-scrim:#090c1473}.fk-scene{font-family:var(--fk-font,system-ui, -apple-system, "Segoe UI", sans-serif)}.fk-edge-path{fill:none;stroke:var(--fk-edge,#3a4358);stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round}.fk-edge-hit{fill:none;stroke:#0000;stroke-width:14px}.fk-edge.is-hover .fk-edge-path{stroke-width:2.5px}.fk-edge.is-selected .fk-edge-path{stroke-width:2.25px}.fk-edge--ipsec .fk-edge-path{stroke-dasharray:7 5;stroke-width:2px}.fk-edge-tunnel{fill:none;stroke:var(--fk-edge,#3a4358);stroke-opacity:.14;stroke-width:12px;stroke-linecap:round;stroke-linejoin:round}.fk-edge-lock-badge{fill:var(--fk-node-fill,#fff);stroke:var(--fk-edge,#3a4358);stroke-width:1.25px}.fk-edge-lock-shackle{fill:none;stroke:var(--fk-edge,#3a4358);stroke-width:1.7px;stroke-linecap:round}.fk-edge-lock-body{fill:var(--fk-edge,#3a4358);stroke:none}.fk-edge--trunk .fk-edge-path{stroke-width:5.5px}.fk-edge--trunk.is-hover .fk-edge-path,.fk-edge--trunk.is-selected .fk-edge-path{stroke-width:6px}.fk-edge-trunk-gap{fill:none;stroke:var(--fk-bg,#f2f4f7);stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.fk-edge--lag .fk-edge-path{stroke-width:3.5px}.fk-edge--lag.is-hover .fk-edge-path,.fk-edge--lag.is-selected .fk-edge-path{stroke-width:4px}.fk-edge-lag-badge{fill:var(--fk-node-fill,#fff);stroke:var(--fk-edge,#3a4358);stroke-width:1.25px}.fk-edge-lag-glyph{fill:none;stroke:var(--fk-edge,#3a4358);stroke-width:1.5px;stroke-linecap:round}.fk-edge--wan .fk-edge-path{stroke-dasharray:14 7;stroke-width:2.25px}.fk-edge--mgmt .fk-edge-path{stroke-dasharray:.1 6;stroke-width:2.5px;stroke-linecap:round}.fk-edge--wireless .fk-edge-path{stroke-dasharray:9 4 1.5 4;stroke-width:2.25px;stroke-linecap:round}.fk-edge--conduit .fk-edge-path{stroke-width:2.25px}.fk-edge--fieldbus .fk-edge-path{stroke-dasharray:3 3;stroke-width:1.5px;stroke-linecap:butt}.fk-edge-wifi-badge{fill:var(--fk-node-fill,#fff);stroke:var(--fk-edge,#3a4358);stroke-width:1.25px}.fk-edge-wifi-glyph{fill:none;stroke:var(--fk-edge,#3a4358);stroke-width:1.5px;stroke-linecap:round}.fk-edge-wifi-dot{fill:var(--fk-edge,#3a4358);stroke:none}.fk-bundle-ring{fill:none;stroke:var(--fk-ring,var(--fk-edge,#3a4358));stroke-width:1.75px;stroke-opacity:.85;pointer-events:none}.fk-bundle-label{fill:var(--fk-ring,var(--fk-edge));font-family:var(--fk-font);font-size:calc(11px * var(--fk-text-scale,1));text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:var(--fk-bg,#f2f4f7);stroke-width:4px;stroke-linejoin:round;font-weight:600}.fk-bundle-label--on{stroke-width:6px}.fk-bundle-ring.is-active{stroke-opacity:1;stroke-width:2.5px}.fk-bundle-hit{fill:none;stroke:#0000;stroke-width:14px;pointer-events:stroke;cursor:grab}.fk-edge-endlabel{fill:var(--fk-text-muted,#5f6b81);font-size:calc(10px * var(--fk-text-scale,1));paint-order:stroke;stroke:var(--fk-bg,#f2f4f7);stroke-width:3.5px;stroke-linejoin:round;-webkit-user-select:none;user-select:none}.fk-locked,.fk-locked .fk-zone-hit,.fk-locked .fk-rack-title-strip,.fk-locked .fk-rack-hit,.fk-locked .fk-rack-slots-hit{pointer-events:none}.fk-edge-label{fill:var(--fk-text-muted,#5f6b81);font-size:calc(11px * var(--fk-text-scale,1));text-anchor:middle;paint-order:stroke;stroke:var(--fk-bg,#f2f4f7);stroke-width:4px;stroke-linejoin:round;-webkit-user-select:none;user-select:none;cursor:move}.fk-edge-label--on,.fk-edge-endlabel--on{stroke-width:6px}.fk-node-tile{fill:var(--fk-node-fill,#fff);stroke:var(--fk-node-stroke,#c8cfda);stroke-width:1.25px}.fk-bus-bar{fill:var(--fk-node-accent,#4a79d9);fill-opacity:.9;stroke:none}.fk-node-icon{color:var(--fk-node-accent,var(--fk-text-muted,#5f6b81));fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.fk-node-role-band{fill:var(--fk-node-accent,#66748e);fill-opacity:.13;stroke:none}.fk-node-role-rule{stroke:var(--fk-node-accent,#66748e);stroke-opacity:.3;stroke-width:1px;fill:none}.fk-node-role-tag{fill:var(--fk-node-accent,#66748e);font-family:var(--fk-font-mono,ui-monospace, "SF Mono", Menlo, Consolas, monospace);letter-spacing:.07em;text-anchor:middle;-webkit-user-select:none;user-select:none;font-weight:600}.fk-node-functions{fill:var(--fk-text-muted,#5f6b81);font-size:calc(10px * var(--fk-text-scale,1));text-anchor:middle;-webkit-user-select:none;user-select:none;font-weight:400}.fk-node-label{fill:var(--fk-text,#1c2333);font-size:calc(12px * var(--fk-text-scale,1));text-anchor:middle;-webkit-user-select:none;user-select:none;font-weight:500}.fk-node-label--start{text-anchor:start}.fk-node-label--inside{paint-order:stroke;stroke:var(--fk-node-fill,#fff);stroke-width:4px;stroke-linejoin:round}.fk-node-label--end{text-anchor:end}.fk-prim-shape{fill:var(--fk-node-accent,#66748e);fill-opacity:.06;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.85;stroke-width:1.25px;stroke-linejoin:round;stroke-linecap:round}.fk-prim-shape--dashed{stroke-dasharray:6 6}.fk-prim-shape--filled{fill-opacity:.22}.fk-zone-rect{fill:var(--fk-node-accent,#66748e);fill-opacity:.06;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.75;stroke-width:1.25px;stroke-dasharray:6 6;pointer-events:none}.fk-zone-hit{fill:none;stroke:#0000;stroke-width:12px;pointer-events:stroke}.fk-zone-label{fill:var(--fk-node-accent,#66748e);font-size:calc(11px * var(--fk-text-scale,1));letter-spacing:.08em;text-transform:uppercase;-webkit-user-select:none;user-select:none;font-weight:600}.fk-zone--vcontext .fk-zone-rect{fill-opacity:.1;stroke-opacity:.95;stroke-dasharray:3 3}.fk-purdue-frame{fill:var(--fk-node-accent,#66748e);fill-opacity:.03;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.3;stroke-width:1.25px;pointer-events:none}.fk-purdue-band{fill:var(--fk-node-accent,#66748e);fill-opacity:.03;pointer-events:none}.fk-purdue-band--boundary{fill-opacity:.09}.fk-purdue-rule{stroke:var(--fk-node-accent,#66748e);stroke-opacity:.28;stroke-width:1px;pointer-events:none}.fk-purdue-rule--boundary{stroke-opacity:.55;stroke-dasharray:7 5}.fk-purdue-rail{stroke:var(--fk-node-accent,#66748e);stroke-opacity:.28;stroke-width:1px;pointer-events:none}.fk-purdue-number{fill:var(--fk-node-accent,#66748e);fill-opacity:.85;font-size:calc(22px * var(--fk-text-scale,1));text-anchor:middle;-webkit-user-select:none;user-select:none;font-weight:600}.fk-purdue-name{fill:var(--fk-node-accent,#66748e);fill-opacity:.7;text-anchor:middle;font-size:calc(11px * var(--fk-text-scale,1));letter-spacing:.08em;text-transform:uppercase;-webkit-user-select:none;user-select:none;font-weight:600}.fk-world-frame{fill:var(--fk-node-accent,#66748e);fill-opacity:.04;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.3;stroke-width:1.25px;pointer-events:none}.fk-world-frame.fk-frame-noborder{stroke:none}.fk-world-frame.fk-frame-nofill{fill:none}.fk-world-label-under{text-anchor:middle}.fk-world-map{pointer-events:none;overflow:hidden}.fk-world-ocean{fill:none;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.3;pointer-events:none}.fk-world-land{fill:var(--fk-node-accent,#66748e);fill-opacity:.13;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.4;stroke-linejoin:round;pointer-events:none}.fk-world-states{fill:none;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.4;stroke-linejoin:round;pointer-events:none}.fk-world-city{fill:var(--fk-node-accent,#66748e);fill-opacity:.85;pointer-events:none}.fk-world-city-label{fill:var(--fk-node-accent,#66748e);fill-opacity:.9;-webkit-user-select:none;user-select:none;pointer-events:none;font-weight:500}.fk-zone-cidr{letter-spacing:.02em;text-transform:none;fill-opacity:.7;font-weight:500}.fk-rack-frame{fill:var(--fk-node-accent,#66748e);fill-opacity:.05;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.8;stroke-width:1.5px;pointer-events:none}.fk-rack-title-strip{fill:var(--fk-node-accent,#66748e);fill-opacity:.1;pointer-events:all}.fk-rack-rail{fill:none;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.35;stroke-width:1px;pointer-events:none}.fk-rack-slot{fill:none;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.18;stroke-width:1px;pointer-events:none}.fk-rack-face{fill:var(--fk-text-muted,#5f6b81);font-size:calc(8.5px * var(--fk-text-scale,1));letter-spacing:.07em;text-anchor:middle;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:600}.fk-rack-u{fill:var(--fk-node-accent,#66748e);fill-opacity:.7;font-size:calc(8px * var(--fk-text-scale,1));text-anchor:middle;-webkit-user-select:none;user-select:none;pointer-events:none}.fk-rack-label{fill:var(--fk-node-accent,#66748e);font-size:calc(11px * var(--fk-text-scale,1));letter-spacing:.08em;text-transform:uppercase;text-anchor:middle;-webkit-user-select:none;user-select:none;font-weight:600}.fk-rack-hit{fill:none;stroke:#0000;stroke-width:12px;pointer-events:stroke}.fk-rack-slots-hit{fill:#0000;pointer-events:fill;cursor:crosshair}.fk-unit-body{fill:color-mix(in srgb, var(--fk-node-accent,#66748e) 10%, var(--fk-node-fill,#fff));stroke:color-mix(in srgb, var(--fk-node-accent,#66748e) 55%, var(--fk-node-stroke,#c8cfda));stroke-width:1.25px}.fk-unit-bar{fill:var(--fk-node-accent,#66748e)}.fk-unit-label{fill:var(--fk-text,#1c2333);font-size:calc(11px * var(--fk-text-scale,1));-webkit-user-select:none;user-select:none;font-weight:600}.fk-image-frame{fill:none;stroke:var(--fk-node-accent,var(--fk-node-stroke,#c8cfda));stroke-width:1.25px}.fk-text-hit{fill:#0000;stroke:none}.fk-text-block{fill:var(--fk-node-accent,var(--fk-text,#1c2333));font-size:calc(14px * var(--fk-text-scale,1));-webkit-user-select:none;user-select:none;white-space:pre}.fk-text-leader{fill:none;stroke:var(--fk-node-accent,var(--fk-text-muted,#5f6b81));stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.fk-text-leader-head{fill:var(--fk-node-accent,var(--fk-text-muted,#5f6b81));stroke:none}.fk-conn-hit{fill:none;stroke:#0000;stroke-width:14px}.fk-line-path{fill:none;stroke:var(--fk-node-accent,#66748e);stroke-opacity:.85;stroke-width:1.25px;stroke-linecap:round;stroke-linejoin:round}.fk-line--dashed .fk-line-path{stroke-dasharray:6 6}.fk-flow-path{fill:none;stroke:var(--fk-node-accent,#d02f34);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.fk-flow--dashed .fk-flow-path{stroke-dasharray:7 5}.fk-flow-head{fill:var(--fk-node-accent,#d02f34);stroke:none}.fk-text-box{fill:var(--fk-surface,#fff);stroke:var(--fk-node-accent,var(--fk-text-muted,#5f6b81));stroke-width:1.25px}.fk-branding-watermark{fill:var(--fk-text,#1c2333);font-family:var(--fk-font,system-ui, sans-serif);letter-spacing:.16em;text-anchor:middle;dominant-baseline:middle;-webkit-user-select:none;user-select:none;font-weight:700}.fk-branding-banner{fill:var(--fk-text,#1c2333);fill-opacity:.08;stroke:var(--fk-text,#1c2333);stroke-opacity:.35;stroke-width:1px}.fk-branding-banner-text{fill:var(--fk-text,#1c2333);fill-opacity:.75;font-family:var(--fk-font,system-ui, sans-serif);letter-spacing:.22em;text-anchor:middle;-webkit-user-select:none;user-select:none;font-size:15px;font-weight:700}.fk-titlecol-handle{fill:var(--fk-accent,#4c6ef5);fill-opacity:.18;stroke:none;rx:2}.fk-titlecol-handle:hover{fill-opacity:.5}.fk-titlecell-rect{fill:none;stroke:var(--fk-text,#1c2333);stroke-opacity:.85;stroke-width:1px}.fk-titlecell-hit{fill:#0000;stroke:none}.fk-titlecell-caption{fill:var(--fk-text-muted,#5f6b81);font-size:calc(8.5px * var(--fk-text-scale,1));letter-spacing:.1em;text-transform:uppercase;-webkit-user-select:none;user-select:none;font-weight:700}.fk-titlecell-value{fill:var(--fk-text,#1c2333);text-anchor:middle;-webkit-user-select:none;user-select:none;white-space:pre}.fk-group-frame{fill:none;stroke:var(--fk-node-accent,#8a94a6);stroke-opacity:.55;stroke-width:1.25px;stroke-dasharray:3 5;pointer-events:none}.fk-group-name{fill:var(--fk-text-muted,#5f6b81);font-size:calc(11px * var(--fk-text-scale,1));-webkit-user-select:none;user-select:none;cursor:pointer;font-weight:600}.fk-group-collapsed{cursor:pointer}.fk-group-box{fill:var(--fk-node-fill,#fff);stroke:var(--fk-node-stroke,#c8cfda);stroke-width:1.5px}.fk-group-collapsed.is-selected .fk-group-box{stroke:var(--fk-selection,#3e63dd);stroke-width:2px}.fk-group-title{fill:var(--fk-text,#1c2333);font-size:calc(12px * var(--fk-text-scale,1));text-anchor:middle;-webkit-user-select:none;user-select:none;font-weight:600}.fk-iso-face{stroke:var(--fk-node-stroke,#c8cfda);stroke-width:1px;stroke-linejoin:round}.fk-iso-face--dark{fill:color-mix(in srgb, var(--fk-node-fill,#fff) 72%, #000)}.fk-iso-face--floor{fill:color-mix(in srgb, var(--fk-node-fill,#fff) 60%, #000);fill-opacity:.9}.fk-iso-face--light{fill:color-mix(in srgb, var(--fk-node-fill,#fff) 87%, #000)}.fk-zone-label.fk-iso-anchor-end{text-anchor:end}.fk-hide-device-labels .fk-node-label,.fk-hide-device-labels .fk-unit-label,.fk-hide-link-labels .fk-edge-label:not(.fk-conn-label),.fk-hide-port-labels .fk-endlabels,.fk-hide-zone-labels .fk-zone-label,.fk-hide-zone-labels .fk-zone-cidr,.fk-hide-zone-labels .fk-rack-label{display:none}
