/* /Components/SvgZoomContainer.razor.rz.scp.css */
.svg-zoom-container[b-41gwxgl51b] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 400px;
    background: var(--mud-palette-drawer-background);
    border: 1px solid var(--mud-palette-table-lines);
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    position: relative;
}

.zoom-controls[b-41gwxgl51b] {
    padding: 8px;
    display: flex;
    justify-content: center;
    border-bottom: 1px solid var(--mud-palette-table-lines);
    background: var(--mud-palette-appbar-background);
    flex-shrink: 0;
}

.svg-scroll-container[b-41gwxgl51b] {
    flex: 1;
}

.svg-scroll-container[b-41gwxgl51b]::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.svg-scroll-container[b-41gwxgl51b]::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.svg-scroll-container[b-41gwxgl51b]::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 4px;
}

.svg-scroll-container[b-41gwxgl51b]::-webkit-scrollbar-thumb:hover {
    background: #a8a8a8;
}

.svg-sizer[b-41gwxgl51b] {
    overflow: hidden;
    transition: width 0.2s ease, height 0.2s ease;
}

.svg-wrapper[b-41gwxgl51b] {
    display: inline-block;
}

.svg-zoom-container[b-41gwxgl51b] {
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
}
/* /Pages/Reducer.razor.rz.scp.css */
.no-text-selection[b-r0jz79jqcw] {
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    -webkit-touch-callout: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

.no-text-selection td[b-r0jz79jqcw],
.no-text-selection th[b-r0jz79jqcw],
.no-text-selection .mud-table-cell[b-r0jz79jqcw] {
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
}

/* Truth table | map | results. The map has priority: by default it takes the width the
   table leaves and the results go to the next row (two rows) */
.reducer-layout[b-r0jz79jqcw] {
    display: flex;
    flex-wrap: wrap;
    /* Same separation as the MudGrid gutters (Spacing 6) */
    gap: 24px;
    align-items: flex-start;
}

.layout-table[b-r0jz79jqcw] {
    flex: 0 0 auto;
    display: flex;
    justify-content: center;
}

/* The height follows the map (layoutInterop.syncHeight); this is the minimum and the
   height until the script runs */
.table-pane[b-r0jz79jqcw] {
    height: 460px;
}

.layout-map[b-r0jz79jqcw] {
    flex: 1 1 0;
    min-width: 0;
}

.layout-results[b-r0jz79jqcw] {
    flex: 1 0 100%;
}

/* Columns: table and map on the left at fixed positions, the map at its 100% width (set
   inline), and the results in the rest of the row. Nothing in the results moves them */
.reducer-layout.columns[b-r0jz79jqcw] {
    /* A long expression wraps inside the results instead of moving them to the next row */
    flex-wrap: nowrap;
}

.reducer-layout.columns .layout-map[b-r0jz79jqcw] {
    flex: 0 0 auto;
}

.reducer-layout.columns .layout-results[b-r0jz79jqcw] {
    flex: 1 1 0;
    min-width: 0;
}

/* Small screens: table, map and results, one row each */
.reducer-layout.stacked > div[b-r0jz79jqcw] {
    flex: 1 0 100%;
}

/* Solutions as wide as their expression, up to the width of the results; longer ones
   wrap after the + and \cdot of the top level (KaTeX inline line breaks) */
[b-r0jz79jqcw] .solution-button {
    text-transform: none;
    justify-content: flex-start;
    text-align: left;
    max-width: 100%;
    white-space: normal;
}
