:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;accent-color:#1f6feb;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:#2997ff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:300}body{min-width:320px;min-height:100vh;margin:0;display:flex}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}#root{text-align:center;margin:0 auto}:root{--bg:#fff;--text:#111;--text-secondary:var(--muted-border);--backdrop:#f6f6f6;--muted:#e6e6e6;--shadow:#00000026;--nav-bg:#fff;--muted-border:#aaa;--button-bg:#fff;--button-text:var(--text);--highlight:#2997ff;--error:#ff383c;--success:#34c759;--progress-bg:var(--muted);--progress-fill:var(--button-text);--svg-line:var(--text);--red:#ff383c;--orange:#ff8d28;--yellow:#fc0;--green:#34c759;--mint:#00c8b3;--teal:#00c3d0;--cyan:#00c0e8;--blue:#08f;--indigo:#6155f5;--purple:#cb30e0;--pink:#ff2d55;--brown:#ac7f5e;--gray:#8e8e93;--gray2:#aeaeb2;--gray3:#c7c7cc;--gray4:#d1d1d6;--gray5:#e5e5ea;--gray6:#f2f2f7;--gray-6:#1c1c1e;--cobalt:#1444dc;--violet:#6c2cda;--azure:#009eee}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f0f0f;--text:#f5f5f5;--text-secondary:var(--muted-border);--backdrop:#1a1a1a;--muted:#2a2a2a;--shadow:#ffffff0d;--nav-bg:#0f0f0f;--muted-border:#5a5a5a;--button-bg:#0f0f0f;--button-text:#fff;--highlight:#2997ff;--error:#ff4245;--success:#30d158;--progress-bg:var(--muted);--progress-fill:var(--button-text);--svg-line:var(--text);--red:#ff4245;--orange:#ff9230;--yellow:#ffd600;--green:#30d158;--mint:#00dac3;--teal:#00d2e0;--cyan:#3cd3fe;--blue:#0091ff;--indigo:#6d7cff;--purple:#db34f2;--pink:#ff375f;--brown:#b78a66;--gray:#8e8e93;--gray2:#636366;--gray3:#48484a;--gray4:#3a3a3c;--gray5:#2c2c2e;--gray6:#1c1c1e;--gray-6:#f2f2f7;--cobalt:#326cff;--violet:#8a4eff;--azure:#28c0ff}body{background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Roboto Mono,Courier New,monospace}main{padding:0 10vw}h3{color:var(--text);font-size:1.6em;font-weight:300;line-height:1.1}.link-here{cursor:pointer;color:var(--text);text-decoration:underline;text-decoration-thickness:1px}.link-here:hover{color:var(--highlight)}.card{text-align:left;max-width:90vw;color:var(--text);background:var(--nav-bg);border:1px solid var(--muted-border);box-shadow:0 6px 18px var(--shadow);border-radius:10px;margin:1.5rem auto}.card-title{margin:1rem;font-size:1rem;font-weight:700}.card-header{flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.card-header-right,.progress-mini{align-items:center;gap:.6rem;display:flex}.progress-bar-mini{background:var(--progress-bg);border-radius:999px;width:140px;height:8px;overflow:hidden}.progress-fill-mini{background:var(--progress-fill);height:100%}.progress-percent-mini{color:var(--muted);text-align:right;min-width:36px;font-size:.8rem}.ok-flag,.fail-flag{letter-spacing:.04em;text-transform:uppercase;background:0 0;border:1px solid;border-radius:6px;justify-content:center;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.ok-flag{color:var(--success);border-color:color-mix(in oklab, var(--success) 55%, transparent)}.fail-flag{color:var(--error);border-color:color-mix(in oklab, var(--error) 55%, transparent)}.processing-error{color:var(--error);background:color-mix(in oklab, var(--error) 8%, transparent);border:1px solid color-mix(in oklab, var(--error) 30%, transparent);border-radius:6px;max-width:640px;margin:10px 0;padding:12px 14px;font-size:13px;line-height:1.5}.zip-okay{align-items:center;gap:.8rem;padding:.8rem 1rem;display:flex}.ok-filename{color:var(--muted);font-size:.8rem}.output-item{border:none;border-radius:8px;padding:.6rem}.output-item.new{border-color:#2997ff1f;animation:1.2s ease-out highlight}@keyframes highlight{0%{transform:translateY(-4px);box-shadow:0 4px 18px #2997ff2e}to{box-shadow:none;transform:none}}@media (max-width:640px){.card-header{flex-direction:column;align-items:stretch}.progress-bar-mini{width:100px}}.card-divider{background:var(--muted-border);border-radius:1px;width:100%;height:1px}.svg-overlay-layer path,.svg-overlay-layer line,.svg-overlay-layer polyline,.svg-overlay-layer polygon,.svg-overlay-layer circle,.svg-overlay-layer rect{stroke:var(--svg-line)!important;stroke-width:1px!important}.svg-overlay-points circle{transition:none!important}.zip-drop-area{border:1px dashed var(--muted-border);background:0 0;border-radius:10px;justify-content:center;align-items:center;margin:1rem;padding:1.5rem;transition:background .12s,border-color .12s;display:flex}.zip-drop-inner{flex-direction:column;align-items:center;gap:.4rem;display:flex}.zip-logo{width:48px;height:48px;color:var(--text)}.zip-hint{font-size:.9rem}.zip-or{color:var(--muted-border);font-size:.8rem}.zip-browse input{display:none}.zip-browse{color:var(--text);cursor:pointer;text-decoration:underline}.zip-browse:hover{color:var(--highlight)}.zip-files{margin-top:.8rem;font-size:.9rem}.zip-files ul{margin:.4rem 0 0 1rem}.zip-processing{flex-direction:column;gap:.6rem;margin:1rem;padding:.6rem .2rem;display:flex}.zip-processing-meta{color:var(--muted);justify-content:space-between;font-size:.9rem;display:flex}.zip-processing-name{color:var(--text);font-weight:600}.progress{align-items:center;gap:.6rem;display:flex}.progress-bar{background:var(--progress-bg);border-radius:999px;flex:1;height:10px;overflow:hidden}.progress-fill{background:var(--progress-fill);height:100%;transition:width .15s linear}.progress-percent{text-align:right;width:48px;font-size:.9rem}.zip-error{align-items:center;gap:.6rem;margin:.6rem 1rem;display:flex}.zip-error-text{color:var(--error);font-size:.9rem;font-weight:300}.zip-error-retry{border:1px solid var(--error);color:var(--error);cursor:pointer;background:0 0;border-radius:6px;padding:.25rem .6rem;font-size:.9rem;font-weight:300}.zip-error-retry:hover{background:var(--shadow)}.zip-info{color:var(--highlight);margin:.6rem 1rem;font-size:.95rem;font-weight:600}.zip-info a{color:var(--highlight);text-decoration:underline;text-decoration-thickness:1px}.zip-guidelines-link{color:var(--highlight)}.zip-processing-results{border-top:1px solid var(--muted-border);margin:.8rem 1rem;padding-top:.6rem}.zip-processing-results h4{margin:0 0 .4rem;font-size:.95rem}.zip-processing-results ul{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.proc-item{border:1px solid var(--muted-border);background:0 0;border-radius:8px;padding:.6rem}.proc-item.ok{border-color:#0080001f}.proc-item.fail{border-color:#ff00001f}.proc-meta{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.proc-badge{color:var(--text);background:var(--muted);border-radius:6px;padding:.15rem .5rem;font-weight:600}.proc-item.ok .proc-badge{color:#10b981;background:#10b9811f}.proc-item.fail .proc-badge{color:var(--error);background:#ff383c14}.proc-block pre{white-space:pre-wrap;background:#0000000a;border-radius:6px;max-height:200px;padding:.5rem;overflow:auto}.processing-canvas{padding:1rem}.processing-close{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.processing-close:hover{background:var(--muted);color:var(--text)}.processing-header .icon-btn{border-radius:4px;padding:4px}.processing-header .icon-btn svg{width:24px;height:24px}.tp-tooltip{z-index:9999;background:color-mix(in srgb, var(--bg) 45%, transparent);-webkit-backdrop-filter:blur(2px)saturate(.9);border:1px solid color-mix(in srgb, var(--muted-border) 60%, transparent);pointer-events:none;border-radius:12px;min-width:100px;max-width:260px;padding:8px 12px;position:fixed}.tp-tooltip-ref{font-size:.9rem;font-weight:600}.tp-tooltip-ref.has-labels{margin-bottom:6px}.tp-tooltip-section+.tp-tooltip-section{margin-top:5px}.tp-tooltip-scope{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;font-size:.68rem}.processing-canvas.hide-scrollbars{scrollbar-width:none;-ms-overflow-style:none}.processing-canvas.hide-scrollbars::-webkit-scrollbar{width:0;height:0;display:none}.processing-canvas.no-user-scroll{touch-action:none;-webkit-overflow-scrolling:auto;overflow:hidden!important}.sidebar{width:var(--sidebar-width,300px);box-sizing:border-box}.sidebar.dragging{transition:none!important}.sidebar.dragging,.sidebar.dragging *{-webkit-user-select:none!important;user-select:none!important}.sidebar.overlay{box-shadow:0 8px 36px var(--shadow);background-color:var(--nav-bg);border-left:1px solid var(--muted-border);pointer-events:auto;z-index:9999;backface-visibility:hidden;background-clip:padding-box;border-top-right-radius:10px;border-bottom-right-radius:10px;position:absolute;top:0;right:0;overflow:hidden;transform:translateZ(0)}.processing-body.overlay-active{overflow:visible}.overlay-resizer{cursor:col-resize;z-index:48;width:8px;height:100%;position:absolute;top:0}.svg-overlay-zoom,.svg-overlay-container{z-index:0;position:relative}.sidebar-header{justify-content:space-between;align-items:center;gap:8px;display:flex;position:relative}.sidebar-column.right .sidebar-header{justify-content:flex-start}.sidebar-column.right .sidebar-header-controls{margin-left:0}.sidebar-header-controls{align-items:center;gap:4px;display:flex}.sidebar-title{margin:0;font-size:1rem}.sidebar-filter{margin-top:12px}.sidebar-filter-input{box-sizing:border-box;border:1px solid var(--muted-border);background:var(--muted);width:100%;color:var(--text);border-radius:6px;padding:6px 8px}.sidebar-filter-input:focus,.sidebar-filter-input:focus-visible{border-color:var(--highlight);color:var(--highlight);outline:none;transition:border-color .1s,color .1s}.sidebar-filter-input.invalid{border-color:var(--error);color:var(--error)}.sidebar-filter-error{color:var(--error);margin-top:6px;font-size:.6rem}.sidebar-button-group{background:0 0;border-radius:4px;gap:0;display:flex;position:relative;overflow:hidden}.sidebar-button-group:hover{background:var(--backdrop)}.sidebar-button{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:0;padding:4px}.sidebar-button:hover{background:var(--muted);border-radius:4px}.sidebar-button:disabled{color:var(--muted-border);cursor:not-allowed}.sidebar-button:disabled:hover{background:0 0;border-radius:0}.sidebar-button.expand-all[aria-pressed=true],.sidebar-button.menu[aria-pressed=true],.sidebar-button.label-view[aria-pressed=true]{color:var(--highlight)}.sidebar-button svg{display:block}.sidebar-button.dropdown{padding-left:0;padding-right:0}.sidebar-button.save{position:relative}.sidebar-button.save .sidebar-icon{width:16px;height:16px;display:block}.sidebar-button.save.synced{color:var(--highlight)}.sidebar-button.save.dirty{color:var(--text)}.sidebar-button.save .spinner{width:16px;height:16px;animation:.9s linear infinite spin;position:absolute;top:4px;left:4px}@keyframes spin{to{transform:rotate(360deg)}}.sidebar-button.delete{color:var(--text)}.sidebar-button.delete svg{width:16px;height:16px;display:block}.sidebar-button.delete:hover{background:var(--muted)}.sidebar-button.delete:disabled{color:var(--muted);cursor:default}.sidebar-button.delete:disabled:hover{background:0 0}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.sidebar-split-container{height:100%;display:flex}.sidebar-column{box-sizing:border-box;flex-direction:column;flex:1;padding:12px;display:flex}.sidebar-column.left{border-right:1px solid var(--muted-border)}.sidebar-column.right{flex:0 0 240px;min-width:240px}.sidebar-properties{margin-top:12px;font-size:.8rem;overflow:auto}.sidebar-properties-empty{color:var(--muted);text-align:center;padding:2rem 1rem;font-style:italic}.sidebar-properties-content{flex-direction:column;gap:8px;display:flex}.sidebar-property{flex-direction:column;gap:2px;padding:4px 0;display:flex}.sidebar-property-label{color:var(--muted-border);font-weight:600}.sidebar-property-value{color:var(--text);width:210px;font-family:monospace}.sidebar-property-input{border:1px solid var(--muted-border);background:var(--bg);color:var(--text);border-radius:4px;flex:1;padding:4px 8px;font-family:monospace;font-size:.8rem;text-decoration:none}.sidebar-column.right .sidebar-property-input{max-width:140px}.sidebar-property-coords{gap:8px;margin-top:4px;display:flex}.sidebar-property-coord-label{color:var(--text);flex-direction:row;align-items:center;gap:4px;font-size:.8rem;font-weight:600;display:flex}.sidebar-property-coord-input{flex:unset;width:48px;color:var(--text)}.sidebar-property-coord-input:after,.sidebar-property-coord-input:before{color:var(--text)}.sidebar-column.right .sidebar-property-coord-input{max-width:unset;width:48px;color:var(--text)}.sidebar-property-input:focus{outline:none;text-decoration:none}.sidebar-property-delete{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:4px;padding:4px}.sidebar-property-delete:hover{background:var(--muted)}.sidebar-side-toggle{gap:4px;margin-top:4px;display:flex}.sidebar-side-toggle .sidebar-button{align-items:center;gap:4px;padding:4px 8px;font-size:.78rem;display:flex}.sidebar-side-toggle .sidebar-button svg{flex-shrink:0;width:16px;height:16px}flip button in header may be larger .sidebar-button.flip svg{width:16px;height:16px}.sidebar-button.flip{padding:4px}.sidebar-button.flip:disabled{color:var(--muted);cursor:default}.sidebar-button.flip:disabled:hover{background:0 0}.sidebar-side-toggle .sidebar-button[aria-pressed=true],.sidebar-side-toggle .sidebar-button.active{background:var(--highlight);color:#fff}.sidebar-side-toggle .sidebar-button:not([aria-pressed=true]):hover{background:var(--muted)}.sidebar-context-menu{z-index:1000;background:var(--bg);border:1px solid var(--muted-border);min-width:120px;box-shadow:0 4px 12px var(--shadow);border-radius:4px;flex-direction:column;gap:0;padding:4px;display:flex;position:fixed}.sidebar-context-item{cursor:pointer;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;padding:6px 8px;font-size:.9rem;display:inline-flex}.sidebar-context-item:hover{background:var(--muted)}.sidebar-context-item:disabled{color:var(--muted-border);cursor:not-allowed}.sidebar-context-item:disabled:hover{background:0 0}.sidebar-property-labels{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.sidebar-label-badge{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--bg);border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:.7rem;font-weight:800;display:inline-flex}.sidebar-menu-overlay{z-index:1000;position:fixed;inset:0}.sidebar-menu{background:var(--nav-bg);border:1px solid var(--muted-border);box-shadow:0 4px 12px var(--shadow);z-index:1001;border-radius:4px;min-width:120px;padding:4px 0;position:absolute;top:100%;right:0}.sidebar-menu-item{cursor:pointer;color:var(--text);text-align:left;background:0 0;border:none;width:100%;padding:8px 12px;font-size:.9rem}.sidebar-dropdown-menu{background:var(--bg);border:1px solid var(--muted-border);box-shadow:0 4px 12px var(--shadow);z-index:1001;border-radius:4px;min-width:120px;padding:4px;position:absolute;top:100%;right:0}.sidebar-dropdown-item{cursor:pointer;color:var(--text);text-align:left;background:0 0;border:none;border-radius:4px;width:100%;padding:8px;font-size:.8rem;font-weight:500}.sidebar-dropdown-item:hover{background:var(--highlight)}.sidebar-dropdown-item:disabled{color:var(--muted-border);cursor:not-allowed}.sidebar-dropdown-item:disabled:hover{background:0 0}.label-menu{background:var(--bg);border:1px solid var(--muted-border);min-width:300px;max-width:360px;height:70vh;box-shadow:0 4px 12px var(--shadow);z-index:1001;border-radius:4px;flex-direction:column;display:flex;position:absolute;top:100%;right:0;overflow:hidden}.label-menu-header{border-bottom:1px solid var(--muted-border);padding:8px}.label-menu-title{color:var(--text);margin:0;font-size:.9rem;font-weight:600}.label-menu-shortcut{color:var(--text-secondary);background:#00000008;border-radius:6px;padding:2px 6px;font-size:.75rem;font-weight:600}.kbd-hint{float:right;color:var(--text-secondary);font-size:.75rem;font-weight:600}.label-menu-section{border-bottom:1px solid var(--muted-border);padding:8px}.label-menu-section.suggestions{flex:1;overflow:auto}.label-menu-input{border:1px solid var(--muted-border);background:var(--bg);color:var(--text);border-radius:4px;flex:1;width:90%;padding:6px 8px;font-size:.8rem}.label-menu-input:focus{border-color:var(--accent);outline:none}.label-menu-subtitle{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:4px 16px;font-size:.75rem;font-weight:600}.label-menu-list{max-height:200px;overflow-y:auto}.label-menu-item{width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:space-between;align-items:center;padding:6px 16px;font-size:.8rem;display:flex}.label-menu-item:hover{background:var(--highlight)}.label-menu-item.selected{background:var(--accent);color:var(--bg)}.label-menu-item.selected:hover{background:var(--accent-hover)}.label-menu-item-text{text-align:left;flex:1}.label-menu-check{flex-shrink:0}.label-menu-labels{flex-direction:column;gap:4px;display:flex}.label-menu-label{width:100%;color:var(--text);cursor:pointer;text-align:left;box-sizing:border-box;background:0 0;border:none;border-radius:4px;align-items:flex-start;gap:8px;padding:8px 16px;font-size:.8rem;display:flex}.label-menu-label:hover{background:var(--highlight)}.label-menu-label-color{border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:2px}.label-menu-label-text{flex-direction:column;flex:1;gap:2px;display:flex}.label-menu-label-name{color:var(--text);font-weight:500;line-height:1.2}.label-menu-label-description{color:var(--text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.7rem;line-height:1.3;display:-webkit-box;overflow:hidden}.label-menu-selected{flex-direction:column;gap:6px;display:flex}.label-menu-label.selected{border:1px solid var(--highlight);width:100%;padding-right:8px}.label-menu-selected-text{color:var(--text)}.label-menu-selected-remove{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:1.2em;line-height:1;display:flex}.label-menu-selected-remove:hover{background:var(--muted-border);color:var(--text)}.sidebar-list{flex-direction:column;gap:8px;max-height:60vh;margin-top:12px;padding-bottom:12px;display:flex;overflow:auto}.sidebar-item{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px;display:flex}.sidebar-group{flex-direction:column;display:flex}.sidebar-expander{cursor:pointer;width:20px;height:20px;color:var(--text);background:0 0;border:none;place-items:center;margin-right:4px;padding:0;display:inline-grid;transform:rotate(0)}.sidebar-expander.open{transform:rotate(90deg)}.sidebar-sublist{flex-direction:column;gap:6px;margin-top:4px;margin-left:28px;display:flex}.sidebar-subitem{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.sidebar-subitem.selected{border:2px solid var(--highlight)}.sidebar-item.selected{border:2px solid var(--highlight);border-radius:6px}.sidebar-subitem-ref{font-size:.8rem;font-weight:500}.sidebar-subitem-coords{color:#888;font-size:.8rem}.sidebar-item-meta{flex-direction:column;font-size:.8rem;display:flex}.sidebar-item-ref{font-weight:600}.sidebar-item-coords{color:#888;font-size:.8rem}.sidebar-footer{width:100%;color:var(--muted-border);text-align:center;background:0 0;padding:12px 0;font-size:.8rem}.navbar{border-bottom:1px solid var(--muted-border);z-index:50;box-sizing:border-box;background:var(--nav-bg);width:100vw;color:var(--text);justify-content:space-between;align-items:center;padding:.5rem 1rem;display:flex;position:sticky;top:0;left:0}.navbar-left{align-items:center;gap:20px;display:flex}.navbar-brand-btn{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.navbar-brand-btn:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:4px}.navbar-links{align-items:center;gap:14px;display:flex}.navbar-link{cursor:pointer;color:var(--text);opacity:.75;background:0 0;border:none;padding:6px 4px;font-size:13px;text-decoration:none;transition:opacity .12s}.navbar-link:hover{opacity:1}.navbar-link-cta{opacity:1;border:1px solid color-mix(in oklab, var(--highlight) 55%, transparent);color:var(--highlight);letter-spacing:.03em;border-radius:6px;padding:4px 10px;font-weight:600}.navbar-link-cta:hover{background:color-mix(in oklab, var(--highlight) 10%, transparent)}@media (max-width:640px){.navbar-links{display:none}}.navbar-logo{height:40px}.navbar-brand-img{-webkit-user-select:none;user-select:none;width:auto;height:22px;display:block}[data-theme=light] .navbar-brand-img{filter:invert()}.navbar-right{align-items:center;display:flex}.login-button{background:var(--button-bg);color:var(--button-text);border:1px solid var(--button-text);cursor:pointer;border-radius:6px;padding:.5rem .9rem;font-family:inherit;font-weight:600}.login-button:hover{border-color:var(--highlight);color:var(--highlight);transition:border-color .1s,color .1s}.theme-switch{border:1px solid var(--muted-border);background:var(--muted);cursor:pointer;width:52px;height:28px;color:var(--text);border-radius:999px;align-items:center;margin-right:.6rem;padding:3px;display:inline-flex;position:relative}.theme-switch .icon{opacity:0;width:14px;height:14px;transition:opacity .1s;display:block}.theme-switch:hover{border-color:var(--highlight);color:var(--highlight);transition:border-color .1s,color .1s}.theme-switch .switch-knob{background:var(--button-bg);width:22px;height:22px;box-shadow:0 2px 6px var(--shadow);z-index:2;border-radius:50%;place-items:center;margin-left:0;transition:transform .1s cubic-bezier(.2,.9,.2,1);display:inline-grid;position:relative;overflow:visible;transform:translate(0)}.switch-knob .icon{width:14px;height:14px;color:var(--button-text);margin:auto;position:absolute;inset:0}.theme-switch[aria-pressed=true] .switch-knob .sun{opacity:1}.theme-switch[aria-pressed=true] .switch-knob .moon,.theme-switch[aria-pressed=false] .switch-knob .sun{opacity:0}.theme-switch[aria-pressed=false] .switch-knob .moon{opacity:1}.theme-switch[aria-pressed=true] .switch-knob{transform:translate(22px)}[data-theme=dark] .theme-switch:hover{border-color:var(--highlight);color:var(--highlight);transition:border-color .1s,color .1s}.seg-toggle-group{align-items:center;gap:6px;display:inline-flex}.seg-toggle{appearance:none;color:var(--text);border:1px solid var(--muted-border);letter-spacing:.02em;cursor:pointer;opacity:.7;white-space:nowrap;background:0 0;border-radius:6px;align-items:center;gap:5px;padding:4px 12px;font-size:11px;font-weight:500;transition:background .1s,border-color .1s,color .1s,opacity .1s;display:inline-flex}.seg-toggle:hover{opacity:1;border-color:var(--text)}.seg-toggle.active{background:var(--text);color:var(--bg);border-color:var(--text);opacity:1}.seg-toggle.active:hover{border-color:var(--text)}.seg-toggle .seg-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.jig-drc-terminal{flex:1;justify-content:center;align-items:flex-start;padding:2em 3em;display:flex;overflow:auto}.jig-drc-output{color:#b0b0b0;white-space:pre;background:#1a1a1a;border:1px solid #333;border-radius:8px;max-width:100%;padding:1.5em 2em;font-family:SF Mono,Fira Code,Cascadia Code,Menlo,monospace;font-size:.82rem;line-height:1.6;overflow-x:auto}.jig-drc-pass{color:#6ec86e}.jig-drc-fail{color:#e8a050}.jig-drc-error{color:#e06060}.jig-drc-muted{color:#888}body:has(.landing){display:block;background:#0a0a0b!important}html[data-theme=light] body:has(.landing){background:#fafafa!important}#root:has(.landing){width:100%;margin:0}.landing{--bg:#0a0a0b;--bg-2:#121214;--bg-3:#1a1a1d;--ink:#fafafa;--ink-2:#b6b6ba;--ink-3:#7a7a7f;--line:#262629;--line-2:#3a3a40;--invert-bg:#fafafa;--invert-ink:#0a0a0b;--nav-overlay:#0a0a0bd9;--invert-hover:#e6e6e8;--panel-shadow:0 24px 64px #0006;--board-canvas:#0c0c0e;--f-display:"Space Grotesk", "Inter", system-ui, sans-serif;--f-body:"Inter", system-ui, sans-serif;--f-mono:"IBM Plex Mono", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;background:var(--bg);color:var(--ink);font-family:var(--f-body);text-align:left;width:100%;min-height:100vh;font-size:16px;line-height:1.55}html[data-theme=light] .landing{--bg:#fafafa;--bg-2:#f3f3f4;--bg-3:#e8e8ea;--ink:#0a0a0b;--ink-2:#3a3a40;--ink-3:#7a7a7f;--line:#dadadd;--line-2:#b6b6ba;--invert-bg:#0a0a0b;--invert-ink:#fafafa;--nav-overlay:#fafafad9;--invert-hover:#1f1f22;--panel-shadow:0 24px 64px #0a0a0b1a;--board-canvas:#f3f3f4}.landing-container{box-sizing:border-box;width:100%;max-width:1180px;margin:0 auto;padding:0 28px}.landing .eyebrow{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-3);margin:0 0 14px;font-size:12px;font-weight:500}.landing h1{font-family:var(--f-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(33px,4.4vw,52px);font-weight:700;line-height:1.05}.landing h2{font-family:var(--f-display);letter-spacing:-.015em;color:var(--ink);margin:0 0 14px;font-size:clamp(26px,3.2vw,37px);font-weight:700;line-height:1.1}.landing h3{font-family:var(--f-display);color:var(--ink);margin:0 0 8px;font-size:18px;font-weight:600}.landing p{color:var(--ink-2);margin:0 0 14px}.landing .data{font-family:var(--f-mono);color:var(--ink);font-size:13px}.landing-btn{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-sizing:border-box;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.landing-btn-primary{background:var(--invert-bg);color:var(--invert-ink);border:1px solid var(--invert-bg)}.landing-btn-primary:hover{background:var(--invert-hover);border-color:var(--invert-hover)}.landing-btn:disabled,.landing-btn[aria-disabled=true]{background:var(--bg-3);color:var(--ink-3);border-color:var(--line-2);cursor:not-allowed}.landing-btn:disabled:hover,.landing-btn[aria-disabled=true]:hover{background:var(--bg-3);border-color:var(--line-2)}.landing-btn-ghost{color:var(--ink);border:1px solid var(--line-2);background:0 0}.landing-btn-ghost:hover{border-color:var(--ink)}.landing :focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.landing-nav{z-index:10;background:var(--nav-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.landing-nav-inner{justify-content:space-between;align-items:center;padding:14px 0;display:flex}.landing-wordmark{color:var(--ink);align-items:center;line-height:1;text-decoration:none;display:inline-flex}.landing-wordmark-img{-webkit-user-select:none;user-select:none;width:auto;height:22px;display:block}html[data-theme=light] .landing-wordmark-img{filter:invert()}.landing-footer .landing-wordmark-img{height:26px}.landing-nav-links{align-items:center;gap:22px;display:flex}.landing-nav-link{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-2);font-size:12px;font-weight:500;text-decoration:none;transition:color .12s}.landing-nav-link:hover{color:var(--ink)}.landing-section{border-bottom:1px solid var(--line);padding:90px 0}.landing-section:last-of-type{border-bottom:0}.landing-section-head{max-width:720px;margin-bottom:48px}.landing-hero{padding:64px 0 90px}.landing-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:56px;display:grid}.landing-hero-copy h1{margin-bottom:18px}.landing-hero-copy p.lead{color:var(--ink-2);margin-bottom:28px;font-size:17px}.landing-hero-ctas{flex-wrap:wrap;gap:12px;display:flex}.landing-panel{background:var(--bg-2);border:1px solid var(--line);box-shadow:var(--panel-shadow);border-radius:14px;overflow:hidden}.landing-panel-titlebar{background:var(--bg-3);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 14px;display:flex}.landing-panel-dots{gap:6px;display:inline-flex}.landing-panel-dot{background:var(--line-2);border-radius:50%;width:10px;height:10px}.landing-panel-filename{font-family:var(--f-mono);color:var(--ink-2);letter-spacing:.04em;font-size:12px}.landing-panel-status{font-family:var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-left:auto;font-size:11px;font-weight:500}.landing-panel-body{flex-direction:column;padding:0;display:flex}.landing-panel-board{aspect-ratio:16/10;background:radial-gradient(circle at 1px 1px, var(--bg-3) 1px, transparent 1px) 0 0 / 20px 20px, var(--board-canvas);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.landing-panel-board>svg,.landing-board-stack{width:calc(100% - 32px);height:calc(100% - 32px);position:absolute;inset:16px}.landing-board-layer{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.landing-board-layer *{vector-effect:non-scaling-stroke;stroke:var(--ink)!important;fill:none!important}.landing-panel-msg{color:var(--ink-3);font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;inset:0}.landing-panel-verdict{border-bottom:1px solid var(--line);padding:16px 18px}.landing-panel-chips{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.landing-panel-chip{border-right:1px solid var(--line);padding:14px 16px}.landing-panel-chip:last-child{border-right:0}.landing-panel-chip-label{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:10px;font-weight:500}.landing-panel-chip-value{font-family:var(--f-mono);color:var(--ink);letter-spacing:.02em;font-size:18px;font-weight:600}.landing-panel-chip-sub{font-family:var(--f-mono);color:var(--ink-3);letter-spacing:.04em;margin-top:4px;font-size:11px}.landing-panel-chip-value.warn{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.landing-panel-chip-value.invert{background:var(--invert-bg);color:var(--invert-ink);border-radius:4px;padding:2px 6px;font-size:13px}.landing-verdict{grid-template-columns:auto 1fr;align-items:start;gap:14px;padding:14px 16px;display:grid;position:relative}.landing-verdict-status{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;align-items:center;gap:8px;font-size:11px;font-weight:600;display:inline-flex}.landing-verdict-glyph{font-size:14px}.landing-verdict-headline{font-family:var(--f-display);color:var(--ink);letter-spacing:-.01em;margin:0 0 4px;font-size:17px;font-weight:700}.landing-verdict-subline{color:var(--ink-2);margin:0;font-size:13px}.landing-verdict.good{border-left:2px solid var(--ink);padding-left:16px}.landing-verdict.info{border-left:2px solid var(--ink);background:0 0;padding-left:16px}.landing-verdict.caution{background-image:repeating-linear-gradient(45deg, var(--ink) 0 1px, transparent 1px 4px);background-position:0 0;background-repeat:no-repeat;background-size:3px 100%;border-left:3px solid #0000;padding-left:16px}.landing-verdict.danger .landing-verdict-status{background:var(--invert-bg);color:var(--invert-ink);border-radius:4px;padding:4px 8px}.landing-verdict.needs{border-left:1px dashed var(--line-2);color:var(--ink-3);padding-left:16px}.landing-upload .card{background:var(--bg-2);color:var(--ink-2);border:1px solid var(--line);box-shadow:none;border-radius:8px;margin:0;transition:border-color .12s,background .12s}.landing-upload .card:hover{border-color:var(--ink);background:var(--bg-3)}.landing-upload .card-header{box-sizing:border-box;align-items:center;min-height:44px;padding:14px 18px}.landing-upload .card-title{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--ink-3);margin:0;padding:0;font-size:12px;font-weight:500;line-height:1}.landing-upload .zip-drop-area{border-color:var(--line-2)}.landing-upload .zip-drop-area.hover{background:color-mix(in srgb, var(--ink) 6%, transparent);border-color:var(--ink)}.landing-upload .zip-logo,.landing-upload .zip-hint{color:var(--ink)}.landing-upload .zip-or{color:var(--ink-3)}.landing-upload .zip-here,.landing-upload .zip-browse{color:var(--ink)}.landing-upload .zip-browse:hover{color:var(--ink);opacity:.8}.landing-cards{gap:18px;display:grid}.landing-cards.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.landing-cards.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.landing-card{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:10px;padding:22px 22px 24px;transition:border-color .12s,transform .12s;display:flex}.landing-card:hover{border-color:var(--line-2);transform:translateY(-2px)}.landing-card-num{font-family:var(--f-mono);color:var(--ink-3);letter-spacing:.18em;text-transform:uppercase;font-size:11px}.landing-card h3{margin:0}.landing-card p{color:var(--ink-2);margin:0;font-size:14px}.landing-tier{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:18px;padding:28px;display:flex}.landing-tier.featured{border:1px solid var(--ink)}.landing-tier-name{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-size:12px}.landing-tier.featured .landing-tier-name{color:var(--ink)}.landing-tier-price{font-family:var(--f-display);letter-spacing:-.02em;font-size:36px;font-weight:700;line-height:1}.landing-tier-price-suffix{font-family:var(--f-mono);color:var(--ink-3);letter-spacing:.1em;margin-left:6px;font-size:12px;font-weight:500}.landing-tier-list{flex-direction:column;flex:1;gap:8px;margin:0;padding:0;list-style:none;display:flex}.landing-tier-list li{color:var(--ink-2);padding-left:18px;font-size:13px;position:relative}.landing-tier-list li:before{content:"+";color:var(--ink-3);font-family:var(--f-mono);position:absolute;left:0}.landing-footer{border-top:1px solid var(--line);color:var(--ink-3);padding:56px 0 64px;font-size:13px}.landing-footer-grid{grid-template-columns:1.4fr 1fr 1fr;align-items:start;gap:32px;display:grid}.landing-footer-tagline{font-family:var(--f-mono);color:var(--ink-2);letter-spacing:.04em;margin-top:12px;font-size:13px}.landing-footer-meta{font-family:var(--f-mono);color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;margin-top:18px;font-size:11px}.landing-footer-col h4{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px;font-size:11px;font-weight:600}.landing-footer-col ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.landing-footer-col a{color:var(--ink-2);font-size:13px;text-decoration:none}.landing-footer-col a:hover{color:var(--ink)}@media (max-width:980px){.landing-hero-grid{grid-template-columns:1fr;gap:36px}.landing-cards.cols-3,.landing-cards.cols-4{grid-template-columns:1fr}.landing-panel-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-footer-grid{grid-template-columns:1fr}.landing-section{padding:64px 0}}@media (max-width:720px){.landing-nav-inner{padding:20px 0}.landing-nav-links{gap:12px}.landing-nav-link{display:none}.landing-nav .landing-btn{letter-spacing:.06em;padding:10px 14px;font-size:11px}.landing-wordmark-img{height:18px}}@media (max-width:560px){.landing-container{padding:0 18px}.landing-panel-chips{grid-template-columns:1fr}.landing-panel-chip{border-right:0;border-bottom:1px solid var(--line)}.landing-panel-chip:last-child{border-bottom:0}}@media (prefers-reduced-motion:reduce){.landing-card:hover{transform:none}.landing-btn{transition:none}}.testseq-card{box-sizing:border-box;flex-direction:column;width:90vw;height:85vh;display:flex}.tsp-body{flex:auto;min-height:0;padding:20px;overflow:auto}.tsp-intro{color:var(--text-secondary);margin-top:8px;margin-bottom:12px}.tsp-empty{color:var(--text-secondary)}.tsp-toolbar{border-bottom:1px solid var(--muted-border);background:var(--card-toolbar-bg,transparent);justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.tsp-toolbar-left,.tsp-toolbar-right{align-items:center;gap:8px;display:flex}.tsp-toolbar .toolbar-btn{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 8px;font-size:.85rem}.tsp-toolbar .toolbar-btn:disabled{opacity:.45;cursor:not-allowed}.tsp-toolbar .toolbar-btn:hover:not(:disabled){background:#00000008}.tsp-toolbar .sidebar-button.menu svg{width:16px;height:16px;display:block}.tsp-toolbar .sidebar-button.menu svg.mirrored{transform:scaleX(-1)}.tsp-list{flex-direction:column;gap:8px;display:flex}.tsp-item{border:1px solid var(--muted-border);background:var(--nav-bg);cursor:pointer;border-radius:6px;align-items:center;padding:10px;display:flex}.tsp-item:focus{border:1px solid var(--highlight);outline:none}.tsp-item.skipped{color:var(--muted)!important}.tsp-item.skipped .project-title,.tsp-item.skipped .tsp-label-name,.tsp-item.skipped .tsp-measurement,.tsp-item.skipped .tsp-section-title,.tsp-item.skipped .tsp-section-count{color:var(--muted-border)!important}.sidebar-label-badge.skipped{opacity:.9;background:var(--muted)!important;color:var(--muted-border)!important}.tsp-skip-btn{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;margin-right:8px;padding:4px 6px;font-size:.8rem}.tsp-skip-btn.active{background:var(--muted);color:var(--text)}.tsp-sections{flex-direction:column;gap:18px;display:flex}.tsp-section{padding:6px 0}.tsp-section-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.tsp-section-title{color:var(--text);font-weight:700}.tsp-section-count{color:var(--text-secondary);font-size:.9rem}.tsp-handle{cursor:grab;width:24px;height:24px;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;margin-right:12px;padding:0;display:flex}.tsp-handle:active{cursor:grabbing}.tsp-main{flex:1}.tsp-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.tsp-header-right{align-items:center;margin-left:12px;display:flex}.tsp-toggle-btn{border-radius:6px;padding:6px}.tsp-header-left{align-items:center;gap:8px;min-width:0;display:flex}.tsp-ref{font-size:14px}.tsp-uid{color:var(--text-secondary);font-size:12px}.project-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.tsp-header-left .project-props{color:var(--muted-border);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.tsp-label{-webkit-user-select:none;user-select:none;border-radius:12px;align-items:center;gap:4px;padding:4px 8px;font-size:.7rem;font-weight:800;display:inline-flex}.tsp-label--ict{background:var(--gray5);color:var(--text);font-weight:700}.tsp-label--fct{color:var(--blue);background:#0088ff14;font-weight:700}.tsp-header-left .sidebar-label-badge,.tsp-header-left .tsp-label,.tsp-header-left .tsp-label+.tsp-label{margin-left:6px}.tsp-header-left .sidebar-label-badge:first-child,.tsp-header-left .tsp-label:first-child{margin-left:0}.tsp-measurement{color:var(--text-secondary);background:0 0;border-radius:8px;padding:2px 6px;font-size:.75rem}.tsp-measurement.ok{color:var(--green)}.tsp-measurement.fail{color:var(--red)}.tsp-measurement{color:var(--text-secondary)}.tsp-details{color:var(--text);margin-top:8px;font-size:13px}.tsp-details-row{align-items:center;gap:8px;margin-top:6px;display:flex}.tsp-measurements{flex-direction:column;align-items:flex-start;gap:6px}.tsp-measure-row{align-items:center;gap:8px;display:flex}.tsp-item.selected{border:1px solid var(--highlight)}.tsp-item.skipped .tsp-measure-row .tsp-label-name{color:var(--muted-border)!important}.tsp-item.skipped .tsp-measure-row .tsp-measurement{opacity:.6}.tsp-label-name{color:var(--text);font-weight:700}.tsp-dot{color:var(--text-secondary);margin:0 6px}.view-toggle.compact{border-radius:6px;display:flex}.project-menu{max-width:80vw;height:85vh}.project-menu .project-menu-content{margin-left:12px;padding:1rem}.project-menu .project-menu-header-right{align-items:center;gap:8px;display:flex}.project-menu .view-toggle{border-radius:6px;gap:4px;display:flex;overflow:hidden}.icon-btn{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.icon-btn svg{width:16px;height:16px;display:block}.icon-btn:hover{background:var(--muted-border)}.view-toggle:hover{background:var(--muted)}.icon-btn.active,.icon-btn[aria-pressed=true]{color:var(--highlight);background:var(--muted-bg)}.icon-btn:focus{outline:2px solid var(--highlight);outline-offset:2px}.project-list{max-height:60vh;overflow-y:auto}.project-list-header,.project-row{grid-template-columns:minmax(160px,1fr) 140px 100px 90px 70px 180px;align-items:center;gap:0 16px;padding:6px 16px 6px 8px;display:grid}.project-list-header{z-index:1;background:var(--bg);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--muted-border);margin-bottom:2px;padding-bottom:6px;font-size:.78rem;font-weight:600;position:sticky;top:0}.project-row{color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding-top:10px;padding-bottom:10px}.project-row:hover{background:var(--muted);color:var(--text)}.project-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.project-col{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.9rem;overflow:hidden}.project-grid{flex-wrap:wrap;gap:2vw;max-height:72vh;display:flex;overflow-y:auto}.project-card{color:var(--muted);border:1px solid var(--muted-border);cursor:pointer;background:0 0;border-radius:12px;flex-direction:column;gap:8px;width:15vw;padding:12px;display:flex}.project-card:hover{background:var(--muted);color:var(--text)}.project-card-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.project-card-props{color:var(--muted-border);flex-direction:column;gap:4px;font-size:.7rem;display:flex}.prop-counts{gap:4px;display:inline-flex}.mt-4{margin-top:4px}.project-card-preview{background:0 0;border-radius:4px;width:100%;max-height:160px;position:relative;overflow:hidden}.project-card-preview-placeholder{background:var(--muted-bg,var(--gray6,#e5e5e5));opacity:.35;border-radius:4px;width:100%;height:110px}.project-card-preview-layer *{vector-effect:non-scaling-stroke;fill:none;stroke-width:.5px!important}.project-card-preview-layer-edge *{stroke:var(--text)!important}.project-card-preview-layer-feature *,.project-card-preview-layer-drill *{stroke:#fff!important}.project-card-preview-drills-debug *{vector-effect:non-scaling-stroke;fill:var(--bg);stroke:#fff!important}.project-card-preview-svg{width:100%;height:100%;display:block}@media (max-width:640px){.project-card{width:100%}.project-menu .card-header{flex-direction:row;align-items:center}.project-menu .card-header .card-title{margin:0}}@media (max-width:880px){.project-list-header>span:nth-child(6),.project-row>span:nth-child(6){display:none}.project-list-header,.project-row{grid-template-columns:minmax(160px,1fr) 140px 100px 90px 70px}}@media (max-width:760px){.project-list-header>span:nth-child(5),.project-row>span:nth-child(5){display:none}.project-list-header,.project-row{grid-template-columns:minmax(160px,1fr) 140px 100px 90px}}@media (max-width:680px){.project-list-header>span:nth-child(4),.project-row>span:nth-child(4){display:none}.project-list-header,.project-row{grid-template-columns:minmax(160px,1fr) 140px 100px}}@media (max-width:580px){.project-list-header{display:none}.project-row{flex-direction:column;align-items:stretch;gap:6px;padding:12px 8px;display:flex}.project-row .project-title{white-space:normal;word-break:break-word;text-overflow:clip;font-size:.95rem;overflow:visible}.project-row .project-col{color:var(--muted);white-space:normal;text-overflow:clip;align-items:baseline;gap:4px;margin-right:10px;font-size:.78rem;display:inline-flex;overflow:visible}.project-row .project-col:before{content:attr(data-label);color:var(--muted-border);text-transform:uppercase;letter-spacing:.04em;margin-right:2px;font-size:.72rem;font-weight:500}.project-row .project-col[data-col=testpoints],.project-row .project-col[data-col=labels]{display:none}}.project-context-menu{z-index:1000;background:var(--bg);border:1px solid var(--muted-border);min-width:160px;box-shadow:0 4px 12px var(--shadow);border-radius:4px;flex-direction:column;gap:0;padding:4px;display:flex;position:fixed}.project-context-item{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:8px;font-size:.8rem;font-weight:500;display:flex}.project-context-item:hover{background:var(--highlight)}.project-context-item svg{opacity:.7;flex-shrink:0}.project-rename-backdrop{z-index:1100;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.project-rename-dialog{background:var(--card-bg,var(--bg));border:1px solid var(--muted-border);border-radius:10px;flex-direction:column;gap:12px;min-width:320px;max-width:480px;padding:20px 24px;display:flex;box-shadow:0 12px 40px #00000040}.project-rename-title{font-size:1rem;font-weight:600}.project-rename-input{box-sizing:border-box;border:1px solid var(--muted-border);background:var(--muted-bg,var(--muted));width:100%;color:var(--text);border-radius:6px;padding:8px 10px;font-size:.95rem}.project-rename-input:focus{outline:2px solid var(--highlight)}.project-rename-hint{color:var(--muted);font-size:.8rem}.project-rename-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.project-rename-btn-cancel{border:1px solid var(--muted-border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:7px 16px;font-size:.9rem}.project-rename-btn-cancel:hover{background:var(--muted)}.project-rename-btn-confirm{background:var(--highlight);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:7px 16px;font-size:.9rem;font-weight:600}.project-rename-btn-confirm:hover{opacity:.88}
