diff --git a/web-dashboard/index.html b/web-dashboard/index.html index be85af6..43a2c6d 100644 --- a/web-dashboard/index.html +++ b/web-dashboard/index.html @@ -156,36 +156,249 @@ font-size: 14px; } .error-banner code { background: rgba(0,0,0,0.06); padding: 1px 5px; border-radius: 4px; } + + /* --- Auth / Invite views --- */ + .auth-wrap { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + padding: 24px; + } + .auth-card { + background: var(--card-bg); + border-radius: 16px; + box-shadow: var(--shadow); + padding: 32px 28px; + width: 100%; + max-width: 380px; + } + .auth-card h1 { font-size: 19px; margin: 0 0 4px; } + .auth-card p.sub { color: var(--text-muted); font-size: 13.5px; margin: 0 0 22px; } + .field { margin-bottom: 14px; } + .field label { display: block; font-size: 12.5px; font-weight: 600; color: var(--text-muted); margin-bottom: 5px; } + .field input, .field select { + width: 100%; + padding: 10px 12px; + border-radius: 8px; + border: 1px solid var(--border); + font-size: 14px; + font-family: inherit; + background: #fff; + color: var(--text); + } + .field input:focus, .field select:focus { outline: 2px solid var(--green); outline-offset: -1px; } + .btn-primary { + width: 100%; + background: var(--green); + color: #fff; + border: none; + border-radius: 8px; + padding: 11px 14px; + font-size: 14px; + font-weight: 600; + cursor: pointer; + margin-top: 4px; + } + .btn-primary:hover { opacity: 0.92; } + .btn-primary:disabled { opacity: 0.6; cursor: not-allowed; } + .btn-secondary { + background: #fff; + color: var(--text); + border: 1px solid var(--border); + border-radius: 8px; + padding: 8px 12px; + font-size: 13px; + cursor: pointer; + } + .form-error { + background: var(--red-bg); + color: var(--red); + border-radius: 8px; + padding: 10px 12px; + font-size: 13px; + margin-bottom: 14px; + } + .form-success { + background: var(--green-bg); + color: var(--green); + border-radius: 8px; + padding: 10px 12px; + font-size: 13px; + margin-bottom: 14px; + } + .view { display: none; } + .view.active { display: block; } + + .topbar { + display: flex; + justify-content: flex-end; + align-items: center; + gap: 10px; + padding: 12px 32px 0; + font-size: 13px; + color: var(--text-muted); + } + + .invite-card { + background: var(--card-bg); + border-radius: 14px; + padding: 20px; + box-shadow: var(--shadow); + } + .invite-form-row { + display: flex; + gap: 10px; + flex-wrap: wrap; + align-items: flex-end; + } + .invite-form-row .field { flex: 1 1 200px; margin-bottom: 0; } + .invite-form-row button { flex: 0 0 auto; height: 40px; padding: 0 18px; } + + .invite-link-box { + display: flex; + gap: 8px; + align-items: center; + background: var(--bg); + border: 1px dashed var(--border); + border-radius: 8px; + padding: 10px 12px; + margin-top: 14px; + font-size: 13px; + word-break: break-all; + } + .invite-link-box code { flex: 1; } + + .invite-table { width: 100%; border-collapse: collapse; margin-top: 16px; font-size: 13.5px; } + .invite-table th, .invite-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--border); } + .invite-table th { color: var(--text-muted); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 0.03em; } + .invite-status-chip { + font-size: 11px; + font-weight: 700; + padding: 3px 9px; + border-radius: 999px; + text-transform: uppercase; + } + .invite-status-chip.PENDING { background: var(--yellow-bg); color: var(--yellow); } + .invite-status-chip.ACCEPTED { background: var(--green-bg); color: var(--green); } + .invite-status-chip.EXPIRED, .invite-status-chip.REVOKED { background: #EEF0F2; color: var(--text-muted); } -
-
-

WG Nackenheim — Vermieter-Cockpit

-

170 qm · 4 Zimmer · Einzelzimmervermietung

+ +
+
+
+

WG Nackenheim — Anmelden

+

Vermieter-Cockpit & Mieterbereich

+ +
+
+ + +
+
+ + +
+ +
+
-
-
- +
+ + +
+
+
+

Einladung annehmen

+

Lade Einladung…

+ + +
-
+ -
- + +
-
+
+ + +
-
-

Miet-Ampel je Zimmer

-
-
+
+
+

WG Nackenheim — Vermieter-Cockpit

+

170 qm · 4 Zimmer · Einzelzimmervermietung

+
+
+
+ +
+
-
-

Offene Schadensmeldungen

-
-
-
+
+ + +
+ + + +
+

Miet-Ampel je Zimmer

+
+
+ +
+

Offene Schadensmeldungen

+
+
+
+