Files
Key-service-Server/Website/templates/main.html
T

520 lines
13 KiB
HTML

{% extends "base.html" %}
{% block title %}Digitale Schulverwaltung mit Sicherheitsfokus{% endblock %}
{% block head %}
{{ super() }}
<style>
.hero {
margin-top: 1rem;
padding: 3.2rem;
border-radius: 22px;
background: linear-gradient(130deg, #f8f5ee 0%, #ece7d9 60%, #e0eadf 100%);
border: 1px solid #cfd6cd;
display: grid;
grid-template-columns: 1.15fr 0.85fr;
gap: 1.6rem;
position: relative;
overflow: hidden;
box-shadow: 0 24px 46px rgba(28, 45, 41, 0.08);
}
.hero::after {
content: "";
position: absolute;
right: -60px;
bottom: -70px;
width: 220px;
height: 220px;
border-radius: 999px;
background: radial-gradient(circle at center, #b3672e 0%, #b3672e 44%, transparent 72%);
opacity: 0.12;
pointer-events: none;
}
.eyebrow {
display: inline-block;
margin-bottom: 0.9rem;
padding: 0.34rem 0.72rem;
border-radius: 999px;
font-size: clamp(0.76rem, 0.9vw, 0.88rem);
font-weight: 700;
letter-spacing: 0.05em;
text-transform: uppercase;
color: #1f5158;
background: #dbe8e5;
}
.hero h1 {
font-size: clamp(2rem, 4.8vw, 3.6rem);
color: #21363b;
text-wrap: balance;
}
.hero p {
max-width: 60ch;
margin-top: 1rem;
font-size: clamp(1.03rem, 1.3vw, 1.18rem);
color: #4f666c;
}
.cta-row {
margin-top: 1.8rem;
display: flex;
flex-wrap: wrap;
gap: 0.72rem;
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
border: 1px solid transparent;
padding: 0.7rem 1.2rem;
font-weight: 700;
font-size: 0.97rem;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.btn:hover {
transform: translateY(-1px);
}
.btn-primary {
color: #ffffff;
background: linear-gradient(120deg, #296f78 0%, #1a5057 100%);
box-shadow: 0 8px 18px rgba(25, 71, 77, 0.24);
}
.btn-secondary {
color: #24525a;
background: #ffffff;
border-color: #bcc9c0;
}
.hero-card {
align-self: end;
background: #1f4e55;
color: #e4f2f1;
border-radius: 16px;
padding: 1.2rem;
border: 1px solid #3a6970;
}
.hero-logo-strip {
margin-bottom: 0.7rem;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.4rem;
}
.hero-logo-strip img {
width: 100%;
height: 64px;
object-fit: cover;
border-radius: 8px;
border: 1px solid #4f7c82;
background: #ffffff;
}
.hero-card h3 {
font-size: clamp(1rem, 1.8vw, 1.35rem);
margin-bottom: 0.55rem;
}
.hero-card p {
color: #c7dfde;
font-size: clamp(0.92rem, 1.05vw, 1.03rem);
margin: 0;
}
.stats {
margin-top: 0.95rem;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.5rem;
}
.stats div {
padding: 0.55rem 0.62rem;
border-radius: 10px;
background: #285e66;
border: 1px solid #4a7c82;
}
.stats strong {
display: block;
color: #ffffff;
font-size: 1.06rem;
}
.stats span {
color: #d1e8e6;
font-size: 0.82rem;
}
.section {
margin-top: 2rem;
padding: 1.9rem;
border-radius: 18px;
border: 1px solid #d0d7cf;
background: #ffffff;
box-shadow: 0 14px 30px rgba(28, 45, 41, 0.05);
animation: rise 680ms ease both;
}
.section h2 {
font-size: clamp(1.45rem, 3vw, 2.3rem);
margin-bottom: 0.4rem;
color: #21393e;
}
.section-grid {
margin-top: 1rem;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.8rem;
}
.card {
padding: 1rem;
border-radius: 14px;
border: 1px solid #dae1d8;
background: linear-gradient(165deg, #fcfcf8 0%, #f4f6ef 100%);
}
.card h3 {
font-size: clamp(1.04rem, 1.5vw, 1.25rem);
color: #275058;
margin-bottom: 0.35rem;
}
.card p {
font-size: clamp(0.95rem, 1vw, 1.02rem);
}
.routine-list {
margin-top: 1rem;
display: grid;
gap: 0.7rem;
}
.routine {
padding: 0.9rem 1rem;
border-radius: 12px;
border: 1px solid #d2d9d1;
background: #f8f7f1;
display: flex;
gap: 1rem;
justify-content: space-between;
align-items: center;
}
.routine b {
display: block;
color: #2a4d53;
margin-bottom: 0.18rem;
font-size: clamp(1rem, 1.2vw, 1.1rem);
}
.routine span {
font-size: 0.86rem;
color: #5c716f;
border: 1px solid #c5cec5;
padding: 0.2rem 0.55rem;
border-radius: 999px;
white-space: nowrap;
}
.process {
margin-top: 1.05rem;
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 0.6rem;
}
.step {
padding: 0.78rem 0.65rem;
text-align: center;
border-radius: 12px;
border: 1px solid #d0d8d0;
background: #f4f6f2;
}
.step strong {
display: block;
margin-bottom: 0.2rem;
font-size: clamp(0.9rem, 1.1vw, 1rem);
color: #284a50;
}
.step small {
color: #617572;
font-size: clamp(0.8rem, 0.86vw, 0.9rem);
}
.contact {
margin-top: 2rem;
border-radius: 20px;
padding: 2rem;
border: 1px solid #2a636b;
background: linear-gradient(120deg, #245a61 0%, #1b484f 100%);
color: #d8ecea;
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
}
.contact h2 {
color: #ffffff;
font-size: clamp(1.35rem, 3vw, 2.2rem);
margin-bottom: 0.4rem;
}
.contact p {
color: #c7e0de;
font-size: clamp(0.95rem, 1.05vw, 1.08rem);
}
.contact .btn-secondary {
border-color: rgba(255, 255, 255, 0.45);
background: rgba(255, 255, 255, 0.14);
color: #ffffff;
}
.logo-wall {
margin-top: 2rem;
padding: 1.5rem;
border-radius: 18px;
border: 1px solid #d4ddd4;
background: #ffffff;
box-shadow: 0 14px 30px rgba(28, 45, 41, 0.05);
}
.logo-wall h2 {
color: #21444a;
margin-bottom: 0.4rem;
}
.logo-grid {
margin-top: 1rem;
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 0.8rem;
}
.logo-item {
border: 1px solid #d8e0d8;
border-radius: 12px;
background: #f8faf7;
padding: 0.65rem;
}
.logo-item img {
width: 100%;
height: 160px;
object-fit: cover;
border-radius: 8px;
}
@keyframes rise {
from {
opacity: 0;
transform: translateY(14px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@media (max-width: 980px) {
.hero {
grid-template-columns: 1fr;
padding: 2.1rem;
}
.section-grid {
grid-template-columns: 1fr 1fr;
}
.process {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 700px) {
.section-grid {
grid-template-columns: 1fr;
}
.routine {
flex-direction: column;
align-items: flex-start;
}
.process {
grid-template-columns: 1fr 1fr;
}
.contact {
flex-direction: column;
align-items: flex-start;
padding: 1.5rem;
}
.logo-grid {
grid-template-columns: 1fr;
}
.hero-logo-strip {
grid-template-columns: 1fr;
}
}
</style>
{% endblock %}
{% block content %}
<section class="hero" id="top">
<div>
<span class="eyebrow">Lehrmittelverwaltungssoftware für Schulen</span>
<h1>Lehrmittel, Schul-IT und Ausleihen in einem sicheren System.</h1>
<p>
Invario ist eine Lehrmittelverwaltungssoftware, die Schulbibliothek, Inventar und digitale Ausleihe zusammenfuehrt. Prozesse bleiben bewusst schlank und schnell, waehrend Sicherheitsfunktionen wie rollenbasierte Rechte, Sitzungsabsicherung und nachvollziehbare Protokolle im Hintergrund dauerhaft aktiv sind.
</p>
<div class="cta-row">
{% if 'username' in session %}
<a class="btn btn-primary" href="{{ url_for('appointments') }}">Buchungsoption nutzen</a>
{% else %}
<a class="btn btn-primary" href="{{ url_for('login') }}">Buchungsoption nutzen</a>
{% endif %}
<a class="btn btn-secondary" href="{{ url_for('dienstleistungen') }}">Leistungen ansehen</a>
<a class="btn btn-secondary" href="{{ url_for('tutorial') }}">Tutorial ansehen</a>
<a class="btn btn-secondary" href="{{ url_for('kontakt') }}">Direkt kontaktieren</a>
</div>
</div>
<aside class="hero-card" aria-label="Kurzfakten für Schulen">
<div class="hero-logo-strip" aria-label="Logo Varianten">
<img src="{{ url_for('static', filename='images/logo-1.jpeg', v='20260330') }}" alt="Invario Logo 1">
<img src="{{ url_for('static', filename='images/logo-2.jpeg', v='20260330') }}" alt="Invario Logo 2">
<img src="{{ url_for('static', filename='images/logo-3.jpeg', v='20260330') }}" alt="Invario Logo 3">
</div>
<h3>Was Schulen besonders schätzen</h3>
<p>Klare Abläufe, feste Ansprechpartner und verständliche Oberflächen für den täglichen Einsatz.</p>
<div class="stats">
<div><strong>5 Min</strong><span>Einstieg pro Aufgabe</span></div>
<div><strong>1 Klick</strong><span>Status und Historie</span></div>
<div><strong>DSGVO</strong><span>Konform dokumentiert</span></div>
</div>
</aside>
</section>
<section class="section" id="nutzen" style="animation-delay: 100ms;">
<h2>Vorteile fuer Verwaltung und Bibliothek</h2>
<p>Alle Daten zu Lehrmitteln, Geraeten und Ausleihen sind gebuendelt, sodass Rückfragen schnell geklaert werden koennen.</p>
<div class="section-grid">
<article class="card">
<h3>Lehrmittel pro Klasse steuern</h3>
<p>Buecher und Unterrichtsmaterialien lassen sich klassenweise ausgeben und zum Schuljahresende sauber rueckfuehren.</p>
</article>
<article class="card">
<h3>Scanner-gestuetzte Ausleihe</h3>
<p>Barcode- oder QR-Workflows beschleunigen Ausgabe und Ruecknahme deutlich, auch bei grossen Bestandsmengen.</p>
</article>
<article class="card">
<h3>IT- und Medienbestand kombiniert</h3>
<p>Tablets, Laptops, Webcams und Print-Medien werden gemeinsam verwaltet statt in voneinander getrennten Listen.</p>
</article>
</div>
</section>
<section class="section" id="alltag" style="animation-delay: 180ms;">
<h2>Typische Lehrmittel-Szenarien</h2>
<p>Die folgenden Beispiele orientieren sich an realen Schulablaeufen mit Fokus auf Tempo und Nachvollziehbarkeit.</p>
<div class="routine-list">
<div class="routine">
<div>
<b>Neue Klassensaetze treffen ein</b>
Lehrmittel werden etikettiert, Klassen zugeordnet und mit Ausgabehistorie gespeichert.
</div>
<span>Lehrmittel</span>
</div>
<div class="routine">
<div>
<b>Rueckfrage zu ausgeliehenen Medien</b>
Verfuegbarkeit, Entleiher und Rueckgabedatum sind sofort sichtbar, ohne manuelle Listenpflege.
</div>
<span>Ausleihe</span>
</div>
<div class="routine">
<div>
<b>Defekt bei einem Endgeraet</b>
Zustand, Schaden und Verantwortlichkeiten werden dokumentiert, inklusive klarer Eskalationswege.
</div>
<span>Sicherheit</span>
</div>
</div>
</section>
<section class="section" id="sicherheit" style="animation-delay: 220ms;">
<h2>Erweiterte Sicherheit fuer den Schulbetrieb</h2>
<p>Die Plattform setzt auf Datenschutz und Betriebssicherheit, damit personenbezogene Daten und Inventardaten langfristig geschuetzt bleiben.</p>
<div class="section-grid">
<article class="card">
<h3>Rollen- und Bereichstrennung</h3>
<p>Bibliothek, Verwaltung und IT erhalten abgestufte Rechte, sodass jede Rolle nur ihre benoetigten Funktionen sieht.</p>
</article>
<article class="card">
<h3>Protokollierung und Nachweis</h3>
<p>Ausgaben, Ruecknahmen und kritische Admin-Aktionen werden dokumentiert und sind jederzeit auditierbar.</p>
</article>
<article class="card">
<h3>Gesicherte Web-Session</h3>
<p>Sicherheits-Header, HttpOnly-Cookies und klare Session-Richtlinien schuetzen den laufenden Betrieb vor typischen Webangriffen.</p>
</article>
</div>
</section>
<section class="logo-wall" id="logos">
<h2>Einblicke und Logo-Varianten</h2>
<p>Die folgenden Grafiken sind direkt aus dem statischen Bereich Ihrer Website eingebunden.</p>
<div class="logo-grid">
<figure class="logo-item">
<img src="{{ url_for('static', filename='images/logo-1.jpeg') }}" alt="Invario Logo Variante 1">
</figure>
<figure class="logo-item">
<img src="{{ url_for('static', filename='images/logo-2.jpeg') }}" alt="Invario Logo Variante 2">
</figure>
<figure class="logo-item">
<img src="{{ url_for('static', filename='images/logo-3.jpeg') }}" alt="Invario Logo Variante 3">
</figure>
</div>
</section>
<section class="section" id="ablauf" style="animation-delay: 260ms;">
<h2>So verläuft die Zusammenarbeit</h2>
<p>Ein klarer Prozess sorgt für Sicherheit, besonders bei begrenzten Zeitfenstern im Schulbetrieb.</p>
<div class="process" aria-label="Ablauf in fünf Schritten">
<div class="step"><strong>1. Kennenlernen</strong><small>Ziele klären</small></div>
<div class="step"><strong>2. Struktur</strong><small>Bestehende Abläufe erfassen</small></div>
<div class="step"><strong>3. Einrichtung</strong><small>System passgenau einstellen</small></div>
<div class="step"><strong>4. Schulung</strong><small>Praxisnah einführen</small></div>
<div class="step"><strong>5. Betrieb</strong><small>Persönlich begleiten</small></div>
</div>
</section>
<section class="contact" id="kontakt">
<div>
<h2>Beratung für den nächsten Digitalisierungsschritt</h2>
<p>Ein kurzes Gespräch schafft Klarheit über Prioritäten, Sicherheitsanforderungen und realistische Einführungsetappen für den Schulbetrieb.</p>
</div>
{% if 'username' in session %}
<a class="btn btn-secondary" href="{{ url_for('appointments') }}">Buchungsoption nutzen</a>
{% else %}
<a class="btn btn-secondary" href="{{ url_for('login') }}">Buchungsoption nutzen</a>
{% endif %}
</section>
{% endblock %}