/**
 * Backend-Oberfläche im Auftritt der Agentur.
 *
 * Die Gestaltung folgt dem QR-Tool-Backend: Creme als Grundfläche, Petrol für
 * Aktionen, Koralle sparsam für Kleinlabels, Karten mit weichem Schatten,
 * versale Überschriften. Damit sehen die eigenen Werkzeuge gleich aus, egal
 * ob sie in WordPress oder eigenständig laufen.
 *
 * Alles ist unter `.comon-ui` bzw. `.comon-ui-support`
 * eingehängt: Die Regeln dürfen auf keinen Fall in das übrige Backend
 * ausstrahlen, sonst gestalten wir ungefragt fremde Plugin-Seiten mit.
 */

.comon-ui,
.comon-ui-support {
    /* ---------- Gestaltungswerte ---------- */
    --comon-surface: #ffffff;
    --comon-surface-2: #faf9f5;
    --comon-border: #e2e0d8;
    --comon-text: #0f1110;
    --comon-text-muted: #6b6f6c;
    --comon-primary: #0f5f61;
    --comon-primary-hover: #0b4b4d;
    --comon-on-primary: #ffffff;
    --comon-brand: #177577;
    --comon-brand-dark: #0f1110;
    --comon-signal: #f8704a;
    --comon-grey-bg: #e9e7e0;
    --comon-radius: 10px;
    --comon-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 8px 24px rgba(16, 24, 40, .04);
}

/* ---------- Seitenkopf ---------- */

.comon-ui {
    max-width: 1180px;
    color: var(--comon-text);
}

.comon-ui .comon-ui__head {
    /* Verlauf wie die Navigationsspalte im QR-Tool */
    background: linear-gradient(140deg, #005d5f 0%, #0b4547 55%, var(--comon-brand-dark) 100%);
    border-radius: var(--comon-radius);
    padding: 26px 28px;
    margin: 16px 0 24px;
    color: #e6efef;
}

.comon-ui .comon-ui__head h1 {
    margin: 0 0 6px;
    padding: 0;
    font-size: 30px;
    line-height: 1.1;
    font-weight: 800;
    letter-spacing: -.02em;
    text-transform: uppercase;
    color: #fff;
}

.comon-ui .comon-ui__head p {
    margin: 0;
    font-size: 14px;
    color: rgba(255, 255, 255, .72);
    max-width: 70ch;
}

.comon-ui .comon-ui__version {
    display: block;
    margin-bottom: 10px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--comon-signal);
}

.comon-ui .comon-ui__update {
    margin-top: 10px;
    font-size: 13px;
    color: rgba(255, 255, 255, .6);
}

/* ---------- Tabs ---------- */

.comon-ui .comon-ui__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: -8px 0 20px;
    padding-bottom: 2px;
    border-bottom: 1px solid var(--comon-border);
}

.comon-ui .comon-ui__tab {
    padding: 9px 14px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
    color: var(--comon-text-muted);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: none;
}

.comon-ui .comon-ui__tab:hover,
.comon-ui .comon-ui__tab:focus {
    color: var(--comon-text);
    box-shadow: none;
    outline: 0;
}

.comon-ui .comon-ui__tab:focus-visible {
    outline: 2px solid var(--comon-brand);
    outline-offset: -2px;
}

.comon-ui .comon-ui__tab.is-aktiv {
    color: var(--comon-primary);
    border-bottom-color: var(--comon-signal);
}

/* ---------- Karten ---------- */

.comon-ui .comon-ui__grid {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    align-items: start;
}

.comon-ui .comon-ui__card {
    background: var(--comon-surface);
    border: 1px solid var(--comon-border);
    border-radius: var(--comon-radius);
    box-shadow: var(--comon-shadow);
    padding: 22px;
}

.comon-ui .comon-ui__card--breit {
    grid-column: 1 / -1;
}

