/* Shared application surfaces. Document content and print layouts keep their own styling. */
:root { --ef-accent:#6c5ce7; --ef-accent-hover:#5d4ed4; --ef-accent-soft:#f0edfe; --ef-canvas:#f5f6fb; --ef-surface:#fff; --ef-border:#e6e8f1; --ef-ink:#29304a; --ef-muted:#858ba0; --ef-shadow:0 3px 12px #22264a05; --bs-primary:#6c5ce7; --bs-primary-rgb:108,92,231; --bs-link-color:#6c5ce7; --bs-link-hover-color:#5d4ed4; }
body { font-family: var(--ef-font-family); color:var(--ef-ink); background:var(--ef-canvas); }
.ef-app .sidebar { width:212px; flex-shrink:0; background:var(--ef-accent); padding:12px 10px; }
.ef-app .sidebar.collapsed { width:66px; padding:12px 7px; }
.ef-app .sidebar-logo { min-height:104px; padding:14px 14px 20px; align-items:center; margin-bottom:10px; }
.ef-app .logo-full { width:100%; max-width:200px; height:auto; }
.ef-app .sidebar:not(.collapsed) .sidebar-logo { justify-content:center; padding:6px 4px 18px; min-height:175px; }
.ef-app .nav-list { overflow-y:auto; }
.ef-app .nav-list li { margin:3px 0; }
.ef-app .nav-item { border-radius:7px; padding:11px 13px; font-size: var(--ef-font-body); color:#eeebff; min-height:42px; transition:none; }
.ef-app .nav-item i { font-size:15px; width:20px; height:20px; }
.ef-app .link-text { margin-left:12px; }
.ef-app .nav-item:hover { background:#ffffff16; box-shadow:none; }
.ef-app .nav-item.active { background:white; color:var(--ef-accent); box-shadow:0 3px 10px #36258512; font-weight: var(--ef-font-weight-semibold); }
.ef-app .sidebar.collapsed .nav-item { padding:11px 12px; justify-content:center; }
.ef-app .main-panel { min-width:0; background:var(--ef-canvas); }
.ef-app .toolbar { background:white; color:var(--ef-ink); border-bottom:1px solid var(--ef-border); min-height:58px; gap:8px; padding:8px 20px 8px 8px; }
.ef-app .toggle-btn,.ef-app .user-btn { color:#89839e; border-radius:7px; font-size:15px; padding:8px 11px; }
.ef-app .toggle-btn:hover,.ef-app .user-btn:hover { background:var(--ef-accent-soft); color:var(--ef-accent); }
.ef-app #app-language { color:#73798e; background:#fafafe; border:1px solid var(--ef-border); border-radius:6px; font-size: var(--ef-font-compact); padding:6px 24px 6px 9px; }
.ef-app .content { background:var(--ef-canvas); min-height:0; }
.ef-app .app-page-body { flex:1; min-height:0; overflow:auto; }
.ef-app .btn,.modal-button { border-radius:7px; font-size: var(--ef-font-compact); font-weight: var(--ef-font-weight-semibold); padding:9px 14px; box-shadow:none; }
.ef-app .btn-sm { padding:6px 11px; font-size: var(--ef-font-small); }
.ef-app .btn-primary,.modal-button-primary { --bs-btn-bg:var(--ef-accent); --bs-btn-border-color:var(--ef-accent); --bs-btn-hover-bg:var(--ef-accent-hover); --bs-btn-hover-border-color:var(--ef-accent-hover); --bs-btn-active-bg:var(--ef-accent-hover); background:var(--ef-accent); border-color:var(--ef-accent); color:white; }
.ef-app .btn-primary:hover,.modal-button-primary:hover { background:var(--ef-accent-hover); border-color:var(--ef-accent-hover); color:white; }
.ef-app .btn-outline-primary { --bs-btn-color:var(--ef-accent); --bs-btn-border-color:#d7d0f7; --bs-btn-hover-bg:var(--ef-accent); --bs-btn-hover-border-color:var(--ef-accent); }
.ef-app .btn-outline-secondary,.modal-button:not(.modal-button-primary) { background:white; border-color:var(--ef-border); color:#697087; }
.ef-app .btn-outline-secondary:hover,.modal-button:not(.modal-button-primary):hover { background:var(--ef-accent-soft); border-color:#ccc4f5; color:var(--ef-accent); }
.ef-app .form-control,.ef-app .form-select,.modal-panel-body .form-control,.modal-panel-body .form-select { border-color:#e0e2ec; border-radius:7px; font-size: var(--ef-font-body); color:#424b65; min-height:35px; }
.ef-app .form-control:focus,.ef-app .form-select:focus,.editor-side-settings input:focus,.editor-side-settings select:focus { border-color:#b4a8ed; box-shadow:0 0 0 3px #6c5ce710; outline:none; }
.ef-app .form-label,.modal-panel-body .form-label { color:#72798f; font-size: var(--ef-font-compact); font-weight: var(--ef-font-weight-medium); margin-bottom:7px; }
.ef-app .form-check-input:checked { background-color:var(--ef-accent); border-color:var(--ef-accent); }
.ef-app .accordion { --bs-accordion-border-color:var(--ef-border); --bs-accordion-active-bg:var(--ef-accent-soft); --bs-accordion-active-color:var(--ef-accent); --bs-accordion-btn-focus-box-shadow:0 0 0 3px #6c5ce710; }
.ef-app .accordion-item { border-radius:9px; overflow:hidden; margin-bottom:12px; border:1px solid var(--ef-border); box-shadow:var(--ef-shadow); }
.ef-app .accordion-button { padding:14px 17px; font-size: var(--ef-font-body); font-weight: var(--ef-font-weight-semibold); box-shadow:none; }
.ef-app .accordion-body { background:white; }
.ef-app .e-grid,.ef-app .e-treegrid { border:1px solid var(--ef-border); border-radius:8px; overflow:hidden; color:var(--ef-ink); font-family:inherit; }
.ef-app .e-grid .e-gridheader,.ef-app .e-grid .e-headercell,.ef-app .e-grid .e-detailheadercell { background:#fafafe; color:#7d8399; border-color:var(--ef-border); }
.ef-app .e-grid .e-headercelldiv { font-size: var(--ef-font-small); font-weight: var(--ef-font-weight-semibold); }
.ef-app .e-grid .e-rowcell { border-color:#f0f1f7; color:#4b536b; font-size: var(--ef-font-compact); }
.ef-app .e-grid .e-row:hover .e-rowcell { background:#faf9ff; }
.ef-app .e-grid .e-rowcell.e-selectionbackground { background:var(--ef-accent-soft); color:var(--ef-accent); }
.ef-app .e-grid .e-toolbar,.ef-app .e-toolbar .e-toolbar-items { background:white; border-color:var(--ef-border); }
.ef-app .e-toolbar .e-tbar-btn { background:transparent; border-radius:5px; }
.ef-app .e-toolbar .e-tbar-btn:hover { background:var(--ef-accent-soft); }
/* Listenaktionen der Projektverwaltung reichen ohne vertikale Lücken bis an die Leistenränder. */
.ef-app .project-editor-layout .e-toolbar { padding-top:0; padding-bottom:0; }
.ef-app .project-editor-layout .e-toolbar .e-toolbar-items { height:100%; }
.ef-app .project-editor-layout .e-toolbar .e-toolbar-item:not(.e-separator):not(.e-spacer) { height:100%; padding-top:0; padding-bottom:0; }
.ef-app .project-editor-layout .e-toolbar .e-toolbar-item .e-tbar-btn {
    height:100%;
    min-height:100%;
    margin-top:0;
    margin-bottom:0;
    border-radius:0;
    border-top:0;
    border-bottom:0;
    box-shadow:none;
}
.ef-app .project-editor-layout .e-toolbar .e-toolbar-item:not(.e-overlay) .e-tbar-btn:hover:not(:disabled) { background:var(--ef-accent-soft); color:var(--ef-accent); }
.ef-app .e-btn.e-primary { background:var(--ef-accent); border-color:var(--ef-accent); }
.ef-app .e-treeview .e-list-item.e-active > .e-fullrow { background:var(--ef-accent-soft); border-color:#ddd6fa; }
.ef-app .e-treeview .e-list-item.e-active > .e-text-content .e-list-text { color:var(--ef-accent); }
.ef-app .catalog-page,.ef-app .texts-page { background:var(--ef-canvas); }
.ef-app .catalog-page-heading h1 { font-size: var(--ef-font-page-title); letter-spacing:-.5px; font-weight: var(--ef-font-weight-bold); color:var(--ef-ink); }
.ef-app .catalog-page-heading p { font-size: var(--ef-font-compact); color:var(--ef-muted); }
.ef-app .catalog-table-container,.ef-app .texts-library,.ef-app .texts-fields { border-color:var(--ef-border); border-radius:10px; box-shadow:var(--ef-shadow); }
.ef-app .catalog-table th { background:#fafafe; color:#858ba0; font-size: var(--ef-font-small); padding:13px 15px; }
.ef-app .catalog-table td { font-size: var(--ef-font-compact); padding:13px 15px; border-color:#f0f1f7; color:#4b536b; }
.ef-app .catalog-row-selected,.ef-app .text-library-item.selected { background:var(--ef-accent-soft); color:var(--ef-accent); }
.ef-app .text-library-item,.ef-app .text-field-item { font-size: var(--ef-font-compact); }
.ef-app .texts-heading h2,.ef-app .texts-fields h3 { font-size: var(--ef-font-panel-title); font-weight: var(--ef-font-weight-semibold); }
.ef-app .mail-workspace { background:var(--ef-canvas); }
.ef-app .mail-toolbar { border-color:var(--ef-border); padding:16px 20px; }
.ef-app .mail-toolbar h2 { color:var(--ef-ink); font-size: var(--ef-font-page-title); font-weight: var(--ef-font-weight-bold); letter-spacing:-.4px; }
.ef-app .toolbar .mail-main-actions .form-select { width:230px; max-width:35vw; min-height:34px; font-size: var(--ef-font-body); margin-right:8px; padding-right:32px; }
.mail-preview-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mail-preview-actions .btn { display:inline-flex; align-items:center; gap:7px; }
.mail-image-status { color:var(--ef-muted,#64748b); font-size: var(--ef-font-compact); }
.mail-message-selection { display:flex; align-items:center; gap:6px; padding-left:8px; }
.mail-message-selection > .mail-message { flex:1; min-width:0; }
.mail-selection-tools { display:flex; justify-content:space-between; align-items:center; padding:8px; gap:8px; font-size: var(--ef-font-compact); border-bottom:1px solid var(--ef-border,#ddd); }
.mail-selection-tools label { display:flex; align-items:center; gap:6px; }
.mail-composer { display:flex; flex-direction:column; min-height:0; height:100%; background:white; }
.mail-composer-header { flex:none; padding:12px 16px; border-bottom:1px solid var(--ef-border,#ddd); }
.mail-composer-header h3 { font-size: var(--ef-font-section-title); margin-bottom:10px; }
.mail-compose-fields { flex:none; display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; padding:12px 16px; font-size: var(--ef-font-compact); }
.mail-compose-fields label { display:grid; grid-template-columns:55px minmax(0,1fr); align-items:center; gap:6px; }
.mail-compose-subject { grid-column:1 / -1; }
.mail-compose-fields .form-control,.mail-compose-fields .form-select { font-size: var(--ef-font-body); }
.mail-compose-attachments { flex:none; display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:0 16px 12px; font-size: var(--ef-font-compact); }
.mail-attach-label { position:relative; overflow:hidden; display:inline-flex; align-items:center; gap:6px; font-size: var(--ef-font-compact); }
.mail-attach-label input { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; }
.mail-attach-label:has(input:focus-visible) { outline:3px solid var(--ef-button-focus); outline-offset:2px; }
.mail-attach-label:has(input:disabled) input { cursor:not-allowed; }
.mail-attachment-chip { display:inline-flex; align-items:center; gap:6px; background:#f0ecfc; border:1px solid #ded5f2; border-radius:6px; padding:5px 8px; }
.mail-attachment-chip button { border:0; background:transparent; font-size:16px; }
.mail-compose-editor { flex:1; min-height:300px; overflow:hidden; }
.mail-composer .document-editor { height:100%; }
.mail-composer .tiptap-wrapper { width:100% !important; min-width:0 !important; max-width:100% !important; }
.mail-composer .document-page { width:100% !important; min-width:0 !important; }
.mail-composer .tiptap-ruler-strip { display:none; }
.ef-app .mail-preview:has(.mail-composer) { padding:0; overflow:hidden; }
.mail-composer-header .btn { font-size: var(--ef-font-compact); padding:6px 10px; }
.mail-compose-command-group { margin-left:0; padding-left:0; border-left:0; }
.mail-main-actions > .document-command-group { border-right:0; padding-right:0; }
.mail-main-actions > .mail-settings-command-group { border-left:1px solid var(--ef-border); margin-left:6px; padding-left:8px; }
.mail-main-actions .mail-send-action { color:var(--ef-accent); }
.mail-recipient-field { display:grid; grid-template-columns:55px minmax(0,1fr); align-items:center; gap:6px; min-width:0; }
.mail-compose-fields .mail-recipient-field > label { display:block; }
.mail-recipient-input { position:relative; min-width:0; }
.mail-recipient-results { position:absolute; z-index:110; top:100%; left:0; right:0; max-height:240px; overflow-y:auto; margin:3px 0 0; padding:4px; list-style:none; border:1px solid var(--ef-border); border-radius:7px; background:white; box-shadow:0 8px 24px #29304a20; }
.mail-recipient-results button { display:flex; flex-direction:column; align-items:flex-start; gap:2px; width:100%; padding:7px 9px; border:0; border-radius:4px; background:white; text-align:left; overflow-wrap:anywhere; font-size:var(--ef-font-compact); }
.mail-recipient-results button.selected,.mail-recipient-results button:hover { background:var(--ef-accent-soft); color:var(--ef-accent); }
.mail-recipient-results small { color:var(--ef-muted); }
.mail-recipient-results button:disabled { background:#f0f1f4; color:#969ba8; cursor:not-allowed; }
.mail-compose-attachments { column-gap:8px; row-gap:5px; padding-bottom:8px; }
.mail-attachment-list { display:flex; align-items:center; flex-wrap:wrap; gap:4px; flex:1 1 100%; max-height:74px; overflow:auto; }
.mail-attachment-list:empty { display:none; }
.mail-attachment-list .mail-attachment-chip { max-width:220px; min-height:25px; gap:4px; padding:2px 5px 2px 7px; font-size:var(--ef-font-small); }
.mail-attachment-name { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.mail-attachment-list .mail-attachment-chip button { display:inline-flex; align-items:center; justify-content:center; flex:none; width:20px; height:20px; padding:0; line-height:1; border-radius:4px; }
.mail-attachment-list .mail-attachment-chip button:hover { background:#ded5f2; }
.mail-attachment-list label { font-size:var(--ef-font-small); }
@media (max-width:800px) { .mail-compose-fields { grid-template-columns:1fr; } .mail-composer { min-height:700px; } }
.ef-app .mail-folders { background:#fafafe; border-color:var(--ef-border); }
.ef-app .mail-list-tools { background:#fafafe; border-color:var(--ef-border); }
.ef-app .mail-message-list { background:var(--ef-canvas); }
.ef-app .mail-message { border-color:var(--ef-border); border-radius:6px; }
.ef-app .mail-message.selected { border-color:#cbc3f3; background:var(--ef-accent-soft); box-shadow:inset 3px 0 var(--ef-accent); }
.ef-app .mail-folder-row.selected { background:var(--ef-accent-soft); border-color:#ddd6fa; }
.ef-app .mail-folder-row.selected .mail-folder,.ef-app .mail-message-subject { color:var(--ef-accent); }
.ef-app .mail-preview { background:white; margin:14px; border:1px solid var(--ef-border); border-radius:10px; box-shadow:var(--ef-shadow); }
.ef-app .right-pane,.ef-app .treeview-container { border-color:var(--ef-border); background:white; }
.ef-app .project-template-summary { background:#fafafe; border-color:var(--ef-border); }
.ef-app .tiptap-editor .editor-ribbon { background:#fafafe; border-color:var(--ef-border); }
.ef-app .tiptap-editor .editor-ribbon-navigation { background:white; border-color:var(--ef-border); }
.ef-app .tiptap-editor .tiptap-outer-container { background:#eef0f6; }
.modal-panel-header { background:#fafafe; border-bottom-color:var(--ef-border); padding:25px 28px; }
.modal-panel-header h3 { color:var(--ef-ink); font-size: var(--ef-font-section-title); letter-spacing:-.3px; }
.modal-panel-header p { color:var(--ef-muted); font-size: var(--ef-font-compact); }
.modal-panel-actions { background:#fafafe; border-color:var(--ef-border); }
.modal-close-button:hover { background:var(--ef-accent-soft); color:var(--ef-accent); }
.catalog-modal,.e-sidebar { border-color:var(--ef-border); box-shadow:-8px 0 30px #29234b12; }
.catalog-modal-overlay { background:#29234b40; }
.editor-side-settings .placeholder-source { background:var(--ef-accent-soft); color:var(--ef-accent); }
.ef-app .settings-page { padding:24px; background:var(--ef-canvas); min-height:100%; }
.ef-app .settings-page > h3 { font-size: var(--ef-font-page-title); font-weight: var(--ef-font-weight-bold); letter-spacing:-.5px; margin-bottom:22px; }
.ef-app .settings-page > .col-md-6 { width:min(760px,100%); padding:0!important; }
.ef-app .addresses-page { padding:18px; gap:14px; background:var(--ef-canvas); }
.ef-app .addresses-page > .border-bottom { background:white; border:1px solid var(--ef-border)!important; border-radius:8px; padding:12px 15px!important; }
.ef-app .addresses-page > .flex-fill { background:white; border:1px solid var(--ef-border); border-radius:9px; overflow:hidden; }
.ef-app :is(.btn,.nav-item,.modal-button,.toggle-btn,.user-btn):focus-visible { outline:3px solid #b9adf1; outline-offset:2px; }
@media(max-width:900px) { .ef-app .sidebar { width:180px; } .ef-app .toolbar { padding-right:12px; } .ef-app .mail-preview { margin:8px; } }
@media(max-width:600px) { .ef-app .sidebar:not(.collapsed) { width:155px; } .ef-app .logo-full { max-width:120px; } .ef-app .nav-item { padding:10px 8px; font-size: var(--ef-font-compact); } .ef-app .settings-page,.ef-app .addresses-page { padding:12px; } }
@media print { body,.ef-app .content { background:white; } .ef-app .sidebar,.ef-app .toolbar { display:none!important; } .ef-app .main-panel { overflow:visible; } }
.ef-app .editor-ribbon-tab[aria-selected="true"] { color:var(--ef-accent); border-bottom-color:var(--ef-accent); }
.ef-app .editor-ribbon-tab:hover { color:var(--ef-accent); background:var(--ef-accent-soft); }
.ef-app .editor-ribbon-group { border-color:var(--ef-border); }
.ef-app .editor-ribbon-group-caption { color:var(--ef-muted); }
.ef-app .editor-ribbon .tiptap-btn:hover,.ef-app .editor-ribbon .tiptap-btn.is-active { background:var(--ef-accent-soft); border-color:#d7d0f7; color:var(--ef-accent); }
.ef-app .treeview-container { border-radius:8px; }
:root .modal-panel-header { background:#fafafe; border-bottom-color:var(--ef-border); }
:root .modal-panel-header h3 { color:var(--ef-ink); }
:root .modal-panel-header p { color:var(--ef-muted); }
:root .modal-panel-actions { background:#fafafe; border-color:var(--ef-border); }
:root .modal-button-primary { background:var(--ef-accent); border-color:var(--ef-accent); }
:root .modal-button-primary:hover { background:var(--ef-accent-hover); border-color:var(--ef-accent-hover); }
.ef-app .catalog-table .catalog-row-selected > td { --bs-table-bg:var(--ef-accent-soft); background:var(--ef-accent-soft); color:var(--ef-accent); }
