/* partner-links.css - Organisations-Links (Mitmachen-Seite + Beleg-Zeilen an Scores) */

.partner-intro {
    max-width: 70ch;
    margin: 0 auto 32px;
    color: var(--text-muted);
    line-height: 1.6;
}

.partner-intro h1 {
    color: var(--text);
    margin-bottom: 12px;
}

/* Hinweis, der Messung von Aufruf trennt - bewusst sichtbar, nicht versteckt */
.partner-disclaimer {
    border-left: 3px solid var(--accent);
    background: var(--accent-soft);
    padding: 12px 16px;
    border-radius: 0 8px 8px 0;
    margin-top: 16px;
    font-size: 0.875rem;
}

.partner-category {
    margin-bottom: 40px;
}

.partner-category-title {
    font-size: 1.25rem;
    color: var(--text);
    margin-bottom: 6px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
}

.partner-category-desc {
    color: var(--text-muted);
    font-size: 0.875rem;
    margin-bottom: 16px;
    max-width: 70ch;
    line-height: 1.5;
}

.partner-link-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}

.partner-link-item {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
}

.partner-link-item:focus-within {
    border-color: var(--accent);
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.partner-link-name {
    font-weight: 600;
    margin-bottom: 6px;
}

.partner-link-desc {
    color: var(--text-muted);
    font-size: 0.875rem;
    line-height: 1.5;
    margin: 0;
}

.partner-link-license {
    color: var(--muted);
    font-size: 0.75rem;
    margin: 8px 0 0;
}

.partner-empty,
.partner-error {
    color: var(--text-muted);
    padding: 16px;
    text-align: center;
}

.partner-error {
    color: var(--danger);
}

/* Kompakte Beleg-Zeile unter einer Score-Zahl */
.evidence-strip {
    margin-top: 10px;
    font-size: 0.8125rem;
    color: var(--text-muted);
    line-height: 1.6;
}

.evidence-strip-label {
    color: var(--muted);
}

@media (max-width: 480px) {
    .partner-link-list {
        grid-template-columns: 1fr;
    }
}

/* --- Website vorschlagen --- */

.suggest-heading {
    font-size: 1.25rem;
    margin-bottom: 12px;
}

.suggest-form {
    display: grid;
    gap: 14px;
    max-width: 42rem;
}

.suggest-field {
    display: grid;
    gap: 6px;
}

.suggest-field label {
    font-size: 0.875rem;
    color: var(--text-muted);
}

.suggest-field input,
.suggest-field textarea {
    width: 100%;
    background: var(--input-bg);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px;
    font: inherit;
}

.suggest-field input:focus-visible,
.suggest-field textarea:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 1px;
}

/*
 * Beanstandete Felder nach einer Server-Antwort. Die Rahmenfarbe ist bewusst
 * nur die Verstaerkung - die eigentliche Information steht als Text in
 * .suggest-feedback, damit sie nicht allein ueber Farbe transportiert wird.
 */
.suggest-field input[aria-invalid="true"],
.suggest-field textarea[aria-invalid="true"] {
    border-color: var(--danger);
}

.suggest-hint {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--text-muted);
}

/*
 * Honeypot: aus dem sichtbaren Fluss genommen, ohne display:none - manche Bots
 * ueberspringen display:none-Felder gezielt. Das Feld traegt zusaetzlich
 * aria-hidden und tabindex=-1, ist fuer Screenreader und Tastatur also
 * ebenfalls unerreichbar.
 */
.suggest-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.suggest-submit {
    justify-self: start;
    background: var(--accent);
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 10px 18px;
    font: inherit;
    cursor: pointer;
}

.suggest-submit:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.suggest-submit:disabled {
    opacity: 0.6;
    cursor: progress;
}

.suggest-feedback {
    font-size: 0.875rem;
    color: var(--text-muted);
    margin: 0;
    min-height: 1.25rem;
}

.suggest-feedback-error {
    color: var(--danger);
}

.suggest-login-hint {
    border-left: 3px solid var(--accent);
    background: var(--accent-soft);
    padding: 12px 16px;
    border-radius: 0 8px 8px 0;
    max-width: 42rem;
}

.suggest-login-link {
    display: inline-block;
    margin-top: 8px;
    font-weight: 600;
}

.suggest-own {
    margin-top: 28px;
}

.suggest-own-title {
    font-size: 1rem;
    margin-bottom: 10px;
}

.suggest-own-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
    max-width: 42rem;
}

.suggest-own-item {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 12px 14px;
}

.suggest-own-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.suggest-own-name {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.suggest-own-url {
    color: var(--text-muted);
    font-size: 0.8125rem;
    margin: 4px 0 0;
    overflow-wrap: anywhere;
}

.suggest-own-reply {
    margin: 10px 0 0;
    padding-left: 10px;
    border-left: 2px solid var(--success);
    font-size: 0.875rem;
    color: var(--text);
}

.suggest-status {
    font-size: 0.75rem;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1px solid var(--border);
    color: var(--text-muted);
    white-space: nowrap;
}

.suggest-status-adopted {
    border-color: var(--success);
    color: var(--success-strong);
}

.suggest-status-rejected {
    border-color: var(--danger);
    color: var(--danger);
}

.suggest-muted {
    color: var(--text-muted);
    font-size: 0.875rem;
}

/* Hover-Effekte nur für echte Zeigegeräte: auf Touch bleibt der
   Hover-Zustand nach dem Tap kleben, bis woanders hingetippt wird. */
@media (hover: hover) and (pointer: fine) {
    .suggest-submit:hover:not(:disabled) {
        background: var(--accent-dark);
    }
}