.comon-ui .comon-ui__card h2 {
    margin: 0 0 16px;
    padding: 0 0 14px;
    border-bottom: 1px solid var(--comon-border);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--comon-text);
}

.comon-ui .comon-ui__intro {
    margin: -6px 0 18px;
    font-size: 13px;
    color: var(--comon-text-muted);
}

/* ---------- Felder ---------- */

.comon-ui .comon-ui__field {
    margin-bottom: 18px;
}

.comon-ui .comon-ui__field:last-child {
    margin-bottom: 0;
}

.comon-ui .comon-ui__field > label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
}

.comon-ui .comon-ui__hint {
    margin: 5px 0 0;
    font-size: 13px;
    color: var(--comon-text-muted);
}

.comon-ui input[type="text"],
.comon-ui input[type="email"],
.comon-ui input[type="url"],
.comon-ui select,
.comon-ui textarea {
    width: 100%;
    max-width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--comon-border);
    border-radius: 8px;
    background: var(--comon-surface);
    color: var(--comon-text);
    font: inherit;
    font-size: 14px;
    box-shadow: none;
}

.comon-ui select {
    /* Pfeil selbst zeichnen, sonst bleibt die Systemdarstellung sichtbar */
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236b6f6c' stroke-width='1.6' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 11px;
    padding-right: 34px;
    height: auto;
}

.comon-ui textarea {
    min-height: 80px;
    resize: vertical;
}

.comon-ui input:focus,
.comon-ui select:focus,
.comon-ui textarea:focus {
    outline: 2px solid var(--comon-brand);
    outline-offset: -1px;
    border-color: var(--comon-brand);
    box-shadow: none;
}

/* Kästchen: Beschriftung neben dem Feld, nicht darüber */
.comon-ui .comon-ui__check {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.comon-ui .comon-ui__check input {
    margin: 3px 0 0;
    flex: 0 0 auto;
}

.comon-ui .comon-ui__check + .comon-ui__hint {
    margin-left: 26px;
}

/* ---------- Sperrliste ---------- */

/* Kein eigener Scrollbereich: Die Liste wächst mit der Zahl der Plugins, und
   ein Kasten mit eigener Bildlaufleiste versteckt genau das, was man hier
   sucht. Stattdessen mehrspaltig — die Spaltenzahl richtet sich nach der
   verfügbaren Breite, zwei bis drei auf üblichen Bildschirmen. */
.comon-ui .comon-ui__sperrliste {
    padding: 16px 18px;
    border: 1px solid var(--comon-border);
    border-radius: 8px;
    background: var(--comon-surface-2);
    columns: 3 260px;
    column-gap: 32px;
}

.comon-ui .comon-ui__gruppe {
    margin: 0 0 18px;
    padding: 0;
    border: 0;
    /* Ein Menüpunkt und seine Unterpunkte bleiben zusammen in einer Spalte. */
    break-inside: avoid;
    page-break-inside: avoid;
}

.comon-ui .comon-ui__gruppe:last-child {
    margin-bottom: 0;
}

.comon-ui .comon-ui__gruppe-titel {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--comon-signal);
}

.comon-ui .comon-ui__zeile {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 2px 0;
    font-size: 13.5px;
    line-height: 1.6;
}

.comon-ui .comon-ui__zeile--unter {
    margin-left: 14px;
    color: var(--comon-text-muted);
}

.comon-ui .comon-ui__zeile input {
    margin: 0;
}

.comon-ui .comon-ui__fix {
    margin: 0;
    padding: 2px 0;
    font-size: 13px;
    color: var(--comon-text-muted);
}

.comon-ui .comon-ui__badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 99px;
    background: var(--comon-grey-bg);
    font-size: 11px;
    font-weight: 600;
    color: var(--comon-text-muted);
    white-space: nowrap;
}

/* ---------- Bildauswahl ---------- */

