/* Zentrale Aktionsbuttons aller Anwendungsseiten. Navigation, Tabs, Ordner,
   Platzhalter und die Dokumentformatierung behalten ihre eigene Funktion. */
:root {
    --ef-button-height: 36px;
    --ef-button-height-small: 30px;
    --ef-button-icon-size: 34px;
    --ef-button-radius: 7px;
    --ef-button-padding-x: 10px;
    --ef-button-gap: 7px;
    --ef-button-background: #fff;
    --ef-button-color: #697087;
    --ef-button-border: var(--ef-border, #e0e2ec);
    --ef-button-primary: var(--ef-accent, #6c5ce7);
    --ef-button-primary-hover: var(--ef-accent-hover, #5d4ed4);
    --ef-button-hover: var(--ef-accent-soft, #efedfe);
    --ef-button-danger: #c93649;
    --ef-button-danger-hover: #ae293b;
    --ef-button-danger-soft: #fff0f2;
    --ef-button-focus: #b9adf1;
    --ef-button-disabled-opacity: .45;
}

/* Die zusätzliche Spezifität ersetzt auch ältere seitenbezogene Abstände. */
:root :is(.ef-app .btn, .modal-panel .modal-button, .modal-button, .dashboard-primary, .dashboard-refresh, .e-filter-popup .e-btn) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--ef-button-gap);
    min-height: var(--ef-button-height);
    min-width: 0;
    padding: 7px var(--ef-button-padding-x);
    border: 1px solid var(--ef-button-border);
    border-radius: var(--ef-button-radius);
    background: var(--ef-button-background);
    color: var(--ef-button-color);
    font-family: var(--ef-font-family);
    font-size: var(--ef-font-compact);
    font-weight: var(--ef-font-weight-semibold);
    line-height: var(--ef-line-compact);
    text-decoration: none;
    vertical-align: middle;
    box-shadow: none;
    transform: none;
    cursor: pointer;
    transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}

:root :is(.ef-app .btn-sm, .modal-button.btn-sm) {
    min-height: var(--ef-button-height-small);
    padding: 5px 10px;
    font-size: var(--ef-font-compact);
}

/* Links ausgerichtete Listenbuttons behalten ihre Textausrichtung auch als Flex-Element. */
:root .ef-app .btn.text-start { justify-content:flex-start; }

/* Textvorlagen in der Projektierung sind linksbündige Listenaktionen. */
:root .ef-app .btn.project-text-template {
    justify-content: flex-start;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
}

:root :is(.ef-app .btn, .modal-panel .modal-button, .modal-button, .dashboard-primary, .dashboard-refresh, .e-filter-popup .e-btn):hover:not(:disabled):not(.disabled):not(.e-disabled) {
    background: var(--ef-button-hover);
    border-color: var(--ef-button-primary);
    color: var(--ef-button-primary);
    box-shadow: none;
    transform: none;
}

/* Speichern, Anlegen und Bestätigen verwenden denselben Akzent. */
:root :is(.ef-app .btn-primary, .ef-app .btn-success, .modal-button-primary, .dashboard-primary, .e-filter-popup .e-btn.e-primary) {
    background: var(--ef-button-primary);
    border-color: var(--ef-button-primary);
    color: #fff;
}
:root :is(.ef-app .btn-primary, .ef-app .btn-success, .modal-button-primary, .dashboard-primary, .e-filter-popup .e-btn.e-primary):hover:not(:disabled):not(.disabled):not(.e-disabled) {
    background: var(--ef-button-primary-hover);
    border-color: var(--ef-button-primary-hover);
    color: #fff;
}
:root :is(.ef-app .btn-outline-primary, .ef-app .btn-outline-success) {
    color: var(--ef-button-primary);
}

:root .ef-app :is(.btn-danger, .btn-outline-danger) {
    border-color: var(--ef-button-danger);
    color: var(--ef-button-danger);
    background: var(--ef-button-background);
}
:root .ef-app .btn-danger {
    background: var(--ef-button-danger);
    color: #fff;
}
:root .ef-app .btn-outline-danger:hover:not(:disabled):not(.disabled):not(.e-disabled) {
    background: var(--ef-button-danger-soft);
    border-color: var(--ef-button-danger-hover);
    color: var(--ef-button-danger-hover);
}
:root .ef-app .btn-danger:hover:not(:disabled):not(.disabled):not(.e-disabled) {
    background: var(--ef-button-danger-hover);
    border-color: var(--ef-button-danger-hover);
    color: #fff;
}

/* Gemeinsame Symbolbuttons im Mainlayout und zum Schließen der Seitenpanels. */
.modal-panel-shell { position:relative; }
:root .modal-panel-header { position:relative; padding-right:70px; min-height:66px; }
:root .modal-panel-header .modal-close-button,
:root .modal-panel-shell > .modal-close-button { position:absolute; top:14px; right:14px; }
:root .modal-close-button { position:relative; font-size:0!important; line-height:0; padding:0; }
:root .modal-panel-close > .modal-close-button { position:relative; top:auto; right:auto; }
:root .modal-close-button > * { display:none; }
:root .modal-close-button::before {
    content:"";
    position:absolute;
    inset:0;
    margin:auto;
    width:12px;
    height:12px;
    background:linear-gradient(45deg,transparent 43%,currentColor 43%,currentColor 57%,transparent 57%),linear-gradient(-45deg,transparent 43%,currentColor 43%,currentColor 57%,transparent 57%);
    pointer-events:none;
}
.toolbar .document-command-group[data-group-label] {
    position:relative;
    align-self:stretch;
    align-items:center;
    justify-content:center;
    min-width:80px;
    padding-bottom:18px;
}
.toolbar .document-command-group[data-group-label]::after {
    content:attr(data-group-label);
    position:absolute;
    bottom:0;
    left:0;
    right:7px;
    color:var(--ef-muted,#858ba0);
    font-family:var(--ef-font-family);
    font-size:var(--ef-font-small);
    font-weight:var(--ef-font-weight-normal);
    line-height:16px;
    text-align:center;
    white-space:nowrap;
    pointer-events:none;
}
.toolbar .document-command-group[data-group-label]:last-child::after { right:0; }

/* Projektaktionen erscheinen im Mainlayout passend zum geöffneten Bereich. */
.toolbar .document-command-group.project-context-document,
.toolbar .document-command-group.project-context-positions { display:none; }
.ef-app:has(#collapseProjects.show) .toolbar .project-context-document,
.ef-app:has(#collapsePositions.show) .toolbar .project-context-positions { display:flex; }
.toolbar .project-context-actions { display:none; align-items:stretch; gap:6px; flex-shrink:0; }
.ef-app:has(#collapseProjects.show) .toolbar .project-context-actions:has(.project-context-document),
.ef-app:has(#collapsePositions.show) .toolbar .project-context-actions { display:flex; }
.toolbar .project-toolbar-search { width:150px; min-width:100px; height:34px; font-size:var(--ef-font-compact); }
:root .toolbar .template-main-actions { display:grid; grid-template-columns:var(--template-toolbar-offset,0px) var(--template-toolbar-width,200px) auto; gap:0; margin-left:0; flex:1; min-width:0; }
.toolbar .template-main-actions .document-command-group { justify-self:start; }
@media(max-width:760px) { :root .toolbar .template-main-actions { display:flex; gap:6px; } }
.toolbar .document-command-group[data-group-label]:has(:nth-child(3)) { min-width:110px; }
:root :is(.document-icon-button, .modal-close-button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--ef-button-icon-size);
    height: var(--ef-button-icon-size);
    min-width: var(--ef-button-icon-size);
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--ef-button-radius);
    background: transparent;
    color: var(--ef-button-color);
    text-decoration: none;
    cursor: pointer;
}
:root :is(.document-icon-button, .modal-close-button):hover:not(:disabled) {
    background: var(--ef-button-hover);
    border-color: var(--ef-button-border);
    color: var(--ef-button-primary);
}

:root :is(.ef-app .btn, .modal-button, .document-icon-button, .modal-close-button, .dashboard-primary, .dashboard-refresh, .e-filter-popup .e-btn):focus-visible {
    outline: 3px solid var(--ef-button-focus);
    outline-offset: 2px;
    box-shadow: none;
}
:root :is(.ef-app .btn, .modal-button, .document-icon-button, .modal-close-button, .dashboard-primary, .dashboard-refresh, .e-filter-popup .e-btn):is(:disabled, .disabled, .e-disabled, [aria-disabled="true"]) {
    opacity: var(--ef-button-disabled-opacity);
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    :root :is(.ef-app .btn, .modal-button, .e-filter-popup .e-btn) { transition: none; }
}
