.expertContainer { display: flex; flex-direction: column; gap: 1.5rem; } .exportBar { display: flex; gap: 0.75rem; justify-content: flex-end; } .twoColumnRow { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; } .threeColumnRow { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.5rem; } @media (max-width: 900px) { .twoColumnRow, .threeColumnRow { grid-template-columns: 1fr; } } .loading { text-align: center; color: var(--color-text-muted); padding: 3rem 0; font-size: 0.9375rem; } .errorBox { background: #fef2f2; color: var(--color-error); padding: 1rem; border-radius: var(--radius-md); border: 1px solid #fecaca; font-size: 0.875rem; } /* === Section Card === */ .section { background: var(--color-bg-card); border-radius: var(--radius-md); padding: 1rem 1.125rem; box-shadow: var(--shadow-sm); border: 1px solid var(--color-border); } .sectionHeader { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 0.875rem; padding-bottom: 0.625rem; border-bottom: 1px solid var(--color-border); } .sectionTitle { font-size: 0.9375rem; font-weight: 600; margin: 0; } /* === Header Form (unterhalb des Titels) === */ .headerForm { display: flex; gap: 0.375rem; align-items: center; flex-wrap: wrap; } .headerForm input, .headerForm select { height: 32px; padding: 0 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: 0.8125rem; min-width: 0; flex: 1; box-sizing: border-box; } .headerForm input:focus, .headerForm select:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-light); } /* === Chips/Tags === */ .chipContainer { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; } .chip { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.375rem 0.75rem; background: var(--color-primary-light, #eff6ff); color: var(--color-primary); border-radius: 9999px; font-size: 0.8125rem; font-weight: 500; } .chipRemove { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; font-size: 1rem; line-height: 1; color: var(--color-primary); background: none; border: none; border-radius: 50%; cursor: pointer; opacity: 0.6; transition: opacity 0.15s; } .chipRemove:hover { opacity: 1; background: rgba(0, 0, 0, 0.1); } .chipInput { display: flex; gap: 0.375rem; align-items: center; } .chipInput input { height: 32px; padding: 0 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: 0.8125rem; flex: 1; min-width: 0; box-sizing: border-box; } .chipInput input:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-light); } /* === Entry List === */ .entryList { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1rem; } .entryItem { display: flex; align-items: center; justify-content: space-between; padding: 0.625rem 0.75rem; background: var(--color-bg, #f9fafb); border-radius: var(--radius-sm); border: 1px solid var(--color-border); font-size: 0.875rem; } .entryInfo { display: flex; align-items: center; gap: 0.75rem; flex: 1; min-width: 0; } .entryPrimary { font-weight: 500; } .entrySecondary { color: var(--color-text-muted); font-size: 0.8125rem; } .entryBadge { display: inline-block; padding: 0.125rem 0.5rem; background: var(--color-primary-light, #eff6ff); color: var(--color-primary); border-radius: 9999px; font-size: 0.75rem; font-weight: 500; } .entryActions { display: flex; gap: 0.375rem; flex-shrink: 0; margin-left: 0.75rem; } /* === Action Buttons (small) === */ .btnIcon { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; background: none; border: 1px solid var(--color-border); border-radius: var(--radius-sm); cursor: pointer; font-size: 0.875rem; color: var(--color-text-secondary); transition: all 0.15s; } .btnIcon:hover { background: var(--color-bg); color: var(--color-text); } .btnIconDanger:hover { background: #fef2f2; color: var(--color-error); border-color: #fecaca; } /* === Add Form (inline) === */ .addForm { display: flex; gap: 0.5rem; align-items: flex-end; flex-wrap: wrap; } .addForm .fieldInline { display: flex; flex-direction: column; gap: 0.25rem; } .addForm .fieldInline label { font-size: 0.75rem; color: var(--color-text-muted); font-weight: 500; } .addForm input, .addForm select { padding: 0.5rem 0.75rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: 0.875rem; } .addForm input:focus, .addForm select:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-light); } /* === Buttons === */ .btnPrimary { height: 32px; min-width: 130px; padding: 0 1rem; background: var(--color-primary); color: white; border: none; border-radius: var(--radius-sm); font-size: 0.8125rem; font-weight: 600; cursor: pointer; transition: background 0.15s; white-space: nowrap; box-sizing: border-box; align-self: flex-start; } .btnPrimary:hover:not(:disabled) { background: var(--color-primary-hover); } .btnPrimary:disabled { opacity: 0.7; cursor: not-allowed; } .btnSecondary { height: 32px; min-width: 130px; padding: 0 1rem; background: transparent; color: var(--color-text-secondary); border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: 0.8125rem; font-weight: 500; cursor: pointer; transition: all 0.15s; white-space: nowrap; box-sizing: border-box; align-self: flex-start; } .btnSecondary:hover { background: var(--color-bg); } .btnDanger { height: 32px; padding: 0 1rem; background: var(--color-error); color: white; border: none; border-radius: var(--radius-sm); font-size: 0.8125rem; font-weight: 600; cursor: pointer; transition: background 0.15s; white-space: nowrap; box-sizing: border-box; } .btnDanger:hover:not(:disabled) { background: #b91c1c; } .btnRow { display: flex; gap: 0.75rem; align-items: center; margin-top: 0.5rem; } /* === Modal Form === */ .modalForm { display: flex; flex-direction: column; gap: 1rem; } .modalField { display: flex; flex-direction: column; gap: 0.375rem; } .modalField label { font-size: 0.875rem; font-weight: 500; color: var(--color-text); } .modalField input, .modalField select, .modalField textarea { padding: 0.625rem 0.75rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); font-size: 0.9375rem; transition: border-color 0.15s; font-family: inherit; } .modalField input:focus, .modalField select:focus, .modalField textarea:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-light); } .modalField input:disabled, .modalField select:disabled { background: var(--color-bg); color: var(--color-text-muted); } .modalField small { color: var(--color-text-muted); font-size: 0.75rem; } .modalFieldRow { display: flex; gap: 1rem; } .modalFieldRow .modalField { flex: 1; } .charCount { text-align: right; font-size: 0.75rem; color: var(--color-text-muted); } .charCountWarn { color: var(--color-error); } /* === Bullet Editor === */ .bulletEditor { border: 1px solid var(--color-border); border-radius: var(--radius-sm); overflow: hidden; transition: border-color 0.15s, box-shadow 0.15s; } .bulletEditor:focus-within { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-light); } .bulletToolbar { display: flex; gap: 0.25rem; padding: 0.375rem 0.5rem; background: var(--color-bg); border-bottom: 1px solid var(--color-border); } .bulletBtn { padding: 0.25rem 0.625rem; font-size: 0.8125rem; font-weight: 500; background: transparent; border: 1px solid transparent; border-radius: var(--radius-sm); cursor: pointer; color: var(--color-text-muted); transition: background 0.1s, border-color 0.1s, color 0.1s; line-height: 1.4; font-family: inherit; } .bulletBtn:hover { background: var(--color-primary-light); border-color: var(--color-primary); color: var(--color-primary); } .bulletEditor .bulletEditorTextarea { display: block; width: 100%; border: none; border-radius: 0; box-shadow: none; padding: 0.625rem 0.75rem; font-size: 0.9375rem; font-family: inherit; resize: vertical; background: transparent; box-sizing: border-box; } .bulletEditor .bulletEditorTextarea:focus { outline: none; border: none; box-shadow: none; } .bulletToolbarSep { display: inline-block; width: 1px; height: 1.125rem; background: var(--color-border); align-self: center; flex-shrink: 0; margin: 0 0.125rem; } .bulletToolbarHint { font-size: 0.75rem; color: var(--color-text-muted); align-self: center; user-select: none; white-space: nowrap; } /* B / I / U formatting buttons */ .bulletBtnBold { font-weight: 700; font-size: 0.875rem; min-width: 1.75rem; text-align: center; } .bulletBtnItalic { font-style: italic; font-size: 0.875rem; min-width: 1.75rem; text-align: center; } .bulletBtnUnderline { text-decoration: underline; font-size: 0.875rem; min-width: 1.75rem; text-align: center; } /* === Project list item with expanded tasks === */ .entryItemExpanded { flex-direction: column !important; align-items: stretch !important; gap: 0.5rem; } .entryItemRow { display: flex; align-items: center; justify-content: space-between; } .entryTasks { padding-top: 0.5rem; border-top: 1px solid var(--color-border); font-size: 0.875rem; color: var(--color-text); line-height: 1.6; } /* === RichText renderer === */ .richText { display: flex; flex-direction: column; gap: 0.125rem; } .richTextLine { display: flex; gap: 0.375rem; } .richTextBullet { flex-shrink: 0; color: var(--color-text-muted); } .richTextNum { flex-shrink: 0; min-width: 1.375rem; text-align: right; color: var(--color-text-muted); } .richTextBlank { height: 0.375rem; } .checkboxRow { display: flex; align-items: center; gap: 0.5rem; } .checkboxRow input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--color-primary); } .checkboxRow label { font-size: 0.875rem; color: var(--color-text); cursor: pointer; } /* === Messages === */ .success { background: #f0fdf4; color: var(--color-success); padding: 0.625rem 0.75rem; border-radius: var(--radius-sm); font-size: 0.8125rem; border: 1px solid #bbf7d0; margin-bottom: 0.75rem; } .error { background: #fef2f2; color: var(--color-error); padding: 0.625rem 0.75rem; border-radius: var(--radius-sm); font-size: 0.8125rem; border: 1px solid #fecaca; margin-bottom: 0.75rem; } /* === Empty State === */ .emptyState { text-align: center; color: var(--color-text-muted); padding: 1.5rem 0; font-size: 0.875rem; } /* === Attachment List === */ .attachmentItem { display: flex; align-items: center; justify-content: space-between; padding: 0.625rem 0.75rem; background: var(--color-bg, #f9fafb); border-radius: var(--radius-sm); border: 1px solid var(--color-border); font-size: 0.875rem; } .attachmentInfo { display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; flex: 1; } .attachmentName { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .attachmentMeta { font-size: 0.75rem; color: var(--color-text-muted); } .hiddenInput { display: none; } /* === Responsive === */ @media (max-width: 640px) { .addForm { flex-direction: column; align-items: stretch; } .chipInput { flex-direction: column; align-items: stretch; } .chipInput input { max-width: 100%; } .entryItem { flex-direction: column; align-items: flex-start; gap: 0.5rem; } .entryActions { margin-left: 0; } .modalFieldRow { flex-direction: column; } }