/* * PowerOn | Multi-Agent Service - Hauptstyles * Optimiert für Expertenansicht mit mehr Platz für den Workflow */ /* ===== GRUNDLEGENDE RESETS UND BASIS-STYLES ===== */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f0f2f5; color: #333; line-height: 1.5; font-size: 14px; } ul { list-style: none; } a { text-decoration: none; color: inherit; } button { cursor: pointer; border: none; background: none; font-family: inherit; } h2 { font-size: 1.25rem; font-weight: 600; margin-bottom: 0.75rem; } h3 { font-size: 1rem; font-weight: 600; margin-bottom: 0.75rem; color: #4b5563; } h4 { font-size: 0.875rem; font-weight: 600; margin-bottom: 0.5rem; color: #6b7280; } /* ===== LAYOUT COMPONENTS ===== */ /* Navbar */ .navbar { background-color: #2563eb; color: white; padding: 0.5rem 1rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); height: 3rem; } .navbar-container { display: flex; justify-content: space-between; align-items: center; max-width: 1800px; margin: 0 auto; height: 100%; } .navbar-logo { font-size: 1.25rem; font-weight: 600; } .navbar-user { display: flex; align-items: center; gap: 0.5rem; } /* App Container Layout */ .app-container { display: flex; max-width: 1800px; margin: 0 auto; min-height: calc(100vh - 3rem); /* Entfernung von eventuellen Abständen */ padding: 0; gap: 0; } /* Main Content */ .main-content { flex: 1; padding: 0.75rem 1rem; display: flex; flex-direction: column; /* Stellt sicher, dass der Inhalt vertikal fließt */ /* Entfernung aller Abstandswerte */ margin: 0; border-left: none; /* Falls eine Grenze existiert */ } /* ===== COMMON COMPONENTS ===== */ /* Buttons */ .btn, .add-btn { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.375rem 0.75rem; border-radius: 0.25rem; font-size: 0.875rem; font-weight: 500; transition: background-color 0.2s; } .btn-sm { padding: 0.25rem 0.5rem; font-size: 0.75rem; } .icon-button { display: flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; color: white; transition: background-color 0.2s; } .icon-button:hover { background-color: rgba(255, 255, 255, 0.2); } /* Primary Buttons */ .add-btn { background-color: #10b981; color: white; } .add-btn:hover { background-color: #059669; } /* Action Buttons Container */ .action-buttons { display: flex; justify-content: flex-end; gap: 0.5rem; margin-bottom: 0.75rem; } /* List Actions Buttons */ .edit-btn, .edit-agent-btn, .edit-workspace-btn, .edit-user-btn, .edit-mandate-btn { background-color: #3b82f6; color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; } .edit-btn:hover, .edit-agent-btn:hover, .edit-workspace-btn:hover, .edit-user-btn:hover, .edit-mandate-btn:hover { background-color: #2563eb; } .delete-btn, .delete-agent-btn, .delete-workspace-btn, .delete-user-btn, .delete-mandate-btn, .delete-file-btn, .delete-prompt-btn { background-color: #ef4444; color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; } .delete-btn:hover, .delete-agent-btn:hover, .delete-workspace-btn:hover, .delete-user-btn:hover, .delete-mandate-btn:hover, .delete-file-btn:hover, .delete-prompt-btn:hover { background-color: #dc2626; } .activate-btn, .activate-workspace-btn, .activate-user-btn, .use-prompt-btn { background-color: #10b981; color: white; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.75rem; } .activate-btn:hover, .activate-workspace-btn:hover, .activate-user-btn:hover, .use-prompt-btn:hover { background-color: #059669; } /* Cards */ .card { background-color: white; border-radius: 0.375rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); padding: 0.75rem; margin-bottom: 0.75rem; } /* Section Headers */ .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.75rem; } /* ===== SPECIFIC COMPONENTS ===== */ /* Files Module */ .files-tabs { display: flex; margin-bottom: 1rem; border-bottom: 1px solid #e5e7eb; } .tab-btn { padding: 0.5rem 1rem; border-bottom: 2px solid transparent; cursor: pointer; font-weight: 500; } .tab-btn.active { border-bottom-color: #3b82f6; color: #3b82f6; } .search-bar { display: flex; margin-bottom: 1rem; } .search-bar input { flex: 1; padding: 0.5rem; border: 1px solid #d1d5db; border-radius: 0.25rem 0 0 0.25rem; } .search-bar button { padding: 0.5rem 0.75rem; background: #3b82f6; color: white; border-radius: 0 0.25rem 0.25rem 0; } .files-list-container { margin-top: 1rem; } .files-grid-header { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr; background-color: #f3f4f6; padding: 0.5rem; font-weight: 500; border-radius: 0.25rem 0.25rem 0 0; } .files-list { border: 1px solid #e5e7eb; border-radius: 0 0 0.25rem 0.25rem; } /* File header columns */ .file-header-name, .file-header-type, .file-header-size, .file-header-date, .file-header-actions { padding: 0.5rem; } .refresh-btn { background-color: #f3f4f6; color: #4b5563; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.875rem; } .refresh-btn:hover { background-color: #e5e7eb; } .module-wrapper { padding: 0.5rem; } .module-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .module-content { margin-bottom: 1rem; } .module-actions { display: flex; gap: 0.5rem; } .upload-section { margin-bottom: 1rem; display: flex; flex-direction: column; gap: 0.5rem; } .upload-info { font-size: 0.75rem; color: #6b7280; } /* Module Container */ .module-container { height: calc(100vh - 5rem); /* Volle Höhe für Module */ overflow-y: auto; } /* ===== LIST ITEM COMPONENTS ===== */ /* Common List Items */ .list-item, .agent-list-item, .workspace-list-item, .prompt-item, .user-item, .mandate-item { background-color: white; border: 1px solid #e5e7eb; border-radius: 0.25rem; padding: 0.75rem; margin-bottom: 0.75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .list-item:hover, .agent-list-item:hover, .workspace-list-item:hover, .prompt-item:hover, .user-item:hover, .mandate-item:hover { box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .list-header, .agent-header, .workspace-header, .prompt-header, .user-header, .mandate-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; } .list-body, .agent-description, .workspace-meta, .prompt-meta, .user-meta, .mandate-meta { font-size: 0.75rem; color: #6b7280; margin-bottom: 0.5rem; } .list-actions, .agent-actions, .workspace-actions, .prompt-actions, .user-actions, .mandate-actions { display: flex; justify-content: flex-end; gap: 0.375rem; } /* Badges and Tags */ .badge, .tag, .agent-type, .workspace-type, .mandate-language, .user-badge { font-size: 0.7rem; padding: 0.125rem 0.375rem; border-radius: 9999px; display: inline-flex; align-items: center; } .badge-blue, .agent-type, .workspace-type { background-color: #e0f2fe; color: #0369a1; } .badge-gray { background-color: #f3f4f6; color: #4b5563; } .badge-green, .user-badge.active { background-color: #dcfce7; color: #16a34a; } .badge-red, .user-badge.disabled { background-color: #fee2e2; color: #dc2626; } .badge-purple, .user-badge.sysadmin { background-color: #f3e8ff; color: #7e22ce; } /* ===== FORMS AND MODALS ===== */ /* Form Groups */ .form-group { margin-bottom: 0.75rem; } .form-group label { display: block; font-weight: 500; margin-bottom: 0.375rem; font-size: 0.875rem; color: #4b5563; } .form-control { width: 100%; padding: 0.5rem; border: 1px solid #d1d5db; border-radius: 0.25rem; font-size: 0.875rem; } .form-control:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.1); } /* Checkboxes in Formularen */ .form-field.checkbox { display: flex; align-items: center; } .form-field.checkbox input[type="checkbox"] { margin-right: 0.5rem; width: auto; } .form-field.checkbox label, .checkbox-label { margin-bottom: 0; display: flex; align-items: center; cursor: pointer; } /* Feld-Beschreibungen */ .field-description { font-size: 0.75rem; color: #6b7280; margin-top: 0.25rem; } /* Modals */ .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; z-index: 1000; } .modal-container { background-color: white; border-radius: 0.375rem; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); width: 90%; max-width: 500px; max-height: 90vh; overflow-y: auto; } .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem; border-bottom: 1px solid #e0e0e0; } .modal-header h3 { margin: 0; font-size: 1rem; } .close-modal-btn { background: none; border: none; font-size: 1.25rem; cursor: pointer; } .modal-body { padding: 0.75rem; } .modal-footer { padding: 0.75rem; display: flex; justify-content: flex-end; gap: 0.5rem; border-top: 1px solid #e0e0e0; } /* ===== LOGIN & REGISTRATION ===== */ .login-container { max-width: 400px; margin: 80px auto; padding: 1.5rem; background-color: white; border-radius: 0.375rem; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .login-container h1 { text-align: center; margin-bottom: 1.5rem; color: #2563eb; font-size: 1.5rem; } .login-form-group { margin-bottom: 1rem; } .login-form-group label { display: block; margin-bottom: 0.375rem; font-weight: 500; font-size: 0.875rem; color: #4b5563; } .login-form-group input { width: 100%; padding: 0.625rem; border: 1px solid #d1d5db; border-radius: 0.25rem; font-size: 0.875rem; } .login-form-group input:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.1); } .login-btn { width: 100%; padding: 0.625rem; background-color: #2563eb; color: white; border: none; border-radius: 0.25rem; font-weight: 500; cursor: pointer; transition: background-color 0.2s; margin-top: 0.5rem; } .login-btn:hover { background-color: #1d4ed8; } .register-link { margin-top: 1rem; text-align: center; font-size: 0.875rem; color: #6b7280; } .register-link a { color: #2563eb; font-weight: 500; } .register-link a:hover { text-decoration: underline; } .login-error-message { padding: 0.625rem; margin-bottom: 1rem; border-radius: 0.25rem; font-size: 0.875rem; background-color: #fef2f2; color: #ef4444; border: 1px solid #fecaca; } .auth-page { min-height: 100vh; display: flex; justify-content: center; align-items: center; background-color: #f3f4f6; } /* Animation für Formularwechsel */ #login-container, #register-container { transition: all 0.3s ease; } /* Responsive Anpassungen */ @media (max-width: 480px) { .login-container { max-width: 100%; margin: 40px 20px; padding: 1.25rem; } .login-container h1 { font-size: 1.25rem; } }