/* ==========================================================================
   HOJA DE ESTILOS DE LA IMPRENTA (GENERADOR DE CITAS)
   ========================================================================== */

.imprenta-container {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 35px;
    margin-bottom: 40px;
}

/* Panel de Controles */
.controls-panel {
    border: 1px solid var(--border-color);
    padding: 20px;
    background-color: var(--paper-texture-subtle);
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.panel-title {
    font-family: var(--font-headers);
    font-size: 1.1rem;
    color: var(--burgundy);
}

.panel-desc {
    font-size: 0.8rem;
    opacity: 0.8;
    margin-bottom: 5px;
}

.controls-panel select,
.controls-panel input,
.controls-panel textarea {
    width: 100%;
    background: transparent;
    border: 1px solid var(--border-color);
    padding: 8px 10px;
    font-family: var(--font-serif);
    font-size: 0.85rem;
    color: var(--text-color);
    outline: none;
}

.controls-panel textarea {
    resize: vertical;
}

.theme-picker {
    display: flex;
    gap: 10px;
    margin-top: 5px;
}

.theme-btn {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--border-color);
    cursor: pointer;
    transition: transform 0.2s ease, border-color 0.2s ease;
}

.theme-btn:hover, .theme-btn.active {
    transform: scale(1.15);
    border-color: var(--burgundy);
}

/* Estilos de Paletas del Selector */
.theme-btn.theme-paper { background-color: #f9f6ee; }
.theme-btn.theme-dark { background-color: #121212; }
.theme-btn.theme-burgundy { background-color: #6b0f1a; }
.theme-btn.theme-minimal { background-color: #ffffff; }

/* Botón de Exportación */
.export-btn {
    margin-top: 10px;
    background-color: var(--burgundy);
    color: #ffffff;
    border: none;
    font-family: var(--font-headers);
    font-size: 0.8rem;
    letter-spacing: 1.5px;
    padding: 12px;
    cursor: pointer;
    font-weight: bold;
    transition: opacity 0.2s ease;
}

.export-btn:hover {
    opacity: 0.9;
}

/* Panel de Vista Previa */
.preview-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.preview-label {
    font-family: var(--font-headers);
    font-size: 0.65rem;
    letter-spacing: 2px;
    margin-bottom: 12px;
    opacity: 0.7;
}

/* LA TARJETA DE CITA (PLIEGO) */
.quote-card {
    width: 100%;
    max-width: 450px;
    min-height: 320px;
    padding: 25px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.card-inner-border {
    border: 1px double currentColor;
    width: 100%;
    height: 100%;
    padding: 25px 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    text-align: center;
}

.card-ornament {
    font-size: 1.2rem;
}

.card-text {
    font-size: 1.15rem;
    line-height: 1.6;
    margin: 15px 0;
    text-align: center !important;
}

.card-author {
    font-family: var(--font-headers);
    font-size: 0.75rem;
    letter-spacing: 1.5px;
    font-style: italic;
}

/* TEMAS PARA LA TARJETA (FONDO Y TEXTO) */
.quote-card.theme-paper {
    background-color: #f9f6ee;
    color: #0a0a0a;
    border: 1px solid #2b2825;
}

.quote-card.theme-dark {
    background-color: #121212;
    color: #e6dfcc;
    border: 1px solid #e6dfcc;
}

.quote-card.theme-burgundy {
    background-color: #6b0f1a;
    color: #f9f6ee;
    border: 1px solid #f9f6ee;
}

.quote-card.theme-minimal {
    background-color: #ffffff;
    color: #000000;
    border: 1px solid #cccccc;
}

/* Responsive para celulares */
@media (max-width: 768px) {
    .imprenta-container {
        grid-template-columns: 1fr;
    }
}

/* Selectores de Formato (Ratio) y Alineación */
.ratio-picker, .align-picker {
    display: flex;
    gap: 8px;
}

.ratio-btn, .align-btn {
    flex: 1;
    background: transparent;
    border: 1px solid var(--border-color);
    color: var(--text-color);
    font-family: var(--font-headers);
    font-size: 0.65rem;
    padding: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.ratio-btn.active, .align-btn.active {
    background-color: var(--burgundy);
    color: #ffffff;
    border-color: var(--burgundy);
}

/* Slider de tamaño */
input[type="range"] {
    width: 100%;
    accent-color: var(--burgundy);
    cursor: pointer;
}

/* Input para subir archivo */
.file-input {
    font-size: 0.75rem !important;
    padding: 5px !important;
}

/* Formatos de Lienzo (Ratio) */
.quote-card.ratio-square {
    width: 400px;
    height: 400px;
}

.quote-card.ratio-story {
    width: 320px;
    height: 520px;
}

.quote-card.ratio-banner {
    width: 480px;
    height: 270px;
}

/* Soporte para Fondo Personalizado */
.quote-card.has-custom-bg {
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* Corrección para que la alineación funcione desde JS */
.card-text {
    font-size: 1.15rem;
    line-height: 1.6;
    margin: 15px 0;
    text-align: center; /* Se removió el !important */
    width: 100%;
}

/* Fila para slider + color picker */
.form-group-row {
    display: flex;
    gap: 15px;
    align-items: center;
}

.color-picker-input {
    width: 100%;
    height: 35px;
    border: 1px solid var(--border-color);
    background: transparent;
    cursor: pointer;
    padding: 2px;
}

/* BOTÓN NOTORIO DE SUBIR ARCHIVO */
.custom-file-upload {
    display: block;
    width: 100%;
    text-align: center;
    background-color: var(--paper-texture-subtle);
    border: 2px dashed var(--burgundy);
    color: var(--text-color);
    font-family: var(--font-headers);
    font-size: 0.75rem;
    font-weight: bold;
    letter-spacing: 1px;
    padding: 12px 10px;
    cursor: pointer;
    transition: all 0.2s ease;
    margin-top: 4px;
}

.custom-file-upload:hover {
    background-color: var(--burgundy);
    color: #ffffff;
}

.file-name-subtext {
    display: block;
    font-size: 0.7rem;
    font-style: italic;
    opacity: 0.7;
    margin-top: 4px;
    text-align: center;
}