Sito marketing, SEO, legal, live programmata e branding Match Live Tv.

Logo e favicon nel header, partite programmate su web e mobile, reset password,
pagine FAQ/sitemap, privacy/termini GDPR e icona Android «Match Live Tv».

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-26 23:17:15 +02:00
parent 3a5649f482
commit 471291b2c4
70 changed files with 1601 additions and 153 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -206,6 +206,116 @@
margin: -12px 0 20px;
}
.live-main .section-heading {
font-size: 1rem;
font-weight: 700;
color: #ccc;
text-transform: uppercase;
letter-spacing: 0.05em;
margin: 0 0 12px;
}
.live-main .section-heading--spaced {
margin-top: 32px;
}
.live-main .badge-scheduled {
background: #1565c0;
color: #fff;
}
.live-main .live-card--upcoming {
border-color: #2a3a4a;
}
.live-main .live-card--upcoming:hover {
border-color: #1565c0;
transform: none;
}
.live-main .upcoming-when {
font-size: 1rem;
font-weight: 600;
color: #9ecbff;
margin: 0 0 12px;
}
.live-main .empty-state--soft {
margin-top: 28px;
padding: 28px 24px;
text-align: left;
}
.live-main .empty-state--soft p {
margin: 0 0 10px;
color: #bbb;
}
.live-main .empty-hero {
display: grid;
grid-template-columns: 1.1fr 1fr;
gap: 24px;
margin-top: 8px;
align-items: start;
}
@media (max-width: 860px) {
.live-main .empty-hero {
grid-template-columns: 1fr;
}
}
.live-main .empty-hero-copy h2 {
font-size: 1.35rem;
margin: 0 0 12px;
color: #fff;
}
.live-main .empty-hero-copy > p {
color: #aaa;
margin: 0 0 16px;
line-height: 1.5;
}
.live-main .empty-hero-list {
margin: 0 0 20px;
padding-left: 1.2rem;
color: #aaa;
line-height: 1.6;
}
.live-main .empty-hero-cta {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin: 0;
}
.live-main .demo-live-card {
background: #14141c;
border: 1px dashed #333;
border-radius: 14px;
padding: 16px;
}
.live-main .demo-label {
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.06em;
color: #888;
margin: 0 0 12px;
}
.live-main .live-card--demo {
opacity: 0.92;
pointer-events: none;
}
.live-main .btn-watch--demo {
cursor: default;
opacity: 0.85;
}
.live-main .replay-video {
width: 100%;
border-radius: 12px;

BIN
backend/public/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -22,13 +22,32 @@ a:hover { text-decoration: underline; }
.mast-inner {
display: flex;
align-items: center;
justify-content: space-between;
justify-content: flex-start;
gap: 16px;
padding-top: 14px;
padding-bottom: 14px;
}
.brand { font-weight: 800; font-size: 1.15rem; letter-spacing: 0.03em; color: #fff; text-decoration: none; flex-shrink: 0; }
.mast-inner .nav-toggle { margin-left: auto; }
.brand { font-weight: 800; font-size: 1.15rem; letter-spacing: 0.03em; color: #fff; flex-shrink: 0; }
.brand span { color: #e53935; }
.mast-brand {
display: flex;
align-items: center;
gap: 10px;
flex-shrink: 0;
text-decoration: none;
line-height: 1;
}
.mast-brand:hover { opacity: 0.92; text-decoration: none; }
.mast-brand:hover .brand { color: #fff; }
.mast-brand-logo {
display: block;
width: 40px;
height: 40px;
border-radius: 8px;
object-fit: contain;
flex-shrink: 0;
}
.nav-toggle {
display: none;
flex-direction: column;
@@ -485,10 +504,99 @@ body.nav-menu-open { overflow: hidden; }
.compare-table th, .compare-table td { padding: 10px 12px; border-bottom: 1px solid #2a2a36; text-align: left; }
.compare-table th { color: #aaa; font-weight: 600; }
.card { background: #14141c; border: 1px solid #2a2a36; border-radius: 12px; padding: 20px; margin-bottom: 16px; }
.seo-prose { max-width: 720px; margin: 0 auto; color: #bbb; line-height: 1.65; }
.seo-prose h2 { color: #fff; font-size: 1.25rem; margin: 28px 0 12px; }
.seo-prose h2:first-child { margin-top: 0; }
.seo-prose p { margin: 0 0 14px; }
.seo-prose ul { margin: 0 0 16px; padding-left: 1.25rem; }
.seo-prose a { color: #e53935; }
.seo-page .seo-lead { color: #aaa; max-width: 640px; line-height: 1.55; margin-bottom: 28px; }
.faq-list { max-width: 720px; margin: 0 auto; }
.faq-item {
background: #14141c;
border: 1px solid #2a2a36;
border-radius: 12px;
margin-bottom: 10px;
padding: 0 18px;
}
.faq-item summary {
cursor: pointer;
font-weight: 600;
color: #fff;
padding: 16px 0;
list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
content: "+";
float: right;
color: #e53935;
font-weight: 700;
}
.faq-item[open] summary::after { content: ""; }
.faq-item p { color: #aaa; margin: 0 0 16px; line-height: 1.55; font-size: 0.95rem; }
.legal-doc { max-width: 760px; padding-top: 24px; padding-bottom: 48px; color: #bbb; line-height: 1.65; font-size: 0.95rem; }
.legal-doc h1 { color: #fff; font-size: 1.6rem; margin-bottom: 8px; }
.legal-doc h2 { color: #fff; font-size: 1.1rem; margin: 28px 0 10px; }
.legal-doc p { margin: 0 0 12px; }
.legal-doc ul { margin: 0 0 14px; padding-left: 1.25rem; }
.legal-doc a { color: #e53935; }
.legal-meta { color: #888; font-size: 0.88rem; margin-bottom: 24px; }
.legal-back { margin-top: 32px; }
.legal-table { width: 100%; border-collapse: collapse; margin: 12px 0 16px; font-size: 0.88rem; }
.legal-table th, .legal-table td { border: 1px solid #2a2a36; padding: 10px 12px; text-align: left; vertical-align: top; }
.legal-table th { background: #14141c; color: #ccc; }
.legal-accept {
display: flex;
gap: 12px;
align-items: flex-start;
margin: 20px 0 10px;
font-size: 0.9rem;
color: #c8c8d4;
line-height: 1.5;
cursor: pointer;
}
.legal-accept input[type="checkbox"] {
width: 18px;
height: 18px;
min-width: 18px;
margin: 3px 0 0;
flex-shrink: 0;
accent-color: #e53935;
cursor: pointer;
}
.legal-accept-text { flex: 1; min-width: 0; }
.legal-accept-text a { color: #e53935; text-decoration: underline; }
.legal-accept-hint {
font-size: 0.82rem;
color: #9a9aaa;
margin: 0 0 18px;
line-height: 1.5;
padding-left: 30px;
}
.auth-forgot { margin: 4px 0 14px; font-size: 0.88rem; text-align: right; }
.auth-forgot a { color: #e53935; }
table.data { width: 100%; border-collapse: collapse; }
table.data th, table.data td { padding: 8px; border-bottom: 1px solid #2a2a36; text-align: left; }
input, select { width: 100%; padding: 10px 12px; margin-bottom: 12px; border-radius: 8px; border: 1px solid #333; background: #0a0a0e; color: #fff; }
label { display: block; margin-bottom: 4px; font-size: 0.88rem; color: #999; }
input, select {
width: 100%;
padding: 12px 14px;
margin-bottom: 12px;
border-radius: 8px;
border: 1px solid #3d3d4a;
background: #1c1c26;
color: #fff;
font-size: 1rem;
}
input:focus, select:focus {
outline: none;
border-color: #e53935;
box-shadow: 0 0 0 2px rgba(229, 57, 53, 0.25);
}
input::placeholder { color: #666; }
label { display: block; margin-bottom: 6px; font-size: 0.9rem; color: #c8c8d4; font-weight: 500; }
.auth-page {
display: flex;
flex-direction: column;
@@ -498,13 +606,23 @@ label { display: block; margin-bottom: 4px; font-size: 0.88rem; color: #999; }
padding: 48px 20px 64px;
text-align: center;
}
.auth-page h1 { margin: 0 0 8px; }
.auth-page .auth-lead { color: #aaa; margin: 0 0 24px; max-width: 420px; }
.auth-page h1 { margin: 0 0 8px; color: #fff; }
.auth-page .auth-lead { color: #b8b8c4; margin: 0 0 24px; max-width: 480px; line-height: 1.5; }
.auth-page .card {
width: 100%;
max-width: 420px;
max-width: 440px;
margin: 0;
padding: 28px 26px;
text-align: left;
background: #16161e;
border: 1px solid #3a3a48;
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}
.auth-page .card form .btn-primary {
width: 100%;
margin-top: 8px;
padding: 14px;
font-size: 1rem;
}
.auth-page .card-wide { max-width: 480px; }
.auth-page .auth-footer { margin-top: 16px; font-size: 0.92rem; color: #aaa; }
.auth-page .auth-footer { margin-top: 20px; font-size: 0.92rem; color: #aaa; text-align: center; }

BIN
backend/public/og-share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@@ -1 +1,24 @@
# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
# Match Live TV — https://matchlivetv.eminux.it
User-agent: *
Allow: /
Allow: /live
Allow: /funzionalita
Allow: /prezzi
Allow: /faq
Allow: /pallavolo-giovanile
Disallow: /admin
Disallow: /login
Disallow: /signup
Disallow: /logout
Disallow: /password/
Disallow: /teams/
Disallow: /join/
Disallow: /api/
Disallow: /webhooks/
Disallow: /internal/
Disallow: /cable
Disallow: /hls/
Disallow: /replay/
Sitemap: https://matchlivetv.eminux.it/sitemap.xml