/* MyTrack 后台管理样式 */ .dark input[type=text], input[type=url], input[type=password], input[type=email], input[type=number], textarea, .typecho-option select, input[type=text]:disabled, input[type=text]:read-only, input[type=password]:disabled, input[type=password]:read-only, input[type=email]:disabled, input[type=email]:read-only, textarea:disabled, textarea:read-only, select { background: #fff!important; border: 1px solid #000000; outline: none; } /* 模态框样式 */ .typecho-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1000; display: flex; align-items: center; justify-content: center; } .typecho-modal-content { background-color: #fff; border-radius: 5px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); width: 90%; max-width: 600px; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; } .typecho-modal-title { padding: 15px 20px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; background: #f9f9f9; } .typecho-modal-title span { margin: 0; font-size: 18px; color: #333; font-weight: bold; } .typecho-modal-close { background: none; border: none; font-size: 24px; cursor: pointer; color: #999; transition: color 0.3s; } .typecho-modal-close:hover { color: #666; } .typecho-modal-body { padding: 20px; overflow-y: auto; flex: 1; max-height: calc(90vh - 120px); } .typecho-modal-foot { padding: 15px 20px; border-top: 1px solid #eee; text-align: right; background: #f9f9f9; } /* 表单样式 */ .typecho-modal-body ul { list-style: none; padding: 0; margin: 0; } .typecho-modal-body li { margin-bottom: 5px; } .typecho-label { display: block; margin-bottom: 5px; font-weight: bold; color: #333; } .typecho-modal-body input, .typecho-modal-body textarea, .typecho-modal-body select { width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; transition: border-color 0.3s; box-sizing: border-box; } .typecho-modal-body input:focus, .typecho-modal-body textarea:focus, .typecho-modal-body select:focus { border-color: #4CAF50; outline: none; box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.2); } .typecho-modal-body .description { display: block; margin-top: 5px; color: #666; font-size: 12px; } .typecho-modal-body pre { background: #f5f5f5; padding: 10px; border-radius: 4px; overflow-x: auto; font-size: 12px; color: #333; } /* 加载提示 */ .loading { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.8); display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 2000; } .spinner { border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; margin-bottom: 10px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* 消息提示 */ .message { position: fixed; top: 20px; right: 20px; padding: 15px 20px; border-radius: 4px; color: white; z-index: 3000; max-width: 300px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); animation: slideIn 0.3s ease-out; } @keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } .message.success { background-color: #4CAF50; } .message.error { background-color: #f44336; } .message.warning { background-color: #ff9800; } .message.info { background-color: #2196F3; } /* 表格样式 */ .mytrack-table { width: 100%; border-collapse: collapse; margin-bottom: 20px; } /* 描述文本截断样式 */ .description-truncate { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; max-height: 3em; /* 约等于2行文本的高度 */ line-height: 1.5em; word-wrap: break-word; } .mytrack-table th, .mytrack-table td { padding: 12px 15px; text-align: left; border-bottom: 1px solid #eee; } .mytrack-table th { background-color: #f9f9f9; font-weight: bold; color: #333; position: sticky; top: 0; } .mytrack-table tr:hover { background-color: #f5f5f5; } .mytrack-table tr:last-child td { border-bottom: none; } /* 分页样式 */ .mytrack-pager { display: flex; justify-content: center; list-style: none; padding: 0; margin: 20px 0 0; } .mytrack-pager li { margin: 0 5px; } .mytrack-pager a { display: block; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; text-decoration: none; color: #333; transition: all 0.3s; } .mytrack-pager a:hover { background-color: #f5f5f5; border-color: #4CAF50; } .mytrack-pager .current a { background-color: #4CAF50; color: white; border-color: #4CAF50; } /* 图片预览 */ .mytrack-image-preview { max-width: 50px; max-height: 50px; border-radius: 4px; cursor: pointer; transition: transform 0.3s; } .mytrack-image-preview:hover { transform: scale(1.1); } /* 地图容器 */ .mytrack-map-container { width: 100%; height: 400px; border-radius: 4px; overflow: hidden; margin-bottom: 20px; } /* 操作按钮组 */ .mytrack-actions { display: flex; gap: 5px; flex-wrap: wrap; } /* 导入导出区域 */ .mytrack-import-export { background: #f9f9f9; padding: 15px; border-radius: 4px; margin-bottom: 20px; } .mytrack-import-export h4 { margin-top: 0; margin-bottom: 10px; color: #333; } .mytrack-import-export pre { background: #f5f5f5; padding: 10px; border-radius: 4px; overflow-x: auto; font-size: 12px; color: #333; margin-bottom: 0; } /* 响应式设计 */ @media (max-width: 768px) { .typecho-modal-content { width: 95%; max-height: 95vh; } .typecho-modal-body { max-height: calc(95vh - 120px); } .typecho-table th, .typecho-table td { padding: 8px 10px; font-size: 12px; } } /* 表单验证提示 */ .typecho-modal-body li.has-error input, .typecho-modal-body li.has-error textarea, .typecho-modal-body li.has-error select { border-color: #f44336; } .typecho-modal-body li .error-message { color: #f44336; font-size: 12px; margin-top: 5px; } /* 统计信息 */ .mytrack-stats { display: flex; gap: 20px; margin-bottom: 20px; flex-wrap: wrap; } .mytrack-stat-item { background: #f9f9f9; padding: 15px; border-radius: 4px; flex: 1; min-width: 150px; text-align: center; } .mytrack-stat-value { font-size: 24px; font-weight: bold; color: #4CAF50; margin-bottom: 5px; } .mytrack-stat-label { font-size: 14px; color: #666; } /* 搜索过滤区域 */ .mytrack-filter { background: #f9f9f9; padding: 15px; border-radius: 4px; margin-bottom: 20px; display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; } .mytrack-filter .mytrack-form-group { margin-bottom: 0; flex: 1; min-width: 200px; } .mytrack-filter .mytrack-btn { margin-bottom: 0; white-space: nowrap; } /* 批量操作区域 */ .mytrack-batch-actions { background: #f9f9f9; padding: 10px 15px; border-radius: 4px; margin-bottom: 20px; display: none; align-items: center; justify-content: space-between; } .mytrack-batch-actions.show { display: flex; } .mytrack-batch-info { color: #666; font-size: 14px; } .mytrack-batch-buttons { display: flex; gap: 5px; }