Files
Webklar-Kundenbereich/public/login.html
T
ClaudeandClaude Opus 5.5 65429aa3ac Wartungs-Abo (50 EUR/Monat) ueber Stripe mit Stundenkonto im Portal
- Bestellung auf der Portal-Startseite: Zusammenfassung, AGB- und
  Vorab-Leistungs-Zustimmung, Button 'Zahlungspflichtig bestellen',
  danach Stripe Checkout (Abo, Kleinunternehmer-Fusszeile)
- Stripe-Webhook /api/abo/webhook spiegelt Abos nach Appwrite
  (subscriptions) und schreibt je bezahlter Rechnung 60 min gut
  (hourCredits, idempotent ueber Invoice-ID, 12 Monate gueltig)
- Stundenkonto: FIFO-Verbrauch aus Worksheets mit countsToPlan,
  15-Minuten-Takt, Mehraufwand separat ausgewiesen
- Stripe-Kundenportal fuer Zahlungsart/Rechnungen/Kuendigung
- Oeffentlicher Kuendigungsbutton (§ 312k) und Widerrufsbutton
  (§ 356a) mit Eingangsbestaetigung per Mail
- Abo-Bedingungen inkl. Leistungsbeschreibung und Widerrufsbelehrung,
  als Anhang der Vertragsbestaetigung

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 12:04:45 +00:00

72 lines
2.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Anmelden – Webklar Kundenbereich</title>
<link rel="stylesheet" href="/login.css">
</head>
<body class="portal-page login-page">
<div class="aurora-background" aria-hidden="true">
<div class="aurora-beams"></div>
</div>
<header class="portal-header login-header">
<a class="portal-logo login-logo" href="/login.html">Webklar</a>
</header>
<main class="login-main">
<div class="login-panel">
<div class="AuthForm login-content-reveal">
<div class="login-section">
<p class="auth-label">Anmelden</p>
<form id="login-form" class="login-form" novalidate>
<input
class="auth-input"
type="email"
name="email"
id="email"
placeholder="E-Mail"
required
autocomplete="username"
>
<input
class="auth-input"
type="password"
name="password"
id="password"
placeholder="Passwort"
required
autocomplete="current-password"
>
<p id="login-error" class="error hidden"></p>
<button type="submit" id="login-btn" class="auth-button login-button">
<span class="button-label">Anmelden</span>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 11 10" aria-hidden="true">
<path fill="currentColor" d="m4.56 8.352 1.824-1.84q.224-.225.144-.4-.064-.192-.384-.192H0V3.76h6.128q.32 0 .4-.176.08-.192-.144-.416l-1.84-1.84L5.84 0l4.848 4.848L5.856 9.68z"></path>
</svg>
<svg class="loading-spinner" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" aria-hidden="true">
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 1 1-6.219-8.56"></path>
</svg>
</button>
</form>
</div>
<p class="login-hint">
Zugangsdaten erhältst du von Webklar. Passwortänderungen erfolgen über das Ticketsystem.
</p>
<p class="login-hint">
<a href="/kuendigen.html" style="color:inherit">Verträge hier kündigen</a> ·
<a href="/widerrufen.html" style="color:inherit">Vertrag widerrufen</a> ·
<a href="/abo-bedingungen.html" style="color:inherit">Abo-Bedingungen</a>
</p>
</div>
</div>
</main>
<script src="/app.js"></script>
<script>
initLoginPage();
</script>
</body>
</html>