@@ -1381,3 +1381,265 @@ section {
13811381.mensaje-oculto {
13821382 display : none;
13831383}
1384+
1385+
1386+ /* ========================================
1387+ BOTONES DE EXPORTACIÓN
1388+ ======================================== */
1389+ .export-buttons {
1390+ margin-top : var (--space-xl );
1391+ padding : var (--space-lg );
1392+ background : linear-gradient (135deg , # f7fafc 0% , # edf2f7 100% );
1393+ border : 1px solid var (--color-border );
1394+ border-radius : 8px ;
1395+ text-align : center;
1396+ }
1397+
1398+ .export-buttons .hidden {
1399+ display : none;
1400+ }
1401+
1402+ .export-buttons-title {
1403+ font-size : 0.85rem ;
1404+ font-weight : 600 ;
1405+ text-transform : uppercase;
1406+ letter-spacing : 0.05em ;
1407+ color : var (--color-text-muted );
1408+ margin-bottom : var (--space-md );
1409+ }
1410+
1411+ .export-buttons-group {
1412+ display : flex;
1413+ justify-content : center;
1414+ gap : var (--space-md );
1415+ flex-wrap : wrap;
1416+ }
1417+
1418+ .btn-export {
1419+ display : inline-flex;
1420+ align-items : center;
1421+ gap : var (--space-sm );
1422+ padding : var (--space-sm ) var (--space-lg );
1423+ font-family : var (--font-body );
1424+ font-size : 0.9rem ;
1425+ font-weight : 600 ;
1426+ border : 2px solid;
1427+ border-radius : 6px ;
1428+ cursor : pointer;
1429+ transition : all 0.2s ease;
1430+ }
1431+
1432+ .btn-export : hover {
1433+ transform : translateY (-2px );
1434+ box-shadow : var (--shadow-md );
1435+ }
1436+
1437+ .btn-export : active {
1438+ transform : translateY (0 );
1439+ }
1440+
1441+ .btn-copiar {
1442+ background : white;
1443+ color : var (--color-info );
1444+ border-color : var (--color-info );
1445+ }
1446+
1447+ .btn-copiar : hover {
1448+ background : var (--color-info );
1449+ color : white;
1450+ }
1451+
1452+ .btn-preview {
1453+ background : white;
1454+ color : var (--color-warning );
1455+ border-color : var (--color-warning );
1456+ }
1457+
1458+ .btn-preview : hover {
1459+ background : var (--color-warning );
1460+ color : white;
1461+ }
1462+
1463+ .btn-pdf {
1464+ background : var (--color-accent );
1465+ color : white;
1466+ border-color : var (--color-accent );
1467+ }
1468+
1469+ .btn-pdf : hover {
1470+ background : # 9b2c2c ;
1471+ border-color : # 9b2c2c ;
1472+ }
1473+
1474+ /* ========================================
1475+ MODAL DE VISTA PREVIA
1476+ ======================================== */
1477+ .modal-overlay {
1478+ position : fixed;
1479+ top : 0 ;
1480+ left : 0 ;
1481+ right : 0 ;
1482+ bottom : 0 ;
1483+ background : rgba (0 , 0 , 0 , 0.7 );
1484+ display : flex;
1485+ align-items : center;
1486+ justify-content : center;
1487+ z-index : 1000 ;
1488+ padding : var (--space-lg );
1489+ }
1490+
1491+ .modal-content {
1492+ background : white;
1493+ border-radius : 8px ;
1494+ max-width : 900px ;
1495+ width : 100% ;
1496+ max-height : 90vh ;
1497+ display : flex;
1498+ flex-direction : column;
1499+ box-shadow : 0 25px 50px rgba (0 , 0 , 0 , 0.25 );
1500+ }
1501+
1502+ .modal-header {
1503+ display : flex;
1504+ justify-content : space-between;
1505+ align-items : center;
1506+ padding : var (--space-md ) var (--space-lg );
1507+ border-bottom : 1px solid var (--color-border );
1508+ background : var (--color-primary );
1509+ color : white;
1510+ border-radius : 8px 8px 0 0 ;
1511+ }
1512+
1513+ .modal-header h3 {
1514+ margin : 0 ;
1515+ font-family : var (--font-heading );
1516+ font-size : 1.1rem ;
1517+ }
1518+
1519+ .modal-close {
1520+ background : none;
1521+ border : none;
1522+ font-size : 1.5rem ;
1523+ color : white;
1524+ cursor : pointer;
1525+ padding : 0 ;
1526+ line-height : 1 ;
1527+ opacity : 0.8 ;
1528+ transition : opacity 0.2s ;
1529+ }
1530+
1531+ .modal-close : hover {
1532+ opacity : 1 ;
1533+ }
1534+
1535+ .modal-body {
1536+ flex : 1 ;
1537+ overflow : auto;
1538+ padding : var (--space-lg );
1539+ background : # 1a1a2e ;
1540+ }
1541+
1542+ .modal-body pre {
1543+ font-family : var (--font-mono );
1544+ font-size : 0.75rem ;
1545+ line-height : 1.5 ;
1546+ color : # e0e0e0 ;
1547+ white-space : pre-wrap;
1548+ word-wrap : break-word;
1549+ margin : 0 ;
1550+ }
1551+
1552+ .modal-footer {
1553+ display : flex;
1554+ justify-content : flex-end;
1555+ gap : var (--space-md );
1556+ padding : var (--space-md ) var (--space-lg );
1557+ border-top : 1px solid var (--color-border );
1558+ background : var (--color-bg-alt );
1559+ border-radius : 0 0 8px 8px ;
1560+ }
1561+
1562+ .modal-footer .btn-secondary {
1563+ padding : var (--space-sm ) var (--space-lg );
1564+ background : white;
1565+ color : var (--color-text );
1566+ border : 1px solid var (--color-border-dark );
1567+ border-radius : 4px ;
1568+ font-family : var (--font-body );
1569+ font-size : 0.9rem ;
1570+ cursor : pointer;
1571+ transition : background 0.2s ;
1572+ }
1573+
1574+ .modal-footer .btn-secondary : hover {
1575+ background : var (--color-bg-alt );
1576+ }
1577+
1578+ .modal-footer .btn-primary {
1579+ padding : var (--space-sm ) var (--space-lg );
1580+ background : var (--color-primary );
1581+ color : white;
1582+ border : none;
1583+ border-radius : 4px ;
1584+ font-family : var (--font-body );
1585+ font-size : 0.9rem ;
1586+ font-weight : 600 ;
1587+ cursor : pointer;
1588+ transition : background 0.2s ;
1589+ }
1590+
1591+ .modal-footer .btn-primary : hover {
1592+ background : var (--color-primary-light );
1593+ }
1594+
1595+ /* Toast de notificación */
1596+ .toast {
1597+ position : fixed;
1598+ bottom : 20px ;
1599+ left : 50% ;
1600+ transform : translateX (-50% );
1601+ padding : var (--space-md ) var (--space-xl );
1602+ background : var (--color-primary-dark );
1603+ color : white;
1604+ border-radius : 8px ;
1605+ font-size : 0.9rem ;
1606+ box-shadow : var (--shadow-lg );
1607+ z-index : 1001 ;
1608+ animation : toastIn 0.3s ease, toastOut 0.3s ease 2.7s ;
1609+ }
1610+
1611+ .toast .success {
1612+ background : var (--color-success );
1613+ }
1614+
1615+ .toast .error {
1616+ background : var (--color-accent );
1617+ }
1618+
1619+ @keyframes toastIn {
1620+ from {
1621+ opacity : 0 ;
1622+ transform : translateX (-50% ) translateY (20px );
1623+ }
1624+ to {
1625+ opacity : 1 ;
1626+ transform : translateX (-50% ) translateY (0 );
1627+ }
1628+ }
1629+
1630+ @keyframes toastOut {
1631+ from {
1632+ opacity : 1 ;
1633+ transform : translateX (-50% ) translateY (0 );
1634+ }
1635+ to {
1636+ opacity : 0 ;
1637+ transform : translateX (-50% ) translateY (20px );
1638+ }
1639+ }
1640+
1641+ @media print {
1642+ .export-buttons {
1643+ display : none;
1644+ }
1645+ }
0 commit comments