.seating-plan-canvas {
    overflow: hidden;
    border: 1px solid var(--border-color, #cbd5e1);
    border-radius: 0.375rem;
    background: var(--body-bg, #f1f5f9);
}

.seating-plan-canvas svg {
    display: block;
    width: 100%;
    height: auto;
    touch-action: none;
    user-select: none;
}

.seating-plan-grid {
    stroke: var(--border-color, #cbd5e1);
    stroke-width: 0.7;
}

.seating-plan-table {
    cursor: grab;
    outline: none;
}

.seating-plan-table .seating-table-body {
    fill: #e3effb;
    stroke: #1769aa;
    stroke-width: var(--table-stroke, 2px);
}

.seating-plan-table.is-selected .seating-table-body,
.seating-plan-table:focus-visible .seating-table-body {
    stroke-width: calc(var(--table-stroke, 2px) * 2.5);
    fill: #beddfa;
}

.seating-plan-table.is-dragging {
    cursor: grabbing;
}

.seating-plan-table-number {
    fill: #102e4a;
    font-size: 13px;
    font-weight: 700;
}

.seating-plan-table-seats {
    fill: #244963;
    font-size: 10px;
}

.seating-plan-empty {
    fill: var(--text-muted, #64748b);
    font-size: 16px;
}

.seating-plan-chair { cursor: grab; outline: none; }
.seating-plan-chair circle { fill: #e6f5ed; stroke: #16814e; stroke-width: var(--seat-stroke, 1.5px); }
.seating-plan-chair text { fill: #123d28; font-size: 9px; font-weight: 700; pointer-events: none; }
.seating-plan-chair:focus-visible circle { stroke: #1769aa; stroke-width: calc(var(--seat-stroke, 1.5px) * 2); }
.seating-plan-chair.is-blocked circle { fill: #d4dae0; stroke: #6f7a85; stroke-dasharray: 3 2; }
.seating-plan-chair.is-dragging { cursor: grabbing; }
