/* Korea Tourism Agency Admin Panel Custom Styles */ /* Brand Customization */ .brand-link { background-color: #1f2937 !important; } .brand-text { color: #f8f9fa !important; font-weight: 600 !important; } /* Sidebar Customization */ .main-sidebar { background: linear-gradient(180deg, #1f2937 0%, #111827 100%) !important; } /* Navigation Group Styling */ /* Parent groups (main categories) */ nav[data-testid="sidebar"] > ul > li > a[href*="parent"] { font-weight: 600 !important; color: #ffffff !important; background-color: rgba(255,255,255,0.1) !important; margin-bottom: 0.25rem !important; border-radius: 0.375rem !important; } /* Child resources (nested items) */ nav[data-testid="sidebar"] > ul > li > ul > li > a { padding-left: 3rem !important; color: #d1d5db !important; border-left: 2px solid rgba(255,255,255,0.1) !important; margin-left: 1rem !important; position: relative !important; } /* Icons for nested resources */ nav[data-testid="sidebar"] > ul > li > ul > li > a:before { content: "📄" !important; margin-right: 0.5rem !important; opacity: 0.7 !important; } /* Specific icons for different resource types */ nav[data-testid="sidebar"] a[href*="routes"]:before { content: "🗺️" !important; } nav[data-testid="sidebar"] a[href*="articles"]:before { content: "📝" !important; } nav[data-testid="sidebar"] a[href*="bookings"]:before { content: "📋" !important; } nav[data-testid="sidebar"] a[href*="reviews"]:before { content: "⭐" !important; } nav[data-testid="sidebar"] a[href*="ratings"]:before { content: "📈" !important; } nav[data-testid="sidebar"] a[href*="guides"]:before { content: "👥" !important; } nav[data-testid="sidebar"] a[href*="guide_schedules"]:before { content: "📅" !important; } nav[data-testid="sidebar"] a[href*="holidays"]:before { content: "🏛️" !important; } nav[data-testid="sidebar"] a[href*="guide_working_days"]:before { content: "📅" !important; } nav[data-testid="sidebar"] a[href*="contact_messages"]:before { content: "📧" !important; } nav[data-testid="sidebar"] a[href*="admins"]:before { content: "👤" !important; } nav[data-testid="sidebar"] a[href*="site_settings"]:before { content: "⚙️" !important; } .nav-sidebar .nav-item > .nav-link { color: #d1d5db !important; transition: all 0.3s ease; } .nav-sidebar .nav-item > .nav-link:hover { background-color: rgba(255, 255, 255, 0.1) !important; color: #ffffff !important; } .nav-sidebar .nav-item > .nav-link.active { background-color: #3b82f6 !important; color: #ffffff !important; border-radius: 0.375rem; margin: 0.125rem; } /* Image Editor Button Styles */ .image-editor-btn { background: #007bff !important; color: white !important; border: none !important; border-radius: 4px !important; padding: 6px 12px !important; font-size: 13px !important; cursor: pointer !important; white-space: nowrap !important; transition: background 0.2s ease !important; } .image-editor-btn:hover { background: #0056b3 !important; color: white !important; } /* Image Preview Styles */ .image-preview { max-width: 180px !important; max-height: 120px !important; object-fit: cover !important; border: 1px solid #ddd !important; border-radius: 4px !important; margin-top: 8px !important; margin-bottom: 8px !important; } /* Cards Enhancement */ .card { box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); border: none; border-radius: 0.5rem; } .card-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-radius: 0.5rem 0.5rem 0 0 !important; } .card-header .card-title { color: white !important; font-weight: 600; } /* Small Boxes Enhancement */ .small-box { border-radius: 0.75rem; overflow: hidden; box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); transition: transform 0.2s ease; } .small-box:hover { transform: translateY(-2px); } .small-box .icon { top: 10px; right: 10px; } /* Buttons Enhancement */ .btn { border-radius: 0.375rem; font-weight: 500; transition: all 0.2s ease; } .btn:hover { transform: translateY(-1px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); } /* Table Enhancement */ .table { border-radius: 0.5rem; overflow: hidden; } .table thead th { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border: none; font-weight: 600; color: #495057; } .table tbody tr:hover { background-color: #f8f9fa; } /* Form Enhancement */ .form-control { border-radius: 0.375rem; border: 1px solid #d1d5db; transition: all 0.2s ease; } .form-control:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } /* Custom File Input */ .custom-file-label { border-radius: 0.375rem; } .custom-file-input:focus ~ .custom-file-label { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } /* Alert Enhancement */ .alert { border-radius: 0.5rem; border: none; } .alert-success { background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%); color: #155724; } .alert-danger { background: linear-gradient(135deg, #f8d7da 0%, #f1b0b7 100%); color: #721c24; } .alert-warning { background: linear-gradient(135deg, #fff3cd 0%, #ffeaa7 100%); color: #856404; } /* Badge Enhancement */ .badge { font-size: 0.75rem; font-weight: 500; padding: 0.375rem 0.75rem; border-radius: 0.375rem; } /* Loading Spinner */ .loading { opacity: 0.7; pointer-events: none; } .spinner { border: 3px solid #f3f3f3; border-top: 3px solid #3b82f6; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; margin: 10px auto; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Mobile Responsiveness */ @media (max-width: 768px) { .card-header .card-title { font-size: 1rem; } .small-box .inner h3 { font-size: 1.5rem; } .btn-group .btn { padding: 0.25rem 0.5rem; } } /* Dark Mode Support */ @media (prefers-color-scheme: dark) { .card { background-color: #374151; color: #f9fafb; } .table { color: #f9fafb; } .form-control { background-color: #374151; color: #f9fafb; border-color: #4b5563; } } /* Korean Typography */ .korean-text { font-family: 'Noto Sans KR', 'Malgun Gothic', '맑은 고딕', sans-serif; } /* Success Animation */ .success-animation { animation: successPulse 0.6s ease-in-out; } @keyframes successPulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } /* Стили для редактора изображений в AdminJS */ .image-editor-btn { transition: all 0.2s ease; font-size: 13px !important; padding: 6px 12px !important; } .image-editor-btn:hover { background: #0056b3 !important; transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,0.2); } /* Стили для превью изображений */ .image-preview { border: 2px solid #e9ecef !important; transition: border-color 0.2s ease; margin-top: 8px !important; } .image-preview:hover { border-color: #007bff; } /* Улучшенные стили для полей изображений */ input[name*="image_url"]:focus, input[name*="photo"]:focus, input[name*="avatar"]:focus { border-left: 3px solid #007bff; box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); } /* Анимация для успешного выбора изображения */ @keyframes imageSelected { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } .image-selected { animation: imageSelected 0.3s ease; } /* Responsive стили для редактора */ @media (max-width: 768px) { .image-editor-btn { margin-left: 0 !important; margin-top: 10px !important; display: block !important; width: 100% !important; } .image-preview { max-width: 100% !important; } } /* ===== НОВЫЕ СТИЛИ ДЛЯ КАСТОМНЫХ СТРАНИЦ ===== */ /* Улучшение кнопок редактора изображений */ .image-editor-btn { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; border: none !important; color: white !important; padding: 8px 16px !important; border-radius: 6px !important; font-size: 12px !important; font-weight: 500 !important; cursor: pointer !important; transition: all 0.2s ease !important; margin-left: 10px !important; display: inline-flex !important; align-items: center !important; gap: 6px !important; } .image-editor-btn:hover { transform: translateY(-1px) !important; box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3) !important; } /* Улучшение модальных окон */ .image-editor-modal { backdrop-filter: blur(5px) !important; } .image-editor-modal .modal-content { border-radius: 12px !important; box-shadow: 0 20px 40px rgba(0,0,0,0.3) !important; overflow: hidden !important; } /* Превью изображений */ .image-preview { border-radius: 8px !important; box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important; border: 2px solid #e9ecef !important; transition: all 0.2s ease !important; } .image-preview:hover { transform: scale(1.05) !important; box-shadow: 0 8px 20px rgba(0,0,0,0.15) !important; } /* Стили для кастомных страниц в AdminJS */ .adminjs-page { background: #f8f9fa; } /* Улучшение интеграции iframe */ iframe[src*="style-editor-advanced.html"], iframe[src*="image-manager.html"] { border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); overflow: hidden; }