.zk-editor{gap:var(--space-md);flex-direction:column;display:flex}.zk-upload-card{background:var(--color-bg-card);background-image:var(--gradient-card);border:2px dashed var(--color-border-hover);border-radius:var(--radius-lg);padding:var(--space-3xl) var(--space-2xl);text-align:center;cursor:pointer;max-width:600px;transition:border-color var(--transition-base), box-shadow var(--transition-base);margin:0 auto}.zk-upload-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.zk-upload-icon{color:var(--color-text-muted);margin-bottom:var(--space-md)}.zk-upload-card h2{font-size:var(--text-h3);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.zk-upload-card p{color:var(--color-text-secondary);font-size:var(--text-body);margin-bottom:var(--space-lg)}.zk-upload-card code{background:var(--color-bg-tertiary);padding:var(--space-xxs) var(--space-xs);border-radius:var(--radius-xs);font-family:var(--font-mono);font-size:var(--text-body-sm)}.zk-sample-bar{justify-content:center;align-items:center;gap:var(--space-md);margin:var(--space-md) 0;flex-wrap:wrap;display:flex}.zk-sample-label{color:var(--color-text-muted);font-size:var(--text-body-sm)}.zk-select{height:var(--component-height-sm);padding:var(--space-xs) var(--space-lg) var(--space-xs) var(--space-sm);font-size:var(--component-font-sm);font-family:var(--font-sans);background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;appearance:none;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:.875rem}.zk-select:hover{border-color:var(--color-border-hover)}.zk-select:focus-visible{border-color:var(--color-border-accent);box-shadow:0 0 0 2px var(--color-border-accent);outline:none}.zk-toolbar{padding:var(--space-sm) var(--space-md);background:var(--color-bg-card);background-image:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.zk-toolbar-left,.zk-toolbar-right{align-items:center;gap:var(--space-sm);display:flex}.zk-filename{font-family:var(--font-mono);font-size:var(--text-body-sm);color:var(--color-text-secondary)}.zk-shortcut-hint{font-size:var(--text-caption);color:var(--color-text-muted);padding:var(--space-xxs) var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);display:none}@media (width>=769px){.zk-shortcut-hint{display:inline-block}}.zk-monaco-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-editor);height:420px;overflow:hidden}.zk-spinner{border:2px solid var(--color-text-muted);border-top-color:var(--color-accent);border-radius:var(--radius-full);width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}@media (prefers-reduced-motion:reduce){.zk-spinner{animation:none}}.zk-severity-summary{gap:var(--space-sm);flex-wrap:wrap;display:flex}.zk-severity-count{align-items:center;gap:var(--space-xs);padding:var(--component-padding-sm);font-size:var(--component-font-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);border:1px solid;display:inline-flex}.zk-severity-critical{background:var(--severity-critical-bg);color:var(--severity-critical);border-color:var(--severity-critical)}.zk-severity-high{background:var(--severity-high-bg);color:var(--severity-high);border-color:var(--severity-high)}.zk-severity-medium{background:var(--severity-medium-bg);color:var(--severity-medium);border-color:var(--severity-medium)}.zk-severity-low{background:var(--severity-low-bg);color:var(--severity-low);border-color:var(--severity-low)}.zk-severity-info{background:var(--severity-info-bg);color:var(--severity-info);border-color:var(--severity-info)}.zk-metrics-bar{gap:var(--space-lg);padding:var(--space-md);background:var(--color-bg-card);background-image:var(--gradient-card);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.zk-metric{align-items:center;gap:var(--space-xxs);flex-direction:column;display:flex}.zk-metric-value{font-size:var(--text-h3);font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-family:var(--font-mono)}.zk-metric-label{font-size:var(--text-caption);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--letter-spacing-normal)}.zk-metric-danger .zk-metric-value{color:var(--severity-critical)}.zk-findings-header{margin-top:var(--space-md);justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.zk-findings-header h3{font-size:var(--text-h3);color:var(--color-text-primary)}.zk-findings-actions{gap:var(--space-sm);display:flex}.zk-finding-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.zk-finding-title{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--text-body)}.zk-line-link{font-family:var(--font-mono)!important;font-size:var(--text-caption)!important;color:var(--color-text-accent)!important}.zk-finding-desc{color:var(--color-text-secondary);font-size:var(--text-body);line-height:var(--line-height-relaxed)}.zk-finding-rec{margin-top:var(--space-sm);font-size:var(--text-body-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.zk-editor .empty-state{padding:var(--space-3xl) var(--space-xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:300px;display:flex}.zk-editor .empty-state-icon{margin-bottom:var(--space-xl);color:var(--color-text-muted);opacity:.4}.zk-editor .empty-state-icon svg{width:64px;height:64px}.zk-editor .empty-state-content{max-width:400px;margin-bottom:var(--space-xl)}.zk-editor .empty-state-title{font-size:var(--text-h3);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 var(--space-sm) 0}.zk-editor .empty-state-description{font-size:var(--text-body);color:var(--color-text-muted);line-height:var(--line-height-relaxed);margin:0}.zk-editor .error-message{background:var(--error-bg,color-mix(in srgb, var(--color-error) 8%, transparent));border:1px solid var(--error-border,color-mix(in srgb, var(--color-error) 25%, transparent));border-left:4px solid var(--error-accent,var(--color-error));border-radius:var(--radius-lg);padding:var(--space-lg)}.zk-editor .error-message.error-unknown{--error-bg:color-mix(in srgb, var(--color-text-muted) 8%, transparent);--error-border:color-mix(in srgb, var(--color-text-muted) 20%, transparent);--error-accent:var(--color-text-muted);--error-icon-bg:color-mix(in srgb, var(--color-text-muted) 15%, transparent);--error-text:var(--color-text-secondary);--error-text-secondary:var(--color-text-secondary)}.zk-editor .error-header{align-items:flex-start;gap:var(--space-md);display:flex}.zk-editor .error-icon{background:var(--error-icon-bg,color-mix(in srgb, var(--color-error) 12%, transparent));border-radius:var(--radius-md);width:40px;height:40px;color:var(--error-accent,var(--color-error));flex-shrink:0;justify-content:center;align-items:center;display:flex}.zk-editor .error-content{flex:1;min-width:0}.zk-editor .error-title{margin:0 0 var(--space-xs) 0;font-size:var(--text-body-lg);font-weight:var(--font-weight-semibold);color:var(--error-text,var(--color-text-primary))}.zk-editor .error-message-text{font-size:var(--text-body-sm);color:var(--error-text-secondary,var(--color-text-secondary));line-height:var(--line-height-relaxed);margin:0}.zk-editor .error-actions{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.zk-glyph-critical{background:var(--severity-critical);border-radius:var(--radius-full);margin-left:var(--space-xxs);margin-top:var(--space-xs);width:8px!important;height:8px!important}.zk-glyph-high{background:var(--severity-high);border-radius:var(--radius-full);margin-left:var(--space-xxs);margin-top:var(--space-xs);width:8px!important;height:8px!important}.zk-glyph-medium{background:var(--severity-medium);border-radius:var(--radius-full);margin-left:var(--space-xxs);margin-top:var(--space-xs);width:8px!important;height:8px!important}.zk-glyph-low{background:var(--severity-low);border-radius:var(--radius-full);margin-left:var(--space-xxs);margin-top:var(--space-xs);width:8px!important;height:8px!important}.zk-line-critical{background:color-mix(in srgb, var(--severity-critical) 12%, transparent)!important}.zk-line-high{background:color-mix(in srgb, var(--severity-high) 12%, transparent)!important}.zk-line-medium{background:color-mix(in srgb, var(--severity-medium) 10%, transparent)!important}.zk-line-low{background:color-mix(in srgb, var(--severity-low) 8%, transparent)!important}.zk-graph-card{overflow:auto}.zk-graph-header{padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-sm);font-size:var(--text-body-sm);color:var(--color-text-secondary);justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.zk-graph-legend{gap:var(--space-md);font-size:var(--text-caption);color:var(--color-text-muted);display:flex}.zk-legend-dot{border-radius:var(--radius-full);width:10px;height:10px;margin-right:var(--space-xxs);vertical-align:middle;display:inline-block}.zk-graph-empty{padding:var(--space-xl);text-align:center;color:var(--color-text-muted);font-size:var(--text-body-sm)}.zk-cgraph-container{background:var(--color-bg-primary);height:100%;color:var(--color-text-primary);font-family:var(--font-mono);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-direction:column;display:flex;position:relative;overflow:hidden}.zk-cgraph-toolbar{padding:var(--space-xs) var(--space-md);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);z-index:10;justify-content:space-between;align-items:center;gap:var(--space-md);flex-shrink:0;display:flex;overflow:visible}.zk-cgraph-toolbar-left,.zk-cgraph-toolbar-right{align-items:center;gap:var(--space-sm);display:flex;overflow:visible}.zk-cgraph-toolbar-label{font-weight:var(--font-weight-semibold);font-size:var(--text-caption);color:var(--color-text-secondary)}.zk-cgraph-toolbar-info{font-size:var(--text-micro);color:var(--color-text-muted)}.zk-cgraph-search{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-micro);font-family:var(--font-mono);width:140px;transition:border-color var(--transition-fast), width var(--transition-fast)}.zk-cgraph-search:focus-visible{border-color:var(--color-border-accent);box-shadow:0 0 0 2px var(--color-border-accent);outline:none;width:180px}.zk-cgraph-search::placeholder{color:var(--color-text-muted)}.zk-cgraph-select{padding:var(--space-xxs) var(--space-xs);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--text-micro);cursor:pointer}.zk-cgraph-divider{background:var(--color-border);width:1px;height:16px}.zk-cgraph-btn-group{background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:var(--space-xxs);gap:var(--space-xxs);display:flex}.zk-cgraph-btn-group .btn{border-radius:var(--radius-xs)}.zk-cgraph-canvas-container{flex:1;min-height:200px;position:relative;overflow:hidden}.zk-cgraph-canvas{cursor:grab;width:100%;height:100%}.zk-cgraph-canvas:active{cursor:grabbing}.zk-cgraph-loading{background:var(--color-overlay);color:var(--color-text-muted);font-size:var(--text-caption);z-index:5;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.zk-cgraph-tooltip{bottom:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-micro);color:var(--color-text-primary);pointer-events:none;z-index:100;white-space:nowrap;max-width:300px;box-shadow:var(--shadow-md);position:absolute;left:50%;transform:translate(-50%)}.zk-cgraph-empty{justify-content:center;align-items:center;gap:var(--space-md);color:var(--color-text-muted);background:var(--color-bg-primary);flex-direction:column;flex:1;min-height:200px;display:flex}.zk-cgraph-empty-hint{font-size:var(--text-micro);opacity:.7}.zk-cgraph-legend{gap:var(--space-lg);padding:var(--space-xs) var(--space-md);background:var(--color-bg-secondary);border-top:1px solid var(--color-border);font-size:var(--text-micro);flex-shrink:0;display:flex}.zk-cgraph-legend-section{align-items:center;gap:var(--space-sm);display:flex}.zk-cgraph-legend-title{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-right:var(--space-xxs)}.zk-cgraph-legend-item{align-items:center;gap:var(--space-xxs);color:var(--color-text-muted);display:flex}.zk-cgraph-legend-dot{border-radius:var(--radius-full);width:10px;height:10px}.zk-cgraph-dot-public{background:var(--color-accent-base)}.zk-cgraph-dot-private{background:var(--color-secondary)}.zk-cgraph-dot-output{background:var(--color-tertiary)}.zk-cgraph-dot-intermediate{background:var(--color-text-muted)}.zk-cgraph-dot-flagged{background:var(--severity-critical);border:1px solid var(--severity-critical)}.zk-cgraph-legend-line{border-radius:var(--radius-xs);background:var(--color-text-muted);width:16px;height:2px}.zk-cgraph-line-flagged{background:var(--severity-critical);border-top:1px dashed var(--severity-critical);height:0}@media (prefers-reduced-motion:reduce){.zk-cgraph-search{transition:none}}@media (width<=768px){.zk-toolbar{flex-direction:column;align-items:stretch}.zk-toolbar-left,.zk-toolbar-right{justify-content:center}.zk-monaco-wrapper{height:300px}.zk-metrics-bar{gap:var(--space-md);justify-content:center}.zk-findings-header{flex-direction:column;align-items:flex-start}.zk-cgraph-toolbar,.zk-cgraph-toolbar-left,.zk-cgraph-toolbar-right{flex-wrap:wrap}.zk-cgraph-search{flex:auto;width:auto;min-width:80px}.zk-cgraph-search:focus-visible{width:auto}}
