1<!DOCTYPE html> 2<html lang="de"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Agrado</title> 7 <link rel="icon" type="image/png" href="assets/favicon.png?v=1"> 8 <!-- "?v=84" an style.css/den
8<script>-Tags unten: reine Cache-Busting- 9 Kennung ohne eigene Bedeutung â bei jeder inhaltlichen Ãnderung an 10 einer dieser Dateien hier hochzählen, damit Browser nach einem 11 Deployment garantiert die neue Version laden (statt ggf. eine 12 bereits im Tab zwischengespeicherte alte Datei weiterzuverwenden, 13 was zu genau der Art "Teile der Seite fehlen/funktionieren nicht"- 14 Fehlern führen kann, die sich sonst nur durch einen manuellen 15 Hard-Reload beheben lassen). Ergänzt die serverseitige 16 "Cache-Control: no-cache" in server.js, die nur künftige 17 Zwischenspeicherung verhindert, aber bereits vorher gecachte Dateien 18 nicht rückwirkend erneuert. --> 19 <link rel="stylesheet" href="style.css?v=84"> 20</head> 21<body> 22 <header> 23 <div class="header-content"> 24 <div class="brand"> 25 <span class="logo-badge" aria-hidden="true"> 26 <img src="assets/logo.png?v=1" alt="" width="896" height="612"> 27 </span> 28 <div> 29 <h1>Agrado</h1> 30 <p class="subtitle">Antragstyp wählen, Dokument hochladen und Angaben prüfen</p> 31 </div> 32 </div> 33 <!-- Ãsterreich-Warteliste: nur auf der öffentlichen Landingpage sinnvoll 34 (kein Login nötig, vor jeder App-Nutzung), daher rechts im 35 Header statt in der Seitenleiste/App â sichtbar/versteckt 36 zusammen mit #landing-view (siehe auth-ui.js: showLanding/ 37 showAuthForm/showSubscribeGate/showAppView). Nutzt bewusst 38 dieselben Element-IDs wie zuvor (waitlist.js liest per 39 getElementById, unabhängig von der DOM-Position). --> 40 <div id="header-waitlist-banner" class="header-waitlist-banner hidden"> 41 <form id="waitlist-oesterreich-form" class="header-waitlist-form"> 42 <span class="header-waitlist-label">ð¦ð¹ Agrado auch für Ãsterreich? Unverbindlich eintragen:</span> 43 <div class="header-waitlist-input-row"> 44 <input 45 type="email" 46 id="waitlist-oesterreich-email" 47 name="email" 48 placeholder="[email protected]" 49 required 50 aria-label="E-Mail-Adresse für die Ãsterreich-Warteliste" 51 > 52 <button type="submit" class="header-waitlist-button" id="waitlist-oesterreich-button"> 53 Eintragen 54 </button> 55 </div> 56 </form> 57 <p id="waitlist-oesterreich-success" class="header-waitlist-success hidden"> 58 Danke, wir melden uns, sobald es losgeht. 59 </p> 60 <p id="waitlist-oesterreich-error" class="header-waitlist-error hidden"></p> 61 <p class="header-waitlist-privacy-hint"> 62 Nur zur Benachrichtigung, keine Weitergabe. <a href="/datenschutz">Datenschutzerklärung</a>. 63 </p> 64 </div> 65 66 <!-- Globale Suche über alle bereits gespeicherten Anträge/Bescheide/ 67 Maschinen/Versicherungen/Pachtverträge/Rechnungen/Termine des 68 aktiven Betriebs (siehe global-search.js, GET /api/search in 69 server.js) â sichtbar/versteckt zusammen mit sidebar/account-bar 70 (siehe auth-ui.js), da sie nur innerhalb der eingeloggten App 71 Sinn ergibt. --> 72 <div id="global-search" class="global-search hidden"> 73 <div class="global-search-input-wrapper"> 74 <span class="global-search-icon" aria-hidden="true">ð</span> 75 <input 76 type="search" 77 id="global-search-input" 78 class="global-search-input" 79 placeholder="App durchsuchen â¦" 80 aria-label="App durchsuchen (Funktionen, Anträge, Bescheide, Dokumente, Termine)" 81 autocomplete="off" 82 > 83 </div> 84 <div id="global-search-panel" class="global-search-panel hidden"> 85 <p id="global-search-status" class="hint hidden"></p> 86 <div id="global-search-results" class="global-search-results"></div> 87 </div> 88 </div> 89 90 <div id="account-bar" class="account-bar hidden"> 91 <!-- Nur auf schmalen Bildschirmen sichtbar (siehe style.css) â öffnet 92 die Seitenleiste als Overlay, da sie dort standardmäÃig 93 ausgeblendet ist (siehe sidebar.js). --> 94 <button type="button" id="sidebar-mobile-toggle" class="sidebar-mobile-toggle" aria-label="Menü öffnen" aria-expanded="false">
95 <span aria-hidden="true">â°</span> 96 </button> 97 <span id="account-email" class="account-email"></span> 98 <span id="account-betrieb" class="account-betrieb hidden"></span> 99 <div class="notification-bell-wrapper"> 100 <button type="button" id="notification-bell-button" class="notification-bell-button" aria-label="Benachrichtigungen für Ihren Betrieb"> 101 <span aria-hidden="true">ð</span> 102 <span id="notification-bell-badge" class="notification-bell-badge hidden">0</span> 103 </button> 104 <div id="notification-bell-panel" class="notification-bell-panel hidden"> 105 <h3>Neuigkeiten für Ihren Betrieb</h3> 106 <p class="hint">Nur Meldungen, die zur Art Ihres aktiven Betriebs passen (grob aus Ihren gespeicherten Angaben abgeleitet).</p> 107 <div id="notification-bell-list" class="notification-bell-list"></div> 108 </div> 109 </div> 110 <button type="button" id="logout-button" class="logout-button">Abmelden</button> 111 </div> 112 </div> 113 </header> 114 115 <div class="app-shell"> 116 <!-- Persistente Seitenleiste â unabhängig davon, welche konkrete 117 eingeloggte Ansicht (App-Seiten oder die eingebettete "Was 118 brauche ich?"-Checkliste) gerade aktiv ist. Sichtbarkeit wird 119 zusammen mit #account-bar gesteuert (siehe sidebar.js/auth-ui.js), 120 nicht einzeln pro Ansicht â sonst würde sie beim Wechsel z. B. zur 121 Checkliste verschwinden, obwohl man ja gerade IN der App ist. --> 122 <nav id="sidebar" class="sidebar hidden"> 123 <button type="button" id="sidebar-collapse-toggle" class="sidebar-collapse-toggle" aria-label="Seitenleiste einklappen" aria-expanded="true"> 124 <span aria-hidden="true">«</span> 125 </button> 126 <div class="sidebar-nav"> 127 <button type="button" class="sidebar-link" data-page="dashboard"> 128 <span class="sidebar-link-icon" aria-hidden="true">ð </span><span class="sidebar-link-label">Ãbersicht</span> 129 </button> 130 <button type="button" class="sidebar-link" data-page="posteingang"> 131 <span class="sidebar-link-icon" aria-hidden="true">ð¥</span><span class="sidebar-link-label">Dokumente einsortieren</span> 132 </button> 133 <button type="button" class="sidebar-link" data-page="dokumente"> 134 <span class="sidebar-link-icon" aria-hidden="true">ðï¸</span><span class="sidebar-link-label">Meine Dokumente</span> 135 </button> 136 <button type="button" class="sidebar-link" data-page="betrieb-chat"> 137 <span class="sidebar-link-icon" aria-hidden="true">ð¬</span><span class="sidebar-link-label">Frag deinen Betrieb</span> 138 </button> 139 <button type="button" class="sidebar-link" data-page="antrag"> 140 <span class="sidebar-link-icon" aria-hidden="true">ð</span><span class="sidebar-link-label">Antrag stellen</span> 141 </button> 142 <button type="button" class="sidebar-link" data-page="foerderantrag"> 143 <span class="sidebar-link-icon" aria-hidden="true">ð¶</span><span class="sidebar-link-label">Förderantrag</span> 144 </button> 145 <button type="button" class="sidebar-link" data-page="fristen"> 146 <span class="sidebar-link-icon" aria-hidden="true">â³</span><span class="sidebar-link-label">Fristen</span> 147 </button> 148 <button type="button" class="sidebar-link" data-page="applications"> 149 <span class="sidebar-link-icon" aria-hidden="true">ð</span><span class="sidebar-link-label">Meine gespeicherten Anträge</span> 150 </button> 151 <button type="button" class="sidebar-link" data-page="betriebe"> 152 <span class="sidebar-link-icon" aria-hidden="true">ð</span><span class="sidebar-link-label">Meine Betriebe</span> 153 </button> 154 <button type="button" class="sidebar-link" data-page="tracker"> 155 <span class="sidebar-link-icon" aria-hidden="true">ð</span><span class="sidebar-link-label">Eigene Tracker</span> 156 </button> 157 <button type="button" class="sidebar-link" data-page="team">
158 <span class="sidebar-link-icon" aria-hidden="true">ð¥</span><span class="sidebar-link-label">Team verwalten</span> 159 </button> 160 <button type="button" class="sidebar-link" data-page="activity"> 161 <span class="sidebar-link-icon" aria-hidden="true">ð</span><span class="sidebar-link-label">Aktivitätsverlauf</span> 162 </button> 163 <button type="button" class="sidebar-link" data-page="chronik"> 164 <span class="sidebar-link-icon" aria-hidden="true">ð°ï¸</span><span class="sidebar-link-label">Betriebschronik</span> 165 </button> 166 <button type="button" class="sidebar-link" data-page="calendar"> 167 <span class="sidebar-link-icon" aria-hidden="true">ð </span><span class="sidebar-link-label">Kalender</span> 168 </button> 169 <button type="button" class="sidebar-link" data-page="checklist"> 170 <span class="sidebar-link-icon" aria-hidden="true">ð</span><span class="sidebar-link-label">Was brauche ich?</span> 171 </button> 172 <button type="button" class="sidebar-link" data-page="subscription"> 173 <span class="sidebar-link-icon" aria-hidden="true">ð³</span><span class="sidebar-link-label">Mein Abo</span> 174 </button> 175 <button type="button" class="sidebar-link" data-page="account"> 176 <span class="sidebar-link-icon" aria-hidden="true">âï¸</span><span class="sidebar-link-label">Kontoeinstellungen</span> 177 </button> 178 </div> 179 </nav> 180 <!-- Nur auf schmalen Bildschirmen sichtbar, während die Seitenleiste als 181 Overlay geöffnet ist â schlieÃt sie bei Klick daneben (siehe 182 sidebar.js). --> 183 <div id="sidebar-backdrop" class="sidebar-backdrop hidden"></div> 184 185 <main> 186 <!-- ===================== Ãffentliche Startseite ===================== --> 187 <div id="landing-view" class="narrow-view"> 188 <section class="card hero-identity-card"> 189 <h2 class="hero-identity-title">Werde wieder Chef deiner Zeit.</h2> 190 <p class="hero-identity-subtext"> 191 Agrado erledigt Anträge, Förderungen und Dokumentation für dich, damit du das tust, wofür du eigentlich 192 angetreten bist: auf dem Hof stehen, nicht am Schreibtisch. 193 </p> 194 </section> 195 196 <section class="card hero-card"> 197 <h2 class="hero-title">Förderanträge ausfüllen in Minuten statt Stunden</h2> 198 <p class="hero-lead"> 199 Agrado liest Ihre hochgeladenen Unterlagen automatisch aus und trägt die 200 wichtigsten Angaben direkt in die passenden Felder ein. Sie prüfen in Ruhe, 201 korrigieren bei Bedarf â und übernehmen erst, wenn wirklich alles stimmt. 202 </p> 203 <div class="hero-actions"> 204 <button type="button" class="submit-button hero-cta" data-show-view="register">Kostenlos testen</button> 205 <p class="hint subscribe-trial-highlight hero-trial-hint"> 206 <strong>3 Tage kostenlos testen</strong> â keine Kreditkarte nötig. 207 </p> 208 <button type="button" class="link-button" data-show-view="login">Bereits ein Konto? Anmelden</button> 209 </div> 210 211 <!-- Kompakte Vertrauens-Signale direkt beim Haupt-CTA, damit 212 Besucher sie VOR einem Klick sehen -- bewusst als kurze, 213 pillenförmige Hinweise statt langer Absätze (siehe Auftrag: 214 "kompakt und nicht überladen"). Wortlaut deckt sich mit 215 datenschutz.html (kein amtliches Portal, Agrado reicht selbst 216 nichts bei einer Behörde ein -- siehe z. B. "bevor Sie bei der 217 Behörde einreichen" weiter unten in der App) und 218 fileEncryption.js (echte AES-256-GCM-Verschlüsselung der 219 hochgeladenen Dokumente, kein Marketing-Versprechen ohne 220 technische Grundlage). --> 221 <div class="hero-trust-badges"> 222 <span class="hero-trust-badge"><span aria-hidden="true">ð¡ï¸</span> Kein Amtsportal â Agrado meldet nichts an Behörden, Ihre Daten bleiben bei Ihnen</span> 223 <span class="hero-trust-badge"><span aria-hidden="true">ð</span> Ihre Dokumente werden verschlüsselt gespeichert</span> 224 </div> 225 226 <button type="button" id="landing-checklist-button" class="export-option-button checklist-entry-button"> 227 ð Was brauche ich für meinen Antrag? 228 </button> 229 </section> 230 231 <!-- Sinngemäà wiedergegebenes (nicht wörtliches) Feedback von 232 Landwirt:innen zu Agrado -- ganz ohne Namen (nur "Landwirt" / 233 "Landwirtin") aus Datenschutzgründen, direkt nach dem Hero 234 platziert, damit es noch vor der ausführlichen Feature-Liste als 235 sozialer Beleg wirkt. --> 236 <section class="card hero-testimonials-card"> 237 <h3 class="hero-testimonials-heading">Das sagen Landwirte, die Agrado schon getestet haben:</h3> 238 <div class="hero-testimonials"> 239 <blockquote class="hero-testimonial"> 240 <p>âDie App ist wirklich gelungen â ich würde sie selbst nutzen und glaube, dass sie vielen Betrieben die Arbeit erleichtern kann.â</p> 241 <cite>Landwirt</cite> 242 </blockquote> 243 <blockquote class="hero-testimonial"> 244 <p>âBeeindruckend, wie durchdacht hier das Thema Papierkram angegangen wurde. Da steckt echt Potenzial drin.â</p> 245 <cite>Landwirtin</cite> 246 </blockquote> 247 </div> 248 </section> 249 250 <section class="card"> 251 <h2>Mehr als nur Formulare ausfüllen</h2> 252 <p class="hint"> 253 Agrado begleitet Ihren Betrieb von der ersten Unterlage bis zur nächsten Frist â 254 ein kurzer Ãberblick über die wichtigsten Vorteile: 255 </p> 256 <div class="landing-benefits-grid"> 257 <div class="landing-benefit-tile">
258 <span class="landing-benefit-icon" aria-hidden="true">ð</span> 259 <h3>20 Antragstypen automatisch ausgefüllt</h3> 260 <p>Vom Mehrfachantrag bis zur Berufsgenossenschaft: Dokument hochladen, Angaben prüfen, übernehmen â fertig.</p> 261 </div> 262 <div class="landing-benefit-tile"> 263 <span class="landing-benefit-icon" aria-hidden="true">ð¬</span> 264 <h3>Behördenbriefe verständlich erklärt</h3> 265 <p>Bescheide und amtliche Schreiben in einfacher Sprache erklärt â mit allen Fristen und den nötigen nächsten Schritten auf einen Blick.</p> 266 </div> 267 <div class="landing-benefit-tile"> 268 <span class="landing-benefit-icon" aria-hidden="true">ð¥</span> 269 <h3>Ein Postfach für den ganzen Papierkram</h3> 270 <p>Foto, Scan oder PDF: Agrado erkennt automatisch, worum es sich handelt, und ordnet jedes Dokument richtig ein.</p> 271 </div> 272 <div class="landing-benefit-tile"> 273 <span class="landing-benefit-icon" aria-hidden="true">ð </span> 274 <h3>Fristen nie wieder verpassen</h3> 275 <p>Alle wichtigen Termine und Bescheid-Fristen landen automatisch in Ihrem Kalender â rechtzeitig erinnert statt in letzter Minute.</p> 276 </div> 277 <div class="landing-benefit-tile"> 278 <span class="landing-benefit-icon" aria-hidden="true">ð¬</span> 279 <h3>Frag einfach â Ihr Betrieb antwortet</h3> 280 <p>Stellen Sie Fragen in eigenen Worten â die Antwort kommt sofort und basiert auf Ihren eigenen gespeicherten Daten.</p> 281 </div> 282 <div class="landing-benefit-tile"> 283 <span class="landing-benefit-icon" aria-hidden="true">ð¶</span> 284 <h3>Fördergelder entdecken, die sonst niemand findet</h3> 285 <p>Agrado durchsucht automatisch, welche zusätzlichen Förderprogramme zu Ihrem Betrieb passen könnten.</p> 286 </div> 287 <div class="landing-benefit-tile"> 288 <span class="landing-benefit-icon" aria-hidden="true">ð¥</span> 289 <h3>Team-Zugriff für Mitarbeiter & Berater</h3> 290 <p>Laden Sie Mitarbeitende oder Ihren Steuerberater mit passenden Rollen und Rechten ein â jede:r sieht nur, was er oder sie braucht.</p> 291 </div> 292 <div class="landing-benefit-tile"> 293 <span class="landing-benefit-icon" aria-hidden="true">â ï¸</span> 294 <h3>Stolperfallen frühzeitig erkennen</h3> 295 <p>Agrado prüft Ihre Angaben auf Auffälligkeiten und macht Sie rechtzeitig darauf aufmerksam â bevor das Amt nachfragt.</p> 296 </div> 297 </div> 298 <div class="hero-actions landing-benefits-cta"> 299 <button type="button" class="submit-button hero-cta" data-show-view="register">Kostenlos testen</button> 300 </div> 301 </section> 302 303 <section class="card"> 304 <h2>So funktioniert's</h2> 305 <div class="landing-steps"> 306 <div class="landing-step"> 307 <span class="step-number">1</span> 308 <div> 309 <h3>Dokument hochladen</h3> 310 <p class="hint">Laden Sie ein Foto oder PDF hoch â z. B. ein Betriebsdatenblatt oder eine Feldstückskarte.</p> 311 </div> 312 </div> 313 <div class="landing-step"> 314 <span class="step-number">2</span> 315 <div> 316 <h3>Automatisch ausfüllen lassen</h3> 317 <p class="hint">Agrado erkennt die relevanten Angaben und trägt sie in die passenden Felder ein.</p> 318 </div> 319 </div> 320 <div class="landing-step"> 321 <span class="step-number">3</span> 322 <div> 323 <h3>Prüfen und übernehmen</h3> 324 <p class="hint">Sie kontrollieren die erkannten Angaben, korrigieren bei Bedarf und übernehmen sie â als PDF oder Text für Ihren eigentlichen Antrag.</p> 325 </div> 326 </div> 327 </div> 328 <button type="button" class="submit-button" data-show-view="register">Kostenlos testen</button> 329 </section> 330 331 </div> 332 333 <!-- ===================== Anmeldebereich ===================== -->
334 <div id="auth-view" class="hidden narrow-view"> 335 <section class="card auth-card"> 336 <!-- Login --> 337 <form id="login-form" class="auth-form"> 338 <h2>Anmelden</h2> 339 <div class="field"> 340 <label for="login-email">E-Mail-Adresse</label> 341 <input type="email" id="login-email" name="email" autocomplete="username" required> 342 </div> 343 <div class="field"> 344 <label for="login-password">Passwort</label> 345 <input type="password" id="login-password" name="password" autocomplete="current-password" required> 346 </div> 347 <p id="login-error" class="auth-error hidden"></p> 348 <button type="submit" class="submit-button">Anmelden</button> 349 <div class="auth-links"> 350 <button type="button" class="link-button" data-show-view="forgot">Passwort vergessen?</button> 351 <button type="button" class="link-button" data-show-view="register">Noch kein Konto? Registrieren</button> 352 </div> 353 </form> 354 355 <!-- 2FA: Anmeldecode eingeben (nur, wenn der Nutzer 2FA aktiviert hat 356 UND das Gerät nicht als vertrauenswürdig gemerkt ist) --> 357 <form id="two-factor-form" class="auth-form hidden"> 358 <h2>Anmeldecode eingeben</h2> 359 <p class="hint"> 360 Wir haben einen 6-stelligen Code an <strong id="two-factor-email"></strong> gesendet. Der Code ist 361 10 Minuten gültig. Auf diesem Gerät wird er die nächsten 30 Tage nicht erneut abgefragt. 362 </p> 363 <p id="two-factor-mail-hint" class="hint hidden">Die E-Mail sollte in wenigen Minuten ankommen. Falls Sie nichts finden, schauen Sie bitte auch in Ihrem Spam-/Junk-Ordner nach.</p> 364 <div class="field"> 365 <label for="two-factor-code">Code</label> 366 <input type="text" id="two-factor-code" name="code" inputmode="numeric" pattern="[0-9]{6}" maxlength="6" autocomplete="one-time-code" required> 367 </div> 368 <p id="two-factor-error" class="auth-error hidden"></p> 369 <button type="submit" class="submit-button" id="two-factor-submit-button">Bestätigen</button> 370 <div class="auth-links"> 371 <button type="button" class="link-button" data-show-view="login">Zurück zur Anmeldung</button> 372 </div> 373 </form> 374 375 <!-- Registrierung --> 376 <form id="register-form" class="auth-form hidden"> 377 <h2>Konto erstellen</h2> 378 <p class="hint subscribe-trial-highlight"> 379 <strong><span id="register-trial-days"></span> Tage kostenlos testen</strong> â keine Kreditkarte nötig. 380 </p> 381 <div class="field"> 382 <label for="register-email">E-Mail-Adresse</label> 383 <input type="email" id="register-email" name="email" autocomplete="username" required> 384 </div> 385 <div class="field"> 386 <label for="register-password">Passwort</label> 387 <input type="password" id="register-password" name="password" autocomplete="new-password" required> 388 <span class="hint">Mindestens 8 Zeichen.</span> 389 </div> 390 <div class="field"> 391 <label for="register-password-confirm">Passwort wiederholen</label> 392 <input type="password" id="register-password-confirm" name="passwordConfirm" autocomplete="new-password" required> 393 </div> 394 <div class="field"> 395 <label for="register-betrieb-name">Betriebsname</label> 396 <input type="text" id="register-betrieb-name" name="betriebName" placeholder="z. B. Mein Betrieb" maxlength="120"> 397 <span class="hint">Für Ihren ersten Betrieb. Weitere Betriebe können Sie später jederzeit hinzufügen.</span> 398 </div> 399 <div class="field"> 400 <label for="register-bundesland">Bundesland</label> 401 <select id="register-bundesland" name="bundesland"> 402 <option value="">Bitte auswählen (optional)</option> 403 </select> 404 <span class="hint">Damit zeigen wir Ihnen beim Mehrfachantrag die passenden Portal-/Register-Begriffe. Kann auch später geändert werden.</span> 405 </div> 406 <div class="field"> 407 <label for="register-betriebsnummer">Betriebsnummer (optional)</label> 408 <input type="text" id="register-betriebsnummer" name="betriebsnummer" placeholder="z. B. 123456789" maxlength="60"> 409 </div> 410 <div class="checkbox-field"> 411 <label class="checkbox-label" for="register-terms"> 412 <input type="checkbox" id="register-terms" required>
413 <span> 414 Ich habe die <a href="/agb" target="_blank" rel="noopener">AGB</a> und die 415 <a href="/datenschutz" target="_blank" rel="noopener">Datenschutzerklärung</a> 416 gelesen und akzeptiere sie. 417 </span> 418 </label> 419 </div> 420 <p id="register-error" class="auth-error hidden"></p> 421 <button type="submit" class="submit-button" id="register-submit-button" disabled>Registrieren</button> 422 <div class="auth-links"> 423 <button type="button" class="link-button" data-show-view="login">Bereits ein Konto? Anmelden</button> 424 </div> 425 </form> 426 427 <!-- Passwort vergessen --> 428 <form id="forgot-form" class="auth-form hidden"> 429 <h2>Passwort vergessen</h2> 430 <p class="hint">Geben Sie Ihre E-Mail-Adresse ein. Wir schicken Ihnen einen Link zum Zurücksetzen.</p> 431 <div class="field"> 432 <label for="forgot-email">E-Mail-Adresse</label> 433 <input type="email" id="forgot-email" name="email" autocomplete="username" required> 434 </div> 435 <p id="forgot-error" class="auth-error hidden"></p> 436 <p id="forgot-success" class="auth-success hidden"></p> 437 <button type="submit" class="submit-button">Link anfordern</button> 438 <div class="auth-links"> 439 <button type="button" class="link-button" data-show-view="login">Zurück zur Anmeldung</button> 440 </div> 441 </form> 442 443 <!-- Neues Passwort setzen (via Link aus E-Mail) --> 444 <form id="reset-form" class="auth-form hidden"> 445 <h2>Neues Passwort vergeben</h2> 446 <div class="field"> 447 <label for="reset-password">Neues Passwort</label> 448 <input type="password" id="reset-password" name="password" autocomplete="new-password" required> 449 <span class="hint">Mindestens 8 Zeichen.</span> 450 </div> 451 <div class="field"> 452 <label for="reset-password-confirm">Passwort wiederholen</label> 453 <input type="password" id="reset-password-confirm" name="passwordConfirm" autocomplete="new-password" required> 454 </div> 455 <p id="reset-error" class="auth-error hidden"></p> 456 <p id="reset-success" class="auth-success hidden"></p> 457 <button type="submit" class="submit-button">Neues Passwort speichern</button> 458 <div class="auth-links"> 459 <button type="button" class="link-button" data-show-view="login">Zurück zur Anmeldung</button> 460 </div> 461 </form> 462 463 <!-- Team-Einladung annehmen (via Link aus E-Mail) --> 464 <form id="team-invite-form" class="auth-form hidden"> 465 <h2>Einladung annehmen</h2> 466 <p id="team-invite-context" class="hint">Einladung wird geladen â¦</p> 467 <div class="field"> 468 <label for="team-invite-password">Passwort vergeben</label> 469 <input type="password" id="team-invite-password" name="password" autocomplete="new-password" required> 470 <span class="hint">Mindestens 8 Zeichen.</span> 471 </div> 472 <div class="field"> 473 <label for="team-invite-password-confirm">Passwort wiederholen</label> 474 <input type="password" id="team-invite-password-confirm" name="passwordConfirm" autocomplete="new-password" required> 475 </div> 476 <p id="team-invite-error" class="auth-error hidden"></p> 477 <p id="team-invite-success" class="auth-success hidden"></p> 478 <button type="submit" class="submit-button" id="team-invite-submit-button">Beitreten</button> 479 <div class="auth-links"> 480 <button type="button" class="link-button" data-show-view="login">Zurück zur Anmeldung</button> 481 </div> 482 </form> 483 </section> 484 </div> 485 486 <!-- ===================== Kein aktives Abo ===================== --> 487 <div id="subscribe-view" class="hidden narrow-view"> 488 <section class="card auth-card"> 489 <h2>Abo abschlieÃen</h2> 490 <div id="subscribe-owner-fields"> 491 <p class="hint subscribe-trial-highlight"> 492 <strong><span id="subscribe-price"></span></strong> â jederzeit kündbar. 493 </p> 494 <p class="hint"> 495 Die Zahlung läuft sicher über Stripe â Ihre Kartendaten sehen wir zu keinem Zeitpunkt. 496 </p> 497 498 <details id="billing-details-gate" class="billing-details-block"> 499 <summary>Rechnungsdaten hinzufügen (optional)</summary> 500 <p class="hint"> 501 Für Ihre Buchhaltung: Diese Angaben erscheinen auf der Stripe-Rechnung. Privatpersonen können 502 sie frei lassen und einfach mit âAbo abschlieÃenâ fortfahren. 503 </p> 504 <form id="billing-details-form-gate"> 505 <div class="field"> 506 <label for="gate-billing-name">Firmenname / Rechnungsname</label> 507 <input type="text" id="gate-billing-name" name="name" maxlength="200"> 508 </div> 509 <div class="field"> 510 <label for="gate-billing-address-line1">StraÃe und Hausnummer</label> 511 <input type="text" id="gate-billing-address-line1" name="addressLine1" maxlength="200"> 512 </div> 513 <div class="field"> 514 <label for="gate-billing-address-line2">Adresszusatz (optional)</label> 515 <input type="text" id="gate-billing-address-line2" name="addressLine2" maxlength="200"> 516 </div> 517 <div class="field-row"> 518 <div class="field"> 519 <label for="gate-billing-postal-code">PLZ</label> 520 <input type="text" id="gate-billing-postal-code" name="postalCode" maxlength="20"> 521 </div> 522 <div class="field"> 523 <label for="gate-billing-city">Ort</label> 524 <input type="text" id="gate-billing-city" name="city" maxlength="120"> 525 </div> 526 </div> 527 <div class="field"> 528 <label for="gate-billing-vat-id">USt-IdNr. (optional)</label> 529 <input type="text" id="gate-billing-vat-id" name="vatId" maxlength="20" placeholder="z. B. DE123456789"> 530 </div>
531 <p id="billing-details-gate-error" class="auth-error hidden"></p> 532 <p id="billing-details-gate-status" class="auth-success hidden"></p> 533 <button type="submit" class="export-option-button">Rechnungsdaten speichern</button> 534 </form> 535 </details> 536 537 <button type="button" id="checkout-button" class="submit-button">Abo abschlieÃen</button> 538 </div> 539 <p id="subscribe-member-notice" class="hint hidden"></p> 540 <p id="subscribe-error" class="auth-error hidden"></p> 541 <p id="subscribe-status" class="auth-success hidden"></p> 542 </section> 543 </div> 544 545 <!-- ===================== "Was brauche ich?"-Checkliste ===================== 546 Eigenständige, auch ohne Login nutzbare Ansicht â dient als 547 Einstiegspunkt für neue Interessenten (Landingpage) UND ist im 548 eingeloggten Bereich über den Account-Bar-Button erreichbar. Welche 549 Ansicht beim SchlieÃen/CTA-Klick wieder gezeigt wird, steuert 550 checklist.js über data-checklist-return. --> 551 <div id="checklist-view" class="hidden narrow-view"> 552 <section class="card"> 553 <button type="button" id="checklist-back-button" class="link-button checklist-back-button">â Zurück</button> 554 <h2>Was brauche ich für meinen Antrag?</h2> 555 <p class="hint"> 556 Wählen Sie Ihren Antragstyp, um zu sehen, welche Unterlagen typischerweise gebraucht werden â bevor Sie 557 überhaupt etwas hochladen. Keine Anmeldung nötig. 558 </p> 559 <p class="hint"> 560 <a href="/ki-erkennung" target="_blank" rel="noopener">Wie zuverlässig ist die automatische Erkennung hochgeladener Dokumente?</a> 561 </p> 562 563 <div id="checklist-type-selector" class="type-selector"> 564 <button type="button" class="type-option" data-checklist-type="mehrfachantrag">Mehrfachantrag / GAP-Förderantrag</button> 565 <button type="button" class="type-option" data-checklist-type="ausgleichszulage">Ausgleichszulage benachteiligte Gebiete</button> 566 <button type="button" class="type-option" data-checklist-type="bg_jahresmeldung">Berufsgenossenschaft-Jahresmeldung</button> 567 <button type="button" class="type-option" data-checklist-type="krankenkasse_fragebogen">Krankenkasse/Alterskasse-Fragebogen</button> 568 <button type="button" class="type-option" data-checklist-type="duengeverordnung">Düngeverordnung-Dokumentation</button> 569 <button type="button" class="type-option" data-checklist-type="tierhaltungskennzeichnung">Tierhaltungskennzeichnung (Schweinehaltung)</button> 570 <button type="button" class="type-option" data-checklist-type="hit_meldung">HIT-Datenbank-Meldung (Rinder/Schafe/Ziegen)</button> 571 <button type="button" class="type-option" data-checklist-type="nebentaetigkeiten">Meldepflicht Nebentätigkeiten (Direktvermarktung/Hofladen)</button> 572 <button type="button" class="type-option" data-checklist-type="itw_quartalsmeldung">Initiative Tierwohl (ITW) â Quartalsmeldung</button> 573 <button type="button" class="type-option" data-checklist-type="weinbaukartei">Weinbaukartei-Meldung</button> 574 <button type="button" class="type-option" data-checklist-type="bienenseuchenkasse">Bienenseuchenkasse/Imkerei-Förderung</button> 575 <button type="button" class="type-option" data-checklist-type="biogas_meldung">Biogasanlagen-Meldung (EEG-Anlagenregister)</button> 576 <button type="button" class="type-option" data-checklist-type="junglandwirte">Junglandwirte-Förderung/Niederlassungsbeihilfe</button> 577 <button type="button" class="type-option" data-checklist-type="tam_meldung">Antibiotika-MaÃnahmenplan (TAM-Meldung)</button> 578 <button type="button" class="type-option" data-checklist-type="agrarstrukturerhebung">Agrarstrukturerhebung</button> 579 <button type="button" class="type-option" data-checklist-type="gloez2_ueberpruefung">GLÃZ 2 â Antrag auf Ãberprüfung</button> 580 <button type="button" class="type-option" data-checklist-type="wolfsriss_entschaedigung">Wolfsriss-Entschädigungsantrag</button> 581 <button type="button" class="type-option" data-checklist-type="hagelversicherung_zuschuss">Hagelversicherungs-Zuschussantrag</button> 582 <button type="button" class="type-option" data-checklist-type="schulprogramm_eu">EU-Schulmilch-/Schulobstprogramm</button> 583 <button type="button" class="type-option" data-checklist-type="wasserentnahme">Wasserentnahme-Genehmigung/-Meldung</button> 584 <button type="button" class="type-option" data-checklist-type="psm_dokumentation">Pflanzenschutzmittel-Dokumentation</button> 585 <button type="button" class="type-option" data-checklist-type="schaedlingsbekaempfung">Schädlingsbekämpfung/Rodentizid-Dokumentation</button> 586 <button type="button" class="type-option" data-checklist-type="afp_investfoerderung">Agrarinvestitionsförderung (AFP) â Antragsmantel</button> 587 <button type="button" class="type-option" data-checklist-type="afp_tierhaltung_anlage1">Agrarinvestitionsförderung (AFP) â Anlage 1 (Tierhaltung)</button> 588 <button type="button" class="type-option" data-checklist-type="afp_siuk_umwelt_klimaschutz">Agrarinvestitionsförderung (AFP) â SIUK Umwelt-/Klimaschutz</button> 589 <button type="button" class="type-option" data-checklist-type="afp_junglandwirt_aufschlag">Agrarinvestitionsförderung (AFP) â Junglandwirt-Aufschlag</button> 590 <button type="button" class="type-option" data-checklist-type="afp_bewaesserung">Agrarinvestitionsförderung (AFP) â Bewässerung</button> 591 <button type="button" class="type-option" data-checklist-type="afp_anbindehaltung_umstellung">Agrarinvestitionsförderung (AFP) â Umstellung Anbindehaltung</button> 592 <button type="button" class="type-option" data-checklist-type="afp_eip_aufschlag">Agrarinvestitionsförderung (AFP) â EIP-Aufschlag</button> 593 <button type="button" class="type-option" data-checklist-type="afp_betreuerzuschuss">Agrarinvestitionsförderung (AFP) â Betreuerzuschuss</button> 594 <button type="button" class="type-option" data-checklist-type="afp_erschliessungszuschuss">Agrarinvestitionsförderung (AFP) â ErschlieÃungszuschuss</button> 595 <button type="button" class="type-option" data-checklist-type="afp_bayern_milchvieh_laufstall">Einzelbetriebliche Investitionsförderung (EIF Teil A) â Bayern, Milchvieh Laufstall-Erstumstellung</button> 596 <button type="button" class="type-option" data-checklist-type="afp_bayern_zuchtsauen">Einzelbetriebliche Investitionsförderung (EIF Teil A) â Bayern, Zuchtsauenhaltung</button> 597 <button type="button" class="type-option" data-checklist-type="afp_bayern_rinderhaltung_allgemein">Einzelbetriebliche Investitionsförderung (EIF Teil A) â Bayern, Rinderhaltung allgemein</button> 598 <button type="button" class="type-option" data-checklist-type="afp_bayern_weitere_tierarten">Einzelbetriebliche Investitionsförderung (EIF Teil A) â Bayern, weitere Tierarten</button> 599 <button type="button" class="type-option" data-checklist-type="afp_bayern_betreuerzuschuss">Einzelbetriebliche Investitionsförderung (EIF Teil A) â Bayern, Betreuerzuschuss</button> 600 <button type="button" class="type-option" data-checklist-type="afp_nrw_tierwohl">Agrarinvestitionsförderung (AFP) â NRW, Tierwohlinvestitionen (§ 9.4.1a)</button> 601 <button type="button" class="type-option" data-checklist-type="afp_nrw_kombiinvestitionen">Agrarinvestitionsförderung (AFP) â NRW, Kombiinvestitionen (§ 9.4.1b)</button> 602 <button type="button" class="type-option" data-checklist-type="afp_nrw_bewaesserung_resilienz">Agrarinvestitionsförderung (AFP) â NRW, Bewässerung/Resilienz (§ 9.4.1c)</button> 603 <button type="button" class="type-option" data-checklist-type="afp_nrw_sonstige">Agrarinvestitionsförderung (AFP) â NRW, Sonstige Investitionen (§ 9.4.1d)</button> 604 <button type="button" class="type-option" data-checklist-type="afp_nrw_junglandwirt">Agrarinvestitionsförderung (AFP) â NRW, Junglandwirt-Zuschlag (§ 9.4.2)</button> 605 <button type="button" class="type-option" data-checklist-type="afp_nds_tierhaltung_anlage1">Agrarinvestitionsförderung (AFP) â Niedersachsen, Tierhaltung Anlage 1</button> 606 <button type="button" class="type-option" data-checklist-type="afp_nds_tierhaltung_anlage2">Agrarinvestitionsförderung (AFP) â Niedersachsen, Tierhaltung Anlage 2</button> 607 <button type="button" class="type-option" data-checklist-type="afp_nds_sonstige">Agrarinvestitionsförderung (AFP) â Niedersachsen, Sonstige Investitionen</button> 608 <button type="button" class="type-option" data-checklist-type="afp_nds_siuk">Agrarinvestitionsförderung (AFP) â Niedersachsen, SIUK-MaÃnahmen</button> 609 <button type="button" class="type-option" data-checklist-type="afp_nds_bewaesserung">Agrarinvestitionsförderung (AFP) â Niedersachsen, Bewässerung</button> 610 <button type="button" class="type-option" data-checklist-type="afp_nds_junglandwirt">Agrarinvestitionsförderung (AFP) â Niedersachsen, Junglandwirt-Zuschlag</button> 611 <button type="button" class="type-option" data-checklist-type="afp_nds_betreuerzuschuss">Agrarinvestitionsförderung (AFP) â Niedersachsen, Betreuerzuschuss</button> 612 <button type="button" class="type-option" data-checklist-type="afp_sh_stallbau_anlage1">Agrarinvestitionsförderung (AFP) â Schleswig-Holstein, Stallbau Anlage 1</button> 613 <button type="button" class="type-option" data-checklist-type="afp_sh_stallbau_erhoeht">Agrarinvestitionsförderung (AFP) â Schleswig-Holstein, Stallbau Anlage 1 (erhöhter Satz)</button> 614 <button type="button" class="type-option" data-checklist-type="afp_sh_stallbau_anlage2">Agrarinvestitionsförderung (AFP) â Schleswig-Holstein, Stallbau Anlage 2</button> 615 <button type="button" class="type-option" data-checklist-type="afp_sh_siuk">Agrarinvestitionsförderung (AFP) â Schleswig-Holstein, SIUK-MaÃnahmen</button> 616 <button type="button" class="type-option" data-checklist-type="afp_sh_lagerstaetten">
616Agrarinvestitionsförderung (AFP) â Schleswig-Holstein, Lagerstätten</button> 617 <button type="button" class="type-option" data-checklist-type="afp_he_stallbau_premium">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, Stallbau Premium</button> 618 <button type="button" class="type-option" data-checklist-type="afp_he_siuk_stallbaufrei">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, SIUK stallbaufrei</button> 619 <button type="button" class="type-option" data-checklist-type="afp_he_stallbau_siuk_kombi">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, Stallbau + SIUK kombiniert</button> 620 <button type="button" class="type-option" data-checklist-type="afp_he_siuk_nichtproduktiv">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, SIUK nichtproduktiv</button> 621 <button type="button" class="type-option" data-checklist-type="afp_he_bewaesserung">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, Bewässerung</button> 622 <button type="button" class="type-option" data-checklist-type="afp_he_sonstige">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, Sonstige Investitionen</button> 623 <button type="button" class="type-option" data-checklist-type="afp_he_junglandwirt">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, Junglandwirt-Zuschlag</button> 624 <button type="button" class="type-option" data-checklist-type="afp_he_betreuerzuschuss">Einzelbetriebliche Investitionsförderung (EFP) â Hessen, Betreuerzuschuss</button> 625 <button type="button" class="type-option" data-checklist-type="afp_rlp_investition">Agrarinvestitionsförderungsprogramm (EULLE) â Rheinland-Pfalz, Investition</button> 626 <button type="button" class="type-option" data-checklist-type="afp_rlp_junglandwirt">Agrarinvestitionsförderungsprogramm (EULLE) â Rheinland-Pfalz, Junglandwirt-Zuschlag</button> 627 </div> 628 629 <div id="checklist-bundesland-field" class="field hidden"> 630 <label for="checklist-bundesland">Ihr Bundesland</label> 631 <select id="checklist-bundesland"> 632 <option value="">Bitte auswählen (optional)</option> 633 </select> 634 <span class="hint">Für die genaue Bezeichnung Ihres Landesportals und die Frist.</span> 635 </div> 636 637 <div id="checklist-result" class="hidden"> 638 <p id="checklist-portal-info" class="checklist-portal-info hidden"></p> 639 <p id="checklist-note" class="hint"></p> 640 641 <div class="checklist-progress"> 642 <div class="checklist-progress-bar"> 643 <div id="checklist-progress-fill" class="checklist-progress-fill"></div> 644 </div> 645 <span id="checklist-progress-text" class="checklist-progress-text"></span> 646 </div> 647 648 <ul id="checklist-items" class="checklist-items"></ul> 649 650 <div class="checklist-cta"> 651 <p class="hint">Diese Liste dient nur zur Orientierung â nichts davon ist Pflicht, um mit dem Hochladen zu starten.</p> 652 <button type="button" id="checklist-cta-button" class="submit-button">Bereit? Jetzt Dokumente hochladen</button> 653 </div> 654 </div> 655 </section> 656 </div> 657 658 <!-- ===================== Angemeldeter Bereich ===================== --> 659 <div id="app-view" class="hidden"> 660 <!-- "Erkunden"-Modus: ohne aktives Abo/Trial kann die gesamte 661 Oberfläche trotzdem angesehen/navigiert werden (siehe 662 auth-ui.js: enterAppOrGate) â nur echte Aktionen scheitern 663 weiterhin serverseitig an subscription.requireActiveSubscriptionForBetrieb 664 (unverändert). EIN gemeinsamer Banner mit zwei Erscheinungsformen 665 (siehe auth-ui.js: renderGlobalAccessBanner): 666 - Laufende kostenlose Testphase: freundlicher Hinweis mit 667 Resttagen (Modifier-Klasse "subscription-required-banner--info", 668 siehe style.css), proaktiv auf jeder Funktionsseite sichtbar. 669 - Kein Zugriff (Testphase abgelaufen UND kein aktives Abo): der 670 "gesperrt"-Hinweis mit Schloss-Symbol, ausgelöst entweder 671 proaktiv hier oder reaktiv bei einem 402 (siehe net.js: 672 fetchWithTimeout â window.showSubscriptionRequiredBanner). 673 Auf der "Mein Abo"-Seite selbst wird dieser Banner nie gezeigt -- 674 die Seite hat dafür ihre eigene, dedizierte Karte (siehe
675 updateSubscriptionCard). Sticky statt fixed, damit er innerhalb 676 der jeweiligen Seite nach oben rutscht statt über der 677 Seitenleiste zu schweben, aber beim Scrollen sichtbar bleibt. --> 678 <div id="subscription-required-banner" class="subscription-required-banner hidden" role="alert"> 679 <span id="subscription-required-banner-icon" class="subscription-required-banner-icon" aria-hidden="true">ð</span> 680 <span id="subscription-required-banner-text" class="subscription-required-banner-text"></span> 681 <button type="button" id="subscription-required-banner-checkout-button" class="submit-button subscription-required-banner-checkout-button"> 682 Abo abschlieÃen 683 </button> 684 <button type="button" id="subscription-required-banner-dismiss-button" class="subscription-required-banner-dismiss" aria-label="Hinweis schlieÃen">Ã</button> 685 </div> 686 687 <!-- ===================== Seite: Betriebsgesundheit-Dashboard ===================== 688 Startseite nach jedem Login (siehe auth-ui.js: showAppView) â eine 689 kompakte Ampel-Ãbersicht, die NUR bereits an anderer Stelle 690 berechnete Informationen zusammenfasst (Fristen, "Das könnte noch 691 fehlen", Plausibilitätsprüfung, Regeländerungen, Förderungen, 692 Bescheide â siehe GET /api/dashboard/dashboardCheck.js in 693 server.js). Kein eigenes Formular, keine eigene Speicherung â 694 jeder Eintrag springt per Klick zur zuständigen Stelle (siehe 695 dashboard.js). --> 696 <div id="page-dashboard" class="app-page hidden"> 697 <section id="dashboard-section" class="card"> 698 <h2>Betriebsgesundheit</h2> 699 <p class="hint">Ein schneller Ãberblick über alles, was für Ihren aktiven Betrieb gerade ansteht.</p> 700 <p id="dashboard-status" class="extraction-status hidden"></p> 701 702 <div id="dashboard-alles-ok" class="dashboard-alles-ok hidden"> 703 <span class="dashboard-alles-ok-icon" aria-hidden="true">â </span> 704 <div> 705 <div class="dashboard-alles-ok-titel">Alles im grünen Bereich!</div> 706 <p class="dashboard-alles-ok-text">Aktuell gibt es nichts Dringendes zu tun.</p> 707 </div> 708 </div> 709 710 <div id="dashboard-liste" class="dashboard-liste"></div> 711 </section> 712 </div> 713 714 <!-- ===================== Seite: Posteingang ===================== 715 Zentrale Upload-Fläche für JEDES Dokument ohne vorherige 716 Kategoriewahl â die KI schlägt eine Kategorie vor (siehe 717 posteingang.js), der Nutzer bestätigt/korrigiert, danach wird das 718 Dokument in genau die bestehende Struktur der jeweiligen 719 Kategorie einsortiert (Antrag-Upload-Flow via 720 showPage("antrag")+selectType+handleFiles, oder 721 starteDokumentErkennungsAblauf für Bescheide/Maschinen/ 722 Versicherungen/Pachtverträge/Rechnungen) â kein eigenes, 723 paralleles Speichersystem. Nur bei unsicherer/fehlender 724 Einordnung landet ein Dokument in der "Unsortiert"-Ãbersicht 725 unten (POST/GET/DELETE /api/posteingang in server.js). --> 726 <div id="page-posteingang" class="app-page hidden"> 727 <section id="posteingang-section" class="card"> 728 <h2>Dokumente automatisch einsortieren</h2> 729 <p class="hint"> 730 Laden Sie hier ein beliebiges Dokument hoch (PDF oder Foto), ganz ohne vorher eine Kategorie auszuwählen. 731 Agrado erkennt automatisch, worum es sich handelt â Antrag, Bescheid, Maschinen-/Versicherungsunterlage, 732 Pachtvertrag oder Rechnung â und schlägt die passende Einsortierung vor. Sie bestätigen oder korrigieren 733 den Vorschlag, bevor das Dokument an die richtige Stelle in Agrado einsortiert wird. 734 </p> 735 <div class="legal-disclaimer"> 736 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 737 <span> 738 Die automatische Einordnung ist nur ein Vorschlag, keine verbindliche Zuordnung. Bitte prüfen Sie die 739 vorgeschlagene Kategorie, bevor Sie sie bestätigen. 740 </span> 741 </div> 742 743 <label for="posteingang-file-input" id="posteingang-drop-zone" class="drop-zone">
744 <span class="drop-zone-icon">ð¥</span> 745 <span class="drop-zone-text">Dokument(e) (PDF oder Foto) hierher ziehen<br>oder klicken zum Auswählen</span> 746 <input type="file" id="posteingang-file-input" accept=".pdf,image/*" multiple hidden> 747 </label> 748 <p class="hint upload-reliability-hint"> 749 Die automatische Einordnung funktioniert am zuverlässigsten bei klaren, gut lesbaren PDF- oder 750 Foto-Dokumenten mit Standardformaten. Handschriftliche oder sehr unübliche Dokumente werden 751 möglicherweise nicht korrekt erkannt. 752 <a href="/ki-erkennung" target="_blank" rel="noopener">Mehr erfahren</a> 753 </p> 754 755 <div id="posteingang-review-list"></div> 756 </section> 757 758 <section id="posteingang-unsortiert-section" class="card"> 759 <h2>Unsortiert</h2> 760 <p class="hint"> 761 Dokumente, die noch keiner Kategorie zugewiesen wurden â entweder weil die automatische Einordnung 762 unsicher war, oder weil Sie die Zuordnung auf später verschoben haben. Ordnen Sie sie hier jederzeit 763 manuell zu. 764 </p> 765 <p id="posteingang-unsortiert-status" class="auth-error hidden"></p> 766 <div id="posteingang-unsortiert-list" class="bescheide-list"></div> 767 </section> 768 </div> 769 770 <!-- ===================== Seite: Eigene Tracker ===================== 771 Frei konfigurierbare Tabellen als Excel-Ersatz für betriebsspezifische 772 Verwaltungsaufgaben (siehe tracker.js, server.js: /api/trackers). 773 Drei Unteransichten innerhalb dieser einen Seite (Ãbersicht/Anlegen/ 774 Detail), per JS ein-/ausgeblendet â genau wie bescheide.js' 775 Datei/Text-Umschalter, nur mit drei statt zwei Zuständen. --> 776 <div id="page-tracker" class="app-page hidden"> 777 <section id="tracker-list-section" class="card"> 778 <div class="tracker-list-header"> 779 <h2>Eigene Tracker</h2> 780 </div> 781 <p class="hint"> 782 Eigene, frei benannte Tabellen für alles, was in kein festes Formular passt â z. B. 783 Besamungstermine, Futtermittel-Bestand oder eigene Kalkulationen je Feldstück. Sie legen die 784 Spalten selbst fest (Text, Zahl oder Datum) und pflegen beliebig viele Einträge, wie in einer 785 eigenen kleinen Tabelle. 786 </p> 787 788 <div id="tracker-quickstart" class="tracker-quickstart"> 789 <h3>Neuen Tracker starten</h3> 790 <div id="tracker-quickstart-templates" class="tracker-template-list"></div> 791 <button type="button" id="tracker-blank-button" class="link-button">Eigenen Tracker von Grund auf erstellen</button> 792 </div> 793 794 <p id="tracker-status" class="hint hidden"></p> 795 <h3 id="tracker-list-heading" class="tracker-list-subheading hidden">Meine Tracker</h3> 796 <div id="tracker-list" class="tracker-card-list"></div> 797 </section> 798 799 <section id="tracker-create-section" class="card hidden"> 800 <h2 id="tracker-create-heading">Neuen Tracker anlegen</h2> 801 <p class="hint">Passen Sie Name und Spalten nach Bedarf an, bevor Sie den Tracker anlegen.</p> 802 <div id="tracker-create-disclaimer" class="legal-disclaimer legal-disclaimer-strong hidden"> 803 <span class="legal-disclaimer-icon">â ï¸</span> 804 <span id="tracker-create-disclaimer-text"></span> 805 </div> 806 807 <form id="tracker-create-form"> 808 <div class="field"> 809 <label for="tracker-name-input">Name des Trackers</label> 810 <input type="text" id="tracker-name-input" name="name" placeholder="z. B. Besamungstermine" required maxlength="120"> 811 </div> 812 813 <p class="hint">Spalten (Name + Typ):</p> 814 <div id="tracker-columns-editor" class="tracker-columns-editor"></div> 815 <button type="button" id="tracker-add-column-button" class="link-button">+ Spalte hinzufügen</button> 816 817 <p id="tracker-create-error" class="auth-error hidden"></p> 818 819 <div class="tracker-form-actions"> 820 <button type="submit" id="tracker-create-submit" class="submit-button">Tracker anlegen</button> 821 <button type="button" id="tracker-create-cancel" class="link-button">Abbrechen</button> 822 </div> 823 </form> 824 </section> 825 826 <section id="tracker-detail-section" class="card hidden"> 827 <div class="tracker-detail-header"> 828 <button type="button" id="tracker-back-button" class="link-button">â Zurück zur Ãbersicht</button> 829 <h2 id="tracker-detail-title"></h2> 830 <button type="button" id="tracker-rename-button" class="link-button" title="Tracker umbenennen">âï¸ Umbenennen</button> 831 <button type="button" id="tracker-delete-button" class="link-button tracker-delete-button">Tracker löschen</button> 832 </div> 833 <div id="tracker-rename-form" class="tracker-rename-form hidden"> 834 <input type="text" id="tracker-rename-input" maxlength="120" placeholder="Name des Trackers"> 835 <button type="button" id="tracker-rename-save-button" class="submit-button">Speichern</button> 836 <button type="button" id="tracker-rename-cancel-button" class="link-button">Abbrechen</button>
837 <p id="tracker-rename-error" class="auth-error hidden"></p> 838 </div> 839 <div id="tracker-detail-disclaimer" class="legal-disclaimer legal-disclaimer-strong hidden"> 840 <span class="legal-disclaimer-icon">â ï¸</span> 841 <span id="tracker-detail-disclaimer-text"></span> 842 </div> 843 <p id="tracker-detail-status" class="hint hidden"></p> 844 <div id="tracker-table-wrapper" class="tracker-table-wrapper"> 845 <table id="tracker-table" class="tracker-table"></table> 846 </div> 847 <p id="tracker-fruchtfolge-info-hint" class="hint tracker-fruchtfolge-info-hint hidden"> 848 <span aria-hidden="true">ð±</span> 849 Sobald für einen Schlag bereits Einträge aus einem früheren Jahr vorhanden sind, schlägt Agrado beim 850 Eintragen des nächsten Jahres automatisch eine passende Kulturart vor. 851 </p> 852 <div class="tracker-detail-actions"> 853 <button type="button" id="tracker-add-row-button" class="submit-button">+ Eintrag hinzufügen</button> 854 <button type="button" id="tracker-detail-add-column-button" class="link-button">+ Spalte hinzufügen</button> 855 </div> 856 <div id="tracker-detail-add-column-form" class="tracker-add-column-form hidden"></div> 857 </section> 858 </div> 859 860 <!-- ===================== Seite: Frag deinen Betrieb ===================== 861 Chat-Interface über die bereits gespeicherten Betriebsdaten â die 862 KI antwortet serverseitig AUSSCHLIESSLICH auf Basis der für den 863 aktiven Betrieb aggregierten echten Daten (siehe 864 POST /api/betrieb-chat in server.js: buildBetriebChatContext). 865 Der Frage-Antwort-Verlauf lebt nur im Browser der aktuellen 866 Sitzung (kein serverseitiger Chat-Speicher) â siehe 867 betrieb-chat.js. --> 868 <div id="page-betrieb-chat" class="app-page hidden"> 869 <section id="betrieb-chat-section" class="card"> 870 <h2>Frag deinen Betrieb</h2> 871 <p class="betrieb-chat-ki-hinweis"> 872 Sie interagieren hier mit einer Künstlichen Intelligenz (KI) â die Antworten werden automatisiert 873 erzeugt, nicht von einem Menschen. 874 </p> 875 <p class="hint"> 876 Stellen Sie Fragen in normaler Sprache zu Ihrem Betrieb, z. B. "Wann endet mein Pachtvertrag?", "Wie 877 viele Hektar habe ich insgesamt?" oder "Wo ist der Bescheid von der Berufsgenossenschaft?". Die Antwort 878 basiert ausschlieÃlich auf Ihren bereits bei Agrado gespeicherten Daten. 879 </p> 880 <div class="legal-disclaimer"> 881 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 882 <span> 883 Antworten basieren ausschlieÃlich auf Ihren bei Agrado gespeicherten Daten und können unvollständig 884 sein, falls nicht alle Unterlagen hochgeladen wurden. Keine Rechts- oder Steuerberatung. 885 </span> 886 </div> 887 888 <div id="betrieb-chat-verlauf" class="betrieb-chat-verlauf"></div> 889 <p id="betrieb-chat-status" class="extraction-status hidden"></p> 890 891 <form id="betrieb-chat-form" class="betrieb-chat-form"> 892 <textarea 893 id="betrieb-chat-input" 894 class="betrieb-chat-input" 895 aria-label="Ihre Frage" 896 rows="4" 897 maxlength="1000" 898 placeholder="Stellen Sie hier Ihre Frage â auch ausführlicher, mit mehreren Sätzen â¦" 899 required 900 ></textarea> 901 <button type="submit" id="betrieb-chat-submit-button" class="submit-button">Fragen</button> 902 </form> 903 </section> 904 </div> 905 906 <!-- ===================== Seite: Fristen ===================== 907 War früher Teil von "Antrag stellen" (#page-antrag) â als eigene 908 Sidebar-Seite ausgelagert, damit "Antrag stellen" nicht zwei 909 unabhängige Aufgaben (Fristen nachschlagen vs. einen Antrag 910 ausfüllen) auf einer Seite vermischt. renderFristen() selbst
911 (script.js) ist unverändert, nur der Lade-Zeitpunkt wandert von 912 PAGE_LOAD_HANDLERS.antrag zu PAGE_LOAD_HANDLERS.fristen (siehe 913 sidebar.js). --> 914 <div id="page-fristen" class="app-page hidden"> 915 <section id="fristen-section" class="card"> 916 <h2>Wichtige Fristen</h2> 917 <p class="hint"> 918 Für einen Teil der Antragsarten sind feste, wiederkehrende Termine bekannt (Countdown mit Farbe). 919 Bei anderen hängt die Frist vom Einzelfall, Bundesland oder Ereignis ab, oder es gibt gar keinen 920 festen Jahrestermin â dort steht statt eines Countdowns ein ehrlicher Hinweis, wo Sie die genaue 921 Frist erfahren. Die zeitlich nächste Frist steht immer zuerst. 922 </p> 923 <div id="fristen-list" class="fristen-list"></div> 924 <p class="hint">Angaben ohne Gewähr â bitte prüfen Sie die aktuellen Termine in Ihrem regionalen Portal.</p> 925 </section> 926 </div> 927 928 <!-- ===================== Seite: Antrag stellen ===================== --> 929 <div id="page-antrag" class="app-page hidden"> 930 <section id="foerder-context-banner" class="card foerder-context-banner hidden"> 931 <p> 932 Zuschussart: <strong id="foerder-context-label"></strong> 933 · 934 <button type="button" id="foerder-context-back" class="link-button">â Andere Zuschussart wählen</button> 935 </p> 936 </section> 937 <section id="type-section" class="card"> 938 <h2><span class="step-number">1</span> Antragstyp auswählen</h2> 939 <div id="type-selector" class="type-selector"> 940 <button type="button" class="type-option" data-type="mehrfachantrag">Mehrfachantrag / GAP-Förderantrag</button> 941 <button type="button" class="type-option" data-type="ausgleichszulage">Ausgleichszulage benachteiligte Gebiete</button> 942 <button type="button" class="type-option" data-type="bg_jahresmeldung">Berufsgenossenschaft-Jahresmeldung</button> 943 <button type="button" class="type-option" data-type="krankenkasse_fragebogen">Krankenkasse/Alterskasse-Fragebogen</button> 944 <button type="button" class="type-option" data-type="duengeverordnung">Düngeverordnung-Dokumentation</button> 945 <button type="button" class="type-option" data-type="tierhaltungskennzeichnung">Tierhaltungskennzeichnung (Schweinehaltung)</button> 946 <button type="button" class="type-option" data-type="hit_meldung">HIT-Datenbank-Meldung (Rinder/Schafe/Ziegen)</button> 947 <button type="button" class="type-option" data-type="nebentaetigkeiten">Meldepflicht Nebentätigkeiten (Direktvermarktung/Hofladen)</button> 948 <button type="button" class="type-option" data-type="itw_quartalsmeldung">Initiative Tierwohl (ITW) â Quartalsmeldung</button> 949 <button type="button" class="type-option" data-type="weinbaukartei">Weinbaukartei-Meldung</button> 950 <button type="button" class="type-option" data-type="bienenseuchenkasse">Bienenseuchenkasse/Imkerei-Förderung</button> 951 <button type="button" class="type-option" data-type="biogas_meldung">Biogasanlagen-Meldung (EEG-Anlagenregister)</button> 952 <button type="button" class="type-option" data-type="junglandwirte">Junglandwirte-Förderung/Niederlassungsbeihilfe</button> 953 <button type="button" class="type-option" data-type="tam_meldung">Antibiotika-MaÃnahmenplan (TAM-Meldung)</button> 954 <button type="button" class="type-option" data-type="agrarstrukturerhebung">Agrarstrukturerhebung</button> 955 <button type="button" class="type-option" data-type="gloez2_ueberpruefung">GLÃZ 2 â Antrag auf Ãberprüfung</button> 956 <button type="button" class="type-option" data-type="wolfsriss_entschaedigung">Wolfsriss-Entschädigungsantrag</button> 957 <button type="button" class="type-option" data-type="hagelversicherung_zuschuss">Hagelversicherungs-Zuschussantrag</button> 958 <button type="button" class="type-option" data-type="schulprogramm_eu">EU-Schulmilch-/Schulobstprogramm</button> 959 <button type="button" class="type-option" data-type="wasserentnahme">Wasserentnahme-Genehmigung/-Meldung</button> 960 <button type="button" class="type-option" data-type="psm_dokumentation">Pflanzenschutzmittel-Dokumentation</button> 961 <button type="button" class="type-option" data-type="schaedlingsbekaempfung">Schädlingsbekämpfung/Rodentizid-Dokumentation</button> 962 </div> 963 <p class="hint"> 964 Suchen Sie eine Agrarinvestitionsförderung (AFP/EIF)? Die finden Sie jetzt im eigenen Bereich 965 <button type="button" id="type-section-foerderantrag-link" class="link-button">âFörderantragâ</button> in der Seitenleiste. 966 </p> 967 </section> 968 969 <section id="upload-section" class="card hidden"> 970 <h2><span class="step-number">2</span> Dokument(e) hochladen</h2> 971 <label for="file-input" id="drop-zone" class="drop-zone">
972 <span class="drop-zone-icon">ð</span> 973 <span class="drop-zone-text">PDFs oder Fotos hierher ziehen<br>oder klicken zum Auswählen â auch mehrere gleichzeitig</span> 974 <input type="file" id="file-input" accept=".pdf,image/*" multiple hidden> 975 </label> 976 <p class="hint upload-reliability-hint"> 977 Die automatische Erkennung funktioniert am zuverlässigsten bei klaren, gut lesbaren PDF- oder 978 Foto-Dokumenten mit Standardformaten. Handschriftliche oder sehr unübliche Dokumente werden 979 möglicherweise nicht korrekt ausgelesen. 980 <a href="/ki-erkennung" target="_blank" rel="noopener">Mehr erfahren</a> 981 </p> 982 <p id="file-name" class="file-name"></p> 983 <p id="upload-error" class="upload-error hidden"></p> 984 <p id="upload-progress" class="extraction-status hidden"></p> 985 986 <div id="sprach-eingabe-bereich" class="sprach-eingabe-bereich hidden"> 987 <p class="hint"> 988 Statt eines Dokuments können Sie die Ausbringung auch per Sprache erfassen, z. B. 989 âIch habe heute 15 Tonnen Kalk auf Schlag 3 gestreutâ. 990 </p> 991 <button type="button" id="sprach-eingabe-button" class="sprach-eingabe-button"> 992 <span aria-hidden="true">ð¤</span> Sprechen 993 </button> 994 <p id="sprach-eingabe-status" class="extraction-status hidden"></p> 995 <p id="sprach-eingabe-transkript" class="sprach-eingabe-transkript hidden"></p> 996 <p id="sprach-eingabe-nicht-unterstuetzt" class="hint hidden"> 997 Die Spracheingabe wird von diesem Browser leider nicht unterstützt. Bitte nutzen Sie stattdessen 998 den Datei-Upload oben oder tragen Sie die Angaben unten manuell ein. 999 </p> 1000 </div> 1001 1002 <p class="hint"> 1003 <button type="button" class="link-button" id="checklist-jump-button">Nicht sicher, was Sie brauchen? â Checkliste ansehen</button> 1004 </p> 1005 </section> 1006 1007 <section id="documents-queue-section" class="card hidden"> 1008 <h2>Hochgeladene Dokumente</h2> 1009 <p class="hint">Jedes Dokument wird einzeln analysiert. Ãffnen Sie eines zur Prüfung â die Angaben werden nie vermischt.</p> 1010 <div id="documents-queue-list" class="applications-list"></div> 1011 </section> 1012 1013 <section id="preview-section" class="card hidden"> 1014 <h2><span class="step-number">3</span> Vorschau</h2> 1015 1016 <div class="legal-disclaimer"> 1017 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 1018 <span id="submission-notice"></span> 1019 </div> 1020 1021 <div id="file-preview" class="file-preview"></div> 1022 1023 <div id="extraction-summary" class="hidden"></div> 1024 1025 <!-- Wird komplett ausgeblendet, wenn die Analyse an der Abo-Sperre 1026 (402/subscriptionRequired) gescheitert ist, statt Felder als 1027 "nicht erkannt" zu zeigen â das sähe sonst nach einem 1028 tatsächlichen (aber gescheiterten) KI-Versuch aus, obwohl real 1029 gar keine Erkennung stattgefunden hat. Der Hinweis-Banner 1030 (siehe net.js/auth-ui.js: showSubscriptionRequiredBanner) ist 1031 in diesem Fall die einzige sichtbare Reaktion. --> 1032 <div id="extraction-fields-wrapper"> 1033 <h3>Erkannte Angaben</h3> 1034 <p class="hint">Die Felder werden automatisch aus dem Dokument befüllt. Bitte prüfen und bei Bedarf korrigieren, bevor Sie sie übernehmen.</p> 1035 <p id="extraction-status" class="extraction-status hidden"></p> 1036 1037 <form id="preview-form"> 1038 <div id="fields-container"></div> 1039 <div id="duengung-hint" class="duengung-hint hidden"> 1040 <span class="duengung-hint-icon" aria-hidden="true">ð¡</span> 1041 <span id="duengung-hint-text"></span> 1042 </div> 1043 <div id="psm-vorschlag-panel" class="psm-vorschlag-panel hidden"> 1044 <button type="button" id="psm-vorschlag-button" class="link-button" disabled>KI-Vorschlag holen (Registriernummer, EPPO-Code, BBCH, Dosierung)</button> 1045 <p class="hint">Erst verfügbar, wenn âAngewendetes Mittelâ und âZielorganismus/Gegen wasâ ausgefüllt sind. Jeder Vorschlag stammt aus einer automatisierten Websuche und ist unverbindlich.</p> 1046 <p id="psm-vorschlag-status" class="extraction-status hidden"></p> 1047 <div id="psm-vorschlag-preview" class="psm-vorschlag-preview hidden"></div> 1048 </div> 1049 1050 <!-- Schädlingsbekämpfung/Rodentizid-Dokumentation: die 1051 "Kontrolleinträge" sind ein arrayField (siehe antragstypen.js), 1052 dessen verstecktes <input> normalerweise nur per KI-Auslese 1053 eines hochgeladenen Dokuments befüllt wird (siehe script.js: 1054 renderFields). Für einen laufend geführten Kontroll-Tracker ist 1055 das unpraktikabel -- hier deshalb zusätzlich ein eigenes 1056 Mini-Formular zum manuellen Hinzufügen/Entfernen einzelner 1057 Zeilen, das dasselbe versteckte Feld befüllt. --> 1058 <div id="sbk-eintrag-panel" class="sbk-eintrag-panel hidden"> 1059 <h4>Kontrolleintrag hinzufügen</h4> 1060 <div class="sbk-eintrag-form"> 1061 <div class="field"> 1062 <label for="sbk-datum">Datum Kontrolle</label> 1063 <input type="text" id="sbk-datum" placeholder="z. B. 12.05.2026"> 1064 </div> 1065 <div class="field"> 1066 <label for="sbk-koederstelle">Bereich/Köderstelle (Nummer)</label> 1067 <input type="text" id="sbk-koederstelle" placeholder="z. B. 12"> 1068 </div> 1069 <div class="field"> 1070 <label for="sbk-art">Monitoring (M) / Bekämpfung (B)</label> 1071 <select id="sbk-art"> 1072 <option value="">Bitte wählen</option> 1073 <option value="Monitoring (M)">Monitoring (M)</option> 1074 <option value="Bekämpfung (B)">Bekämpfung (B)</option> 1075 </select> 1076 </div> 1077 <div class="field"> 1078 <label for="sbk-schaedling">Schädling</label> 1079 <input type="text" id="sbk-schaedling" placeholder="z. B. Ratte, Maus"> 1080 </div> 1081 <div class="field"> 1082 <label for="sbk-beobachtung">Beobachtung/Feststellung</label> 1083 <input type="text" id="sbk-beobachtung" placeholder="z. B. frischer Kot, Köder angenagt"> 1084 </div> 1085 <div class="field"> 1086 <label for="sbk-koeder-mittel">Köder/Mittel/MaÃnahme</label> 1087 <input type="text" id="sbk-koeder-mittel" placeholder="z. B. ungiftiger FraÃköder, Giftköder, Schlagfalle"> 1088 </div> 1089 <div class="field"> 1090 <label for="sbk-verbrauch">Verbrauch (Menge)</label> 1091 <input type="text" id="sbk-verbrauch" placeholder="z. B. 2 Blöcke"> 1092 </div> 1093 <div class="field"> 1094 <label for="sbk-anwender">Anwender (Name)</label> 1095 <input type="text" id="sbk-anwender" placeholder="z. B. Max Mustermann"> 1096 </div> 1097 <div class="field sbk-bestaetigung-field"> 1098 <label class="sbk-bestaetigung-label"> 1099 <input type="checkbox" id="sbk-bestaetigt"> 1100 Der genannte Anwender bestätigt die Richtigkeit dieser Angaben (entspricht der Unterschrift auf dem Papierformular) 1101 </label> 1102 </div> 1103 </div> 1104 <button type="button" id="sbk-eintrag-hinzufuegen-button" class="link-button">+ Eintrag hinzufügen</button> 1105 <p id="sbk-eintrag-status" class="extraction-status hidden"></p> 1106 <div id="sbk-status-uebersicht" class="sbk-status-uebersicht hidden"></div> 1107 <div id="sbk-eintraege-liste" class="sbk-eintraege-liste"></div> 1108 </div> 1109 <div id="extraction-bestaetigung-container"></div> 1110 <button type="submit" id="submit-button" class="submit-button">Angaben übernehmen</button> 1111 <p id="save-success-banner" class="save-success-banner hidden">Antrag wurde gespeichert â</p> 1112 </form> 1113 1114 <div id="export-section" class="export-section hidden"> 1115 <button type="button" id="export-toggle-button" class="export-button">Ergebnis exportieren</button> 1116 <div id="export-options" class="export-options hidden"> 1117 <button type="button" id="export-pdf-button" class="export-option-button">Als PDF speichern</button> 1118 <button type="button" id="export-text-button" class="export-option-button">Als Text kopieren</button> 1119 </div> 1120 <p id="export-status" class="export-status hidden"></p> 1121 </div> 1122 </div> 1123 </section> 1124 1125 <section id="error-helper-section" class="card"> 1126 <h2>
1126Fehlermeldung verstehen</h2> 1127 <p class="hint"> 1128 Kopieren Sie eine kryptische Fehlermeldung oder einen Prüfhinweis aus Ihrem Antragsportal hinein 1129 (z. B. FIONA, iBALIS) â wir übersetzen sie in einfache Sprache und schlagen einen nächsten Schritt vor. 1130 </p> 1131 <div class="field"> 1132 <label for="error-helper-input">Fehlermeldung</label> 1133 <textarea id="error-helper-input" rows="4" placeholder="z. B. GIS-2 oder "Landwirtschaftliche Fläche auÃerhalb der Bruttofläche""></textarea> 1134 </div> 1135 <button type="button" id="error-helper-submit" class="submit-button">Erklären lassen</button> 1136 <p id="error-helper-status" class="extraction-status hidden"></p> 1137 <div id="error-helper-result" class="error-helper-result hidden"> 1138 <h3>Erklärung</h3> 1139 <p id="error-helper-explanation"></p> 1140 </div> 1141 <div class="legal-disclaimer"> 1142 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 1143 <span>Diese Erklärung ersetzt keine amtliche Auskunft. Wenden Sie sich im Zweifel an Ihr zuständiges Amt (z. B. Landwirtschaftsamt/ULB/AELF).</span> 1144 </div> 1145 </section> 1146 </div> 1147 1148 <!-- ===================== Seite: Förderantrag (AFP/EIF-Investitionsförderung) ===================== --> 1149 <!-- Eigener, von der normalen 20er-Antragsliste getrennter Bereich für die 1150 14 länderspezifischen Investitionsförderung-Zuschussarten (9 Baden- 1151 Württemberg + 5 Bayern, siehe antragstypen.js). Ablauf: Bundesland aus 1152 dem Betriebsprofil übernehmen (window.currentBetrieb.bundesland) oder, 1153 falls nicht hinterlegt/nicht BW/Bayern, erst eine Bundesland-Auswahl 1154 zeigen -- dann eine kategorisierte Ãbersicht der Zuschussarten für 1155 dieses Bundesland. Klick auf eine Zuschussart nutzt exakt denselben 1156 Formular-Flow wie bisher (showPage("antrag") + selectType(typeKey) in 1157 script.js), die Datenstruktur der 14 Typen selbst bleibt unverändert. 1158 Siehe foerderantrag.js. --> 1159 <div id="page-foerderantrag" class="app-page hidden"> 1160 <section id="foerderantrag-bundesland-section" class="card hidden"> 1161 <h2>Förderantrag â Bundesland wählen</h2> 1162 <p class="hint"> 1163 In welchem Bundesland liegt Ihr Betrieb? Investitionsförderprogramme (AFP/EIF) sind 1164 länderspezifisch geregelt. Ihre Wahl wird in Ihrem Betriebsprofil gespeichert, damit sie 1165 künftig automatisch erkannt wird. 1166 </p> 1167 <div id="foerderantrag-bundesland-grid" class="foerderantrag-bundesland-grid"></div> 1168 </section> 1169 1170 <section id="foerderantrag-zuschussarten-section" class="card hidden"> 1171 <div class="foerderantrag-header"> 1172 <h2 id="foerderantrag-zuschussarten-titel">Förderantrag</h2> 1173 <button type="button" id="foerderantrag-bundesland-wechseln" class="link-button">Anderes Bundesland wählen</button> 1174 </div> 1175 <p class="hint"> 1176 Wählen Sie die passende Zuschussart. Danach geht es wie gewohnt zum Dokument-Upload für 1177 dieses Formular weiter. 1178 </p> 1179 <div id="foerderantrag-zuschussarten-liste"></div> 1180 </section> 1181 </div> 1182 1183 <!-- ===================== Seite: Meine gespeicherten Anträge ===================== --> 1184 <div id="page-applications" class="app-page hidden"> 1185 <section id="applications-section" class="card"> 1186 <h2>Meine gespeicherten Anträge</h2> 1187 <p class="hint">Sichtbar für alle Personen mit Zugriff auf den jeweiligen Betrieb.</p> 1188 1189 <div id="applications-filter-bar" class="applications-filter-bar hidden"> 1190 <div class="field"> 1191 <label for="applications-search">Suche</label> 1192 <input type="search" id="applications-search" placeholder="Dateiname oder Bezeichnung â¦"> 1193 </div> 1194 <div class="field"> 1195 <label for="applications-filter-type">Antragstyp</label> 1196 <select id="applications-filter-type"></select> 1197 </div> 1198 <div class="field"> 1199 <label for="applications-filter-year">Jahr</label> 1200 <select id="applications-filter-year"></select> 1201 </div> 1202 <div class="field hidden" id="applications-filter-betrieb-field"> 1203 <label for="applications-filter-betrieb">Betrieb</label> 1204 <select id="applications-filter-betrieb"></select> 1205 </div> 1206 </div> 1207 <p id="applications-filter-status" class="upload-error hidden"></p> 1208 1209 <!-- Nur sichtbar, wenn oben nach "Pflanzenschutzmittel-Dokumentation" 1210 gefiltert wird (siehe script.js: updatePsmExportVisibility) -- 1211 eigene Zeitraum-/Fläche-Filter, da applications-filter-bar oben 1212 dafür kein präzises Datumsfeld bzw. keinen Fläche-Filter bietet. --> 1213 <section id="psm-export-section" class="card psm-export-section hidden"> 1214 <h3>PSM-Dokumentation exportieren</h3> 1215 <p class="hint"> 1216 Enthält die Pflichtangaben nach Durchführungsverordnung (EU) 2023/564 / 2025/2203 (Datum, Art der 1217 Verwendung, Fläche/Schlag, Kulturpflanze, Mittel inkl. Zulassungsnummer, Aufw
1217andmenge, BBCH-Stadium, 1218 EPPO-Code, ausführende Person). CSV zusätzlich zu Excel anbieten, da ein maschinenlesbares Format bei 1219 einer Kontrolle tendenziell als robusteres Nachweisformat gilt als eine reine Excel-Datei. 1220 </p> 1221 <div class="psm-export-filters"> 1222 <div class="field"> 1223 <label for="psm-export-von">Zeitraum von</label> 1224 <input type="date" id="psm-export-von"> 1225 </div> 1226 <div class="field"> 1227 <label for="psm-export-bis">Zeitraum bis</label> 1228 <input type="date" id="psm-export-bis"> 1229 </div> 1230 <div class="field"> 1231 <label for="psm-export-flaeche">Fläche/Schlag</label> 1232 <input type="text" id="psm-export-flaeche" placeholder="z. B. Schlag 3"> 1233 </div> 1234 </div> 1235 <p id="psm-export-error" class="auth-error hidden"></p> 1236 <div class="psm-export-buttons"> 1237 <button type="button" id="psm-export-xlsx-button" class="export-option-button">Als Excel (.xlsx) exportieren</button> 1238 <button type="button" id="psm-export-csv-button" class="export-option-button">Als CSV exportieren</button> 1239 </div> 1240 </section> 1241 1242 <!-- Nur sichtbar, wenn oben nach "Schädlingsbekämpfung/Rodentizid- 1243 Dokumentation" gefiltert wird (siehe script.js: 1244 updateSbkExportVisibility) -- analog zum PSM-Export oben, 1245 ohne Fläche-Filter (hier nicht relevant). --> 1246 <section id="sbk-export-section" class="card psm-export-section hidden"> 1247 <h3>Schädlingsbekämpfung/Rodentizid-Dokumentation exportieren</h3> 1248 <p class="hint"> 1249 Enthält alle Kontrolleinträge (Kopfdaten, Datum, Köderstelle, Beobachtung, Monitoring/Bekämpfung, 1250 Schädling, Köder/Mittel, Verbrauch, Anwender) â z. B. für eine QS-Kontrolle oder als Befallsnachweis 1251 vor dem Einsatz antikoagulanter Rodentizide. 1252 </p> 1253 <div class="psm-export-filters"> 1254 <div class="field"> 1255 <label for="sbk-export-von">Zeitraum von</label> 1256 <input type="date" id="sbk-export-von"> 1257 </div> 1258 <div class="field"> 1259 <label for="sbk-export-bis">Zeitraum bis</label> 1260 <input type="date" id="sbk-export-bis"> 1261 </div> 1262 </div> 1263 <p id="sbk-export-error" class="auth-error hidden"></p> 1264 <div class="psm-export-buttons"> 1265 <button type="button" id="sbk-export-xlsx-button" class="export-option-button">Als Excel (.xlsx) exportieren</button> 1266 <button type="button" id="sbk-export-csv-button" class="export-option-button">Als CSV exportieren</button> 1267 </div> 1268 </section> 1269 1270 <div id="applications-list" class="applications-list"></div> 1271 </section> 1272 </div> 1273 1274 <!-- ===================== Seite: Meine Betriebe ===================== --> 1275 <div id="page-betriebe" class="app-page hidden"> 1276 <!-- Reiter statt einer einzigen, langen Seite â jeder Reiter zeigt 1277 genau EINEN der folgenden Kartenbereiche (siehe .betriebe-tab-panel 1278 unten, Umschalt-Logik in betrieb-profil.js: showBetriebeTab). 1279 Alle Daten werden weiterhin bei jedem Ãffnen von "Meine Betriebe" 1280 GEMEINSAM geladen (siehe loadBetriebePage), der Wechsel zwischen 1281 Reitern selbst löst also KEINEN erneuten Server-Aufruf aus. --> 1282 <div class="betriebe-tab-umschalter" role="tablist"> 1283 <button type="button" class="betriebe-tab-button" data-tab="betriebsprofil" aria-selected="true">ð Betriebsprofil</button> 1284 <button type="button" class="betriebe-tab-button" data-tab="maschinen" aria-selected="false">ð Maschinen</button> 1285 <button type="button" class="betriebe-tab-button" data-tab="versicherungen" aria-selected="false">ð¡ï¸ Versicherungen</button> 1286 <button type="button" class="betriebe-tab-button" data-tab="pachtvertraege" aria-selected="false">ð Pachtverträge</button> 1287 <button type="button" class="betriebe-tab-button" data-tab="rechnungen" aria-selected="false">ð§¾ Rechnungen</button> 1288 <button type="button" class="betriebe-tab-button" data-tab="bescheide" aria-selected="false">ð¬ Bescheide</button> 1289 <button type="button" class="betriebe-tab-button" data-tab="foerderungen" aria-selected="false">ð¶ Förderungen</button> 1290 <button type="button" class="betriebe-tab-button" data-tab="plausibilitaet" aria-selected="false">â ï¸ Plausibilität</button> 1291 </div> 1292 1293 <section id="betrieb-profil-section" class="card betriebe-tab-panel" data-tab="betriebsprofil"> 1294 <h2>Betriebsprofil<span id="betrieb-profil-name-suffix"></span></h2> 1295 <p class="hint"> 1296 Automatisch aus den bisher für den aktiven Betrieb gespeicherten Anträgen zusammengestellt â keine 1297 eigene Recherche oder Bewertung, nur eine Ãbersicht der Angaben, die Sie selbst bereits eingetragen 1298 haben. Aktualisiert sich automatisch, sobald neue Anträge gespeichert werden. 1299 </p> 1300 <p id="betrieb-profil-status" class="auth-error hidden"></p> 1301 <div id="betrieb-profil-content"></div> 1302 </section> 1303 1304 <!-- Meine Betriebe (Liste/Wechsel) + Neuen Betrieb anlegen leben 1305 ebenfalls im Reiter "Betriebsprofil", siehe die beiden Karten 1306 ohne eigenes data-tab-Attribut weiter unten am Ende dieser 1307 Seite (sie werden dort per JS demselben Reiter zugeordnet). --> 1308 1309 <section id="maschinen-section" class="card hidden betriebe-tab-panel" data-tab="maschinen"> 1310 <h2>Maschinen</h2> 1311 <p class="hint"> 1312 Manuell gepflegte Angaben zu Ihrem Maschinenbestand, die sich aus keinem Antrag ableiten lassen â wahlweise 1313 direkt eingetragen oder aus einer hochgeladenen Rechnung/einem Kaufbeleg übernommen. 1314 </p> 1315 <p id="maschinen-status" class="hint hidden"></p> 1316 <div id="maschinen-list"></div> 1317 </section> 1318 1319 <section id="versicherungen-section" class="card hidden betriebe-tab-panel" data-tab="versicherungen"> 1320 <h2>Versicherungen</h2> 1321 <p class="hint"> 1322 Manuell gepflegte Versicherungsangaben, die sich aus keinem Antrag ableiten lassen â wahlweise direkt 1323 eingetragen oder aus einer hochgeladenen Police/einem Versicherungsschein übernommen. 1324 </p> 1325 <p id="versicherungen-status" class="hint hidden"></p> 1326 <div id="versicherungen-list"></div> 1327 </section> 1328 1329 <section id="pachtvertraege-section" class="card hidden betriebe-tab-panel" data-tab="pachtvertraege"> 1330 <h2>Pachtverträge</h2> 1331 <p class="hint"> 1332 Manuell gepflegte Angaben zu verpachteten Flächen, die sich aus keinem Antrag ableiten lassen â wahlweise 1333 direkt eingetragen oder aus einem hochgeladenen Pachtvertrag übernommen. 1334 </p> 1335 <p id="pachtvertraege-status" class="hint hidden"></p> 1336 <div id="pachtvertraege-list"></div> 1337 </section> 1338 1339 <section id="plausibilitaet-section" class="card hidden betriebe-tab-panel" data-tab="plausibilitaet"> 1340 <h2>Plausibilitätsprüfung</h2> 1341 <p class="hint"> 1342 Vergleicht automatisch Ihre bereits gespeicherten Antragsdaten desselben Betriebs auf mögliche 1343 Auffälligkeiten (z. B. abweichende Flächenangaben zwischen zwei Anträgen, widersprüchliche 1344 Schlag-Angaben oder laut Checkliste ggf. fehlende Nachweise) â bevor Sie bei der Behörde einreichen. 1345 Aktualisiert sich automatisch, sobald sich Ihre Anträge ändern. 1346 </p> 1347 <div class="legal-disclaimer">
1348 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 1349 <span> 1350 Diese automatisierte Prüfung ersetzt keine behördliche Prüfung und erkennt nicht alle möglichen 1351 Probleme. Die Vollständigkeit und Richtigkeit Ihrer Angaben bleibt in Ihrer eigenen Verantwortung. 1352 </span> 1353 </div> 1354 1355 <p id="plausibilitaet-status" class="auth-error hidden"></p> 1356 <div id="plausibilitaet-list" class="bescheide-list"></div> 1357 <button type="button" id="plausibilitaet-hidden-toggle" class="link-button hidden"></button> 1358 </section> 1359 1360 <section id="foerderungen-section" class="card hidden betriebe-tab-panel" data-tab="foerderungen"> 1361 <h2>Mögliche Förderungen</h2> 1362 <p class="hint"> 1363 Automatisch aus Ihrem Betriebsprofil (Fläche, Betriebsart, Bio-Status, Tierhaltung, genutzte 1364 Antragsarten, Bundesland) abgeglichen mit einer per KI-Websuche recherchierten Liste gängiger 1365 Förderprogramme. Aktualisiert sich automatisch, sobald sich Ihr Betriebsprofil ändert. 1366 </p> 1367 <div class="legal-disclaimer"> 1368 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 1369 <span> 1370 Dies ist eine automatisierte, unverbindliche Einschätzung â keine Förderzusage und keine 1371 Rechtsberatung. Prüfen Sie die tatsächliche Förderfähigkeit immer selbst bei der zuständigen Stelle 1372 (z. B. Landwirtschaftsamt, zuständige Landesbehörde). Auch die Kennzeichnung "ð°" ist nur eine grobe, 1373 automatisiert geschätzte Tendenz zum finanziellen Umfang eines Programms, keine Berechnung und keine 1374 Garantie für einen bestimmten Förderbetrag. 1375 </span> 1376 </div> 1377 1378 <p id="foerderungen-status" class="auth-error hidden"></p> 1379 <div id="foerderungen-list" class="bescheide-list"></div> 1380 <button type="button" id="foerderungen-hidden-toggle" class="link-button hidden"></button> 1381 </section> 1382 1383 <section id="bescheide-section" class="card hidden betriebe-tab-panel" data-tab="bescheide"> 1384 <h2>Bescheide & Schreiben</h2> 1385 <p class="hint"> 1386 Laden Sie einen Behörden-Bescheid oder ein amtliches Schreiben hoch (PDF/Foto) oder fügen Sie den Text 1387 direkt ein (z. B. den Inhalt einer E-Mail) â die KI erklärt ihn ausführlich und laienverständlich in 1388 vier Abschnitten: <strong>Das bedeutet</strong> (worum es inhaltlich geht), <strong>Das müssen Sie 1389 tun</strong> (nötige Handlung, falls vorhanden), <strong>Bis wann</strong> (erkannte Frist â erscheint 1390 automatisch auch in der Fristen-Karte und im Kalender) und <strong>Mögliche Konsequenzen</strong> (nur 1391 falls das im Schreiben selbst genannt wird oder sich eindeutig aus der Art des Schreibens ergibt). 1392 </p> 1393 <div class="legal-disclaimer legal-disclaimer-strong"> 1394 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 1395 <span> 1396 <strong>Dies ist keine Rechtsberatung und keine rechtliche Bewertung</strong> â nur eine 1397 automatisierte Lesehilfe. Prüfen Sie den Originaltext bei Unklarheiten immer selbst sorgfältig oder 1398 klären Sie offene Fragen direkt mit der ausstellenden Stelle â das gilt besonders für genannte 1399 Fristen und mögliche Konsequenzen, die hier angezeigt werden. 1400 </span> 1401 </div> 1402 1403 <div class="bescheid-eingabe-umschalter" role="tablist"> 1404 <button type="button" id="bescheid-modus-datei-button" class="bescheid-modus-button" aria-selected="true"> 1405 ð Datei hochladen 1406 </button> 1407 <button type="button" id="bescheid-modus-text-button" class="bescheid-modus-button" aria-selected="false"> 1408 âï¸ Text einfügen 1409 </button> 1410 </div> 1411 1412 <div id="bescheid-modus-datei"> 1413 <label for="bescheid-file-input" id="bescheid-drop-zone" class="drop-zone">
1414 <span class="drop-zone-icon">ð</span> 1415 <span class="drop-zone-text">Bescheid (PDF oder Foto) hierher ziehen<br>oder klicken zum Auswählen</span> 1416 <input type="file" id="bescheid-file-input" accept=".pdf,image/*" hidden> 1417 </label> 1418 <p class="hint upload-reliability-hint"> 1419 Die automatische Erkennung funktioniert am zuverlässigsten bei klaren, gut lesbaren PDF- oder 1420 Foto-Dokumenten mit Standardformaten. Handschriftliche oder sehr unübliche Dokumente werden 1421 möglicherweise nicht korrekt ausgelesen. 1422 <a href="/ki-erkennung" target="_blank" rel="noopener">Mehr erfahren</a> 1423 </p> 1424 </div> 1425 1426 <div id="bescheid-modus-text" class="hidden"> 1427 <div class="field"> 1428 <label for="bescheid-text-input">Text des Bescheids/Schreibens (z. B. Inhalt einer E-Mail)</label> 1429 <textarea id="bescheid-text-input" rows="6" maxlength="20000" placeholder="Text hier einfügen â¦"></textarea> 1430 </div> 1431 <button type="button" id="bescheid-text-submit-button" class="submit-button">Erklären lassen</button> 1432 </div> 1433 1434 <div id="bescheid-review" class="hidden"></div> 1435 <p id="bescheid-upload-status" class="extraction-status hidden"></p> 1436 1437 <p id="bescheide-status" class="auth-error hidden"></p> 1438 <div id="bescheide-list" class="bescheide-list"></div> 1439 </section> 1440 1441 <section id="rechnungen-section" class="card hidden betriebe-tab-panel" data-tab="rechnungen"> 1442 <h2>Rechnungen</h2> 1443 <p class="hint"> 1444 Laden Sie Eingangsrechnungen (PDF oder Foto) hoch â die KI liest Rechnungssteller, Betrag, Datum und 1445 eine grobe Kategorie aus. Die Rechnungen erscheinen als durchsuchbare, nach Jahr und Kategorie 1446 filterbare Liste, für einen besseren Ãberblick für Sie und Ihren Steuerberater. 1447 </p> 1448 <div class="legal-disclaimer"> 1449 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 1450 <span> 1451 Die automatische Auslese ersetzt keine Buchhaltung/Steuerberatung. Bitte prüfen Sie die erkannten 1452 Angaben und bewahren Sie Originalbelege wie gewohnt auf. 1453 </span> 1454 </div> 1455 1456 <label for="rechnung-file-input" id="rechnung-drop-zone" class="drop-zone"> 1457 <span class="drop-zone-icon">ð§¾</span> 1458 <span class="drop-zone-text">Rechnung (PDF oder Foto) hierher ziehen<br>oder klicken zum Auswählen</span> 1459 <input type="file" id="rechnung-file-input" accept=".pdf,image/*" hidden> 1460 </label> 1461 <p class="hint upload-reliability-hint"> 1462 Die automatische Erkennung funktioniert am zuverlässigsten bei klaren, gut lesbaren PDF- oder 1463 Foto-Dokumenten mit Standardformaten. Handschriftliche oder sehr unübliche Dokumente werden 1464 möglicherweise nicht korrekt ausgelesen. 1465 <a href="/ki-erkennung" target="_blank" rel="noopener">Mehr erfahren</a> 1466 </p> 1467 <div id="rechnung-review" class="hidden"></div> 1468 <p id="rechnung-upload-status" class="extraction-status hidden"></p> 1469 1470 <div id="rechnungen-filter-bar" class="applications-filter-bar hidden"> 1471 <div class="field"> 1472 <label for="rechnungen-search">Suche</label> 1473 <input type="search" id="rechnungen-search" placeholder="Rechnungssteller â¦"> 1474 </div> 1475 <div class="field"> 1476 <label for="rechnungen-filter-jahr">Jahr</label> 1477 <select id="rechnungen-filter-jahr"></select> 1478 </div> 1479 <div class="field"> 1480 <label for="rechnungen-filter-kategorie">Kategorie</label> 1481 <select id="rechnungen-filter-kategorie"></select> 1482 </div> 1483 </div> 1484 1485 <p id="rechnungen-status" class="auth-error hidden"></p> 1486 <div id="rechnungen-list" class="bescheide-list"></div> 1487 1488 <div id="datev-export-panel" class="datev-export-panel"> 1489 <h3>Für Steuerberater exportieren</h3> 1490 <p class="hint"> 1491 Exportieren Sie Ihre erfassten Rechnungen eines Zeitraums als DATEV-Buchungsstapel (CSV) inklusive der 1492 Original-Belege â zum direkten Weiterleiten an Ihren Steuerberater. 1493 </p> 1494 1495 <details id="datev-stammdaten-details"> 1496 <summary>DATEV-Stammdaten (einmalig vor dem ersten Export)</summary> 1497 <p class="hint"> 1498 Diese Angaben erhalten Sie von Ihrem Steuerberater bzw. Ihrer Kanzlei. Sie werden für jeden Export 1499 dieses Betriebs wiederverwendet. 1500 </p> 1501 <form id="datev-stammdaten-form"> 1502 <div class="field-row"> 1503 <div class="field"> 1504 <label for="datev-beraternummer">Beraternummer</label> 1505 <input type="text" id="datev-beraternummer" inputmode="numeric" maxlength="7" placeholder="z. B. 123456"> 1506 </div> 1507 <div class="field"> 1508 <label for="datev-mandantennummer">Mandantennummer</label> 1509 <input type="text" id="datev-mandantennummer" inputmode="numeric" maxlength="5" placeholder="z. B. 4711"> 1510 </div> 1511 </div> 1512 <div class="field"> 1513 <label for="datev-kontenrahmen">Kontenrahmen</label> 1514 <select id="datev-kontenrahmen"> 1515 <option value="SKR03">SKR03</option> 1516 <option value="SKR04">SKR04</option> 1517 </select> 1518 </div> 1519 <p id="datev-stammdaten-error" class="auth-error hidden"></p> 1520 <p id="datev-stammdaten-status" class="auth-success hidden"></p> 1521 <button type="submit" id="datev-stammdaten-save-button" class="export-option-button">Stammdaten speichern</button> 1522 </form> 1523 </details> 1524 1525 <div class="legal-disclaimer legal-disclaimer-strong">
1526 <span class="legal-disclaimer-icon" aria-hidden="true">â ï¸</span> 1527 <span> 1528 Dieser Export ordnet Beträge noch keinem spezifischen Buchungskonto zu â bitte besprechen Sie mit 1529 Ihrem Steuerberater, ob eine Nachbearbeitung vor der endgültigen Verbuchung nötig ist. Agrado 1530 übernimmt keine Gewähr für die steuerliche Korrektheit. 1531 </span> 1532 </div> 1533 1534 <form id="datev-export-form"> 1535 <div class="field-row"> 1536 <div class="field"> 1537 <label for="datev-export-von">Von</label> 1538 <input type="date" id="datev-export-von" required> 1539 </div> 1540 <div class="field"> 1541 <label for="datev-export-bis">Bis</label> 1542 <input type="date" id="datev-export-bis" required> 1543 </div> 1544 </div> 1545 <p id="datev-export-error" class="auth-error hidden"></p> 1546 <button type="submit" id="datev-export-button" class="export-option-button">Für Steuerberater exportieren</button> 1547 </form> 1548 </div> 1549 </section> 1550 1551 <section class="card betriebe-tab-panel" data-tab="betriebsprofil"> 1552 <h2>Meine Betriebe</h2> 1553 <p class="hint"> 1554 Hochgeladene Dokumente, gespeicherte Anträge, der Kalender und das Aktivitätsprotokoll beziehen sich 1555 immer auf den hier als aktiv markierten Betrieb. Das Bundesland des aktiven Betriebs bestimmt auÃerdem, 1556 welche Portal- und Register-Begriffe beim Mehrfachantrag angezeigt werden. 1557 </p> 1558 <p id="betriebe-status" class="auth-error hidden"></p> 1559 <div id="betriebe-list" class="betriebe-list"></div> 1560 </section> 1561 1562 <section class="card betriebe-tab-panel" data-tab="betriebsprofil"> 1563 <h2>Neuen Betrieb anlegen</h2> 1564 <form id="betrieb-add-form"> 1565 <div class="field"> 1566 <label for="new-betrieb-name">Betriebsname</label> 1567 <input type="text" id="new-betrieb-name" name="name" placeholder="z. B. Hof Nord" maxlength="120" required> 1568 </div> 1569 <div class="field"> 1570 <label for="new-betrieb-bundesland">Bundesland</label> 1571 <select id="new-betrieb-bundesland" name="bundesland"> 1572 <option value="">Bitte auswählen (optional)</option> 1573 </select> 1574 </div> 1575 <div class="field"> 1576 <label for="new-betrieb-nummer">Betriebsnummer (optional)</label> 1577 <input type="text" id="new-betrieb-nummer" name="betriebsnummer" placeholder="z. B. 123456789" maxlength="60"> 1578 </div> 1579 <p id="betrieb-add-error" class="auth-error hidden"></p> 1580 <button type="submit" class="submit-button">Betrieb anlegen</button> 1581 </form> 1582 </section> 1583 </div> 1584 1585 <!-- ===================== Seite: Team verwalten ===================== --> 1586 <div id="page-team" class="app-page hidden"> 1587 <section id="team-section" class="card"> 1588 <h2>Team verwalten</h2> 1589 <p class="hint"> 1590 Laden Sie weitere Personen zu Ihren Betrieben ein â als âBearbeiterâ (kann Dokumente 1591 hochladen, Anträge ausfüllen und speichern) oder âNur ansehenâ (kann bestehende Anträge 1592 nur einsehen). Eingeladene Personen nutzen Ihr Abo mit und zahlen nicht selbst. 1593 </p> 1594 1595 <h3>Mitglieder</h3> 1596 <div id="team-members-list" class="applications-list"></div> 1597 1598 <h3>Offene Einladungen</h3> 1599 <div id="team-invitations-list" class="applications-list"></div> 1600 1601 <h3>Person einladen</h3> 1602 <form id="team-invite-send-form"> 1603 <div class="field"> 1604 <label for="team-invite-email">E-Mail-Adresse</label> 1605 <input type="email" id="team-invite-email" name="email" required> 1606 </div> 1607 <div class="field"> 1608 <label for="team-invite-role">Rolle</label> 1609 <select id="team-invite-role" name="role"> 1610 <option value="bearbeiter">Bearbeiter (kann hochladen, ausfüllen, speichern)</option> 1611 <option value="nur_ansehen">Nur ansehen (kann nur einsehen)</option> 1612 </select> 1613 </div> 1614 <div class="field"> 1615 <label>Zugriff auf Betriebe</label> 1616 <div id="team-invite-betriebe" class="checkbox-list"></div> 1617 </div> 1618 <p id="team-invite-send-error" class="auth-error hidden"></p> 1619 <p id="team-invite-send-status" class="auth-success hidden"></p> 1620 <button type="submit" class="submit-button">Einladen</button> 1621 </form> 1622 </section> 1623 </div> 1624 1625 <!-- ===================== Seite: Aktivitätsverlauf ===================== --> 1626 <div id="page-activity" class="app-page hidden"> 1627 <section id="activity-section" class="card"> 1628 <h2>Aktivitätsverlauf</h2> 1629 <p class="hint">
1630 Zeigt, wer bei diesem Betrieb welche Ãnderung vorgenommen hat â sichtbar für alle Personen mit 1631 Zugriff auf diesen Betrieb, auch mit der Rolle âNur ansehenâ. 1632 </p> 1633 <div id="activity-list" class="applications-list"></div> 1634 </section> 1635 </div> 1636 1637 <!-- ===================== Seite: Meine Dokumente ===================== 1638 Ãbersicht ALLER hochgeladenen Dokumente über applications/ 1639 bescheide/stammdaten_dokumente/posteingang_dokumente hinweg (siehe 1640 GET /api/dokumente, searchCheck.js: buildDokumenteUebersicht) â 1641 unabhängig davon, welchem Antragstyp/Bereich sie zugeordnet 1642 wurden. Ein Klick auf "Ãffnen" springt über dieselbe 1643 navigiereZuAktion-Funktion (dashboard.js) an dieselbe Stelle wie 1644 ein Ergebnis der globalen Suche. --> 1645 <div id="page-dokumente" class="app-page hidden"> 1646 <section id="dokumente-section" class="card"> 1647 <h2>Meine Dokumente</h2> 1648 <p class="hint"> 1649 Alle bisher hochgeladenen Dokumente an einer Stelle â unabhängig davon, welchem Antragstyp oder 1650 Bereich sie zugeordnet wurden. 1651 </p> 1652 <p id="dokumente-status" class="auth-error hidden"></p> 1653 <p id="dokumente-empty" class="hint hidden">Es wurden noch keine Dokumente hochgeladen.</p> 1654 <div id="dokumente-list" class="applications-list"></div> 1655 </section> 1656 </div> 1657 1658 <!-- ===================== Seite: Betriebschronik ===================== 1659 Chronologische Gesamt-Zeitleiste, sortiert nach dem tatsächlichen 1660 EREIGNISDATUM (nicht nach Bearbeitungszeitpunkt wie oben beim 1661 Aktivitätsverlauf) â siehe GET /api/chronik/chronikCheck.js in 1662 server.js. Jahr-Gruppierung und Filter passieren client-seitig 1663 (siehe chronik.js), kein erneuter Serveraufruf beim Filtern. --> 1664 <div id="page-chronik" class="app-page hidden"> 1665 <section id="chronik-section" class="card"> 1666 <h2>Betriebschronik</h2> 1667 <p class="hint"> 1668 Alle wichtigen Ereignisse Ihres Betriebs auf einer Zeitleiste â sortiert nach dem tatsächlichen 1669 Ereignisdatum, nicht danach, wann Sie etwas in Agrado gespeichert haben. 1670 </p> 1671 <p id="chronik-status" class="extraction-status hidden"></p> 1672 1673 <div id="chronik-filter-bar" class="chronik-filter-bar hidden"> 1674 <button type="button" class="chronik-filter-button" data-kategorie="alle" aria-pressed="true">Alle</button> 1675 <button type="button" class="chronik-filter-button" data-kategorie="antraege" aria-pressed="false">Anträge</button> 1676 <button type="button" class="chronik-filter-button" data-kategorie="bescheide" aria-pressed="false">Bescheide</button> 1677 <button type="button" class="chronik-filter-button" data-kategorie="fristen" aria-pressed="false">Fristen</button> 1678 <button type="button" class="chronik-filter-button" data-kategorie="dokumente" aria-pressed="false">Dokumente</button> 1679 </div> 1680 1681 <p id="chronik-empty" class="hint hidden">Für Ihren Betrieb liegen noch keine Ereignisse vor.</p> 1682 <p id="chronik-gefiltert-leer" class="hint hidden">Keine Ereignisse in dieser Kategorie.</p> 1683 1684 <div id="chronik-jahre"></div> 1685 </section> 1686 </div> 1687 1688 <!-- ===================== Seite: Kalender ===================== --> 1689 <div id="page-calendar" class="app-page hidden"> 1690 <section id="calendar-section" class="card"> 1691 <h2>Kalender</h2> 1692 <p class="hint"> 1693 Zeigt offizielle Fristen (automatisch, nicht löschbar) zusammen mit Ihren eigenen Terminen â 1694 sichtbar für alle Personen mit Zugriff auf diesen Betrieb. 1695 </p> 1696 <div class="calendar-legend"> 1697 <span class="calendar-legend-item"><span class="calendar-dot calendar-dot-official" aria-hidden="true"></span>ðï¸ Offizielle Frist</span> 1698 <span class="calendar-legend-item"><span class="calendar-dot calendar-dot-private" aria-hidden="true"></span>ð Eigener Termin</span> 1699 </div> 1700 1701 <div class="calendar-header"> 1702 <button type="button" id="calendar-prev-button" class="link-button" aria-label="Vorheriger Monat">â</button> 1703 <h3 id="calendar-month-label" class="calendar-month-label"></h3> 1704 <button type="button" id="calendar-next-button" class="link-button" aria-label="Nächster Monat">â</button> 1705 <button type="button" id="calendar-today-button" class="export-option-button calendar-today-button">Heute</button> 1706 </div> 1707 1708 <div id="calendar-status" class="hint hidden"></div> 1709 <div id="calendar-grid" class="calendar-grid"></div> 1710 1711 <div id="calendar-detail" class="calendar-detail hidden"> 1712 <div class="calendar-detail-header"> 1713 <h3 id="calendar-detail-date"></h3>
1714 <button type="button" id="calendar-add-button" class="export-option-button">+ Termin hinzufügen</button> 1715 </div> 1716 <div id="calendar-detail-list" class="calendar-detail-list"></div> 1717 1718 <form id="calendar-event-form" class="calendar-event-form hidden"> 1719 <input type="hidden" id="calendar-event-id" value=""> 1720 <div class="field"> 1721 <label for="calendar-event-title">Titel</label> 1722 <input type="text" id="calendar-event-title" name="title" maxlength="200" required> 1723 </div> 1724 <div class="field"> 1725 <label for="calendar-event-date">Datum</label> 1726 <input type="date" id="calendar-event-date" name="date" required> 1727 </div> 1728 <div class="field"> 1729 <label for="calendar-event-note">Notiz (optional)</label> 1730 <textarea id="calendar-event-note" name="note" rows="3" maxlength="2000"></textarea> 1731 </div> 1732 <p id="calendar-event-error" class="auth-error hidden"></p> 1733 <div class="calendar-event-form-actions"> 1734 <button type="submit" class="submit-button">Speichern</button> 1735 <button type="button" id="calendar-event-cancel" class="link-button">Abbrechen</button> 1736 </div> 1737 </form> 1738 </div> 1739 </section> 1740 </div> 1741 1742 <!-- ===================== Seite: Mein Abo ===================== --> 1743 <div id="page-subscription" class="app-page hidden"> 1744 <section id="subscription-card" class="card"> 1745 <h2>Mein Abo</h2> 1746 1747 <!-- Kostenlose 3-Tage-Testphase läuft noch (siehe auth-ui.js: 1748 updateSubscriptionCard, Status "trial" von GET 1749 /api/access-status) â eigener Block statt einfach 1750 "subscription-not-active-notice", damit hier NICHT 1751 fälschlich zu einer (nicht mehr existierenden) zweiten 1752 kostenlosen Testphase aufgefordert wird. Kein 1753 "Abo kündigen"/Rechnungen, da noch keine Zahlungsmethode 1754 hinterlegt ist. --> 1755 <div id="subscription-trial-status" class="hidden"> 1756 <p class="hint subscribe-trial-highlight"> 1757 <strong id="subscription-trial-days-left"></strong> 1758 </p> 1759 <p class="hint"> 1760 Läuft die Testphase ab, ohne dass ein Abo abgeschlossen wurde, wird der Zugriff gesperrt (Ihre 1761 Daten bleiben erhalten). Sie können jederzeit vorher ein Abo abschlieÃen. 1762 </p> 1763 <p id="subscription-page-checkout-error" class="auth-error hidden"></p> 1764 <button type="button" id="subscription-page-checkout-button" class="submit-button">Abo abschlieÃen</button> 1765 </div> 1766 1767 <!-- "Erkunden"-Modus: ohne aktives Abo/Trial ist "Mein Abo" jetzt 1768 auch erreichbar (siehe auth-ui.js: updateSubscriptionCard) â 1769 zeigt dann direkt den Checkout-Einstieg statt einer 1770 kaputten/leeren Status-Ansicht. --> 1771 <div id="subscription-not-active-notice" class="hidden"> 1772 <p class="hint subscribe-trial-highlight"> 1773 Sie haben aktuell kein aktives Abo â <span id="subscription-page-price"></span>, jederzeit kündbar. 1774 </p> 1775 <p id="subscription-page-checkout-error-inactive" class="auth-error hidden"></p> 1776 <button type="button" id="subscription-page-checkout-button-inactive" class="submit-button">Abo abschlieÃen</button> 1777 </div> 1778 1779 <div id="subscription-active-status"> 1780 <p class="hint">Status: <strong id="subscription-status-text">â</strong></p> 1781 <p id="subscription-next-billing" class="hint hidden"><span id="subscription-next-billing-label">Nächste Abbuchung</span>: <strong id="subscription-next-billing-date">â</strong></p> 1782 <p id="subscription-manage-status" class="auth-error hidden"></p> 1783 <button type="button" id="cancel-subscription-button" class="export-option-button">Abo kündigen</button> 1784 1785 <h3>Rechnungen</h3> 1786 <div id="invoices-list" class="applications-list"></div> 1787 </div> 1788 </section> 1789 1790 <section id="billing-section" class="card hidden"> 1791 <h2>
1791Rechnungsdaten</h2> 1792 <p class="hint"> 1793 Diese Angaben erscheinen auf zukünftigen Stripe-Rechnungen. Privatpersonen können sie frei lassen. 1794 </p> 1795 <form id="billing-details-form"> 1796 <div class="field"> 1797 <label for="billing-name">Firmenname / Rechnungsname</label> 1798 <input type="text" id="billing-name" name="name" maxlength="200"> 1799 </div> 1800 <div class="field"> 1801 <label for="billing-address-line1">StraÃe und Hausnummer</label> 1802 <input type="text" id="billing-address-line1" name="addressLine1" maxlength="200"> 1803 </div> 1804 <div class="field"> 1805 <label for="billing-address-line2">Adresszusatz (optional)</label> 1806 <input type="text" id="billing-address-line2" name="addressLine2" maxlength="200"> 1807 </div> 1808 <div class="field-row"> 1809 <div class="field"> 1810 <label for="billing-postal-code">PLZ</label> 1811 <input type="text" id="billing-postal-code" name="postalCode" maxlength="20"> 1812 </div> 1813 <div class="field"> 1814 <label for="billing-city">Ort</label> 1815 <input type="text" id="billing-city" name="city" maxlength="120"> 1816 </div> 1817 </div> 1818 <div class="field"> 1819 <label for="billing-vat-id">USt-IdNr. (optional)</label> 1820 <input type="text" id="billing-vat-id" name="vatId" maxlength="20" placeholder="z. B. DE123456789"> 1821 </div> 1822 <p id="billing-details-error" class="auth-error hidden"></p> 1823 <p id="billing-details-status" class="auth-success hidden"></p> 1824 <button type="submit" class="export-option-button">Rechnungsdaten speichern</button> 1825 </form> 1826 </section> 1827 1828 <p id="subscription-page-empty-notice" class="hint hidden"> 1829 Für den aktiven Betrieb sind Sie nicht der Kontoinhaber â hier gibt es für Sie nichts zu verwalten. 1830 Das Abo dieses Betriebs wird von seinem Eigentümer verwaltet. 1831 </p> 1832 </div> 1833 1834 <!-- ===================== Seite: Kontoeinstellungen ===================== --> 1835 <div id="page-account" class="app-page hidden"> 1836 <section id="security-section" class="card"> 1837 <h2>Sicherheit</h2> 1838 <div class="checkbox-field"> 1839 <label class="checkbox-label" for="two-factor-toggle"> 1840 <input type="checkbox" id="two-factor-toggle"> 1841 <span> 1842 Zwei-Faktor-Authentifizierung per E-Mail 1843 <br><span class="hint"> 1844 Bei Anmeldung von einem neuen/unbekannten Gerät wird zusätzlich ein 6-stelliger Code an Ihre 1845 E-Mail-Adresse geschickt. Bekannte Geräte werden 30 Tage lang nicht erneut gefragt. Standard: aus. 1846 </span> 1847 </span> 1848 </label> 1849 </div> 1850 <p id="two-factor-toggle-error" class="auth-error hidden"></p> 1851 <p id="two-factor-toggle-status" class="auth-success hidden"></p> 1852 </section> 1853 1854 <section id="data-export-section" class="card"> 1855 <h2>Meine Daten</h2> 1856 <p class="hint"> 1857 Laden Sie eine Kopie aller zu Ihrem Konto gespeicherten Daten herunter (DSGVO Art. 15/20): Ihre 1858 Kontodaten, alle gespeicherten Anträge mit ihren Werten sowie die zugehörigen Original-Dokumente. 1859 Der Export enthält nur die Betriebe, auf die Sie selbst Zugriff haben. 1860 </p> 1861 <a id="data-export-button" href="/api/export/my-data" class="export-option-button" download> 1862 Meine Daten exportieren 1863 </a> 1864 </section> 1865 1866 <section id="account-deletion-section" class="card danger-card"> 1867 <h2>Konto löschen</h2> 1868 <p class="hint"> 1869 Löscht Ihr Konto unwiderruflich, inklusive aller Betriebe (sofern Sie deren alleiniger Eigentümer sind) 1870 mit allen Dokumenten und Anträgen sowie Ihrer Team-Mitgliedschaften bei anderen Betrieben. Ein aktives 1871 Abo wird automatisch gekündigt. Gesetzlich vorgeschriebene Rechnungsdaten bleiben getrennt von Ihrem 1872 Konto bei Stripe erhalten. 1873 </p> 1874 <button type="button" id="account-deletion-toggle" class="export-option-button danger-outline-button"> 1875 Konto löschen 1876 </button> 1877 1878 <form id="account-deletion-form" class="hidden"> 1879 <div id="account-deletion-warning" class="auth-error hidden"></div> 1880 <div class="field"> 1881 <label for="account-deletion-password">Passwort</label> 1882 <input type="password" id="account-deletion-password" name="password" autocomplete="current-password" required> 1883 </div> 1884 <div class="field"> 1885 <label for="account-deletion-confirm-text">Zur Bestätigung âLÃSCHENâ eingeben</label> 1886 <input type="text" id="account-deletion-confirm-text" name="confirmText" autocomplete="off" required> 1887 </div> 1888 <p id="account-deletion-error" class="auth-error hidden"></p> 1889 <button type="submit" class="submit-button danger-submit-button" id="account-deletion-submit-button"> 1890 Konto endgültig löschen 1891 </button> 1892 <button type="button" class="link-button" id="account-deletion-cancel-button">Abbrechen</button> 1893 </form> 1894 </section> 1895 </div> 1896 </div> 1897 </main> 1898 </div><!-- /.app-shell --> 1899 1900 <footer class="site-footer"> 1901 <ul class="footer-links"> 1902 <li><a href="/impressum">Impressum</a></li> 1903 <li><a href="/datenschutz">Datenschutz</a></li> 1904 <li><a href="/agb">AGB</a></li> 1905 <li><a href="/ki-erkennung">Ãber die automatische Erkennung</a></li> 1906 </ul> 1907 <p class="footer-copy">Agrado</p> 1908 </footer> 1909 1910
1910<script src="config.js?v=84"></script>
1910 1911
1911<script src="net.js?v=84"></script>
1911 1912
1912<script src="dokument-erkennung.js?v=84"></script>
1912 1913
1913<script src="antragstypen.js?v=84"></script>
1913 1914 <!-- eppoCodes.js muss VOR script.js laden: renderFields/updateEppoCodeAutoFill 1915 (script.js) rufen findEppoCodeFuerKultur direkt beim Aufbau des 1916 PSM-Formulars auf. --> 1917
1917<script src="eppoCodes.js?v=84"></script>
1917 1918 <!-- global-search.js muss VOR auth-ui.js laden: initAuth() (auth-ui.js, 1919 ganz unten aufgerufen) springt bei ?team_invite_token=/?reset_token= 1920 in der URL SYNCHRON (vor jedem await) in showAuthForm(), das u. a. 1921 das globalSearch-Element referenziert (siehe dortiger Kommentar) â 1922 ohne diese Reihenfolge war "globalSearch" zu diesem frühen Zeitpunkt 1923 noch nicht deklariert (ReferenceError), wodurch showAuthForm() mitten 1924 im Ausblenden/Einblenden der Formulare abbrach und z. B. die 1925 "Einladung annehmen"-Seite für neue Team-Mitglieder nie sichtbar 1926 wurde â sie landeten stattdessen auf der normalen Anmelden-Seite, 1927 ohne jede Fehlermeldung. --> 1928
1928<script src="global-search.js?v=84"></script>
1928 1929
1929<script src="auth-ui.js?v=84"></script>
1929 1930
1930<script src="script.js?v=84"></script>
1930 1931
1931<script src="sprach-eingabe.js?v=84"></script>
1931 1932
1932<script src="calendar.js?v=84"></script>
1932 1933
1933<script src="betriebe.js?v=84"></script>
1933 1934
1934<script src="betrieb-profil.js?v=84"></script>
1934 1935
1935<script src="plausibilitaet.js?v=84"></script>
1935 1936
1936<script src="foerderungen.js?v=84"></script>
1936 1937
1937<script src="bescheide.js?v=84"></script>
1937 1938
1938<script src="rechnungen.js?v=84"></script>
1938 1939
1939<script src="posteingang.js?v=84"></script>
1939 1940
1940<script src="fruchtfolge.js?v=84"></script>
1940 1941
1941<script src="tracker.js?v=84"></script>
1941 1942
1942<script src="betrieb-chat.js?v=84"></script>
1942 1943
1943<script src="dashboard.js?v=84"></script>
1943 1944
1944<script src="chronik.js?v=84"></script>
1944 1945
1945<script src="dokumente.js?v=84"></script>
1945 1946
1946<script src="sidebar.js?v=84"></script>
1946 1947
1947<script src="foerderantrag.js?v=84"></script>
1947 1948
1948<script src="checklist.js?v=84"></script>
1948 1949
1949<script src="waitlist.js?v=84"></script>
1949 1950
1950<script src="dokument-schutz.js?v=84"></script>
1950 1951
1951<script src="cookie-banner.js?v=84"></script>
1951 1952</body> 1953</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.