/*
 * Gráficos: lienzo dentro de la forma, cuadro "Insertar gráfico" y mini hoja de
 * datos.
 *
 * El dibujo del gráfico lo decide `charts/charts.js`, que escribe cada color y
 * cada medida como atributo del SVG: aquí solo quedan el encaje dentro de la
 * forma y los dos diálogos. Todas las clases propias llevan el prefijo `chart-`
 * o cuelgan de `.chart`.
 */

/* El gráfico ocupa el marco exacto de la forma y no se desborda al reducirla. */
.shape--chart {
    overflow: hidden;
}

/*
 * Como el resto del contenido de una forma (`.shape__geom`, `.shape__img`), el
 * dibujo deja pasar el ratón: quien decide qué se selecciona es el lienzo.
 */
.shape--chart .chart {
    position: absolute;
    inset: 0;
    pointer-events: none;
    user-select: none;
}

.chart__tick,
.chart__cat,
.chart__legend {
    opacity: 0.75;
}

/* ---------- Cuadro Insertar gráfico ---------- */

.dialog--chart-type {
    min-width: 520px;
}

.chart-type {
    display: flex;
    gap: 12px;
    min-height: 260px;
}

.chart-type__groups {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 140px;
    padding-right: 8px;
    border-right: 1px solid var(--ppt-border-soft);
}

.chart-type__group {
    padding: 6px 8px;
    border-radius: var(--ppt-radius-sm);
    text-align: left;
    color: var(--ppt-text-2);
}

.chart-type__group:hover {
    background: var(--ppt-hover);
}

.chart-type__group.is-active {
    background: var(--ppt-hover-solid);
    font-weight: 600;
}

.chart-type__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    flex: 1;
    max-height: 320px;
    overflow: auto;
}

.chart-type__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 6px;
    border: 1px solid transparent;
    border-radius: var(--ppt-radius);
    background: var(--ppt-panel-bg);
}

.chart-type__item:hover {
    border-color: var(--ppt-border);
    background: var(--ppt-hover);
}

.chart-type__item.is-active {
    border-color: var(--ppt-accent);
    background: var(--ppt-hover-solid);
}

.chart-type__thumb {
    width: 96px;
    height: 64px;
    fill: var(--ppt-text-accent);
    stroke: var(--ppt-text-accent);
    stroke-width: 2;
}

.chart-type__label {
    font-size: var(--ppt-font-size-ui-sm);
    color: var(--ppt-text-2);
    text-align: center;
}

/* ---------- Mini hoja de datos ---------- */

.dialog--chart-data {
    min-width: 460px;
}

.chart-sheet {
    max-height: 340px;
    overflow: auto;
    border: 1px solid var(--ppt-border-soft);
}

.chart-sheet__table {
    border-collapse: collapse;
    width: 100%;
}

.chart-sheet__table th,
.chart-sheet__table td {
    padding: 3px 4px;
    border: 1px solid var(--ppt-border-soft);
    text-align: left;
    font-weight: 400;
    white-space: nowrap;
}

/* La fila de series se queda a la vista al desplazar una hoja larga. */
.chart-sheet__table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--ppt-gallery-bg);
}

.chart-sheet__table .input {
    width: 110px;
}

.chart-sheet__table .input--num {
    width: 76px;
    text-align: right;
}

.chart-sheet__remove {
    width: 20px;
    height: 20px;
    margin-left: 4px;
    border-radius: var(--ppt-radius-sm);
    color: var(--ppt-text-2);
    vertical-align: middle;
}

.chart-sheet__remove:hover:not(:disabled) {
    background: var(--ppt-hover);
}

.chart-sheet__remove:disabled {
    color: var(--ppt-text-disabled);
}

.chart-sheet__tools {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}
