Wasserzeichen fuer den kostenlosen Tarif

Mandanten im Tarif "free" (bis 10 Teilnehmer) zeigen unten rechts eine
kleine Marke mit Logo und Adresse der Kaffeeliste; zahlende Mandanten
behalten ihre Oberflaeche ohne fremdes Logo.

Die Sichtbarkeit haengt allein an tenant_billing.plan_code und wird als
reine Leseabfrage geprueft - billing_fetch_or_init() waere ein Schreibzugriff
im Seitenaufbau. Laesst sich der Tarif nicht lesen, bleibt die Marke aus.
Das Logo ist ein Inline-SVG, das Linkziel kommt aus APP_MARKETING_URL bzw.
aus APP_HOST ohne App-Subdomain.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-21 00:14:17 +02:00
co-authored by Claude Opus 5
parent 6cd7fcc079
commit 1d53b66e3f
7 changed files with 225 additions and 1 deletions
+52
View File
@@ -163,3 +163,55 @@ tr.tarif-aktuell > td {
tr.tarif-aktuell > td:first-child {
box-shadow: inset 5px 0 0 0 #4caf50;
}
/* ---------------------------------------------------------------------------
* Wasserzeichen im kostenlosen Tarif (app/plan-watermark.php)
*
* Fest unten rechts, damit es unabhaengig von der Seitenlaenge sichtbar
* bleibt. Zurueckhaltend gehalten: die Kaffeeliste ist eine Arbeitsflaeche,
* der Hinweis soll erkennbar sein, aber nichts verdecken - deshalb halb
* transparent, erst beim Darueberfahren voll sichtbar.
* ------------------------------------------------------------------------ */
.plan-watermark {
align-items: center;
background: rgba(255, 255, 255, 0.9);
border: 1px solid rgba(0, 0, 0, 0.08);
border-radius: 999px;
bottom: 0.9rem;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
color: #4a4a4a;
display: inline-flex;
font-size: 0.7rem;
gap: 0.4em;
letter-spacing: 0.02em;
line-height: 1;
opacity: 0.65;
padding: 0.45em 0.8em;
position: fixed;
right: 0.9rem;
text-decoration: none;
transition: opacity 0.2s ease;
z-index: 900;
}
a.plan-watermark {
border-bottom: 0;
}
.plan-watermark:hover,
.plan-watermark:focus {
color: #4a4a4a;
opacity: 1;
}
.plan-watermark-logo {
flex: 0 0 auto;
}
/* Auf schmalen Bildschirmen bleibt nur das Logo - der Schriftzug wuerde dort
ueber den Inhalt laufen. */
@media screen and (max-width: 480px) {
.plan-watermark-text {
display: none;
}
}