/** * Control System CSS for Markitect * Styles for positioning, interactions, and responsive behavior */ /* Base control panel styles */ .control-panel { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-size: 14px; z-index: 1000; user-select: none; } .control-header { transition: all 0.2s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.1); } .control-header:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.15); transform: translateY(-1px); } .control-content { box-shadow: 0 4px 12px rgba(0,0,0,0.15); transition: all 0.3s ease; } .control-content::-webkit-scrollbar { width: 6px; } .control-content::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; } .control-content::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 3px; } .control-content::-webkit-scrollbar-thumb:hover { background: #a8a8a8; } /* Control-specific styles */ .status-control .control-header { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border: 1px solid #dee2e6; } .debug-control .control-header { background: linear-gradient(135deg, #f8f9fa 0%, #fff3cd 100%); border: 1px solid #ffeaa7; } .contents-control .control-header { background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%); border: 1px solid #2196f3; } .edit-control .control-header { background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%); border: 1px solid #4caf50; } /* Resize handle */ .resize-handle { transition: opacity 0.2s ease; } .resize-handle:hover { background: #495057 !important; transform: scale(1.2); } /* Button styles */ .control-content button { transition: all 0.2s ease; font-weight: 500; border: none; cursor: pointer; } .control-content button:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .control-content button:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(0,0,0,0.2); } /* Footer styles */ .control-footer { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } /* Responsive behavior */ @media (max-width: 768px) { .control-panel { font-size: 12px; } .control-content { max-width: calc(100vw - 40px) !important; max-height: calc(100vh - 120px) !important; } /* Adjust positioning for mobile */ .control-panel[style*="right: 20px"] { right: 10px !important; } .control-panel[style*="left: 20px"] { left: 10px !important; } .control-panel[style*="top: 20px"] { top: 10px !important; } .control-panel[style*="bottom: 20px"] { bottom: 10px !important; } } @media (max-width: 480px) { .control-content { font-size: 0.7rem !important; } .control-header { padding: 0.4rem !important; font-size: 0.8rem !important; } } /* Dark mode support */ @media (prefers-color-scheme: dark) { .control-panel { color: #e9ecef; } .control-header { background: linear-gradient(135deg, #343a40 0%, #495057 100%) !important; border-color: #6c757d !important; } .control-content { background: #2d3436 !important; border-color: #6c757d !important; color: #e9ecef; } .control-footer { background: #343a40 !important; border-color: #6c757d !important; } .control-content button { border-color: #6c757d !important; } } /* Animation classes */ .control-fade-in { animation: controlFadeIn 0.3s ease-out; } @keyframes controlFadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .control-slide-out { animation: controlSlideOut 0.2s ease-in; } @keyframes controlSlideOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.95); } }