Neue aufklappbare "Erste Schritte"-Card als erste Card im Kunden-Dashboard, die neue Nutzer durch Profil, Rechnungsadresse, Firma und erste PM führt und sich ausblendet, sobald alle Schritte erledigt sind. Zusätzlich die gemeinsame Fehlerseiten-Vorlage (404/403/419/500/503) an das Hub-Design angepasst (Palette, Gold-Akzent, Hub-Blau-Button), weiterhin self-contained ohne Vite-Assets. Co-authored-by: Cursor <cursoragent@cursor.com>
128 lines
4 KiB
PHP
128 lines
4 KiB
PHP
{{--
|
||
Gemeinsames Grundgerüst der Fehlerseiten. Bewusst self-contained
|
||
(Inline-CSS, keine Vite-Assets), damit die Seiten auch bei kaputtem
|
||
Asset-Build oder vor dem ersten `npm run build` zuverlässig rendern.
|
||
--}}
|
||
<!DOCTYPE html>
|
||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<meta name="robots" content="noindex">
|
||
<title>@yield('code') · @yield('title') – {{ $domainName ?? 'Pressekonto' }}</title>
|
||
<style>
|
||
/* Hub-Palette gespiegelt aus resources/css/shared/design-tokens.css.
|
||
Bewusst als Inline-Kopie, damit die Fehlerseiten auch bei kaputtem
|
||
Asset-Build zuverlässig im richtigen Erscheinungsbild rendern. */
|
||
:root {
|
||
color-scheme: light dark;
|
||
--bg: #f6f4ef;
|
||
--panel: #ffffff;
|
||
--ink: #1a1f1c;
|
||
--ink-2: #3a413d;
|
||
--ink-3: #5a6360;
|
||
--rule: #e2ddd0;
|
||
--hub: #1a2540;
|
||
--hub-hover: #243152;
|
||
--accent: #b07a3a;
|
||
--accent-deep: #8a5e27;
|
||
}
|
||
@media (prefers-color-scheme: dark) {
|
||
:root {
|
||
--bg: #0e1218;
|
||
--panel: #181d27;
|
||
--ink: #ece9e0;
|
||
--ink-2: #c9c5b8;
|
||
--ink-3: #8e8b82;
|
||
--rule: #2a3142;
|
||
--hub: #5a78c2;
|
||
--hub-hover: #6d8ad3;
|
||
--accent: #d9a560;
|
||
--accent-deep: #d9a560;
|
||
}
|
||
}
|
||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||
body {
|
||
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
||
background: var(--bg);
|
||
color: var(--ink);
|
||
min-height: 100vh;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
padding: 24px;
|
||
}
|
||
main {
|
||
position: relative;
|
||
background: var(--panel);
|
||
border: 1px solid var(--rule);
|
||
border-radius: 6px;
|
||
padding: 48px 40px;
|
||
max-width: 460px;
|
||
width: 100%;
|
||
text-align: center;
|
||
overflow: hidden;
|
||
}
|
||
main::before {
|
||
content: "";
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
height: 3px;
|
||
background: var(--accent);
|
||
}
|
||
.code {
|
||
font-size: 11px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.22em;
|
||
color: var(--accent-deep);
|
||
text-transform: uppercase;
|
||
}
|
||
h1 {
|
||
font-size: 24px;
|
||
font-weight: 700;
|
||
letter-spacing: -0.5px;
|
||
margin: 14px 0 10px;
|
||
}
|
||
p {
|
||
font-size: 14px;
|
||
line-height: 1.6;
|
||
color: var(--ink-3);
|
||
max-width: 340px;
|
||
margin: 0 auto;
|
||
}
|
||
a.home {
|
||
display: inline-block;
|
||
margin-top: 26px;
|
||
padding: 10px 22px;
|
||
border-radius: 5px;
|
||
background: var(--hub);
|
||
color: #fff;
|
||
font-size: 13.5px;
|
||
font-weight: 600;
|
||
text-decoration: none;
|
||
transition: background-color 0.15s ease;
|
||
}
|
||
a.home:hover { background: var(--hub-hover); }
|
||
.brand {
|
||
margin-top: 30px;
|
||
padding-top: 18px;
|
||
border-top: 1px solid var(--rule);
|
||
font-size: 11px;
|
||
letter-spacing: 0.14em;
|
||
color: var(--ink-3);
|
||
text-transform: uppercase;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<main>
|
||
<div class="code">@yield('code')</div>
|
||
<h1>@yield('title')</h1>
|
||
<p>@yield('message')</p>
|
||
<a class="home" href="/">Zur Startseite</a>
|
||
<div class="brand">{{ $domainName ?? 'Pressekonto' }}</div>
|
||
</main>
|
||
</body>
|
||
</html>
|