.comon-ui .comon-ui__bild-vorschau:not(:empty) {
    display: inline-block;
    margin-bottom: 10px;
    padding: 14px 16px;
    border: 1px solid var(--comon-border);
    border-radius: 8px;
    /* Dunkler Grund wie die Anmeldeseite: ein weißes Logo auf weißem Feld
       sieht hier gut aus und dort nach nichts. */
    background: var(--comon-brand-dark);
}

.comon-ui .comon-ui__bild-vorschau img {
    display: block;
    max-width: 260px;
    max-height: 90px;
    height: auto;
}

.comon-ui .comon-ui__btn--leise {
    background: var(--comon-surface);
    border-color: var(--comon-border);
    color: var(--comon-text);
    padding: 8px 14px;
}

.comon-ui .comon-ui__btn--leise:hover,
.comon-ui .comon-ui__btn--leise:focus {
    background: var(--comon-surface-2);
    border-color: var(--comon-primary);
    color: var(--comon-text);
}

/* ---------- Protokolltabellen ---------- */

.comon-ui .comon-ui__tabelle {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
}

.comon-ui .comon-ui__tabelle th {
    text-align: left;
    padding: 0 10px 10px 0;
    border-bottom: 1px solid var(--comon-border);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--comon-text-muted);
}

.comon-ui .comon-ui__tabelle td {
    padding: 10px 10px 10px 0;
    border-bottom: 1px solid var(--comon-border);
    vertical-align: top;
}

.comon-ui .comon-ui__tabelle tr:last-child td {
    border-bottom: 0;
}

.comon-ui .comon-ui__badge--fehler {
    background: var(--comon-signal);
    color: #fff;
}

.comon-ui .comon-ui__inline-form {
    display: inline;
}

.comon-ui .comon-ui__link {
    padding: 0 0 0 8px;
    border: 0;
    background: none;
    color: var(--comon-primary);
    font: inherit;
    font-size: 13px;
    text-decoration: underline;
    cursor: pointer;
}

.comon-ui .comon-ui__blaettern {
    margin: 14px 0 0;
}

.comon-ui .comon-ui__btn--leise {
    background: var(--comon-surface);
    border-color: var(--comon-border);
    color: var(--comon-text);
    padding: 8px 14px;
}

/* ---------- Abschluss ---------- */

.comon-ui .comon-ui__actions {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 20px;
    padding: 18px 22px;
    background: var(--comon-surface);
    border: 1px solid var(--comon-border);
    border-radius: var(--comon-radius);
    box-shadow: var(--comon-shadow);
}

.comon-ui .comon-ui__btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 17px;
    border: 1px solid var(--comon-primary);
    border-radius: 8px;
    background: var(--comon-primary);
    color: var(--comon-on-primary);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}

.comon-ui .comon-ui__btn:hover,
.comon-ui .comon-ui__btn:focus {
    background: var(--comon-primary-hover);
    border-color: var(--comon-primary-hover);
    color: var(--comon-on-primary);
}

.comon-ui .comon-ui__actions .comon-ui__hint {
    margin: 0;
}

@media screen and (max-width: 782px) {
    .comon-ui .comon-ui__head {
        padding: 20px;
    }

    .comon-ui .comon-ui__head h1 {
        font-size: 24px;
    }

    .comon-ui .comon-ui__sperrliste {
        columns: 1;
    }
}

/* ---------- Support-Widget im Dashboard ---------- */

.comon-ui-support__name {
    margin: 0 0 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--comon-signal);
}

.comon-ui-support__text {
    margin: 0 0 12px;
    color: var(--comon-text-muted);
}

.comon-ui-support__kontakt {
    margin: 0;
}

.comon-ui-support__kontakt li {
    margin-bottom: 6px;
}

.comon-ui-support__kontakt .dashicons {
    color: var(--comon-brand);
    margin-right: 4px;
    vertical-align: text-bottom;
}

.comon-ui-support__kontakt a {
    color: var(--comon-primary);
    font-weight: 600;
}
