.form { padding: var(--page-padding); display: flex; flex-direction: column; gap: var(--badge-spacing); width: 100%; } .form label { margin-top: var(--box-spacing); } .more { margin: var(--box-spacing) auto; cursor: pointer; } /* ── Avatar Preview (in Formularen) ── */ .avatar-preview { width: 8em; height: 8em; background: var(--f2-bg); border: var(--border-width) solid var(--f2-border); display: flex; align-items: center; justify-content: center; overflow: hidden; flex-shrink: 0; border-radius: var(--border-radius); cursor: pointer; transition: border-color var(--transition-duration); } .avatar-preview:hover { border-color: var(--primary); } .avatar-preview img { width: 100%; height: 100%; object-fit: cover; } /* ── Avatar Editor Modal ── */ .av-overlay { position: fixed; inset: 0; background: rgb(from var(--f1-bg) r g b / var(--semi-transparent)); display: flex; align-items: center; justify-content: center; z-index: 1000; } .av-modal { background: var(--f2-bg); border: var(--border-width) solid var(--f2-border); border-radius: var(--border-radius); width: 90vw; max-width: 420px; display: flex; flex-direction: column; overflow: hidden; } .av-header { display: flex; align-items: center; justify-content: space-between; padding: var(--box-padding); border-bottom: var(--border-width) solid var(--f1-border); background: var(--f1-bg); } .av-body { padding: var(--box-padding); display: flex; flex-direction: column; align-items: center; gap: var(--box-spacing); } .av-preview-large { width: 16em; height: 16em; background: var(--f3-bg); border: var(--border-width) solid var(--f2-border); border-radius: var(--border-radius); display: flex; align-items: center; justify-content: center; overflow: hidden; } .av-preview-large img { width: 100%; height: 100%; object-fit: cover; } .av-controls { width: 100%; display: flex; flex-direction: column; gap: var(--badge-spacing); } .av-scale-row { display: flex; align-items: center; gap: var(--badge-spacing); } .av-scale-row label { margin: 0; white-space: nowrap; } .av-scale-row input[type="range"] { flex: 1; accent-color: var(--primary); } .av-scale-row .av-scale-value { font-size: 0.85em; min-width: 2.5em; text-align: right; opacity: 0.7; } .av-actions { display: flex; gap: var(--badge-spacing); } .av-ai-section { width: 100%; } .input-with-btn { display: flex; gap: var(--badge-spacing); } .input-with-btn input { flex: 1; } .input-with-btn button { align-self: center; } #agentFilesSection { margin-top: var(--box-spacing); } .form-actions { display: flex; gap: var(--badge-spacing); margin-block: var(--box-spacing) calc(var(--page-spacing) * 2); } /* ── Custom Commands ── */ .custom-commands { display: flex; flex-direction: column; gap: var(--badge-spacing); } .custom-command-item { display: flex; } .custom-command-fields { flex: 1; display: flex; gap: var(--badge-spacing); overflow: hidden; } .custom-command-fields .cmd-type { flex: 0 0 auto; width: 10em; } .custom-command-fields .cmd-name { flex: 2; } .custom-command-fields .cmd-command { flex: 5; } .custom-command-item .remove-cmd-btn { margin-left: var(--badge-spacing); color: var(--dangerous); align-self: center; } .custom-command-item .remove-cmd-btn:hover { background: var(--dangerous); color: var(--f1-bg); } .add-cmd-btn { align-self: flex-start; } /* ── Checkbox ── */ label.checkbox-label { display: flex; align-items: center; gap: var(--badge-spacing); cursor: pointer; margin-top: var(--badge-spacing); } .checkbox-label input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; } .checkbox-hint { opacity: var(--semi-transparent); font-size: var(--font-size); } /* ── Skills ── */ .skill-list { display: flex; flex-direction: column; gap: var(--badge-spacing); } label.skill-item { display: flex; align-items: center; gap: var(--badge-spacing); cursor: pointer; padding: var(--badge-spacing) var(--box-spacing); background: var(--f2-bg); border: var(--border-width) solid var(--f2-border); border-radius: var(--border-radius); margin-top: 0; } .skill-item:hover { border-color: var(--accent); } .skill-item input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; } .skill-version { opacity: var(--semi-transparent); } .skill-desc { opacity: var(--semi-transparent); font-size: var(--font-size); margin-left: auto; } .skill-empty { opacity: var(--semi-transparent); padding: var(--box-spacing); } .skill-empty code { background: var(--f2-bg); padding: 2px 6px; border-radius: var(--border-radius); } .skill-unavailable { opacity: var(--semi-transparent); cursor: not-allowed; } .skill-unavailable:hover { border-color: var(--f2-border); } .skill-warning { color: var(--dangerous); margin-left: auto; } /* ── Select Cards (Agent / Session in Formularen) ── */ .agent-select-card, .session-select-card { display: flex; align-items: center; gap: var(--box-spacing); padding: var(--box-padding); background: var(--f3-bg); border: var(--border-width) solid var(--f3-border); border-radius: var(--border-radius); cursor: pointer; transition: border-color var(--transition-duration); } .agent-select-card:hover, .session-select-card:hover { border-color: var(--primary); } .agent-select-card .card-image, .session-select-card .card-image { flex: 0 0 4em; height: 4em; } .agent-select-empty, .session-select-empty { opacity: var(--semi-transparent); display: flex; align-items: center; gap: var(--badge-spacing); } .agent-select-change, .session-select-change { margin-left: auto; opacity: var(--semi-transparent); flex-shrink: 0; transition: opacity var(--transition-duration); } .agent-select-card:hover .agent-select-change, .session-select-card:hover .session-select-change { opacity: 1; color: var(--primary); } /* ── Agent Picker Modal ── */ .agent-picker-overlay { position: fixed; inset: 0; background: rgb(from var(--f1-bg) r g b / var(--semi-transparent)); display: flex; align-items: center; justify-content: center; z-index: 1000; } .agent-picker-modal { background: var(--f2-bg); border: var(--border-width) solid var(--f2-border); border-radius: var(--border-radius); width: 90vw; max-width: var(--modal-width); max-height: 80vh; display: flex; flex-direction: column; overflow: hidden; } .agent-picker-header { display: flex; align-items: center; justify-content: space-between; padding: var(--box-padding); border-bottom: var(--border-width) solid var(--f1-border); background: var(--f1-bg); font-weight: bold; } .agent-picker-body { padding: var(--badge-spacing); overflow-y: auto; display: flex; flex-direction: column; gap: var(--badge-spacing); } .agent-picker-item { cursor: pointer; transition: border-color var(--transition-duration), filter var(--transition-duration); } .agent-picker-item:hover { border-color: var(--primary); filter: var(--hover-filter); } .agent-picker-item.selected { border-color: var(--primary); } /* ── Profile ── */ .profile-message { padding: var(--badge-spacing) var(--box-spacing); border-radius: var(--border-radius); margin-top: var(--badge-spacing); } .profile-message-success { background: rgba(0, 180, 0, 0.15); color: #0a0; } .profile-message-error { background: rgba(220, 0, 0, 0.15); color: var(--dangerous); } .danger-btn { color: var(--dangerous); border-color: currentcolor; } .danger-btn:hover { color: var(--f1-bg); background: var(--dangerous); } .positive-btn { color: var(--secondary); border-color: currentcolor; } .positive-btn:hover { color: var(--f1-bg); background: var(--secondary); } /* Toggle Switch */ .toggle-switch { position: relative; display: inline-block; width: 2.4em; height: 1.4em; cursor: pointer; } .toggle-switch input { opacity: 0; width: 0; height: 0; } .toggle-slider { position: absolute; inset: 0; background: var(--f2-border); border-radius: 1em; transition: background var(--transition-duration); } .toggle-slider::before { content: ''; position: absolute; width: 1em; height: 1em; left: .2em; top: .2em; background: var(--f1-bg); border-radius: 50%; transition: transform var(--transition-duration); } .toggle-switch input:checked + .toggle-slider { background: var(--secondary); } .toggle-switch input:checked + .toggle-slider::before { transform: translateX(1em); } /* ── Telegram Section ── */ .telegram-status-box { padding: var(--box-padding); background: var(--f3-bg); border: var(--border-width) solid var(--f2-border); border-radius: var(--border-radius); display: flex; flex-direction: column; gap: var(--badge-spacing); } .telegram-status-box .tg-error { color: var(--dangerous); } .telegram-actions { margin-top: var(--badge-spacing); } /* ── Cronjob Status ── */ .form-status-box { padding: var(--box-padding); background: var(--f3-bg); border: var(--border-width) solid var(--f2-border); border-radius: var(--border-radius); display: flex; flex-direction: column; gap: var(--badge-spacing); } .form-group:has(.form-status-box:empty) { display: none; } .form-status-box .status-active { color: var(--secondary); } .form-status-box .status-inactive { opacity: var(--semi-transparent); } .form-status-box .status-error { color: var(--dangerous); } .form-group { display: flex; flex-direction: column; gap: var(--badge-spacing); padding: var(--box-padding); padding-inline: 0; } .form-check-group { display: flex; gap: var(--badge-spacing); } .form-check-group label { display: flex; align-items: center; gap: var(--badge-spacing); cursor: pointer; margin-top: 0; } .form-check-group input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; } .form-hint { display: block; margin-top: 4px; font-size: var(--font-size); opacity: var(--semi-transparent); } /* ── Admin User List ── */ .admin-user-list { display: flex; flex-direction: column; } .admin-user-row { display: flex; align-items: center; justify-content: space-between; padding: var(--box-padding); } .admin-user-info { display: flex; flex-direction: column; } .admin-user-name { font-weight: bold; } .admin-user-meta { opacity: var(--semi-transparent); } .admin-user-actions { display: flex; gap: var(--badge-spacing); flex-shrink: 0; } .admin-checkbox-row { margin: var(--badge-spacing) 0; } .admin-checkbox-row .toggle-label { display: flex; align-items: center; gap: var(--badge-spacing); cursor: pointer; } /* ── EasyMDE in Formularen ── */ /* Nutzt fe-mde-wrap Styles aus file-explorer.css für Dark-Theme, überschreibt aber die Fullscreen-Layout-Regeln für den Formular-Kontext. */ .form .fe-mde-wrap { display: block; flex: none; height: auto; overflow: visible; } .form .fe-mde-wrap .CodeMirror { height: auto !important; border: var(--border-width) solid var(--f2-border) !important; border-top: none !important; border-radius: 0 0 var(--border-radius) var(--border-radius) !important; padding: var(--box-padding) !important; } .form .fe-mde-wrap .editor-toolbar { border-radius: var(--border-radius) var(--border-radius) 0 0 !important; }