Add favicon and apple-touch-icon to multiple HTML files; implement toast notification feature in app.js; update duration mode handling; enhance footer navigation and styling; create AGB and Mietbedingungen pages; improve Nginx configuration for HTML file handling; add logo images.

This commit is contained in:
LagoESP
2026-05-09 23:04:29 +02:00
parent 3a902e7138
commit dbb4c27535
13 changed files with 418 additions and 74 deletions
-40
View File
@@ -1,40 +0,0 @@
{"__type":"$$EventMessageAudit","id":"ceb1be9f-9fdb-4f19-a9e2-3c945b499605","ts":"2026-04-29T19:56:50.025+02:00","eventName":"n8n.audit.user.login.success","message":"n8n.audit.user.login.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","authenticationMethod":"email"}}
{"__type":"$$EventMessageConfirm","confirm":"ceb1be9f-9fdb-4f19-a9e2-3c945b499605","ts":"2026-04-29T19:56:50.040+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"7f5edda4-5a8a-48d6-838f-e4a4e58171dd","ts":"2026-04-29T19:56:57.617+02:00","eventName":"n8n.audit.user.credentials.created","message":"n8n.audit.user.credentials.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","credentialType":"postgres","credentialId":"846yS75jh8skSnX2","publicApi":false,"projectId":"julyz3yhfTK4pMNd","projectType":"personal","isDynamic":false,"usesExternalSecrets":false}}
{"__type":"$$EventMessageConfirm","confirm":"7f5edda4-5a8a-48d6-838f-e4a4e58171dd","ts":"2026-04-29T19:56:57.617+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"c23fc82f-477e-4e86-878f-5a599448b1b8","ts":"2026-04-29T19:57:09.092+02:00","eventName":"n8n.audit.user.credentials.created","message":"n8n.audit.user.credentials.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","credentialType":"supabaseApi","credentialId":"cgEX1vWw0IkStuoU","publicApi":false,"projectId":"julyz3yhfTK4pMNd","projectType":"personal","isDynamic":false,"usesExternalSecrets":false}}
{"__type":"$$EventMessageConfirm","confirm":"c23fc82f-477e-4e86-878f-5a599448b1b8","ts":"2026-04-29T19:57:09.093+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"6900ba6a-ddcc-4fda-a24b-528648bfa010","ts":"2026-04-29T19:57:23.157+02:00","eventName":"n8n.audit.workflow.created","message":"n8n.audit.workflow.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification"}}
{"__type":"$$EventMessageConfirm","confirm":"6900ba6a-ddcc-4fda-a24b-528648bfa010","ts":"2026-04-29T19:57:23.157+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"241da235-3a1b-4c07-a3f5-814004b9e0da","ts":"2026-04-29T19:57:40.542+02:00","eventName":"n8n.audit.user.login.success","message":"n8n.audit.user.login.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","authenticationMethod":"email"}}
{"__type":"$$EventMessageConfirm","confirm":"241da235-3a1b-4c07-a3f5-814004b9e0da","ts":"2026-04-29T19:57:40.542+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"b6800e1b-dc8e-49bc-94ef-230b602c6df0","ts":"2026-04-29T19:58:10.640+02:00","eventName":"n8n.audit.user.login.success","message":"n8n.audit.user.login.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","authenticationMethod":"email"}}
{"__type":"$$EventMessageConfirm","confirm":"b6800e1b-dc8e-49bc-94ef-230b602c6df0","ts":"2026-04-29T19:58:10.640+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"6a1a6709-c254-4c1e-bb9e-2f634b90498a","ts":"2026-04-29T19:58:18.234+02:00","eventName":"n8n.audit.workflow.executed","message":"n8n.audit.workflow.executed","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"1","source":"user-manual"}}
{"__type":"$$EventMessageConfirm","confirm":"6a1a6709-c254-4c1e-bb9e-2f634b90498a","ts":"2026-04-29T19:58:18.234+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageWorkflow","id":"412e9165-2cef-4628-9dd4-b58c18c7d236","ts":"2026-04-29T19:58:18.234+02:00","eventName":"n8n.workflow.started","message":"n8n.workflow.started","payload":{"executionId":"1","workflowId":"MiEBjJYxhUVm6sl3","isManual":false,"mode":"manual","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars <admin@mccars.local>"}}
{"__type":"$$EventMessageConfirm","confirm":"412e9165-2cef-4628-9dd4-b58c18c7d236","ts":"2026-04-29T19:58:18.234+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageNode","id":"e0e05a15-933e-4370-8bcf-55da83f2a683","ts":"2026-04-29T19:58:18.240+02:00","eventName":"n8n.node.started","message":"n8n.node.started","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"1","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}}
{"__type":"$$EventMessageConfirm","confirm":"e0e05a15-933e-4370-8bcf-55da83f2a683","ts":"2026-04-29T19:58:18.240+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageNode","id":"5e59bc80-0096-4f44-94e1-0ed813cf8a3d","ts":"2026-04-29T19:59:18.261+02:00","eventName":"n8n.node.finished","message":"n8n.node.finished","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"1","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}}
{"__type":"$$EventMessageConfirm","confirm":"5e59bc80-0096-4f44-94e1-0ed813cf8a3d","ts":"2026-04-29T19:59:18.261+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageWorkflow","id":"2629e130-478d-400b-814a-6004b414f004","ts":"2026-04-29T19:59:18.269+02:00","eventName":"n8n.workflow.failed","message":"n8n.workflow.failed","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","executionId":"1","success":false,"isManual":true,"mode":"manual","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars <admin@mccars.local>","lastNodeExecuted":"Check New Leads","errorMessage":"Aborted, no data received within 30secs. This 30sec timeout is only set for \"manually triggered execution\". Active Workflows will listen indefinitely."}}
{"__type":"$$EventMessageConfirm","confirm":"2629e130-478d-400b-814a-6004b414f004","ts":"2026-04-29T19:59:18.270+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"e106259d-47a0-41fa-97e2-a384ebe82015","ts":"2026-04-29T20:02:00.788+02:00","eventName":"n8n.audit.workflow.executed","message":"n8n.audit.workflow.executed","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","source":"user-manual"}}
{"__type":"$$EventMessageConfirm","confirm":"e106259d-47a0-41fa-97e2-a384ebe82015","ts":"2026-04-29T20:02:00.788+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageWorkflow","id":"d904b8f4-87ee-40f3-ba88-55293d0eada8","ts":"2026-04-29T20:02:00.788+02:00","eventName":"n8n.workflow.started","message":"n8n.workflow.started","payload":{"executionId":"2","workflowId":"MiEBjJYxhUVm6sl3","isManual":false,"mode":"manual","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars <admin@mccars.local>"}}
{"__type":"$$EventMessageConfirm","confirm":"d904b8f4-87ee-40f3-ba88-55293d0eada8","ts":"2026-04-29T20:02:00.788+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageNode","id":"4c4896ef-4dde-4ac6-9746-91886e6c434a","ts":"2026-04-29T20:02:00.795+02:00","eventName":"n8n.node.started","message":"n8n.node.started","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}}
{"__type":"$$EventMessageConfirm","confirm":"4c4896ef-4dde-4ac6-9746-91886e6c434a","ts":"2026-04-29T20:02:00.796+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageNode","id":"dd1e3736-5352-4a60-ac25-48edf7f7c814","ts":"2026-04-29T20:02:02.383+02:00","eventName":"n8n.node.finished","message":"n8n.node.finished","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}}
{"__type":"$$EventMessageConfirm","confirm":"dd1e3736-5352-4a60-ac25-48edf7f7c814","ts":"2026-04-29T20:02:02.383+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageNode","id":"18332840-312c-400f-8efa-ba9b00161d5e","ts":"2026-04-29T20:02:02.384+02:00","eventName":"n8n.node.started","message":"n8n.node.started","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.set","nodeName":"Format Lead Data","nodeId":"set1"}}
{"__type":"$$EventMessageConfirm","confirm":"18332840-312c-400f-8efa-ba9b00161d5e","ts":"2026-04-29T20:02:02.384+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageNode","id":"eb33d71c-ab1e-45e7-b8a1-c2f4233db4cc","ts":"2026-04-29T20:02:02.388+02:00","eventName":"n8n.node.finished","message":"n8n.node.finished","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.set","nodeName":"Format Lead Data","nodeId":"set1"}}
{"__type":"$$EventMessageConfirm","confirm":"eb33d71c-ab1e-45e7-b8a1-c2f4233db4cc","ts":"2026-04-29T20:02:02.388+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageWorkflow","id":"0da331f2-66a0-45fd-b691-d4c28a01598c","ts":"2026-04-29T20:02:02.404+02:00","eventName":"n8n.workflow.success","message":"n8n.workflow.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","executionId":"2","success":true,"isManual":true,"mode":"manual","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars <admin@mccars.local>"}}
{"__type":"$$EventMessageConfirm","confirm":"0da331f2-66a0-45fd-b691-d4c28a01598c","ts":"2026-04-29T20:02:02.404+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"a0ac56d7-5dd2-4d92-ba16-9480f5d7be4e","ts":"2026-04-29T21:40:47.656+02:00","eventName":"n8n.audit.workflow.created","message":"n8n.audit.workflow.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"5254P6wnxXA4bhWf","workflowName":"Lead Qualified → Payment Email"}}
{"__type":"$$EventMessageConfirm","confirm":"a0ac56d7-5dd2-4d92-ba16-9480f5d7be4e","ts":"2026-04-29T21:40:47.656+02:00","source":{"id":"0","name":"eventBus"}}
{"__type":"$$EventMessageAudit","id":"8b319e39-54c7-41d6-a1f6-4a28fcc9f340","ts":"2026-04-29T21:41:00.236+02:00","eventName":"n8n.audit.workflow.created","message":"n8n.audit.workflow.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"40NOffvLouMXkVPO","workflowName":"Lead Qualified → Mietvertrag PDF"}}
{"__type":"$$EventMessageConfirm","confirm":"8b319e39-54c7-41d6-a1f6-4a28fcc9f340","ts":"2026-04-29T21:41:00.236+02:00","source":{"id":"0","name":"eventBus"}}
+2
View File
@@ -4,6 +4,8 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Admin · MC Cars</title> <title>Admin · MC Cars</title>
<link rel="icon" type="image/png" href="/images/mc-cars-logo.png" />
<link rel="apple-touch-icon" href="/images/mc-cars-logo.png" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="styles.css" /> <link rel="stylesheet" href="styles.css" />
<script>document.write('<scr'+'ipt src="config.js?v='+Date.now()+'"><\/scr'+'ipt>')</script> <script>document.write('<scr'+'ipt src="config.js?v='+Date.now()+'"><\/scr'+'ipt>')</script>
+93
View File
@@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>AGB · MC Cars</title>
<link rel="icon" type="image/png" href="/images/mc-cars-logo.png" />
<link rel="apple-touch-icon" href="/images/mc-cars-logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="styles.css" />
<script>document.write('<scr'+'ipt src="config.js?v='+Date.now()+'"><\/scr'+'ipt>')</script>
</head>
<body>
<header class="site-header">
<div class="shell">
<a class="logo" href="/" aria-label="MC Cars Startseite">
<img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span>
</a>
<button class="menu-toggle" aria-label="Menü"></button>
<nav class="main-nav" aria-label="Hauptnavigation">
<a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#stimmen" data-i18n="navReviews">Stimmen</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
<a class="btn small" href="/#buchen" data-i18n="bookNow">Jetzt buchen</a>
<button class="lang-toggle" type="button" aria-label="Sprache wechseln">EN</button>
</nav>
</div>
</header>
<main style="padding: 3rem 0;">
<div class="shell">
<h1>Allgemeine Geschäftsbedingungen (AGB)</h1>
<div style="max-width: 65ch; line-height: 1.7; color: var(--text);">
<p style="color: var(--muted); font-style: italic;">
Diese Seite wird in Kürze mit den vollständigen AGB aktualisiert.
</p>
<p>
Die AGB definieren die rechtlichen Bedingungen für die Vermietung von Fahrzeugen durch MC Cars.
</p>
<p>
Bitte wenden Sie sich an hello@mccars.at für weitere Informationen.
</p>
</div>
</div>
</main>
<footer class="site-footer" id="kontakt">
<div class="shell">
<div class="footer-grid">
<div>
<div class="logo" style="margin-bottom:0.8rem;">
<img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span>
</div>
<p style="color:var(--muted);font-size:0.9rem;max-width:40ch;" data-i18n="footerTagline">Sportwagenvermietung in Österreich. Standort: Steiermark (TBD).</p>
</div>
<div>
<h4 data-i18n="footerNav">Navigation</h4>
<a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
</div>
<div>
<h4 data-i18n="footerLegal">Rechtliches</h4>
<a href="/impressum" data-i18n="imprint">Impressum</a>
<a href="/agb" data-i18n="terms">AGB</a>
<a href="/mietbedingungen" data-i18n="rentalTerms">Mietbedingungen</a>
<a href="/datenschutz" data-i18n="privacy">Datenschutz</a>
</div>
<div>
<h4 data-i18n="footerContact">Kontakt</h4>
<a href="mailto:hello@mccars.at">hello@mccars.at</a>
<a href="tel:+43316880000">+43 316 880000</a>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="year"></span> MC Cars. <span data-i18n="copyright">Alle Rechte vorbehalten.</span></span>
<span>Made in Steiermark</span>
</div>
</div>
</footer>
<script type="module" src="app.js"></script>
</body>
</html>
+19 -4
View File
@@ -52,7 +52,7 @@ const bpfSubmitBtn = document.querySelector("#bpfSubmit");
const bpfSidebar = document.querySelector("#bpfSidebar"); const bpfSidebar = document.querySelector("#bpfSidebar");
const bpfSidebarContent = document.querySelector("#bpfSidebarContent"); const bpfSidebarContent = document.querySelector("#bpfSidebarContent");
const bpfSidebarPlaceholder = document.querySelector(".bpf-sidebar-placeholder"); const bpfSidebarPlaceholder = document.querySelector(".bpf-sidebar-placeholder");
let bpfDurationMode = "custom"; // "day" | "weekend" | "custom" let bpfDurationMode = ""; // "day" | "weekend" | "custom" | ""
let bpfSubmitting = false; let bpfSubmitting = false;
function formatYmdLocal(d) { function formatYmdLocal(d) {
@@ -96,6 +96,17 @@ const today = formatYmdLocal(new Date());
document.querySelector("#year").textContent = new Date().getFullYear(); document.querySelector("#year").textContent = new Date().getFullYear();
// ----------------Toast Notification ----------------
function showToast(message, duration = 3000) {
const toast = document.querySelector("#toast");
if (!toast) return;
toast.textContent = message;
toast.classList.add("show");
setTimeout(() => {
toast.classList.remove("show");
}, duration);
}
// ---------------- Vehicles ---------------- // ---------------- Vehicles ----------------
async function loadVehicles() { async function loadVehicles() {
const { data, error } = await supabase const { data, error } = await supabase
@@ -287,7 +298,7 @@ bpfFileIncome.addEventListener("change", () => {
// ---------------- Duration Presets ---------------- // ---------------- Duration Presets ----------------
function setDurationMode(mode) { function setDurationMode(mode) {
bpfDurationMode = mode; bpfDurationMode = mode || "";
document.querySelectorAll(".bpf-preset").forEach(b => b.classList.toggle("active", b.dataset.preset === mode)); document.querySelectorAll(".bpf-preset").forEach(b => b.classList.toggle("active", b.dataset.preset === mode));
document.querySelector("#bpfDateDay").style.display = mode === "day" ? "block" : "none"; document.querySelector("#bpfDateDay").style.display = mode === "day" ? "block" : "none";
document.querySelector("#bpfDateWeekend").style.display = mode === "weekend" ? "block" : "none"; document.querySelector("#bpfDateWeekend").style.display = mode === "weekend" ? "block" : "none";
@@ -295,6 +306,9 @@ function setDurationMode(mode) {
updateSidebar(); updateSidebar();
} }
// Fresh page load: no duration selected, so no date inputs are visible.
setDurationMode("");
document.querySelectorAll(".bpf-preset").forEach(btn => { document.querySelectorAll(".bpf-preset").forEach(btn => {
btn.addEventListener("click", () => setDurationMode(btn.dataset.preset)); btn.addEventListener("click", () => setDurationMode(btn.dataset.preset));
}); });
@@ -452,7 +466,8 @@ document.querySelector("#bpfSubmit").addEventListener("click", async () => {
await Promise.all(uploads); await Promise.all(uploads);
bookingFeedback.className = "form-feedback"; bookingFeedback.className = "form-feedback";
bookingFeedback.textContent = t("bookingSuccess"); bookingFeedback.textContent = "";
showToast(t("bookingSuccess"), 4000);
showBpfStep(1); showBpfStep(1);
bpfCar.value = ""; bpfCar.value = "";
bpfFrom.value = ""; bpfFrom.value = "";
@@ -465,7 +480,7 @@ document.querySelector("#bpfSubmit").addEventListener("click", async () => {
bpfMessage.value = ""; bpfMessage.value = "";
document.querySelector("#bpfFileIdName").textContent = ""; document.querySelector("#bpfFileIdName").textContent = "";
document.querySelector("#bpfFileIncomeName").textContent = ""; document.querySelector("#bpfFileIncomeName").textContent = "";
setDurationMode("custom"); setDurationMode("");
updateSidebar(); updateSidebar();
bpfSubmitting = false; bpfSubmitting = false;
if (bpfSubmitBtn) bpfSubmitBtn.disabled = false; if (bpfSubmitBtn) bpfSubmitBtn.disabled = false;
+70 -6
View File
@@ -4,16 +4,80 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Datenschutz · MC Cars (GmbH)</title> <title>Datenschutz · MC Cars (GmbH)</title>
<link rel="icon" type="image/png" href="/images/mc-cars-logo.png" />
<link rel="apple-touch-icon" href="/images/mc-cars-logo.png" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;700&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="styles.css" /> <link rel="stylesheet" href="styles.css" />
</head> </head>
<body> <body>
<main class="shell" style="padding:4rem 1rem;"> <header class="site-header">
<p class="eyebrow">Rechtliches</p> <div class="shell">
<h1>Datenschutz</h1> <a class="logo" href="/" aria-label="MC Cars Startseite">
<p>Buchungsanfragen werden aktuell zu Demozwecken lokal im Browser gespeichert. Fahrzeugdaten werden über ein selbstgehostetes Supabase verwaltet.</p> <img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<p>Ansprechpartner: hello@mccars.at</p> <span>MC Cars</span>
<p style="margin-top:2rem;"><a class="btn small" href="index.html">← Startseite</a></p> </a>
<button class="menu-toggle" aria-label="Menü"></button>
<nav class="main-nav" aria-label="Hauptnavigation">
<a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#stimmen" data-i18n="navReviews">Stimmen</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
<a class="btn small" href="/#buchen" data-i18n="bookNow">Jetzt buchen</a>
<button class="lang-toggle" type="button" aria-label="Sprache wechseln">EN</button>
</nav>
</div>
</header>
<main style="padding: 3rem 0;">
<div class="shell">
<h1>Datenschutz</h1>
<div style="max-width: 65ch; line-height: 1.7; color: var(--text);">
<p>Buchungsanfragen werden aktuell zu Demozwecken lokal im Browser gespeichert. Fahrzeugdaten werden über ein selbstgehostetes Supabase verwaltet.</p>
<p>Ansprechpartner: hello@mccars.at</p>
</div>
</div>
</main> </main>
<footer class="site-footer" id="kontakt">
<div class="shell">
<div class="footer-grid">
<div>
<div class="logo" style="margin-bottom:0.8rem;">
<img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span>
</div>
<p style="color:var(--muted);font-size:0.9rem;max-width:40ch;" data-i18n="footerTagline">Sportwagenvermietung in Österreich. Standort: Steiermark (TBD).</p>
</div>
<div>
<h4 data-i18n="footerNav">Navigation</h4>
<a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
</div>
<div>
<h4 data-i18n="footerLegal">Rechtliches</h4>
<a href="/impressum" data-i18n="imprint">Impressum</a>
<a href="/agb" data-i18n="terms">AGB</a>
<a href="/mietbedingungen" data-i18n="rentalTerms">Mietbedingungen</a>
<a href="/datenschutz" data-i18n="privacy">Datenschutz</a>
</div>
<div>
<h4 data-i18n="footerContact">Kontakt</h4>
<a href="mailto:hello@mccars.at">hello@mccars.at</a>
<a href="tel:+43316880000">+43 316 880000</a>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="year"></span> MC Cars. <span data-i18n="copyright">Alle Rechte vorbehalten.</span></span>
<span>Made in Steiermark</span>
</div>
</div>
</footer>
<script type="module" src="app.js"></script>
</body> </body>
</html> </html>
+4 -2
View File
@@ -118,7 +118,8 @@ export const translations = {
footerNav: "Navigation", footerNav: "Navigation",
imprint: "Impressum", imprint: "Impressum",
privacy: "Datenschutz", privacy: "Datenschutz",
footerTerms: "Mietbedingungen", terms: "AGB",
rentalTerms: "Mietbedingungen",
copyright: "Alle Rechte vorbehalten.", copyright: "Alle Rechte vorbehalten.",
close: "Schließen", close: "Schließen",
@@ -352,7 +353,8 @@ export const translations = {
footerNav: "Navigation", footerNav: "Navigation",
imprint: "Imprint", imprint: "Imprint",
privacy: "Privacy", privacy: "Privacy",
footerTerms: "Rental conditions", terms: "Terms",
rentalTerms: "Rental Terms",
copyright: "All rights reserved.", copyright: "All rights reserved.",
close: "Close", close: "Close",
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 MiB

+73 -9
View File
@@ -4,19 +4,83 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Impressum · MC Cars (GmbH)</title> <title>Impressum · MC Cars (GmbH)</title>
<link rel="icon" type="image/png" href="/images/mc-cars-logo.png" />
<link rel="apple-touch-icon" href="/images/mc-cars-logo.png" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;700&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="styles.css" /> <link rel="stylesheet" href="styles.css" />
</head> </head>
<body> <body>
<main class="shell" style="padding:4rem 1rem;"> <header class="site-header">
<p class="eyebrow">Rechtliches</p> <div class="shell">
<h1>Impressum</h1> <a class="logo" href="/" aria-label="MC Cars Startseite">
<p>MC Cars (GmbH)</p> <img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<p>Standort: Steiermark (TBD)</p> <span>MC Cars</span>
<p>E-Mail: hello@mccars.at</p> </a>
<p>Telefon: +43 316 880000</p> <button class="menu-toggle" aria-label="Menü"></button>
<p>Firmenbuch und UID werden nachgereicht.</p> <nav class="main-nav" aria-label="Hauptnavigation">
<p style="margin-top:2rem;"><a class="btn small" href="index.html">← Startseite</a></p> <a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#stimmen" data-i18n="navReviews">Stimmen</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
<a class="btn small" href="/#buchen" data-i18n="bookNow">Jetzt buchen</a>
<button class="lang-toggle" type="button" aria-label="Sprache wechseln">EN</button>
</nav>
</div>
</header>
<main style="padding: 3rem 0;">
<div class="shell">
<h1>Impressum</h1>
<div style="max-width: 65ch; line-height: 1.7; color: var(--text);">
<p><strong>MC Cars (GmbH)</strong></p>
<p>Standort: Steiermark (TBD)</p>
<p>E-Mail: hello@mccars.at</p>
<p>Telefon: +43 316 880000</p>
<p>Firmenbuch und UID werden nachgereicht.</p>
</div>
</div>
</main> </main>
<footer class="site-footer" id="kontakt">
<div class="shell">
<div class="footer-grid">
<div>
<div class="logo" style="margin-bottom:0.8rem;">
<img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span>
</div>
<p style="color:var(--muted);font-size:0.9rem;max-width:40ch;" data-i18n="footerTagline">Sportwagenvermietung in Österreich. Standort: Steiermark (TBD).</p>
</div>
<div>
<h4 data-i18n="footerNav">Navigation</h4>
<a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
</div>
<div>
<h4 data-i18n="footerLegal">Rechtliches</h4>
<a href="/impressum" data-i18n="imprint">Impressum</a>
<a href="/agb" data-i18n="terms">AGB</a>
<a href="/mietbedingungen" data-i18n="rentalTerms">Mietbedingungen</a>
<a href="/datenschutz" data-i18n="privacy">Datenschutz</a>
</div>
<div>
<h4 data-i18n="footerContact">Kontakt</h4>
<a href="mailto:hello@mccars.at">hello@mccars.at</a>
<a href="tel:+43316880000">+43 316 880000</a>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="year"></span> MC Cars. <span data-i18n="copyright">Alle Rechte vorbehalten.</span></span>
<span>Made in Steiermark</span>
</div>
</div>
</footer>
<script type="module" src="app.js"></script>
</body> </body>
</html> </html>
+20 -12
View File
@@ -5,6 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>MC Cars · Sportwagenvermietung Steiermark</title> <title>MC Cars · Sportwagenvermietung Steiermark</title>
<meta name="description" content="MC Cars · Premium Sportwagen- und Luxusvermietung in der Steiermark. Faire Kaution, transparent, sofort startklar." /> <meta name="description" content="MC Cars · Premium Sportwagen- und Luxusvermietung in der Steiermark. Faire Kaution, transparent, sofort startklar." />
<link rel="icon" type="image/png" href="/images/mc-cars-logo.png" />
<link rel="apple-touch-icon" href="/images/mc-cars-logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap" rel="stylesheet" /> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap" rel="stylesheet" />
@@ -15,7 +17,7 @@
<header class="site-header"> <header class="site-header">
<div class="shell"> <div class="shell">
<a class="logo" href="/" aria-label="MC Cars Startseite"> <a class="logo" href="/" aria-label="MC Cars Startseite">
<span class="logo-mark">MC</span> <img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span> <span>MC Cars</span>
</a> </a>
@@ -91,9 +93,10 @@
<!-- Why --> <!-- Why -->
<section id="warum" style="background:var(--bg-elev);"> <section id="warum" style="background:var(--bg-elev);">
<div class="shell"> <a href="/impressum" data-i18n="imprint">Impressum</a>
<div class="section-head"> <a href="/agb" data-i18n="terms">AGB</a>
<div> <a href="/mietbedingungen" data-i18n="rentalTerms">Mietbedingungen</a>
<a href="/datenschutz" data-i18n="privacy">Datenschutz</a>
<p class="eyebrow" data-i18n="whyEyebrow">Warum MC Cars</p> <p class="eyebrow" data-i18n="whyEyebrow">Warum MC Cars</p>
<h2 data-i18n="whyTitle">Keine Kompromisse zwischen Sicherheit und Fahrspaß.</h2> <h2 data-i18n="whyTitle">Keine Kompromisse zwischen Sicherheit und Fahrspaß.</h2>
</div> </div>
@@ -119,6 +122,8 @@
</div> </div>
</section> </section>
<!-- Toast Notification -->
<div id="toast" class="toast" role="status" aria-live="polite" aria-atomic="true"></div>
<!-- Reviews --> <!-- Reviews -->
<section id="stimmen"> <section id="stimmen">
<div class="shell"> <div class="shell">
@@ -180,7 +185,7 @@
</span> </span>
<span data-i18n="bpfPresetWeekend">Wochenende</span> <span data-i18n="bpfPresetWeekend">Wochenende</span>
</button> </button>
<button type="button" class="bpf-preset active" data-preset="custom"> <button type="button" class="bpf-preset" data-preset="custom">
<span class="bpf-preset-icon"> <span class="bpf-preset-icon">
<svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line><path d="M8 14h8"></path><path d="M8 18h8"></path></svg> <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line><path d="M8 14h8"></path><path d="M8 18h8"></path></svg>
</span> </span>
@@ -190,20 +195,20 @@
</div> </div>
<!-- Day mode: single date picker --> <!-- Day mode: single date picker -->
<div class="bpf-field bpf-date-day" id="bpfDateDay" style="display:none;"> <div class="bpf-field bpf-date-day" id="bpfDateDay" style="display:none;">
<label data-i18n="bpfPickDate">Datum wählen</label> <label data-i18n="bpfPickDate">Datum wählen</label>
<input type="date" id="bpfDayDate" /> <input type="date" id="bpfDayDate" />
</div> </div>
<!-- Weekend mode: pick the Saturday --> <!-- Weekend mode: pick the Saturday -->
<div class="bpf-field bpf-date-weekend" id="bpfDateWeekend" style="display:none;"> <div class="bpf-field bpf-date-weekend" id="bpfDateWeekend" style="display: none;">
<label data-i18n="bpfPickWeekend">Wochenende wählen (Samstag)</label> <label data-i18n="bpfPickWeekend">Wochenende wählen (Samstag)</label>
<input type="date" id="bpfWeekendDate" /> <input type="date" id="bpfWeekendDate" />
<p class="bpf-weekend-def" data-i18n="bpfWeekendDef">Wochenende: Samstag 9:00 Sonntag 20:00</p> <p class="bpf-weekend-def" data-i18n="bpfWeekendDef">Wochenende: Samstag 9:00 Sonntag 20:00</p>
</div> </div>
<!-- Custom mode: from/to date pickers --> <!-- Custom mode: from/to date pickers -->
<div class="bpf-date-custom" id="bpfDateCustom"> <div class="bpf-date-custom" id="bpfDateCustom" style="display:none;">
<div class="bpf-field-row"> <div class="bpf-field-row">
<div class="bpf-field"> <div class="bpf-field">
<label data-i18n="bpfStartDate">Startdatum</label> <label data-i18n="bpfStartDate">Startdatum</label>
@@ -307,7 +312,7 @@
<div class="footer-grid"> <div class="footer-grid">
<div> <div>
<div class="logo" style="margin-bottom:0.8rem;"> <div class="logo" style="margin-bottom:0.8rem;">
<span class="logo-mark">MC</span> <img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span> <span>MC Cars</span>
</div> </div>
<p style="color:var(--muted);font-size:0.9rem;max-width:40ch;" data-i18n="footerTagline">Sportwagenvermietung in Österreich. Standort: Steiermark (TBD).</p> <p style="color:var(--muted);font-size:0.9rem;max-width:40ch;" data-i18n="footerTagline">Sportwagenvermietung in Österreich. Standort: Steiermark (TBD).</p>
@@ -322,9 +327,10 @@
<div> <div>
<h4 data-i18n="footerLegal">Rechtliches</h4> <h4 data-i18n="footerLegal">Rechtliches</h4>
<a href="impressum.html" data-i18n="imprint">Impressum</a> <a href="/impressum" data-i18n="imprint">Impressum</a>
<a href="datenschutz.html" data-i18n="privacy">Datenschutz</a> <a href="/agb" data-i18n="terms">AGB</a>
<a href="#" data-i18n="terms">Mietbedingungen</a> <a href="/mietbedingungen" data-i18n="rentalTerms">Mietbedingungen</a>
<a href="/datenschutz" data-i18n="privacy">Datenschutz</a>
</div> </div>
<div> <div>
@@ -350,6 +356,8 @@
<div class="dialog-body" id="dialogBody"></div> <div class="dialog-body" id="dialogBody"></div>
</dialog> </dialog>
<div id="toast" class="toast" role="status" aria-live="polite" aria-atomic="true"></div>
<script type="module" src="app.js"></script> <script type="module" src="app.js"></script>
</body> </body>
</html> </html>
+93
View File
@@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Mietbedingungen · MC Cars</title>
<link rel="icon" type="image/png" href="/images/mc-cars-logo.png" />
<link rel="apple-touch-icon" href="/images/mc-cars-logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="styles.css" />
<script>document.write('<scr'+'ipt src="config.js?v='+Date.now()+'"><\/scr'+'ipt>')</script>
</head>
<body>
<header class="site-header">
<div class="shell">
<a class="logo" href="/" aria-label="MC Cars Startseite">
<img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span>
</a>
<button class="menu-toggle" aria-label="Menü"></button>
<nav class="main-nav" aria-label="Hauptnavigation">
<a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#stimmen" data-i18n="navReviews">Stimmen</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
<a class="btn small" href="/#buchen" data-i18n="bookNow">Jetzt buchen</a>
<button class="lang-toggle" type="button" aria-label="Sprache wechseln">EN</button>
</nav>
</div>
</header>
<main style="padding: 3rem 0;">
<div class="shell">
<h1>Mietbedingungen</h1>
<div style="max-width: 65ch; line-height: 1.7; color: var(--text);">
<p style="color: var(--muted); font-style: italic;">
Diese Seite wird in Kürze mit den vollständigen Mietbedingungen aktualisiert.
</p>
<p>
Die Mietbedingungen regeln die Nutzung der Mietfahrzeuge, Zahlungsbedingungen, Haftung und Versicherung.
</p>
<p>
Bitte wenden Sie sich an hello@mccars.at für weitere Informationen.
</p>
</div>
</div>
</main>
<footer class="site-footer" id="kontakt">
<div class="shell">
<div class="footer-grid">
<div>
<div class="logo" style="margin-bottom:0.8rem;">
<img class="logo-icon" src="/images/mc-cars-logo.png" alt="MC Cars Logo" onerror="this.style.display='none'" />
<span>MC Cars</span>
</div>
<p style="color:var(--muted);font-size:0.9rem;max-width:40ch;" data-i18n="footerTagline">Sportwagenvermietung in Österreich. Standort: Steiermark (TBD).</p>
</div>
<div>
<h4 data-i18n="footerNav">Navigation</h4>
<a href="/" data-i18n="navCars">Fahrzeuge</a>
<a href="/#warum" data-i18n="navWhy">Warum wir</a>
<a href="/#buchen" data-i18n="navBook">Buchen</a>
</div>
<div>
<h4 data-i18n="footerLegal">Rechtliches</h4>
<a href="/impressum" data-i18n="imprint">Impressum</a>
<a href="/agb" data-i18n="terms">AGB</a>
<a href="/mietbedingungen" data-i18n="rentalTerms">Mietbedingungen</a>
<a href="/datenschutz" data-i18n="privacy">Datenschutz</a>
</div>
<div>
<h4 data-i18n="footerContact">Kontakt</h4>
<a href="mailto:hello@mccars.at">hello@mccars.at</a>
<a href="tel:+43316880000">+43 316 880000</a>
</div>
</div>
<div class="footer-bottom">
<span>© <span id="year"></span> MC Cars. <span data-i18n="copyright">Alle Rechte vorbehalten.</span></span>
<span>Made in Steiermark</span>
</div>
</div>
</footer>
<script type="module" src="app.js"></script>
</body>
</html>
+2 -1
View File
@@ -10,7 +10,8 @@ server {
location ~* \.html$ { add_header Cache-Control "no-store"; try_files $uri =404; } location ~* \.html$ { add_header Cache-Control "no-store"; try_files $uri =404; }
location / { location / {
try_files $uri $uri/ /index.html; # Try files with or without .html, then fallback to index
try_files $uri $uri.html $uri/ /index.html;
} }
# Static assets: images/fonts can be cached, JS/CSS must revalidate. # Static assets: images/fonts can be cached, JS/CSS must revalidate.
+42
View File
@@ -97,6 +97,20 @@ section { padding: 5rem 0; }
} }
.logo:hover { opacity: 0.85; } .logo:hover { opacity: 0.85; }
.logo-icon {
width: 2.3rem;
height: 2.3rem;
border-radius: 10px;
object-fit: cover;
box-shadow: 0 4px 12px rgba(196, 138, 66, 0.35);
transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
}
.logo:hover .logo-icon {
transform: scale(1.04);
box-shadow: 0 6px 16px rgba(196, 138, 66, 0.55);
}
.logo-mark { .logo-mark {
display: grid; display: grid;
place-items: center; place-items: center;
@@ -760,6 +774,10 @@ select:focus, input:focus, textarea:focus {
border-radius: 4px; border-radius: 4px;
} }
.footer-grid > div > a {
display: block;
}
.footer-bottom { .footer-bottom {
border-top: 1px solid var(--line); border-top: 1px solid var(--line);
padding-top: 1.8rem; padding-top: 1.8rem;
@@ -772,6 +790,30 @@ select:focus, input:focus, textarea:focus {
gap: 1rem; gap: 1rem;
} }
/* ----------------Toast Notification --------------- */
.toast {
position: fixed;
bottom: 2rem;
left: 50%;
transform: translateX(-50%) translateY(200px);
background: var(--accent);
color: var(--bg-base);
padding: 1rem 2rem;
border-radius: 8px;
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
font-size: 0.95rem;
text-align: center;
max-width: 90%;
z-index: 9999;
transition: transform 0.3s ease;
pointer-events: none;
}
.toast.show {
transform: translateX(-50%) translateY(0);
pointer-events: auto;
}
/* ---------------- Dialog ---------------- */ /* ---------------- Dialog ---------------- */
dialog { dialog {
width: min(700px, 92vw); width: min(700px, 92vw);