/* DXF Wizard Component Styles */
/* This file contains styles specific to the DXF Wizard GridStack-based UI */

/* Dark Grid Canvas for DXF Wizard */
.dark-grid-canvas {
    background-color: #2a2d32;
    background-image:
        radial-gradient(circle, #4a5568 1.5px, transparent 1.5px);
    background-size: 20px 20px;
    background-position: 0 0, 10px 10px;
}

/* Canvas wrapper for panning/zooming */
.canvas-wrapper {
    position: relative;
    overflow: auto;
    width: 100%;
    height: 600px;
    border: 1px solid var(--color-border, #3c4a5c);
    border-radius: var(--radius-md, 0.5rem);
}

.canvas-wrapper.panning {
    cursor: grabbing;
}

/* GridStack overrides for dark theme */
.grid-stack {
    min-height: 400px;
}

.grid-stack-item-content {
    background-color: var(--color-surface, #1e252f);
    border: 1px solid var(--color-border, #3c4a5c);
    border-radius: var(--radius-md, 0.5rem);
    overflow: hidden;
}

/* Device card styling */
.device-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.device-card .card-header {
    background-color: var(--color-bg-tertiary, #2b3245);
    border-bottom: 1px solid var(--color-border, #3c4a5c);
    padding: 0.5rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.device-card .card-body {
    flex: 1;
    padding: 0.5rem;
    font-size: 0.7rem;
    overflow: hidden;
}

/* Category color coding */
.device-card[data-category="Input"] .card-header {
    border-left: 3px solid #3b82f6;
}

.device-card[data-category="Processing"] .card-header {
    border-left: 3px solid #f59e0b;
}

.device-card[data-category="Output"] .card-header {
    border-left: 3px solid #10b981;
}

/* Context menu styling */
#deviceContextMenu {
    position: absolute;
    display: none;
    background-color: var(--color-surface, #1e252f);
    border: 1px solid var(--color-border, #3c4a5c);
    border-radius: var(--radius-md, 0.5rem);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    min-width: 150px;
}

#deviceContextMenu.show {
    display: block;
}

#deviceContextMenu .dropdown-item {
    padding: 0.5rem 1rem;
    color: var(--color-text-primary, #f2f4f7);
    cursor: pointer;
    transition: background-color 0.2s;
}

#deviceContextMenu .dropdown-item:hover {
    background-color: var(--color-surface-hover, #252d38);
}

/* Connection line SVG overlay */
.connection-svg-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
}

.connection-line {
    stroke: var(--color-accent, #56d364);
    stroke-width: 2;
    fill: none;
}

.connection-line.selected {
    stroke: var(--color-warning, #f59e0b);
    stroke-width: 3;
}

/* Custom device source (draggable) */
.custom-device-source {
    cursor: grab;
    padding: 0.5rem 1rem;
    background-color: var(--color-surface, #1e252f);
    border: 1px dashed var(--color-border, #3c4a5c);
    border-radius: var(--radius-md, 0.5rem);
    text-align: center;
    transition: all 0.2s;
}

.custom-device-source:hover {
    border-color: var(--color-accent, #56d364);
    background-color: var(--color-surface-hover, #252d38);
}

.custom-device-source:active {
    cursor: grabbing;
}
