PageSourceSearch

https://app.educreator.ai/Account/UserTypeSelection?ReturnUrl=%2Fquiz

html educreator.ai collected 2026-10-05 12:11:18 UTC 32,509 bytes, 558 lines download raw bytes

1<!DOCTYPE html>
2<html lang="pl"><head><meta charset="utf-8">
3    <meta name="viewport" content="width=device-width, initial-scale=1.0">
4    <meta name="theme-color" content="#2B6CB0">
5
6    
7    <meta name="description" content="Twórz quizy i materiały edukacyjne za darmo z pomocą AI. Educreator to darmowe narzędzie dla nauczycieli. Zacznij w 30 sekund.">
8    <meta name="keywords" content="darmowa aplikacja dla nauczycieli, generator quizów AI, quizy online za darmo, narzędzia dla nauczycieli, materiały edukacyjne AI, tworzenie quizów, sprawdzanie wiedzy uczniów, e-learning, edukacja">
9    <meta name="author" content="Educreator">
10    <meta name="robots" content="index, follow">
11    <link rel="canonical" href="https://educreator.pl/">
12
13    
14    <meta property="og:type" content="website">
15    <meta property="og:url" content="https://educreator.pl/">
16    <meta property="og:title" content="Educreator - darmowa aplikacja dla nauczycieli | Quizy AI">
17    <meta property="og:description" content="Twórz quizy i materiały edukacyjne za darmo z pomocą AI. Darmowe narzędzie dla nauczycieli. Zacznij w 30 sekund bez karty kredytowej.">
18    <meta property="og:image" content="https://educreator.pl/images/og-image.png">
19    <meta property="og:locale" content="pl_PL">
20    <meta property="og:site_name" content="Educreator">
21
22    
23    <meta name="twitter:card" content="summary_large_image">
24    <meta name="twitter:url" content="https://educreator.pl/">
25    <meta name="twitter:title" content="Educreator - darmowa aplikacja dla nauczycieli | Quizy AI">
26    <meta name="twitter:description" content="Twórz quizy i materiały edukacyjne za darmo z pomocą AI. Darmowe narzędzie dla nauczycieli.">
27    <meta name="twitter:image" content="https://educreator.pl/images/og-image.png">
28
29    
30    
30<script type="application/ld+json">
31    {
32        "@context": "https://schema.org",
33        "@type": "SoftwareApplication",
34        "name": "Educreator",
35        "applicationCategory": "EducationalApplication",
36        "operatingSystem": "Web",
37        "offers": {
38            "@type": "Offer",
39            "price": "0",
40            "priceCurrency": "PLN",
41            "description": "Plan darmowy na zawsze"
42        },
43        "description": "Darmowa aplikacja dla nauczycieli do tworzenia quizów i materiałów edukacyjnych z pomocą AI",
44        "url": "https://educreator.pl",
45        "author": {
46            "@type": "Organization",
47            "name": "Educreator"
48        },
49        "aggregateRating": {
50            "@type": "AggregateRating",
51            "ratingValue": "4.8",
52            "ratingCount": "150"
53        },
54        "featureList": [
55            "Generowanie quizów AI",
56            "Różne typy pytań",
57            "Udostępnianie uczniom online",
58            "Raporty z wynikami",
59            "Eksport do PDF"
60        ]
61    }
62    </script>
62
63
64    
65    
65<script type="application/ld+json">
66    {
67        "@context": "https://schema.org",
68        "@type": "Organization",
69        "name": "Educreator",
70        "url": "https://educreator.pl",
71        "logo": "https://educreator.pl/images/labai_logo.svg",
72        "description": "Polskie narzędzie AI dla nauczycieli do tworzenia quizów i materiałów edukacyjnych",
73        "address": {
74            "@type": "PostalAddress",
75            "addressCountry": "PL"
76        },
77        "contactPoint": {
78            "@type": "ContactPoint",
79            "email": "[email protected]",
80            "contactType": "customer service",
81            "availableLanguage": "Polish"
82        }
83    }
84    </script>
84
85
86    <base href="/">
87    <title>Educreator - darmowa aplikacja dla nauczycieli | Quizy AI</title>
88    
89    <link href="css/fonts.css" rel="stylesheet">
90    <link href="_content/MudBlazor/MudBlazor.min.7c7lhmh1j6.css" rel="stylesheet" />
91    <link href="_content/MudBlazor.Markdown/MudBlazor.Markdown.min.yt4hcv27hd.css" rel="stylesheet" />
92    
93    <link href="css/design-tokens.css" rel="stylesheet">
94    
94<script type="importmap">{
95  "imports": {
96    "./_content/Extensions.MudBlazor.StaticInput/NavigationObserver.js": "./_content/Extensions.MudBlazor.StaticInput/NavigationObserver.lp4d2hvui5.js",
97    "./_content/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js": "./_content/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.o64s4n8ltk.js",
98    "./_content/MudBlazor.Markdown/MudBlazor.Markdown.min.js": "./_content/MudBlazor.Markdown/MudBlazor.Markdown.min.f2gykvtdz4.js",
99    "./_content/MudBlazor/MudBlazor.min.js": "./_content/MudBlazor/MudBlazor.min.f96y5mhlyw.js",
100    "./_framework/dotnet.native.js": "./_framework/dotnet.native.xto5am0qhx.js",
101    "./_framework/dotnet.runtime.js": "./_framework/dotnet.runtime.pu7sbjsy59.js",
102    "./_framework/dotnet.js": "./_framework/dotnet.ur15dpacvo.js",
103    "_framework/resource-collection.js": "./_framework/resource-collection.8186T.js",
104    "_framework/resource-collection.js.gz": "./_framework/resource-collection.8186T.js.gz"
105  },
106  "integrity": {
107    "./_content/Extensions.MudBlazor.StaticInput/NavigationObserver.js": "sha256-5xAqVXGu6Tv7zFwKN73F345Yp8b+mUnkI3nYcD6QCXg=",
108    "./_content/Extensions.MudBlazor.StaticInput/NavigationObserver.lp4d2hvui5.js": "sha256-5xAqVXGu6Tv7zFwKN73F345Yp8b+mUnkI3nYcD6QCXg=",
109    "./_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationService.js": "sha256-kJXKqRCleT/Jk1wJUhUu24r2LAA7IWVYmdoENizE38M=",
110    "./_content/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.js": "sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI=",
111    "./_content/MudBlazor.Markdown/MudBlazor.Markdown.MathJax.min.o64s4n8ltk.js": "sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI=",
112    "./_content/MudBlazor.Markdown/MudBlazor.Markdown.min.f2gykvtdz4.js": "sha256-1wXEspfgcIcUzCn95Cw5TBPJkj7K9JwweKDq9Es2LcM=",
113    "./_content/MudBlazor.Markdown/MudBlazor.Markdown.min.js": "sha256-1wXEspfgcIcUzCn95Cw5TBPJkj7K9JwweKDq9Es2LcM=",
114    "./_content/MudBlazor/MudBlazor.min.f96y5mhlyw.js": "sha256-zR6goaoMpR/YVMMSTfCmVNo3kuPgOkjF/ovhkUhAkbk=",
115    "./_content/MudBlazor/MudBlazor.min.js": "sha256-zR6goaoMpR/YVMMSTfCmVNo3kuPgOkjF/ovhkUhAkbk=",
116    "./_framework/blazor.webassembly.js": "sha256-foi856cD/4MW6P+zWkckFgV//F76aJY/Z9t5FCktr04=",
117    "./_framework/dotnet.js": "sha256-xpaEqK+6q7KPJMveudMVM+EW1z5NiC0WYHTVxVmEqiI=",
118    "./_framework/dotnet.native.js": "sha256-9e5Vqt0u8nYMGCHU4JfYqrYQExAw3bgi5UYzATgvoJE=",
119    "./_framework/dotnet.native.xto5am0qhx.js": "sha256-9e5Vqt0u8nYMGCHU4JfYqrYQExAw3bgi5UYzATgvoJE=",
120    "./_framework/dotnet.runtime.js": "sha256-wW0L1H42TfMatybe1vKm/k57XP7qqXWX5r7AbCRx5JQ=",
121    "./_framework/dotnet.runtime.pu7sbjsy59.js": "sha256-wW0L1H42TfMatybe1vKm/k57XP7qqXWX5r7AbCRx5JQ=",
122    "./_framework/dotnet.ur15dpacvo.js": "sha256-xpaEqK+6q7KPJMveudMVM+EW1z5NiC0WYHTVxVmEqiI=",
123    "./_framework/resource-collection.8186T.js": "sha256-106MZLi25sv+uxNdcU2hMmsXGS15zVNCi2lQpot3wFg=",
124    "./_framework/resource-collection.8186T.js.gz": "sha256-106MZLi25sv+uxNdcU2hMmsXGS15zVNCi2lQpot3wFg="
125  }
126}</script>
126
127    <link rel="icon" type="image/ico" href="images/favicon.png">
128    <title>Wybierz typ konta</title></head>
129
130<body><style>
131::-webkit-scrollbar {width: 8px;height: 8px;z-index: 1;}
132::-webkit-scrollbar-track {background: transparent;}
133::-webkit-scrollbar-thumb {background: #c4c4c4;border-radius: 1px;}
134::-webkit-scrollbar-thumb:hover {background: #a6a6a6;}
135html, body * {scrollbar-color: #c4c4c4 transparent;scrollbar-width: thin;}
136</style>
137<style>
138    .mud-chart-serie:hover {
139        filter: url(#lighten);
140    }
141
142    .mud-chart-serie-hovered 
143    {
144        filter: url(#lighten);
145    }
146</style>
147
148<style class='mud-theme-provider'>
149:root{
150--mud-palette-black: rgba(39,44,52,1);
151--mud-palette-white: rgba(255,255,255,1);
152--mud-palette-primary: rgba(43,108,176,1);
153--mud-palette-primary-rgb: 43,108,176;
154--mud-palette-primary-text: rgba(255,255,255,1);
155--mud-palette-primary-darken: rgb(35,61,61);
156--mud-palette-primary-lighten: rgb(66,153,225);
157--mud-palette-primary-hover: rgba(43,108,176,0.2);
158--mud-palette-secondary: rgba(49,151,149,1);
159--mud-palette-secondary-rgb: 49,151,149;
160--mud-palette-secondary-text: rgba(255,255,255,1);
161--mud-palette-secondary-darken: rgb(35,61,61);
162--mud-palette-secondary-lighten: rgb(129,230,217);
163--mud-palette-secondary-hover: rgba(49,151,149,0.2);
164--mud-palette-tertiary: rgba(221,107,32,1);
165--mud-palette-tertiary-rgb: 221,107,32;
166--mud-palette-tertiary-text: rgba(255,255,255,1);
167--mud-palette-tertiary-darken: rgb(192,86,33);
168--mud-palette-tertiary-lighten: rgb(237,137,54);
169--mud-palette-tertiary-hover: rgba(221,107,32,0.2);
170--mud-palette-info: rgba(66,153,225,1);
171--mud-palette-info-rgb: 66,153,225;
172--mud-palette-info-text: rgba(255,255,255,1);
173--mud-palette-info-darken: rgb(54,125,184);
174--mud-palette-info-lighten: rgb(100,171,230);
175--mud-palette-info-hover: rgba(66,153,225,0.2);
176--mud-palette-success: rgba(56,161,105,1);
177--mud-palette-success-rgb: 56,161,105;
178--mud-palette-success-text: rgba(255,255,255,1);
179--mud-palette-success-darken: rgb(46,132,86);
180--mud-palette-success-lighten: rgb(92,178,132);
181--mud-palette-success-hover: rgba(56,161,105,0.2);
182--mud-palette-warning: rgba(214,158,46,1);
183--mud-palette-warning-rgb: 214,158,46;
184--mud-palette-warning-text: rgba(255,255,255,1);
185--mud-palette-warning-darken: rgb(175,130,38);
186--mud-palette-warning-lighten: rgb(221,175,84);
187--mud-palette-warning-hover: rgba(214,158,46,0.2);
188--mud-palette-error: rgba(229,62,62,1);
189--mud-palette-error-rgb: 229,62,62;
190--mud-palette-error-text: rgba(255,255,255,1);
191--mud-palette-error-darken: rgb(188,51,51);
192--mud-palette-error-lighten: rgb(234,97,97);
193--mud-palette-error-hover: rgba(229,62,62,0.2);
194--mud-palette-dark: rgba(23,25,35,1);
195--mud-palette-dark-rgb: 23,25,35;
196--mud-palette-dark-text: rgba(255,255,255,1);
197--mud-palette-dark-darken: rgb(19,20,29);
198--mud-palette-dark-lighten: rgb(65,66,75);
199--mud-palette-dark-hover: rgba(23,25,35,0.2);
200--mud-palette-text-primary: rgba(23,25,35,1);
201--mud-palette-text-primary-rgb: 23,25,35;
202--mud-palette-text-secondary: rgba(74,85,104,1);
203--mud-palette-text-secondary-rgb: 74,85,104;
204--mud-palette-text-disabled: rgba(113,128,150,1);
205--mud-palette-text-disabled-rgb: 113,128,150;
206--mud-palette-action-default: rgba(23,25,35,1);
207--mud-palette-action-default-hover: rgba(23,25,35,0.2);
208--mud-palette-action-disabled: rgba(113,128,150,1);
209--mud-palette-action-disabled-background: rgba(226,232,240,1);
210--mud-palette-surface: rgba(255,255,255,1);
211--mud-palette-surface-rgb: 255,255,255;
212--mud-palette-background: rgba(247,250,252,1);
213--mud-palette-background-gray: rgba(237,242,247,1);
214--mud-palette-drawer-background: rgba(237,242,247,1);
215--mud-palette-drawer-text: rgba(45,55,72,1);
216--mud-palette-drawer-icon: rgba(74,85,104,1);
217--mud-palette-appbar-background: rgba(44,82,130,1);
218--mud-palette-appbar-text: rgba(255,255,255,1);
219--mud-palette-lines-default: rgba(203,213,224,1);
220--mud-palette-lines-inputs: rgba(160,174,192,1);
221--mud-palette-table-lines: rgba(226,232,240,1);
222--mud-palette-table-striped: rgba(0,0,0,0.0196078431372549);
223--mud-palette-table-hover: rgba(0,0,0,0.0392156862745098);
224--mud-palette-divider: rgba(226,232,240,1);
225--mud-palette-divider-rgb: 226,232,240;
226--mud-palette-divider-light: rgba(237,242,247,1);
227--mud-palette-skeleton: rgba(0,0,0,0.10980392156862745);
228--mud-palette-gray-default: #718096;
229--mud-palette-gray-light: #A0AEC0;
230--mud-palette-gray-lighter: #CBD5E0;
231--mud-palette-gray-dark: #4A5568;
232--mud-palette-gray-darker: #2D3748;
233--mud-palette-overlay-dark: rgba(33,33,33,0.5);
234--mud-palette-overlay-light: rgba(255,255,255,0.5);
235--mud-palette-border-opacity: 1;
236--mud-ripple-color: var(--mud-palette-text-primary);
237--mud-ripple-opacity: 0.3;
238--mud-ripple-opacity-secondary: 0.4;
239--mud-elevation-0: none;
240--mud-elevation-1: 0px 2px 1px -1px rgba(0,0,0,0.2),0px 1px 1px 0px rgba(0,0,0,0.14),0px 1px 3px 0px rgba(0,0,0,0.12);
241--mud-elevation-2: 0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);
242--mud-elevation-3: 0px 3px 3px -2px rgba(0,0,0,0.2),0px 3px 4px 0px rgba(0,0,0,0.14),0px 1px 8px 0px rgba(0,0,0,0.12);
243--mud-elevation-4: 0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);
244--mud-elevation-5: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 5px 8px 0px rgba(0,0,0,0.14),0px 1px 14px 0px rgba(0,0,0,0.12);
245--mud-elevation-6: 0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);
246--mud-elevation-7: 0px 4px 5px -2px rgba(0,0,0,0.2),0px 7px 10px 1px rgba(0,0,0,0.14),0px 2px 16px 1px rgba(0,0,0,0.12);
247--mud-elevation-8: 0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);
248--mud-elevation-9: 0px 5px 6px -3px rgba(0,0,0,0.2),0px 9px 12px 1px rgba(0,0,0,0.14),0px 3px 16px 2px rgba(0,0,0,0.12);
249--mud-elevation-10: 0px 6px 6px -3px rgba(0,0,0,0.2),0px 10px 14px 1px rgba(0,0,0,0.14),0px 4px 18px 3px rgba(0,0,0,0.12);
250--mud-elevation-11: 0px 6px 7px -4px rgba(0,0,0,0.2),0px 11px 15px 1px rgba(0,0,0,0.14),0px 4px 20px 3px rgba(0,0,0,0.12);
251--mud-elevation-12: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 12px 17px 2px rgba(0,0,0,0.14),0px 5px 22px 4px rgba(0,0,0,0.12);
252--mud-elevation-13: 0px 7px 8px -4px rgba(0,0,0,0.2),0px 13px 19px 2px rgba(0,0,0,0.14),0px 5px 24px 4px rgba(0,0,0,0.12);
253--mud-elevation-14: 0px 7px 9px -4px rgba(0,0,0,0.2),0px 14px 21px 2px rgba(0,0,0,0.14),0px 5px 26px 4px rgba(0,0,0,0.12);
254--mud-elevation-15: 0px 8px 9px -5px rgba(0,0,0,0.2),0px 15px 22px 2px rgba(0,0,0,0.14),0px 6px 28px 5px rgba(0,0,0,0.12);
255--mud-elevation-16: 0px 8px 10px -5px rgba(0,0,0,0.2),0px 16px 24px 2px rgba(0,0,0,0.14),0px 6px 30px 5px rgba(0,0,0,0.12);
256--mud-elevation-17: 0px 8px 11px -5px rgba(0,0,0,0.2),0px 17px 26px 2px rgba(0,0,0,0.14),0px 6px 32px 5px rgba(0,0,0,0.12);
257--mud-elevation-18: 0px 9px 11px -5px rgba(0,0,0,0.2),0px 18px 28px 2px rgba(0,0,0,0.14),0px 7px 34px 6px rgba(0,0,0,0.12);
258--mud-elevation-19: 0px 9px 12px -6px rgba(0,0,0,0.2),0px 19px 29px 2px rgba(0,0,0,0.14),0px 7px 36px 6px rgba(0,0,0,0.12);
259--mud-elevation-20: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 20px 31px 3px rgba(0,0,0,0.14),0px 8px 38px 7px rgba(0,0,0,0.12);
260--mud-elevation-21: 0px 10px 13px -6px rgba(0,0,0,0.2),0px 21px 33px 3px rgba(0,0,0,0.14),0px 8px 40px 7px rgba(0,0,0,0.12);
261--mud-elevation-22: 0px 10px 14px -6px rgba(0,0,0,0.2),0px 22px 35px 3px rgba(0,0,0,0.14),0px 8px 42px 7px rgba(0,0,0,0.12);
262--mud-elevation-23: 0px 11px 14px -7px rgba(0,0,0,0.2),0px 23px 36px 3px rgba(0,0,0,0.14),0px 9px 44px 8px rgba(0,0,0,0.12);
263--mud-elevation-24: 0px 11px 15px -7px rgba(0,0,0,0.2),0px 24px 38px 3px rgba(0,0,0,0.14),0px 9px 46px 8px rgba(0,0,0,0.12);
264--mud-elevation-25: 0 5px 5px -3px rgba(0,0,0,.06), 0 8px 10px 1px rgba(0,0,0,.042), 0 3px 14px 2px rgba(0,0,0,.036);
265--mud-default-borderradius: 4px;
266--mud-drawer-width-left: 240px;
267--mud-drawer-width-right: 240px;
268--mud-drawer-width-mini-left: 56px;
269--mud-drawer-width-mini-right: 56px;
270--mud-appbar-height: 64px;
271--mud-typography-default-family: Inter, Poppins, Roboto;
272--mud-typography-default-size: 16px;
273--mud-typography-default-weight: 400;
274--mud-typography-default-lineheight: 24px;
275--mud-typography-default-letterspacing: 0;
276--mud-typography-default-text-transform: none;
277--mud-typography-h1-family: Poppins, Inter, Roboto;
278--mud-typography-h1-size: 32px;
279--mud-typography-h1-weight: 700;
280--mud-typography-h1-lineheight: 40px;
281--mud-typography-h1-letterspacing: -.01562em;
282--mud-typography-h1-text-transform: none;
283--mud-typography-h2-family: Poppins, Inter, Roboto;
284--mud-typography-h2-size: 24px;
285--mud-typography-h2-weight: 600;
286--mud-typography-h2-lineheight: 32px;
287--mud-typography-h2-letterspacing: -.00833em;
288--mud-typography-h2-text-transform: none;
289--mud-typography-h3-family: Poppins, Inter, Roboto;
290--mud-typography-h3-size: 20px;
291--mud-typography-h3-weight: 500;
292--mud-typography-h3-lineheight: 28px;
293--mud-typography-h3-letterspacing: 0;
294--mud-typography-h3-text-transform: none;
295--mud-typography-h4-family: Poppins, Inter, Roboto;
296--mud-typography-h4-size: 18px;
297--mud-typography-h4-weight: 500;
298--mud-typography-h4-lineheight: 26px;
299--mud-typography-h4-letterspacing: .00735em;
300--mud-typography-h4-text-transform: none;
301--mud-typography-h5-family: Poppins, Inter, Roboto;
302--mud-typography-h5-size: 16px;
303--mud-typography-h5-weight: 500;
304--mud-typography-h5-lineheight: 24px;
305--mud-typography-h5-letterspacing: 0;
306--mud-typography-h5-text-transform: none;
307--mud-typography-h6-family: Poppins, Inter, Roboto;
308--mud-typography-h6-size: 14px;
309--mud-typography-h6-weight: 500;
310--mud-typography-h6-lineheight: 20px;
311--mud-typography-h6-letterspacing: .0075em;
312--mud-typography-h6-text-transform: none;
313--mud-typography-subtitle1-family: Inter, Poppins, Roboto;
314--mud-typography-subtitle1-size: 1rem;
315--mud-typography-subtitle1-weight: 400;
316--mud-typography-subtitle1-lineheight: 1.75;
317--mud-typography-subtitle1-letterspacing: .00938em;
318--mud-typography-subtitle1-text-transform: none;
319--mud-typography-subtitle2-family: Inter, Poppins, Roboto;
320--mud-typography-subtitle2-size: .875rem;
321--mud-typography-subtitle2-weight: 500;
322--mud-typography-subtitle2-lineheight: 1.57;
323--mud-typography-subtitle2-letterspacing: .00714em;
324--mud-typography-subtitle2-text-transform: none;
325--mud-typography-body1-family: Inter, Poppins, Roboto;
326--mud-typography-body1-size: 1rem;
327--mud-typography-body1-weight: 400;
328--mud-typography-body1-lineheight: 1.5;
329--mud-typography-body1-letterspacing: .00938em;
330--mud-typography-body1-text-transform: none;
331--mud-typography-body2-family: Inter, Poppins, Roboto;
332--mud-typography-body2-size: 14px;
333--mud-typography-body2-weight: 400;
334--mud-typography-body2-lineheight: 20px;
335--mud-typography-body2-letterspacing: .01071em;
336--mud-typography-body2-text-transform: none;
337--mud-typography-button-family: Inter, Poppins, Roboto;
338--mud-typography-button-size: 16px;
339--mud-typography-button-weight: 500;
340--mud-typography-button-lineheight: 24px;
341--mud-typography-button-letterspacing: .02857em;
342--mud-typography-button-text-transform: uppercase;
343--mud-typography-caption-family: Inter, Poppins, Roboto;
344--mud-typography-caption-size: .75rem;
345--mud-typography-caption-weight: 400;
346--mud-typography-caption-lineheight: 1.66;
347--mud-typography-caption-letterspacing: .03333em;
348--mud-typography-caption-text-transform: none;
349--mud-typography-overline-family: Inter, Poppins, Roboto;
350--mud-typography-overline-size: .75rem;
351--mud-typography-overline-weight: 400;
352--mud-typography-overline-lineheight: 2.66;
353--mud-typography-overline-letterspacing: .08333em;
354--mud-typography-overline-text-transform: none;
355--mud-zindex-drawer: 1100;
356--mud-zindex-appbar: 1300;
357--mud-zindex-dialog: 1400;
358--mud-zindex-popover: 1200;
359--mud-zindex-snackbar: 1500;
360--mud-zindex-tooltip: 1600;
361--mud-native-html-color-scheme: light;
362}
363</style>
364
365
366<div class="mud-layout" style="display: flex; flex-direction: column; min-height: 100vh;;"><header role="banner" class="mud-appbar mud-appbar-fixed-top mud-elevation-1"><div role="toolbar" class="mud-toolbar mud-toolbar-gutters mud-toolbar-appbar"><a href="/" aria-label="Przejd&#x17A; do strony g&#x142;&#xF3;wnej" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-body1"><img src="images/labai_logo.svg" alt="Logo Educreator" class="mud-image object-fill object-center" height="30" /></a>
367        <div aria-hidden="true" class="flex-grow-1"></div></div></header>
368    <div role="main" class="mud-main-content" style="flex: 1 0 auto;"><div class="mud-paper mud-elevation-0 py-6 px-2 mx-auto my-auto" style="max-width:500px;"><div role="group" class="d-flex flex-column gap-3">
369
370<div class="mud-container mud-container-maxwidth-sm mud-container--gutters my-2 px-4"><div role="group" class="d-flex flex-column align-center gap-4 mt-2"><img src="images/favicon.png" alt="Logo Educreator" class="mud-image object-fill object-center" width="80" height="80" />
371
372        <h2 class="mud-typography mud-typography-h2 mud-typography-align-center" style="max-width: 560px;">
373            Korzystam z aplikacji Educreator jako:
374        </h2>
375
376        <div class="mud-grid mud-grid-spacing-xs-4 justify-center mt-2" style="max-width: 600px; width: 100%;"><div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6" style="display: flex;"><a href="Account/Login?userType=teacher&amp;ReturnUrl=%2Fquiz" class="user-type-link" aria-label="Kontynuuj jako nauczyciel"><div class="mud-paper mud-elevation-0 pa-6 user-type-card h-100" style="text-align: center; border-radius: var(--radius-lg); border: 1px solid var(--surface-divider); background: var(--surface-card);;"><div role="group" class="d-flex flex-column align-center gap-3"><svg class="mud-icon-root mud-svg-icon mud-secondary-text mud-icon-size-medium" style="font-size: var(--space-8);" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
377                            <h3 class="mud-typography mud-typography-h3" style="color: var(--text-primary); font-weight: 600;">Nauczyciel</h3>
378                            <p class="mud-typography mud-typography-body2" style="color: var(--text-secondary);">Tworzę sprawdziany, zadania pisemne i scenariusze lekcji</p></div></div></a></div>
379
380            <div class="mud-grid-item mud-grid-item-xs-12 mud-grid-item-sm-6" style="display: flex;"><a href="Account/Login?userType=student&amp;ReturnUrl=%2Fquiz" class="user-type-link" aria-label="Kontynuuj jako ucze&#x144;"><div class="mud-paper mud-elevation-0 pa-6 user-type-card h-100" style="text-align: center; border-radius: var(--radius-lg); border: 1px solid var(--surface-divider); background: var(--surface-card);;"><div role="group" class="d-flex flex-column align-center gap-3"><svg class="mud-icon-root mud-svg-icon mud-primary-text mud-icon-size-medium" style="font-size: var(--space-8);" focusable="false" viewBox="0 0 24 24" aria-hidden="true" role="img"><path d="M0 0h24v24H0z" fill="none"/>
380<path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3 1 9l11 6 9-4.91V17h2V9L12 3z"/></svg>
381                            <h3 class="mud-typography mud-typography-h3" style="color: var(--text-primary); font-weight: 600;">Uczeń</h3>
382                            <p class="mud-typography mud-typography-body2" style="color: var(--text-secondary);">Dołączam do klasy – mam dane dostępu od nauczyciela</p></div></div></a></div></div>
383
384        <span class="mud-typography mud-typography-caption mud-typography-align-center mt-2 px-4" style="max-width: 500px; color: var(--text-secondary);">
385            Kontynuując, potwierdzasz, że zapoznałeś się i akceptujesz
386            <a href="/Account/Terms" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-caption">Regulamin</a>,
387            <a href="/Account/DataProtection" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-caption">Zasady ochrony danych</a>
388            oraz
389            <a href="/Account/PrivacyPolicy" target="_blank" class="mud-typography mud-link mud-primary-text mud-link-underline-hover mud-typography-caption">Politykę prywatności</a>.
390        </span></div></div>
391
392<style>
393    .user-type-link {
394        text-decoration: none;
395        display: block;
396        border-radius: var(--radius-lg);
397        height: 100%;
398    }
399    .user-type-card {
400        transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
401        cursor: pointer;
402    }
403    .user-type-link:hover .user-type-card {
404        transform: translateY(-4px);
405        box-shadow: var(--shadow-lg);
406        border-color: var(--color-primary) !important;
407        background: color-mix(in srgb, var(--color-primary) 5%, var(--surface-card)) !important;
408    }
409    .user-type-link:active .user-type-card {
410        transform: translateY(-1px);
411        box-shadow: var(--shadow-sm);
412        border-color: var(--color-primary) !important;
413    }
414    .user-type-link:focus-visible {
415        outline: 3px solid var(--color-primary);
416        outline-offset: 3px;
417    }
418    .user-type-link:focus-visible .user-type-card {
419        border-color: var(--color-primary) !important;
420        box-shadow: 0 0 0 2px var(--color-primary);
421    }
422</style></div></div></div>
423
424    <div role="contentinfo" class="mud-paper mud-paper-square mud-elevation-1 pa-4" style=""><div role="group" class="d-flex flex-column align-center gap-2"><p class="mud-typography mud-typography-body2 mud-typography-align-center">
425            &copy; 2026 Educreator sp. z o.o. Wszelkie prawa zastrzeżone.
426        </p></div></div></div>
427
428    
429    <div id="blazor-reconnect-modal" style="display: none;"><div style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 9999; display: flex; justify-content: center; align-items: center;"><div style="background: white; padding: 30px 40px; border-radius: 8px; text-align: center; font-family: 'Roboto', sans-serif; box-shadow: 0 4px 20px rgba(0,0,0,0.3);"><div class="show-reconnecting" style="display: none;"><div style="font-size: 32px; margin-bottom: 16px;">🔄</div>
430                    <p style="font-size: 18px; margin: 0;">Ponowne łączenie z serwerem...</p></div>
431                <div class="show-failed" style="display: none;"><div style="font-size: 32px; margin-bottom: 16px;">⚠️</div>
432                    <p style="font-size: 18px; margin: 0 0 10px 0;">Połączenie nieudane.</p>
433                    <p style="font-size: 14px; color: #666; margin: 0;">Ponowna próba za kilka sekund...</p></div>
434                <div class="show-rejected" style="display: none;"><div style="font-size: 32px; margin-bottom: 16px;">❌</div>
435                    <p style="font-size: 18px; margin: 0 0 16px 0;">Nie udało się połączyć z serwerem.</p>
436                    <button onclick="location.reload()" style="padding: 10px 24px; font-size: 16px; background: #1976d2; color: white; border: none; border-radius: 4px; cursor: pointer;">
437                        Odśwież stronę
438                    </button></div></div></div></div>
439
440    <style>
441        #blazor-reconnect-modal.show-reconnecting { display: block; }
442        #blazor-reconnect-modal.show-reconnecting .show-reconnecting { display: block !important; }
443
444        #blazor-reconnect-modal.show-failed { display: block; }
445        #blazor-reconnect-modal.show-failed .show-failed { display: block !important; }
446
447        #blazor-reconnect-modal.show-rejected { display: block; }
448        #blazor-reconnect-modal.show-rejected .show-rejected { display: block !important; }
449    </style>
450
451    
451<script src="_framework/blazor.web.js"></script>
451
452    
452<script src="_content/MudBlazor/MudBlazor.min.f96y5mhlyw.js"></script>
452
453    
453<script src="_content/Extensions.MudBlazor.StaticInput/NavigationObserver.lp4d2hvui5.js"></script>
453
454    
454<script>
455        window.getHtmlById = function (id) {
456          var el = document.getElementById(id);
457          return el ? el.outerHTML : "";
458        };
459
460        window.downloadFileFromStream = async (fileName, contentStreamReference) => {
461          const arrayBuffer = await contentStreamReference.arrayBuffer();
462          const blob = new Blob([arrayBuffer]);
463          const url = URL.createObjectURL(blob);
464          const anchorElement = document.createElement('a');
465          anchorElement.href = url;
466          anchorElement.download = fileName ?? '';
467          anchorElement.click();
468          anchorElement.remove();
469          URL.revokeObjectURL(url);
470        };
471
472        window.downloadFileFromBytes = (fileName, base64Content, mimeType) => {
473          const byteCharacters = atob(base64Content);
474          const byteNumbers = new Array(byteCharacters.length);
475          for (let i = 0; i < byteCharacters.length; i++) {
476            byteNumbers[i] = byteCharacters.charCodeAt(i);
477          }
478          const byteArray = new Uint8Array(byteNumbers);
479          const blob = new Blob([byteArray], { type: mimeType || 'application/octet-stream' });
480          const url = URL.createObjectURL(blob);
481          const anchorElement = document.createElement('a');
482          anchorElement.href = url;
483          anchorElement.download = fileName ?? '';
484          anchorElement.click();
485          anchorElement.remove();
486          URL.revokeObjectURL(url);
487        };
488
489        window.localStorageHelper = {
490            set: function (key, value) {
491                localStorage.setItem(key, value);
492            },
493            get: function (key) {
494                return localStorage.getItem(key);
495            }
496        };
497
498        window.anonymousLessonCache = {
499            _key: function (setId) { return 'anon-lesson-' + setId; },
500            get: function (setId) {
501                return localStorage.getItem(this._key(setId)) || null;
502            },
503            set: function (setId, json) {
504                try {
505                    localStorage.setItem(this._key(setId), json);
506                } catch (e) {}
507            },
508            clear: function (setId) {
509                localStorage.removeItem(this._key(setId));
510            }
511        };
512
513        window.pasteFromClipboard = async function () {
514            if (navigator.clipboard && navigator.clipboard.readText) {
515                return await navigator.clipboard.readText();
516            } else {
517                return "";
518            }
519        };
520
521        window.copyTextToClipboard = async (text) => {
522            // Try modern Clipboard API first (works on HTTPS and localhost)
523            if (navigator.clipboard && navigator.clipboard.writeText) {
524                try {
525                    await navigator.clipboard.writeText(text);
526                    return true;
527                } catch (err) {
528                    console.warn('Clipboard API failed, using fallback:', err);
529                }
530            }
531            
532            // Fallback for HTTP or older browsers
533            const textArea = document.createElement('textarea');
534            textArea.value = text;
535            textArea.style.position = 'fixed';
536            textArea.style.left = '-9999px';
537            textArea.style.top = '-9999px';
538            document.body.appendChild(textArea);
539            textArea.focus();
540            textArea.select();
541            
542            try {
543                document.execCommand('copy');
544                return true;
545            } catch (err) {
546                console.error('Fallback copy failed:', err);
547                return false;
548            } finally {
549                document.body.removeChild(textArea);
550            }
551        }
552
553        window.addEventListener('error', function (event) {
554          if (window.DotNet && window.DotNet.invokeMethodAsync) {
555            DotNet.invokeMethodAsync('LabAI.Client', 'LogClientError', event.message, event.error?.stack || '');
556          }
557        });
558    </script>
558</body></html><!--Blazor-Server-Component-State:CfDJ8OLspmrQynxJnEADxT6sLageAiI/2IY7MHPrW6Sk6G4tYF513c3YKJ9Z9eTw29s9N82x2dHqyNwWVXGA7c7YoA2Yp/kIJVDzf5hrecTu7Ks459wcvHF6QDxQgGsPdks6F1mHzoesEWOPrdiMp3qI5eaMhOnaFXemuglXuCC79sbbWl9WruRCjIsBDALZDZVCPzoaKL3iL+h/lzuj/ujH52J/T/8oUmJ58XuXVYJPZV2P1qzuUNKraxJ7SMXJDmMUOF4avUPVADy0wndbcOrPVCvbwHIWUF+qJpyTpXV63RapuK5rxbjOiljfxmaRUM0lVfBds4gg0/BVsQHA74giARvIppWu9/YZs/L+bL8aSu+vnOSm/UxBTGi94zhxEqRwxgdB1EEAmTqDUdx/BXPtjjsBIsXNf4LQSM7ggZQLEofAxiQOwLxRIYuE8OnrBBQ/I6KcIAJa7AjnFcFZo1aMgBppCyAyHSRz3xI2g8kgjvyyJKxPg1t9mYB/oY/TD7k8xJvAgKIOCHHRhM7susf8mgPoZG49RQgZcvpFR5XaWO08--><!--Blazor-WebAssembly-Component-State:eyJfX1Jlc291cmNlQ29sbGVjdGlvblVybCI6IklpNHZYMlp5WVcxbGQyOXlheTl5WlhOdmRYSmpaUzFqYjJ4c1pXTjBhVzl1TGpneE9EWlVMbXB6SWc9PSIsIl9faW50ZXJuYWxfX0FudGlmb3JnZXJ5UmVxdWVzdFRva2VuIjoiZXlKMllXeDFaU0k2SWtObVJFbzRUMHh6Y0cxeVVYbHVlRXB1UlVGRWVGUTJjMHhoYUhkelRHMWhWbkZQZUVVNGFHVXdjRVYwUkVaUGIxOXNRVlozWTB0SE5uQmFibGxtV0U5cGFqRk9PRzVhTkhKRWQwOHRXVjlSYlU5SVMxSmpNV0kyUlV0alJtRkRjbmRLZEhGTVIyMUJVMXBUY2pGNVJFODFTV2h2TVZoRmNYZDVSMDVKYlRreWNXNWtTVE41YzA5bE5uZzROVE5OZGtkVlNqWndUa0ZTYWw5Vklpd2labTl5YlVacFpXeGtUbUZ0WlNJNklsOWZVbVZ4ZFdWemRGWmxjbWxtYVdOaGRHbHZibFJ2YTJWdUluMD0ifQ==-->

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.