From 9e1719df4d0746bc0ba22e84e767f76ac603fb51 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Sun, 1 Jun 2025 00:26:29 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Improved=20backend=20structure?= =?UTF-8?q?=20&=20added=20utility=20modules=20=F0=9F=8E=A8=F0=9F=93=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/__pycache__/models.cpython-313.pyc | Bin 42404 -> 52686 bytes backend/app.py | 194 +++++++++++++++++- .../__pycache__/guest.cpython-313.pyc | Bin 42178 -> 48356 bytes .../__pycache__/printers.cpython-313.pyc | Bin 7719 -> 38588 bytes .../__pycache__/settings.cpython-313.pyc | Bin 7647 -> 7667 bytes backend/config/settings.py | 1 + backend/database/myp.db | Bin 110592 -> 110592 bytes backend/database/myp.db-shm | Bin 0 -> 32768 bytes backend/database/myp.db-wal | Bin 0 -> 49472 bytes backend/logs/app/app.log | 137 +++++++++++++ backend/logs/scheduler/scheduler.log | 12 ++ backend/requirements.txt | 161 +++++++++++---- backend/static/css/tailwind.min.css | 2 +- .../advanced_tables.cpython-313.pyc | Bin 0 -> 37797 bytes .../drag_drop_system.cpython-313.pyc | Bin 0 -> 57200 bytes .../email_notification.cpython-313.pyc | Bin 0 -> 6976 bytes .../form_validation.cpython-313.pyc | Bin 0 -> 33948 bytes .../maintenance_system.cpython-313.pyc | Bin 0 -> 38257 bytes .../multi_location_system.cpython-313.pyc | Bin 0 -> 37191 bytes .../__pycache__/permissions.cpython-313.pyc | Bin 27330 -> 27455 bytes .../realtime_dashboard.cpython-313.pyc | Bin 0 -> 50059 bytes .../report_generator.cpython-313.pyc | Bin 0 -> 45442 bytes backend/utils/advanced_tables.py | 34 ++- backend/utils/maintenance_system.py | 104 +++++++++- backend/utils/multi_location_system.py | 127 +++++++++++- backend/utils/permissions.py | 4 + backend/utils/realtime_dashboard.py | 34 ++- 27 files changed, 750 insertions(+), 60 deletions(-) create mode 100644 backend/database/myp.db-shm create mode 100644 backend/database/myp.db-wal create mode 100644 backend/utils/__pycache__/advanced_tables.cpython-313.pyc create mode 100644 backend/utils/__pycache__/drag_drop_system.cpython-313.pyc create mode 100644 backend/utils/__pycache__/email_notification.cpython-313.pyc create mode 100644 backend/utils/__pycache__/form_validation.cpython-313.pyc create mode 100644 backend/utils/__pycache__/maintenance_system.cpython-313.pyc create mode 100644 backend/utils/__pycache__/multi_location_system.cpython-313.pyc create mode 100644 backend/utils/__pycache__/realtime_dashboard.cpython-313.pyc create mode 100644 backend/utils/__pycache__/report_generator.cpython-313.pyc diff --git a/backend/__pycache__/models.cpython-313.pyc b/backend/__pycache__/models.cpython-313.pyc index b0a96aa8628d7d6b21a9b2827b583a777b6b8ddd..427263d142d4afdce5391f46b533266659c3bc7e 100644 GIT binary patch delta 16216 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 SxXV!H?hz^3|LRT=iu?cBzFs8& delta 8679 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 diff --git a/backend/app.py b/backend/app.py index 95764f36..a5726e0e 100644 --- a/backend/app.py +++ b/backend/app.py @@ -1724,14 +1724,10 @@ def api_admin_system_health(): "error": str(e) }), 500 -# ===== INTEGRATION IN BESTEHENDE ROUTEN ===== - -# Erweitere bestehende Job-Routen um Dashboard-Events - -@app.route("/api/admin/system-health", methods=['GET']) +@app.route("/api/admin/system-health-dashboard", methods=['GET']) @login_required @admin_required -def api_admin_system_health(): +def api_admin_system_health_dashboard(): """API-Endpunkt für System-Gesundheitscheck mit Dashboard-Integration.""" try: # Basis-System-Gesundheitscheck durchführen @@ -5064,6 +5060,192 @@ def setup_database_with_migrations(): app_logger.error(f"❌ Fehler bei Datenbank-Setup: {str(e)}") raise e +# ===== PRIVACY UND TERMS ROUTEN ===== + +@app.route("/privacy") +def privacy_policy(): + """Datenschutzerklärung anzeigen""" + try: + return render_template("privacy_policy.html", title="Datenschutzerklärung") + except Exception as e: + app_logger.error(f"Fehler beim Laden der Datenschutzerklärung: {str(e)}") + flash("Fehler beim Laden der Datenschutzerklärung", "error") + return redirect(url_for("index")) + +@app.route("/terms") +def terms_of_service(): + """Nutzungsbedingungen anzeigen""" + try: + return render_template("terms_of_service.html", title="Nutzungsbedingungen") + except Exception as e: + app_logger.error(f"Fehler beim Laden der Nutzungsbedingungen: {str(e)}") + flash("Fehler beim Laden der Nutzungsbedingungen", "error") + return redirect(url_for("index")) + +@app.route("/legal") +def legal_notice(): + """Impressum anzeigen""" + try: + return render_template("legal_notice.html", title="Impressum") + except Exception as e: + app_logger.error(f"Fehler beim Laden des Impressums: {str(e)}") + flash("Fehler beim Laden des Impressums", "error") + return redirect(url_for("index")) + +@app.route("/api/privacy/accept", methods=["POST"]) +@login_required +def accept_privacy_policy(): + """API-Endpunkt für Akzeptierung der Datenschutzerklärung""" + db_session = get_db_session() + try: + data = request.get_json() or {} + version = data.get("version", "1.0") + + # Benutzer aus der Datenbank laden + user = db_session.query(User).filter(User.id == int(current_user.id)).first() + + if not user: + return jsonify({"error": "Benutzer nicht gefunden"}), 404 + + # Privacy-Akzeptierung in Benutzer-Einstellungen speichern + if hasattr(user, 'settings'): + import json + settings = json.loads(user.settings) if user.settings else {} + else: + settings = session.get('user_settings', {}) + + # Privacy-Akzeptierung hinzufügen + if 'privacy_acceptance' not in settings: + settings['privacy_acceptance'] = {} + + settings['privacy_acceptance'] = { + 'accepted': True, + 'version': version, + 'timestamp': datetime.now().isoformat(), + 'ip_address': request.remote_addr + } + + # Einstellungen speichern + if hasattr(user, 'settings'): + user.settings = json.dumps(settings) + user.updated_at = datetime.now() + db_session.commit() + else: + session['user_settings'] = settings + + user_logger.info(f"Benutzer {current_user.username} hat Datenschutzerklärung v{version} akzeptiert") + + return jsonify({ + "success": True, + "message": "Datenschutzerklärung erfolgreich akzeptiert", + "version": version, + "timestamp": datetime.now().isoformat() + }) + + except Exception as e: + db_session.rollback() + app_logger.error(f"Fehler bei Privacy-Akzeptierung: {str(e)}") + return jsonify({"error": "Interner Serverfehler"}), 500 + finally: + db_session.close() + +@app.route("/api/terms/accept", methods=["POST"]) +@login_required +def accept_terms_of_service(): + """API-Endpunkt für Akzeptierung der Nutzungsbedingungen""" + db_session = get_db_session() + try: + data = request.get_json() or {} + version = data.get("version", "1.0") + + # Benutzer aus der Datenbank laden + user = db_session.query(User).filter(User.id == int(current_user.id)).first() + + if not user: + return jsonify({"error": "Benutzer nicht gefunden"}), 404 + + # Terms-Akzeptierung in Benutzer-Einstellungen speichern + if hasattr(user, 'settings'): + import json + settings = json.loads(user.settings) if user.settings else {} + else: + settings = session.get('user_settings', {}) + + # Terms-Akzeptierung hinzufügen + if 'terms_acceptance' not in settings: + settings['terms_acceptance'] = {} + + settings['terms_acceptance'] = { + 'accepted': True, + 'version': version, + 'timestamp': datetime.now().isoformat(), + 'ip_address': request.remote_addr + } + + # Einstellungen speichern + if hasattr(user, 'settings'): + user.settings = json.dumps(settings) + user.updated_at = datetime.now() + db_session.commit() + else: + session['user_settings'] = settings + + user_logger.info(f"Benutzer {current_user.username} hat Nutzungsbedingungen v{version} akzeptiert") + + return jsonify({ + "success": True, + "message": "Nutzungsbedingungen erfolgreich akzeptiert", + "version": version, + "timestamp": datetime.now().isoformat() + }) + + except Exception as e: + db_session.rollback() + app_logger.error(f"Fehler bei Terms-Akzeptierung: {str(e)}") + return jsonify({"error": "Interner Serverfehler"}), 500 + finally: + db_session.close() + +@app.route("/api/legal/status", methods=["GET"]) +@login_required +def get_legal_status(): + """API-Endpunkt für Abfrage des rechtlichen Status (Privacy/Terms Akzeptierung)""" + try: + # Benutzer-Einstellungen laden + if hasattr(current_user, 'settings') and current_user.settings: + import json + settings = json.loads(current_user.settings) + else: + settings = session.get('user_settings', {}) + + privacy_acceptance = settings.get('privacy_acceptance', {}) + terms_acceptance = settings.get('terms_acceptance', {}) + + return jsonify({ + "success": True, + "legal_status": { + "privacy_policy": { + "accepted": privacy_acceptance.get('accepted', False), + "version": privacy_acceptance.get('version'), + "timestamp": privacy_acceptance.get('timestamp') + }, + "terms_of_service": { + "accepted": terms_acceptance.get('accepted', False), + "version": terms_acceptance.get('version'), + "timestamp": terms_acceptance.get('timestamp') + }, + "compliance_required": not ( + privacy_acceptance.get('accepted', False) and + terms_acceptance.get('accepted', False) + ) + } + }) + + except Exception as e: + app_logger.error(f"Fehler bei Legal-Status-Abfrage: {str(e)}") + return jsonify({"error": "Interner Serverfehler"}), 500 + + # ===== STARTUP UND MAIN ===== if __name__ == "__main__": import sys diff --git a/backend/blueprints/__pycache__/guest.cpython-313.pyc b/backend/blueprints/__pycache__/guest.cpython-313.pyc index 406403f3759ddf355349f53b07a88d970e2a1c21..a95c9192d055ce85cb1b688292fc57d137eacda6 100644 GIT binary patch delta 8503 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 RZ&;Ek_$ut+U?rxZ{|5@b$lL$` delta 4167 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 Udh(XUmSc9&{H1m_8}SYP3se{dK>z>% diff --git a/backend/blueprints/__pycache__/printers.cpython-313.pyc b/backend/blueprints/__pycache__/printers.cpython-313.pyc index 7d2b4b02a73b28a47c8c2204dd12fb215d1b7382..1751f777c944d73a313a8fcb1e8a8d828dd945bf 100644 GIT binary patch literal 38588 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

29s}$@;><8*Vg3pyZ$W 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 diff --git a/backend/config/__pycache__/settings.cpython-313.pyc b/backend/config/__pycache__/settings.cpython-313.pyc index 847f2bff1c021f56248a8f22452dbac092082aaa..82a70d8be76d6ec568c905e08c7c3f9b94225a11 100644 GIT binary patch delta 339 zcmca_{n?uLGcPX}0}$-4x6XJzkyny2XrsC{lSZ&gk#Y>H5<{?Ru$n0oNC5*wkqTHu zJy-)K668I(jY)CxLnZ@mZBu5bD)osI#3%1(lBm~#3u%Bg>IUnlbMS^Au?Z z8^rMOF&Hxy=>!|bumrQlu$Zs}8%Z%_u@vbB8%r@1=>?krN&R3`AZZY61|$uG&4Hv* zumzAbPG{7#dI_@GPm}Q$XGvymYD#KON#ZS*yv-As`xqJBCd;#$Yz}AL%EB18nU`x7 zBV+F79o%`0jK!PPdG|9iR&IXI*T~3Nzd2Lj6ANR@<`~hb%#6z?f09_wXtH^cWD_GF vudic7yql+wYkaV0l=R(K>HYhxR`(QS?LHy)*Au}4ZM?8Wp@DpEkIKA delta 281 zcmexteczh*GcPX}0}!bEvCNn_kynz@Z=G&Rw<31VttAHT+F`@+tqS9+x(pN%gO7<*L$^FAIA;rnOOGWqqz3|b3q0IisgOWv0>hMN5(xqX2$UeuFQExN5FkK+KqG-cqiV$j2oNAZ xfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PJ^`fit?sC(Zx> literal 0 HcmV?d00001 diff --git a/backend/database/myp.db-wal b/backend/database/myp.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..b0042bd1ce4dde9c14cc999f26b07f4d6a946b57 GIT binary patch literal 49472 zcmeHQTWlOx8TKUgu6GmX*0|HA4VvPVcp!Fm$KGt>a_Pn$C$62{#91c}7cJwRu|4hX z&Uj`viHlHVr%DTzs1zO|`htXngep|QQy+Lhs(9g{@KO;fC=z`t2m#`Shf0WZ&fLzK znH`%ZRYm)+67SBrpYL4$bH4e{`O7yln|-72J>1u~uMdC5q*w0#{f~2>`RUbCW%ISa zyp5bV^#4)cedu35dHqh~$DhA=VNQ26VcD?SiX)7p*gJOgJtYVz>_r?N{r5kgLq8ty z9v(s8I6eIFzuhPH@5R2cTVg*BwD$w-b7=1eyWSYw%>QlRhuO24>Hab|-1j>+%Kdnn z-JRi|c!K+yqb#*Fd##14*svYNDbm09OwG%cx-8Tyr{`pW_8D=OTE}$t`Y{|wd};r# zEH8@OE8if=t#mcpX;|7C{nLqa zxKx>+I$N0^DHaMM&zzHS6kO@99c1X`XIgs4(X2*T1sv9J%tq5t+0tW=XN{#uP^Igv z8YsRQq+D`qg45{Q@p3HdEv>;oBb7>|?!?DboK-3*H?5{&>TD%V%V=sgPJU^fu6*bo zslH+&ud7O{(J?SyKERgttkxt5N09HDY7&ZWGVxlu>BQZG@N6-I;H)#oOuKICmS#tr zPqA%%rGqj^Zn5+8Gv_MvSA<#liZG(91kdT(ygYNJirq%SSfVg5Ps{UibxOV{c+PfW z9JjHV@W?4SY>4~PIuiqR0V_EQ1ey5| zcrv$~2I*u}H9DH6qVeDjV7h`hj@ON1v6#wx8OMf&?@o^i?B@1Z)FJ8vS$=q!d%VRu2YB^ts| zyDcUFsd@x|+(&e?p{OdFa6-}GP2eOj%BJJQ=3@rigxO{*SYLQ1o8^awxRCSV1N(jNnffk-fjnth!(9A6Shjz=^|N!eQ-+$ zjf@db7Q{V1R8mB=bF?vF=idYMTwCKBt{ z3`=E-$fTA$#?YwLuWF0{NnR_HCTp&0&F4@%(~Ib6lVQLXsxucBWMPCtLClNC`!oF1 zVXjZ_sM>XJ7lPKx26^@uadxBVw_^5YizD6m#d08QiG;OxGOdmwLei<{v>4x3Fu-gB zVGrEKs$z#L@uGB+U6Q0XlVwoSM{+yX|As!2v1rRfW8Y&%ZflOCcUHnBy{egL715^U zmfwXHqIN4d3E%~CJ!YX`GaFeO23yvMdk~%_ z0D|DGGw=e4s~|I6B2hu1)?<~3J1@Nu1zsSHEW${mk>3ML;01seXaFz3EUS?aMZ{HP zjt5?#*Ax<+j>FXkGw1kwqr^!ccmdnT2Y7)T@B+XKMBaA-FJK{lDV-O%{e#l(FMn|3 zRthh$a36Sq1>gmM7m(+%*av+9qKy%3StDyk;00Vcmhe)Mf`(Zo0xvKE`U3Pz9ncqu zY6F12Ktvl4^aZdi27LjnM+*7^+tgSEeSu!@&_G|nQbAwf6QnONaq#_j|H}PoE`=Ak zbRT$uOTY^NF95s%bxH$xf$&_%Hh1~J3($v-;2Z&*BM6V6!8rn1fO7=%E2G0K5S30^!66ya4b5zzb}b7YObn z9D6zU{a4?-^ZpjRz+;FT@IOb<5C7i5L+H1E-=P2Phoirvyuf2{?;zYe7+#JGcaYo_ z9G-wrWbfd9fyf0e=>rJv7eH{qy@R+LkPSV1J2k_L6Mx*B(r@JgUI2Ij;03nB3+%uf zcHbVs+8e^@+t-B)WK;h!{2?|9$RC2mk_r03h%Y zA%NfU2fV;*fByQfetq!jQ-jzMnKs<>pTU3R{*e1#ZgAkc1ADUH&K}SFKJ!xMc>jC- z?Fasi1HlIn00aPmPXq!EpXI+IavOuh8W1u`+F*@}604@&h!xUDJUc)$)u-h}p=Tta zRu$OPMqCpgqWuuc^(dVyW4I6-6T{d3Gma0(GG)B|I5<Vl)CXltg&GM= zA089PF$6IP{QTZ5KYp0oCvl z4{;lnAaklCx>dst`(jzgg2gh&A%cwkSNX>T*FHd4gd2ldY!Ygt9F&0V5RI^%_r^+* z6f{;45-8|Ss07#saaaJbuZ(RtwVLBkJBb!7(6kT@ zk7tU+uwY-=x5EtQA6?7#crI^H)|fFa#O?pdzA{?P<1+z|`T7DEf1%xYZt2C_m>1Z$ z^THOq015yfKmZWf8iAX`4`=zuALnlE_bqNWkO5t^C&5C<{dLG&Q@Ybj=$v4!6F9I)sF5~VJ zTkyaOggg(sw*y|_dT2k}C6fGQHt+(#3q&kEU<==jSaGQ^|IlDja*dONePzW7t-Y5J zXqX0R8m6wl-+b$x*YCcC zc>!+kBYo%}d;kGJ01yBK00BS%5C8-K0YCr{00aPmPagssDtDmoNq(dMD4(lTDg=Ov zqPF$UQ*F&^YN}?BE@_?T$C^f)I3JOgjufRM#_UYHv`{M+ilz2ap;&uay?9NY`Rdh6t8?mD?f6)G(XO04UanPey1MOHiep$LHK`z#Mhm4;>6B1BIXO|9 z9GAu>%BRW`W#4DKC`jXzQfX2;F(wsD1?iOQb7Hhm6bgk&?0ItRMBx-FiXSJQ8mbq* zMIhh>e);5YK0EfU^L)y^gNryk!NdLYVeTDVjMyW9dk2$V*rwm00=&Eb&Os`b2)o|f z{4((FxdaB8eh=|+ztRVNJkZD6#VE{tBJ}Y#>jPPSc$j;^AZkLC+CKF&&(xdpNYNAu zl>UXMJ*y_nOIff-0QLyL9)U0`Ul{>=1YnN<>=D#uAyjimMxuKVI!%LKuh?HM<)|o;jt-BYhGZz+QVZ=R6hV%7ZeDuY=$=z9kfV-diDbz9Y9-qMql9V%Jj=~-}%|Qpf5l%AMg_p00aO5KmZT` z1ONd*01yBK00BVY(}%!^)fZT0aYoZhrRA~0bL!dov(KEU qPcO_|yK+f+cIxDbnzUBBWKMk~`T`S^rSUPTT%4HjGzpTl5B>{~&pDX@ literal 0 HcmV?d00001 diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log index d38facf7..726542e2 100644 --- a/backend/logs/app/app.log +++ b/backend/logs/app/app.log @@ -75620,3 +75620,140 @@ WHERE users.id = ? 2025-05-31 23:51:08 - myp.app - INFO - 📁 Schalte Journal-Mode um... 2025-05-31 23:51:08 - myp.app - INFO - ✅ Datenbank-Cleanup abgeschlossen - WAL-Dateien sollten verschwunden sein 2025-05-31 23:51:08 - myp.app - INFO - ✅ Shutdown abgeschlossen +2025-06-01 00:15:51 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:15:51 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:15:51 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:15:51 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:15:51 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:15:51 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:15:51 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:16:49 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:16:49 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:16:49 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:16:49 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:16:49 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:16:49 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:16:49 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:17:41 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:17:41 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:17:41 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:17:41 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:17:42 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:17:42 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:17:42 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:17:47 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:17:47 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:17:47 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:17:47 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:17:47 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:17:48 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:17:48 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:17:48 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:17:48 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:18:02 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:18:02 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:18:02 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:18:02 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:18:02 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:18:02 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:18:02 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:18:02 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:18:02 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:18:03 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:18:03 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:18:03 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:18:03 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:18:03 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:18:04 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:18:04 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:18:04 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:18:04 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:18:52 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:18:52 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:18:52 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:18:52 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:18:52 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:18:52 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:18:52 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:18:52 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:18:52 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:18:53 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet +2025-06-01 00:19:31 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:19:31 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:19:31 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:19:31 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:19:31 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:19:31 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:19:31 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:19:31 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:19:31 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:19:32 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet +2025-06-01 00:19:32 - myp.app - INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen) +2025-06-01 00:19:52 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:19:52 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:19:52 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:19:52 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:19:52 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:19:52 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:19:52 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:19:52 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:19:52 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:19:53 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet +2025-06-01 00:19:53 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand) +2025-06-01 00:19:53 - myp.maintenance - INFO - Wartungs-Scheduler gestartet +2025-06-01 00:20:28 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:20:28 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:20:28 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:20:28 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:20:28 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:20:28 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:20:28 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:20:28 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:20:28 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:20:29 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet +2025-06-01 00:20:29 - myp.app - INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen) +2025-06-01 00:20:29 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand) +2025-06-01 00:20:29 - myp.maintenance - INFO - Wartungs-Scheduler gestartet +2025-06-01 00:20:49 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:20:49 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:20:49 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:20:49 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:20:49 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:20:49 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:20:49 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:20:49 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:20:49 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:20:50 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet +2025-06-01 00:20:50 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand) +2025-06-01 00:20:50 - myp.maintenance - INFO - Wartungs-Scheduler gestartet +2025-06-01 00:20:50 - myp.app - INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen) +2025-06-01 00:20:50 - myp.multi_location - INFO - Standard-Standort erstellt +2025-06-01 00:21:36 - myp.windows_fixes - INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-01 00:21:36 - myp.windows_fixes - INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen) +2025-06-01 00:21:36 - myp.windows_fixes - INFO - ✅ Globaler subprocess-Patch angewendet +2025-06-01 00:21:36 - myp.windows_fixes - INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-01 00:21:36 - myp.app - INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db +2025-06-01 00:21:36 - myp.printer_monitor - INFO - 🖨️ Drucker-Monitor initialisiert +2025-06-01 00:21:36 - myp.printer_monitor - INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet +2025-06-01 00:21:36 - myp.database - INFO - Datenbank-Wartungs-Scheduler gestartet +2025-06-01 00:21:36 - myp.analytics - INFO - 📈 Analytics Engine initialisiert +2025-06-01 00:21:37 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet +2025-06-01 00:21:37 - myp.app - INFO - SQLite für Produktionsumgebung konfiguriert (WAL-Modus, Cache, Optimierungen) +2025-06-01 00:21:37 - myp.email_notification - INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand) +2025-06-01 00:21:37 - myp.maintenance - INFO - Wartungs-Scheduler gestartet +2025-06-01 00:21:37 - myp.multi_location - INFO - Standard-Standort erstellt +2025-06-01 00:21:37 - myp.dashboard - INFO - Dashboard-Background-Worker gestartet +2025-06-01 00:21:37 - myp.maintenance - INFO - Wartungs-Scheduler gestartet +2025-06-01 00:21:37 - myp.multi_location - INFO - Standard-Standort erstellt +2025-06-01 00:21:37 - myp.dashboard - INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback) +2025-06-01 00:21:37 - myp.dashboard - INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading) +2025-06-01 00:21:37 - myp.security - INFO - 🔒 Security System initialisiert +2025-06-01 00:21:37 - myp.permissions - INFO - 🔐 Permission Template Helpers registriert +2025-06-01 00:21:37 - myp.app - INFO - ================================================== +2025-06-01 00:21:37 - myp.app - INFO - [START] MYP (Manage Your Printers) wird gestartet... +2025-06-01 00:21:37 - myp.app - INFO - [FOLDER] Log-Verzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\logs +2025-06-01 00:21:37 - myp.app - INFO - [CHART] Log-Level: INFO +2025-06-01 00:21:37 - myp.app - INFO - [PC] Betriebssystem: Windows 11 +2025-06-01 00:21:37 - myp.app - INFO - [WEB] Hostname: C040L0079726760 +2025-06-01 00:21:37 - myp.app - INFO - [TIME] Startzeit: 01.06.2025 00:21:37 +2025-06-01 00:21:37 - myp.app - INFO - ================================================== diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log index 22957e80..bc0d5c68 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -2705,3 +2705,15 @@ 2025-05-31 23:50:30 - myp.scheduler - INFO - Scheduler gestartet 2025-05-31 23:51:08 - myp.scheduler - INFO - Scheduler-Thread beendet 2025-05-31 23:51:08 - myp.scheduler - INFO - Scheduler gestoppt +2025-06-01 00:15:51 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:16:49 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:17:42 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:17:48 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:18:02 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:18:04 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:18:52 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:19:31 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:19:52 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:20:28 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:20:49 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-01 00:21:36 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True diff --git a/backend/requirements.txt b/backend/requirements.txt index dbe2c059..cc18c733 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -3,55 +3,136 @@ # Automatisch generiert am: 2025-05-29 19:41:49 # Installiere mit: pip install -r requirements.txt -# ===== CORE FLASK FRAMEWORK ===== -# Direkt in app.py verwendet -Flask==3.1.1 +# ===== CORE FRAMEWORK ===== +Flask==3.0.0 +Werkzeug==3.0.1 + +# ===== FLASK EXTENSIONS ===== Flask-Login==0.6.3 Flask-WTF==1.2.1 +Flask-SocketIO==5.3.6 +WTForms==3.1.1 -# ===== DATENBANK ===== -# SQLAlchemy für Datenbankoperationen (models.py, app.py) -SQLAlchemy==2.0.36 +# ===== DATABASE ===== +SQLAlchemy==2.0.23 -# ===== SICHERHEIT UND AUTHENTIFIZIERUNG ===== -# Werkzeug für Passwort-Hashing und Utilities (app.py) -bcrypt==4.2.1 -cryptography==44.0.0 -Werkzeug==3.1.3 +# ===== SECURITY ===== +cryptography==41.0.8 +bcrypt==4.1.2 -# ===== SMART PLUG STEUERUNG ===== -# PyP100 für TP-Link Tapo Smart Plugs (utils/job_scheduler.py) -PyP100 +# ===== HTTP REQUESTS (für Online-Modus) ===== +requests==2.31.0 +urllib3==2.1.0 -# ===== RATE LIMITING UND CACHING ===== -# Redis für Rate Limiting (utils/rate_limiter.py) - optional -redis==5.2.1 +# ===== HARDWARE INTEGRATION ===== +# TP-Link Tapo Smart Plugs +PyP100==0.1.4 -# ===== HTTP REQUESTS ===== -# Requests für HTTP-Anfragen (utils/queue_manager.py, utils/debug_drucker_erkennung.py) -requests==2.32.3 +# ===== REAL-TIME FEATURES ===== +# WebSocket-Support mit Fallback-Optionen +eventlet==0.33.3 +python-socketio==5.10.0 -# ===== TEMPLATE ENGINE ===== -# Jinja2 und MarkupSafe (automatisch mit Flask installiert, aber explizit für utils/template_helpers.py) -MarkupSafe==3.0.2 +# ===== SCHEDULING & TASK MANAGEMENT ===== +schedule==1.2.0 +APScheduler==3.10.4 + +# ===== GIS & LOCATION SERVICES ===== +geocoder==1.38.1 + +# ===== DATA PROCESSING & EXPORT ===== +# Excel-Export (optional) +openpyxl==3.1.2 +pandas==2.1.4 +xlsxwriter==3.1.9 + +# CSV/JSON processing +chardet==5.2.0 + +# ===== EMAIL FUNCTIONALITY ===== +# Email-Features für Benachrichtigungen +email-validator==2.1.0.post1 + +# ===== IMAGE PROCESSING ===== +# Avatar und Bild-Upload +Pillow==10.1.0 + +# ===== DEVELOPMENT & DEBUGGING ===== +# Nur für Development-Umgebung +# python-dotenv==1.0.0 + +# ===== DATE/TIME UTILITIES ===== +python-dateutil==2.8.2 +pytz==2023.3 + +# ===== FILE HANDLING ===== +# Datei-Upload und -Verarbeitung +python-magic==0.4.27 +python-magic-bin==0.4.14 # Windows binary + +# ===== LOGGING & MONITORING ===== +# Erweiterte Logging-Features +colorlog==6.8.0 + +# ===== NETWORK & CONNECTIVITY ===== +# Netzwerk-Utilities für Drucker-Kommunikation +netifaces==0.11.0 +ping3==4.0.4 + +# ===== BACKUP & COMPRESSION ===== +# Backup-Funktionalität +zipfile36==0.1.3 + +# ===== CONFIGURATION ===== +# Konfiguration und Settings +configparser==6.0.0 + +# ===== VALIDATION ===== +# Formular-Validierung +cerberus==1.3.5 +marshmallow==3.20.1 + +# ===== CACHING (optional) ===== +# Cache-Funktionalität +cachetools==5.3.2 + +# ===== UTILITIES ===== +# Allgemeine Utilities +python-slugify==8.0.1 +click==8.1.7 + +# ===== COMPATIBILITY ===== +# Windows-Kompatibilität +pywin32==306; sys_platform == "win32" +wmi==1.5.1; sys_platform == "win32" + +# ===== OPTIONAL DEPENDENCIES ===== +# Für erweiterte Features (automatisch installiert wenn verfügbar) + +# PDF-Generation (für Reports) +reportlab==4.0.7 +weasyprint==60.2 + +# Erweiterte Kryptographie +cryptography==41.0.8 + +# QR-Code Generation (für OTP-Codes) +qrcode==7.4.2 + +# ===== PRODUCTION DEPLOYMENT ===== +# WSGI Server für Produktion +gunicorn==21.2.0 +waitress==2.1.2 # ===== SYSTEM MONITORING ===== -# psutil für System-Monitoring (utils/debug_utils.py, utils/debug_cli.py) -psutil==6.1.1 +# System-Überwachung +psutil==5.9.6 -# ===== ZUSÄTZLICHE CORE ABHÄNGIGKEITEN ===== -# Click für CLI-Kommandos (automatisch mit Flask) -# Keine Core-Requirements +# ===== ERROR TRACKING ===== +# Fehler-Tracking (optional) +# sentry-sdk[flask]==1.38.0 -# ===== WINDOWS-SPEZIFISCHE ABHÄNGIGKEITEN ===== -# Nur für Windows-Systeme erforderlich -# Keine Windows-Requirements - -# ===== OPTIONAL: ENTWICKLUNG UND TESTING ===== -# Nur für Entwicklungsumgebung -pytest==8.3.4; extra == "dev" -pytest-cov==6.0.0; extra == "dev" - -# ===== OPTIONAL: PRODUKTIONS-SERVER ===== -# Gunicorn für Produktionsumgebung -gunicorn==23.0.0; extra == "prod" +# ===== API DOCUMENTATION ===== +# API-Dokumentation (optional) +# flask-restx==1.3.0 +# flasgger==0.9.7.1 diff --git a/backend/static/css/tailwind.min.css b/backend/static/css/tailwind.min.css index c0f3c49e..b33e1a2f 100644 --- a/backend/static/css/tailwind.min.css +++ b/backend/static/css/tailwind.min.css @@ -1 +1 @@ -*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-text-primary:#0f172a;--color-text-secondary:#334155;--color-text-muted:#64748b;--color-border-primary:#e2e8f0;--color-accent:#000;--color-accent-hover:#333;--color-accent-text:#fff;--color-shadow:rgba(0,0,0,.1);--card-radius:1rem}.dark{--color-bg-primary:#000;--color-bg-secondary:#0a0a0a;--color-text-primary:#fff;--color-text-secondary:#e2e8f0;--color-text-muted:#94a3b8;--color-border-primary:#1a1a1a;--color-accent:#fff;--color-accent-hover:#f0f0f0;--color-accent-text:#000;--color-shadow:rgba(0,0,0,.8);--mb-black:#000}body{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}body:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}body{position:relative;min-height:100vh}.dark body{background:linear-gradient(135deg,#000,#0a0a0a 50%,#000)}nav{border-bottom-width:1px;border-color:rgba(229,231,235,.7);background-color:hsla(0,0%,100%,.6);--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}nav:is(.dark *){border-color:rgba(51,65,85,.2);background-color:rgba(0,0,0,.6)}nav{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 8px 32px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.05)}#user-dropdown{position:absolute;right:0;z-index:50;margin-top:.5rem;width:16rem;border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.7);background-color:hsla(0,0%,100%,.6);--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}#user-dropdown:is(.dark *){border-color:rgba(51,65,85,.2);background-color:rgba(0,0,0,.6)}#user-dropdown{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 20px 40px rgba(0,0,0,.2),0 0 0 1px hsla(0,0%,100%,.1);animation:fadeIn .2s ease-out forwards}.\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:1rem!important;padding-left:1rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:1rem;padding-left:1rem}@media (min-width:640px){.\!container{max-width:640px!important;padding-right:1.5rem!important;padding-left:1.5rem!important}.container{max-width:640px;padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important;padding-right:2rem!important;padding-left:2rem!important}.container{max-width:1024px;padding-right:2rem;padding-left:2rem}}@media (min-width:1280px){.\!container{max-width:1280px!important;padding-right:3rem!important;padding-left:3rem!important}.container{max-width:1280px;padding-right:3rem;padding-left:3rem}}@media (min-width:1400px){.\!container{max-width:1400px!important;padding-right:4rem!important;padding-left:4rem!important}.container{max-width:1400px;padding-right:4rem;padding-left:4rem}}.dark .bg-dark-card{background-color:#1e293b;--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-dark-surface{background-color:#1e293b}.transition-all-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.admin-container{margin-left:auto;margin-right:auto;max-width:80rem;padding:1rem}@media (min-width:768px){.admin-container{padding:2rem}}.admin-stats{margin-bottom:2rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media (min-width:640px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat-card{position:relative;overflow:hidden;border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.6);padding:1.25rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.stat-card,.stat-card:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.stat-card:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(0,0,0,.7)}.stat-card{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 25px 50px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.1)}.stat-icon{position:absolute;top:1rem;right:1rem;font-size:2.25rem;line-height:2.5rem;opacity:.15}.stat-title{margin-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;text-transform:uppercase;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.stat-title:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.stat-value{margin-bottom:.25rem;font-size:1.5rem;line-height:2rem;font-weight:700;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.stat-value:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.stat-desc{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.stat-desc:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.nav-tabs{margin-bottom:1rem;display:flex;overflow-x:auto;border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.nav-tabs:is(.dark *){border-color:rgba(51,65,85,.3)}.nav-tab{cursor:pointer;white-space:nowrap;border-bottom-width:2px;border-color:transparent;padding:1rem 1.5rem;--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.nav-tab:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.nav-tab:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.nav-tab:hover:is(.dark *){background-color:rgba(30,41,59,.5);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.nav-tab.active{border-bottom-width:2px;--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1));font-weight:500;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.nav-tab.active:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.tab-content{margin-top:2rem}.tab-pane{display:none}.dark-mode-toggle-new .moon-icon:not(.tab-pane),.dark-mode-toggle-new .sun-icon:not(.tab-pane){animation:spin-in .5s cubic-bezier(.25,1,.5,1) forwards}.tab-pane.active{display:block}.form-group{margin-bottom:1rem}.form-label{margin-bottom:.5rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.form-label:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.form-input,.form-select,.form-textarea{width:100%;border-radius:.5rem;border-width:1px;border-color:rgba(209,213,219,.6);background-color:hsla(0,0%,100%,.6);padding:.5rem .75rem;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.form-input::-moz-placeholder,.form-select::-moz-placeholder,.form-textarea::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.form-input,.form-select,.form-textarea{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:transparent;outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1))}.form-input:is(.dark *),.form-select:is(.dark *),.form-textarea:is(.dark *){border-color:rgba(71,85,105,.6);background-color:rgba(30,41,59,.6);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.form-input,.form-select,.form-textarea{backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:0 10px 20px rgba(0,0,0,.1),0 0 0 1px hsla(0,0%,100%,.05)}.admin-table{min-width:100%}.admin-table>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse));--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.admin-table:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(51 65 85/var(--tw-divide-opacity,1))}.admin-table thead{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.admin-table thead:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.admin-table th{padding:.75rem 1.5rem;text-align:left;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.admin-table th:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.admin-table tbody>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse));--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.admin-table tbody{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.admin-table tbody:is(.dark *){background-color:#1e293b}.admin-table tbody:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(51 65 85/var(--tw-divide-opacity,1))}.admin-table tbody:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.admin-table tr{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.admin-table tr:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.admin-table tr:hover:is(.dark *){background-color:rgba(51,65,85,.5)}.admin-table td{white-space:nowrap;padding:1rem 1.5rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.admin-table td:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.badge{display:inline-flex;border-radius:9999px;padding-left:.5rem;padding-right:.5rem;font-size:.75rem;font-weight:600;line-height:1.25rem}.badge-success{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.badge-success:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.badge-error{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.badge-error:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.badge-warning{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.badge-warning:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.badge-info{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.badge-info:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.printer-card{border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.6);padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.printer-card,.printer-card:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.printer-card:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.printer-card:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(0,0,0,.7)}.printer-card{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 25px 50px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.1)}.printer-header{margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between}.printer-name{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.printer-name:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.printer-actions{display:flex}.printer-actions>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.printer-info{margin-bottom:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.printer-status{margin-top:1rem;display:flex;align-items:center}.status-indicator{margin-right:.5rem;height:.75rem;width:.75rem;border-radius:9999px}.status-running{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));animation:pulse 2s infinite}.status-stopped{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.log-entry{margin-bottom:.5rem;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;border-left-width:4px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.log-entry:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.log-entry:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.log-entry:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.log-debug{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.log-debug:is(.dark *){--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.log-info{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.log-info:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.log-warning{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.log-warning:is(.dark *){--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.log-error{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.log-error:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.log-critical{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.log-critical:is(.dark *){--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.scheduler-status{display:flex;align-items:center;border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.scheduler-status:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.progress-bar{height:.5rem;width:100%;overflow:hidden;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.progress-bar:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.progress-bar-fill{height:100%;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.progress-bar-fill-blue{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.progress-bar-fill-blue:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.progress-bar-fill-green{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.progress-bar-fill-green:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.progress-bar-fill-purple{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.progress-bar-fill-purple:is(.dark *){--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.\!notification{position:fixed;top:1rem;right:1rem;z-index:50;max-width:28rem;--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.5rem;border-left-width:4px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;opacity:0;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.\!notification:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.notification{position:fixed;top:1rem;right:1rem;z-index:50;max-width:28rem;--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.5rem;border-left-width:4px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;opacity:0;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.notification:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.\!notification.show,.notification.\!show,.notification.show{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:1}.notification-success{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.notification-error{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.notification-warning{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.notification-info{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.alert{margin-bottom:1rem;border-radius:.5rem;border-width:1px;padding:1rem}.alert-success{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.alert-success:is(.dark *){background-color:rgba(20,83,45,.3);--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.alert-error{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.alert-error:is(.dark *){background-color:rgba(127,29,29,.3);--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.alert-warning{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.alert-warning:is(.dark *){background-color:rgba(113,63,18,.3);--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.alert-info{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.alert-info:is(.dark *){background-color:rgba(30,58,138,.3);--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.btn-primary{border-radius:.5rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-primary:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-primary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.btn-primary:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.btn-primary{background:rgba(0,0,0,.7);backdrop-filter:blur(20px) saturate(150%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(150%) brightness(110%);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 20px 40px rgba(0,0,0,.3),0 8px 16px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.1)}.btn-primary:hover{background:rgba(0,0,0,.9);backdrop-filter:blur(25px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(25px) saturate(180%) brightness(120%);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.4),0 10px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.3)}.dark .btn-primary{background:hsla(0,0%,100%,.7);border:1px solid rgba(0,0,0,.1);box-shadow:0 20px 40px rgba(0,0,0,.2),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.8),0 0 0 1px rgba(0,0,0,.05)}.dark .btn-primary:hover{background:hsla(0,0%,100%,.9);border:1px solid rgba(0,0,0,.15);box-shadow:0 25px 50px rgba(0,0,0,.3),0 10px 20px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.9)}.btn-secondary{border-radius:.5rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-secondary:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-secondary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.btn-secondary:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn-secondary{background:hsla(0,0%,100%,.3);backdrop-filter:blur(20px) saturate(150%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(150%) brightness(110%);border:1px solid hsla(0,0%,100%,.4);box-shadow:0 20px 40px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.5),0 0 0 1px hsla(0,0%,100%,.2)}.btn-secondary:hover{background:hsla(0,0%,100%,.5);backdrop-filter:blur(25px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(25px) saturate(180%) brightness(120%);border:1px solid hsla(0,0%,100%,.6);box-shadow:0 25px 50px rgba(0,0,0,.2),0 10px 20px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.7)}.dark .btn-secondary{background:rgba(0,0,0,.4);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 20px 40px rgba(0,0,0,.3),0 8px 16px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.1)}.dark .btn-secondary:hover{background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.4),0 10px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.3)}.btn-outline{border-radius:.5rem;border-width:2px;border-color:rgba(0,0,0,.7);padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1));--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-outline:hover{background-color:rgba(0,0,0,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn-outline:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.btn-outline:is(.dark *){border-color:hsla(0,0%,100%,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn-outline:hover:is(.dark *){background-color:hsla(0,0%,100%,.7);--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.btn-outline{backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:0 15px 30px rgba(0,0,0,.1),0 0 0 1px hsla(0,0%,100%,.05)}.glass-card{border-radius:.75rem;padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:hsla(0,0%,100%,.15);backdrop-filter:blur(30px) saturate(200%) brightness(120%) contrast(110%);-webkit-backdrop-filter:blur(30px) saturate(200%) brightness(120%) contrast(110%);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius)}.dark .glass-card{background:rgba(0,0,0,.3);backdrop-filter:blur(30px) saturate(180%) brightness(110%) contrast(120%);-webkit-backdrop-filter:blur(30px) saturate(180%) brightness(110%) contrast(120%);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 25px 50px rgba(0,0,0,.4),0 8px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.05)}.dashboard-card{border-radius:.75rem;padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.dashboard-card:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dashboard-card{background:hsla(0,0%,100%,.12);backdrop-filter:blur(35px) saturate(200%) brightness(125%) contrast(115%);-webkit-backdrop-filter:blur(35px) saturate(200%) brightness(125%) contrast(115%);border:1px solid hsla(0,0%,100%,.25);box-shadow:0 25px 50px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.08),inset 0 1px 0 hsla(0,0%,100%,.25),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius)}.dark .dashboard-card{background:rgba(0,0,0,.35);backdrop-filter:blur(35px) saturate(180%) brightness(115%) contrast(125%);-webkit-backdrop-filter:blur(35px) saturate(180%) brightness(115%) contrast(125%);border:1px solid hsla(0,0%,100%,.12);box-shadow:0 25px 50px rgba(0,0,0,.5),0 8px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.12),0 0 0 1px hsla(0,0%,100%,.05)}.nav-link{display:flex;align-items:center;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.nav-link:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nav-link:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.nav-link:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.nav-link:hover:is(.dark *){background-color:rgba(51,65,85,.5)}.nav-link.active{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1));--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nav-link.active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.navbar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:hsla(0,0%,100%,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:all .3s ease}.navbar-button{padding:.25rem .5rem;font-size:.875rem;border-radius:5px;transition:background-color .3s ease}.navbar-button:hover{background-color:hsla(0,0%,100%,.2)}@media (max-width:768px){.navbar{flex-direction:column;padding:.25rem}.navbar-button{margin:.25rem 0}}.dark .navbar{background:rgba(0,0,0,.25);backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);-webkit-backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);box-shadow:0 8px 32px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.1),0 0 0 1px hsla(0,0%,100%,.05);border-bottom:1px solid hsla(0,0%,100%,.1)}.navbar-brand{display:flex;align-items:center}.navbar-brand>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.navbar-brand{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.navbar-brand:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.navbar-menu{margin-left:1rem;margin-right:1rem;display:flex;align-items:center;justify-content:center}.navbar-menu>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.navbar-menu{border-radius:1rem;border-width:1px;padding:.75rem}@media (min-width:768px){.navbar-menu>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}}@media (min-width:1024px){.navbar-menu>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}}.navbar-menu{background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 4px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.4),0 0 0 1px hsla(0,0%,100%,.1)}.dark .navbar-menu,.navbar-menu{backdrop-filter:blur(20px) saturate(150%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(150%) brightness(110%)}.dark .navbar-menu{background:rgba(0,0,0,.4);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 4px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05)}.navbar-button{border-radius:9999px;padding:.5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.navbar-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.user-menu-button{display:flex;align-items:center}.user-menu-button>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.user-menu-button{border-radius:.5rem;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.user-menu-button:hover{background-color:rgba(243,244,246,.8)}.user-menu-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.user-menu-button:hover:is(.dark *){background-color:rgba(51,65,85,.6)}.user-avatar{display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));font-size:.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.user-avatar,.user-avatar:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.user-avatar:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.user-avatar:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.avatar-large{display:flex;height:3.5rem;width:3.5rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.avatar-large:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.user-dropdown-item{transition-duration:.3s}.user-dropdown-item:hover{background-color:rgba(243,244,246,.8);--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.user-dropdown-item:focus{background-color:rgba(243,244,246,.8);outline:2px solid transparent;outline-offset:2px}.user-dropdown-item:is(.dark *){color:rgb(203 213 225/var(--tw-text-opacity,1))}.user-dropdown-item:hover:is(.dark *){background-color:rgba(51,65,85,.6);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.user-dropdown-item:focus:is(.dark *){background-color:rgba(51,65,85,.6)}.user-dropdown-separator{margin-top:.25rem;margin-bottom:.25rem;border-top-width:1px;border-color:rgba(229,231,235,.8)}.user-dropdown-separator:is(.dark *){border-color:rgba(51,65,85,.3)}.menu-item{display:flex;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.75rem;padding:.625rem 1rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.menu-item:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.menu-item{background:hsla(0,0%,100%,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 2px 8px rgba(0,0,0,.05)}.menu-item:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.menu-item:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.menu-item:hover{background:hsla(0,0%,100%,.3);backdrop-filter:blur(15px) saturate(150%);-webkit-backdrop-filter:blur(15px) saturate(150%);border:1px solid hsla(0,0%,100%,.4);box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(-1px)}.dark .menu-item{background:rgba(0,0,0,.2);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 2px 8px rgba(0,0,0,.2)}.dark .menu-item:hover{background:rgba(0,0,0,.4);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 4px 16px rgba(0,0,0,.3)}.menu-item.active{font-weight:500;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.menu-item.active:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.menu-item.active{background:hsla(0,0%,100%,.5);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid hsla(0,0%,100%,.6);box-shadow:0 4px 16px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.5)}.dark .menu-item.active{background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 4px 16px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2)}.user-dropdown{position:absolute;right:0;z-index:50;margin-top:.5rem;width:16rem;overflow:hidden;border-radius:.75rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);background:hsla(0,0%,100%,.1);backdrop-filter:blur(40px) saturate(200%) brightness(130%) contrast(110%);-webkit-backdrop-filter:blur(40px) saturate(200%) brightness(130%) contrast(110%);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.25),0 8px 16px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.4),0 0 0 1px hsla(0,0%,100%,.1);animation:fadeIn .2s ease-out forwards}.dark .user-dropdown{background:rgba(0,0,0,.4);backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);-webkit-backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 25px 50px rgba(0,0,0,.6),0 8px 16px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05)}.dropdown-header{display:flex;align-items:center;border-bottom-width:1px;border-color:rgba(229,231,235,.8);padding:1rem}.dropdown-header:is(.dark *){border-color:rgba(51,65,85,.3)}.dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.dropdown-item:hover{background-color:rgba(243,244,246,.8);--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dropdown-item:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dropdown-item:hover:is(.dark *){background-color:rgba(51,65,85,.6);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dropdown-divider{border-top-width:1px;border-color:rgba(229,231,235,.8)}.dropdown-divider:is(.dark *){border-color:rgba(51,65,85,.3)}@keyframes mercedes-rotate{0%{transform:rotate(0deg)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}to{transform:rotate(1turn)}}.navbar-brand:hover svg{animation:mercedes-rotate 5s linear infinite;transform-origin:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{inset:-.25rem}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-bottom-8{bottom:-2rem}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-full{bottom:100%}.end-1{inset-inline-end:.25rem}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:.75rem}.left-4{left:1rem}.right-0{right:0}.right-2\.5{right:.625rem}.right-4{right:1rem}.right-5{right:1.25rem}.right-8{right:2rem}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-5{top:1.25rem}.top-8{top:2rem}.top-full{top:100%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.m-1{margin:.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-my-1\.5{margin-top:-.375rem;margin-bottom:-.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-1{margin-left:-.25rem}.-mt-8{margin-top:-2rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.list-item{display:list-item}.hidden{display:none}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[90vh\]{max-height:90vh}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:.25rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[150px\]{min-width:150px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-xl{max-width:1280px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-top-right{transform-origin:top right}.-translate-x-1{--tw-translate-x:-0.25rem}.-translate-x-1,.-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-0{--tw-translate-y:-0px}.-translate-y-1{--tw-translate-y:-0.25rem}.-translate-y-1,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:0.25rem}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1{--tw-translate-y:0.25rem}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.rotate-90{--tw-rotate:90deg}.rotate-90,.skew-x-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.skew-x-12{--tw-skew-x:12deg}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-75{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-95,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize{resize:both}.scroll-mt-8{scroll-margin-top:2rem}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.125rem*var(--tw-space-x-reverse));margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.625rem*var(--tw-space-x-reverse));margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(226 232 240/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r-4{border-right-width:4px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-black\/70{border-color:rgba(0,0,0,.7)}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-200\/50{border-color:rgba(191,219,254,.5)}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-emerald-200\/50{border-color:rgba(167,243,208,.5)}.border-emerald-500{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-200\/50{border-color:rgba(229,231,235,.5)}.border-gray-200\/60{border-color:rgba(229,231,235,.6)}.border-gray-200\/70{border-color:rgba(229,231,235,.7)}.border-gray-200\/80{border-color:rgba(229,231,235,.8)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-300\/60{border-color:rgba(209,213,219,.6)}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-200\/50{border-color:rgba(187,247,208,.5)}.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-indigo-200\/50{border-color:rgba(199,210,254,.5)}.border-indigo-600{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-light-border{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-mercedes-silver{--tw-border-opacity:1;border-color:rgb(192 192 192/var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-orange-200\/50{border-color:hsla(32,98%,83%,.5)}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-purple-200\/50{border-color:rgba(233,213,255,.5)}.border-purple-400{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-200\/50{border-color:hsla(0,96%,89%,.5)}.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-slate-200\/50{border-color:rgba(226,232,240,.5)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-white\/30{border-color:hsla(0,0%,100%,.3)}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.border-yellow-400{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.border-t-slate-800{--tw-border-opacity:1;border-top-color:rgb(30 41 59/var(--tw-border-opacity,1))}.border-t-slate-900{--tw-border-opacity:1;border-top-color:rgb(15 23 42/var(--tw-border-opacity,1))}.bg-accent-primary{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-50\/50{background-color:rgba(239,246,255,.5)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/70{background-color:rgba(59,130,246,.7)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-dark-card,.bg-dark-surface{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-100\/90{background-color:rgba(220,252,231,.9)}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-50\/50{background-color:rgba(240,253,244,.5)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/70{background-color:rgba(34,197,94,.7)}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.bg-indigo-50\/50{background-color:rgba(238,242,255,.5)}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-light-surface{--tw-bg-opacity:1;background-color:rgb(247 250 252/var(--tw-bg-opacity,1))}.bg-mercedes-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-mercedes-silver{--tw-bg-opacity:1;background-color:rgb(192 192 192/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-orange-50\/50{background-color:rgba(255,247,237,.5)}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-orange-600{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-400{--tw-bg-opacity:1;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}.bg-purple-50\/50{background-color:rgba(250,245,255,.5)}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-100\/90{background-color:hsla(0,93%,94%,.9)}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-50\/50{background-color:hsla(0,86%,97%,.5)}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\/70{background-color:rgba(239,68,68,.7)}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-50\/50{background-color:rgba(248,250,252,.5)}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-teal-500{--tw-bg-opacity:1;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/15{background-color:hsla(0,0%,100%,.15)}.bg-white\/20{background-color:hsla(0,0%,100%,.2)}.bg-white\/40{background-color:hsla(0,0%,100%,.4)}.bg-white\/60{background-color:hsla(0,0%,100%,.6)}.bg-white\/80{background-color:hsla(0,0%,100%,.8)}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.bg-yellow-500\/70{background-color:rgba(234,179,8,.7)}.bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-opacity-95{--tw-bg-opacity:0.95}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-300{--tw-gradient-from:#fcd34d var(--tw-gradient-from-position);--tw-gradient-to:rgba(252,211,77,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-100{--tw-gradient-from:#dbeafe var(--tw-gradient-from-position);--tw-gradient-to:rgba(219,234,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-400{--tw-gradient-from:#60a5fa var(--tw-gradient-from-position);--tw-gradient-to:rgba(96,165,250,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-50{--tw-gradient-from:#eff6ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,246,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500\/10{--tw-gradient-from:rgba(59,130,246,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600\/10{--tw-gradient-from:rgba(37,99,235,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-400{--tw-gradient-from:#34d399 var(--tw-gradient-from-position);--tw-gradient-to:rgba(52,211,153,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-50{--tw-gradient-from:#ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to:rgba(236,253,245,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-100{--tw-gradient-from:#dcfce7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(220,252,231,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-400{--tw-gradient-from:#4ade80 var(--tw-gradient-from-position);--tw-gradient-to:rgba(74,222,128,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-50{--tw-gradient-from:#f0fdf4 var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-50\/90{--tw-gradient-from:rgba(240,253,244,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500\/10{--tw-gradient-from:rgba(34,197,94,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-50{--tw-gradient-from:#fff7ed var(--tw-gradient-from-position);--tw-gradient-to:rgba(255,247,237,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from:#f97316 var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,115,22,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500\/10{--tw-gradient-from:rgba(249,115,22,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,115,22,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-50{--tw-gradient-from:#faf5ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(250,245,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500\/10{--tw-gradient-from:rgba(168,85,247,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-400{--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-500{--tw-gradient-from:#ef4444 var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-500\/10{--tw-gradient-from:rgba(239,68,68,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from:#f8fafc var(--tw-gradient-from-position);--tw-gradient-to:rgba(248,250,252,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-500{--tw-gradient-from:#64748b var(--tw-gradient-from-position);--tw-gradient-to:rgba(100,116,139,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from:#0f172a var(--tw-gradient-from-position);--tw-gradient-to:rgba(15,23,42,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-transparent{--tw-gradient-from:transparent var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-white\/90{--tw-gradient-from:hsla(0,0%,100%,.9) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-yellow-400{--tw-gradient-from:#facc15 var(--tw-gradient-from-position);--tw-gradient-to:rgba(250,204,21,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-yellow-50{--tw-gradient-from:#fefce8 var(--tw-gradient-from-position);--tw-gradient-to:hsla(55,92%,95%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-blue-100{--tw-gradient-to:rgba(219,234,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#dbeafe var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-200{--tw-gradient-to:rgba(191,219,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#bfdbfe var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-50{--tw-gradient-to:rgba(239,246,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#eff6ff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-900{--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1e3a8a var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-green-50{--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#f0fdf4 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-green-500{--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#22c55e var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-indigo-50{--tw-gradient-to:rgba(238,242,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#eef2ff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-purple-500{--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#a855f7 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-50{--tw-gradient-to:hsla(0,86%,97%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fef2f2 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-white\/20{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,0%,100%,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-white\/5{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,0%,100%,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-blue-200{--tw-gradient-to:#bfdbfe var(--tw-gradient-to-position)}.to-blue-50{--tw-gradient-to:#eff6ff var(--tw-gradient-to-position)}.to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-cyan-50{--tw-gradient-to:#ecfeff var(--tw-gradient-to-position)}.to-emerald-50{--tw-gradient-to:#ecfdf5 var(--tw-gradient-to-position)}.to-emerald-50\/80{--tw-gradient-to:rgba(236,253,245,.8) var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to:#10b981 var(--tw-gradient-to-position)}.to-emerald-500\/10{--tw-gradient-to:rgba(16,185,129,.1) var(--tw-gradient-to-position)}.to-emerald-600{--tw-gradient-to:#059669 var(--tw-gradient-to-position)}.to-green-200{--tw-gradient-to:#bbf7d0 var(--tw-gradient-to-position)}.to-green-50{--tw-gradient-to:#f0fdf4 var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)}.to-indigo-50{--tw-gradient-to:#eef2ff var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to:#6366f1 var(--tw-gradient-to-position)}.to-indigo-500\/10{--tw-gradient-to:rgba(99,102,241,.1) var(--tw-gradient-to-position)}.to-indigo-900{--tw-gradient-to:#312e81 var(--tw-gradient-to-position)}.to-orange-400{--tw-gradient-to:#fb923c var(--tw-gradient-to-position)}.to-orange-50{--tw-gradient-to:#fff7ed var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to:#f97316 var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to:#ea580c var(--tw-gradient-to-position)}.to-pink-50{--tw-gradient-to:#fdf2f8 var(--tw-gradient-to-position)}.to-pink-500\/10{--tw-gradient-to:rgba(236,72,153,.1) var(--tw-gradient-to-position)}.to-purple-200{--tw-gradient-to:#e9d5ff var(--tw-gradient-to-position)}.to-purple-50{--tw-gradient-to:#faf5ff var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to:#a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-purple-600\/10{--tw-gradient-to:rgba(147,51,234,.1) var(--tw-gradient-to-position)}.to-red-50{--tw-gradient-to:#fef2f2 var(--tw-gradient-to-position)}.to-red-500\/10{--tw-gradient-to:rgba(239,68,68,.1) var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-rose-500{--tw-gradient-to:#f43f5e var(--tw-gradient-to-position)}.to-slate-100{--tw-gradient-to:#f1f5f9 var(--tw-gradient-to-position)}.to-slate-600{--tw-gradient-to:#475569 var(--tw-gradient-to-position)}.to-teal-50{--tw-gradient-to:#f0fdfa var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.to-violet-500\/10{--tw-gradient-to:rgba(139,92,246,.1) var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.to-white\/70{--tw-gradient-to:hsla(0,0%,100%,.7) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-10{padding-right:2.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent-primary{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-100{--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-800{--tw-text-opacity:1;color:rgb(6 95 70/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-800{--tw-text-opacity:1;color:rgb(55 48 163/var(--tw-text-opacity,1))}.text-light-text{--tw-text-opacity:1;color:rgb(26 32 44/var(--tw-text-opacity,1))}.text-light-text-muted{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}.text-mercedes-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-mercedes-silver{--tw-text-opacity:1;color:rgb(192 192 192/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-teal-600{--tw-text-opacity:1;color:rgb(13 148 136/var(--tw-text-opacity,1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-15{opacity:.15}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.ring-opacity-5{--tw-ring-opacity:0.05}.blur{--tw-blur:blur(8px)}.blur,.blur-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur:blur(4px)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.drop-shadow-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.backdrop-blur-2xl,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.flash-message{position:fixed;top:1rem;right:1rem;z-index:50;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.75rem;border-width:1px;border-color:hsla(0,0%,100%,.2);padding:1rem 1.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;backdrop-filter:blur(20px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(120%);box-shadow:0 25px 50px rgba(0,0,0,.2),0 0 0 1px hsla(0,0%,100%,.1);animation:slide-down .3s ease-out}.flash-message.info{background-color:rgba(59,130,246,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.info:is(.dark *){background-color:rgba(37,99,235,.7)}.flash-message.success{background-color:rgba(34,197,94,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.success:is(.dark *){background-color:rgba(22,163,74,.7)}.flash-message.warning{background-color:rgba(234,179,8,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.warning:is(.dark *){background-color:rgba(202,138,4,.7)}.flash-message.error{background-color:rgba(239,68,68,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.error:is(.dark *){background-color:rgba(220,38,38,.7)}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.mercedes-background:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' fill='currentColor' opacity='.03'%3E%3Cpath d='M58.6 4.5C53 1.6 46.7 0 40 0S27 1.6 21.4 4.5C8.7 11.2 0 24.6 0 40s8.7 28.8 21.5 35.5C27 78.3 33.3 80 40 80s12.9-1.7 18.5-4.6C71.3 68.8 80 55.4 80 40S71.3 11.2 58.6 4.5M4 40c0-13.1 7-24.5 17.5-30.9C26.6 6 32.5 4.2 39 4l-4.5 32.7-13 10.1L8.3 57.1C5.6 52 4 46.2 4 40m54.6 30.8C53.1 74.1 46.8 76 40 76s-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9L40 46.6l18.6 7.5 12 4.9c-3 4.9-7.2 8.9-12 11.8m0-24-12.9-10L41.1 4c6.3.2 12.3 2 17.4 5.1C69 15.4 76 26.9 76 40c0 6.2-1.5 12-4.3 17.1z'/%3E%3C/svg%3E");background-position:50%;background-repeat:repeat;background-size:120px 120px;pointer-events:none;opacity:.03;transition:opacity .3s ease}.dark .mercedes-background:before{opacity:.015;filter:invert(1) brightness(.3);background-size:150px 150px}.navbar{position:sticky!important;top:0!important;z-index:50!important;width:100%!important;left:0!important;right:0!important;--navbar-blur:40px;--navbar-opacity:0.15;background:rgba(255,255,255,var(--navbar-opacity,.15))!important;backdrop-filter:blur(var(--navbar-blur,40px)) saturate(200%) brightness(110%) contrast(105%)!important;-webkit-backdrop-filter:blur(var(--navbar-blur,40px)) saturate(200%) brightness(110%) contrast(105%)!important;box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.08),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.15)!important;border-bottom:1px solid hsla(0,0%,100%,.2)!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.dark .navbar{--navbar-dark-opacity:0.25;background:rgba(0,0,0,var(--navbar-dark-opacity,.25))!important;backdrop-filter:blur(calc(var(--navbar-blur, 40px) + 5px)) saturate(180%) brightness(120%) contrast(115%)!important;-webkit-backdrop-filter:blur(calc(var(--navbar-blur, 40px) + 5px)) saturate(180%) brightness(120%) contrast(115%)!important;box-shadow:0 8px 32px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.08)!important;border-bottom:1px solid hsla(0,0%,100%,.1)!important}.navbar.scrolled{--navbar-blur:50px;--navbar-opacity:0.25;background:rgba(255,255,255,var(--navbar-opacity,.25))!important;backdrop-filter:blur(var(--navbar-blur,50px)) saturate(220%) brightness(115%) contrast(110%)!important;-webkit-backdrop-filter:blur(var(--navbar-blur,50px)) saturate(220%) brightness(115%) contrast(110%)!important;box-shadow:0 12px 40px rgba(0,0,0,.15),0 4px 12px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.4),0 0 0 1px hsla(0,0%,100%,.2)!important}.dark .navbar.scrolled{--navbar-dark-opacity:0.35;background:rgba(0,0,0,var(--navbar-dark-opacity,.35))!important;backdrop-filter:blur(calc(var(--navbar-blur, 50px) + 5px)) saturate(200%) brightness(125%) contrast(120%)!important;-webkit-backdrop-filter:blur(calc(var(--navbar-blur, 50px) + 5px)) saturate(200%) brightness(125%) contrast(120%)!important;box-shadow:0 12px 40px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.1)!important}.navbar-menu-new{display:flex;align-items:center;justify-content:center}.navbar-menu-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.125rem*var(--tw-space-x-reverse));margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)))}@media (min-width:768px){.navbar-menu-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}}.navbar-menu-new{max-width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;background:hsla(0,0%,100%,.1);backdrop-filter:blur(25px) saturate(170%) brightness(108%);-webkit-backdrop-filter:blur(25px) saturate(170%) brightness(108%);border-radius:16px;padding:8px;margin:0 16px;border:1px solid hsla(0,0%,100%,.15);box-shadow:0 6px 20px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05);transition:all .3s cubic-bezier(.4,0,.2,1)}.dark .navbar-menu-new{background:rgba(0,0,0,.2);backdrop-filter:blur(30px) saturate(150%) brightness(115%);-webkit-backdrop-filter:blur(30px) saturate(150%) brightness(115%);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 6px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.1),0 0 0 1px hsla(0,0%,100%,.03)}.navbar-menu-new::-webkit-scrollbar{display:none}.navbar-menu-new:hover{backdrop-filter:blur(35px) saturate(190%) brightness(112%);-webkit-backdrop-filter:blur(35px) saturate(190%) brightness(112%);box-shadow:0 8px 25px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.1);transform:translateY(-1px)}.dark .navbar-menu-new:hover{backdrop-filter:blur(40px) saturate(170%) brightness(120%);-webkit-backdrop-filter:blur(40px) saturate(170%) brightness(120%);box-shadow:0 8px 25px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.05)}.nav-item{display:flex;align-items:center}.nav-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.nav-item{border-radius:.75rem;padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;color:rgba(15,23,42,.85);background:hsla(0,0%,100%,.08);backdrop-filter:blur(15px) saturate(140%);-webkit-backdrop-filter:blur(15px) saturate(140%);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 4px 12px rgba(0,0,0,.05),inset 0 1px 0 hsla(0,0%,100%,.15);position:relative;overflow:hidden;animation:nav-item-entrance .6s ease-out}.nav-item:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s}.nav-item:hover:before{left:100%}.nav-item:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,hsla(0,0%,100%,.1) 30deg,transparent 60deg);opacity:0;transition:opacity .3s ease;pointer-events:none;animation:rotate 3s linear infinite}.nav-item:hover:after{opacity:1}.dark .nav-item{color:hsla(0,0%,100%,.85);background:rgba(0,0,0,.15);backdrop-filter:blur(20px) saturate(130%);-webkit-backdrop-filter:blur(20px) saturate(130%);border:1px solid hsla(0,0%,100%,.08);box-shadow:0 4px 12px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.08)}.nav-item:hover{color:#0f172a;background:hsla(0,0%,100%,.2);backdrop-filter:blur(25px) saturate(160%) brightness(110%);-webkit-backdrop-filter:blur(25px) saturate(160%) brightness(110%);border:1px solid hsla(0,0%,100%,.25);box-shadow:0 8px 20px rgba(0,0,0,.12),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.1);transform:translateY(-2px) scale(1.02)}.dark .nav-item:hover{color:#fff;background:rgba(0,0,0,.25);backdrop-filter:blur(30px) saturate(150%) brightness(120%);-webkit-backdrop-filter:blur(30px) saturate(150%) brightness(120%);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 8px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.05)}.nav-item.active{color:#0f172a;background:hsla(0,0%,100%,.35);backdrop-filter:blur(35px) saturate(180%) brightness(115%);-webkit-backdrop-filter:blur(35px) saturate(180%) brightness(115%);border:1px solid hsla(0,0%,100%,.4);box-shadow:0 12px 24px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.5),0 0 0 1px rgba(59,130,246,.3);transform:translateY(-1px);animation:nav-item-active-glow 2s ease-in-out infinite alternate}.dark .nav-item.active{color:#fff;background:rgba(0,0,0,.4);backdrop-filter:blur(40px) saturate(160%) brightness(125%);-webkit-backdrop-filter:blur(40px) saturate(160%) brightness(125%);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 12px 24px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px rgba(59,130,246,.2)}@keyframes nav-item-entrance{0%{opacity:0;transform:translateY(10px) scale(.95);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);-webkit-backdrop-filter:blur(15px) saturate(140%);backdrop-filter:blur(15px) saturate(140%)}}@keyframes nav-item-active-glow{0%{box-shadow:0 12px 24px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.5),0 0 0 1px rgba(59,130,246,.3)}to{box-shadow:0 16px 32px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.6),0 0 0 2px rgba(59,130,246,.5)}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.navbar:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,hsla(0,0%,100%,.1) 1px,transparent 0),radial-gradient(circle at 80% 50%,hsla(0,0%,100%,.1) 1px,transparent 0),radial-gradient(circle at 40% 20%,hsla(0,0%,100%,.05) 1px,transparent 0),radial-gradient(circle at 60% 80%,hsla(0,0%,100%,.05) 1px,transparent 0);opacity:0;animation:glassmorphism-particles 8s ease-in-out infinite;pointer-events:none}.dark .navbar:before{background:radial-gradient(circle at 20% 50%,hsla(0,0%,100%,.05) 1px,transparent 0),radial-gradient(circle at 80% 50%,hsla(0,0%,100%,.05) 1px,transparent 0),radial-gradient(circle at 40% 20%,hsla(0,0%,100%,.03) 1px,transparent 0),radial-gradient(circle at 60% 80%,hsla(0,0%,100%,.03) 1px,transparent 0)}@keyframes glassmorphism-particles{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.dark-mode-toggle-new{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:9999px;padding:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:rgba(241,245,249,.8);border:1px solid hsla(0,0%,100%,.7);box-shadow:0 2px 8px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.04);color:#334155;z-index:100}.dark-mode-toggle-new:hover{--tw-translate-y:-0.125rem;background:rgba(241,245,249,.9);box-shadow:0 8px 16px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.06)}.dark-mode-toggle-new:active,.dark-mode-toggle-new:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark-mode-toggle-new:active{--tw-scale-x:.95;--tw-scale-y:.95;transition:transform .1s}.dark .dark-mode-toggle-new{background:rgba(30,41,59,.8);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 2px 8px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.1);color:#e2e8f0}.dark .dark-mode-toggle-new:hover{background:rgba(30,41,59,.9);box-shadow:0 8px 16px rgba(0,0,0,.2),0 2px 4px rgba(0,0,0,.15)}.dark-mode-toggle-new .moon-icon,.dark-mode-toggle-new .sun-icon{position:absolute;top:50%;left:50%;--tw-translate-x:-50%;--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.dark-mode-toggle-new .moon-icon:not(.hidden),.dark-mode-toggle-new .sun-icon:not(.hidden){animation:spin-in .5s cubic-bezier(.25,1,.5,1) forwards}@keyframes spin-in{0%{opacity:0;transform:translateY(10px) scale(.7) rotate(20deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.dark .sun-icon{display:none}.dark .moon-icon,.sun-icon{display:block}.moon-icon{display:none}.user-menu-button-new{display:flex;align-items:center}.user-menu-button-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.user-menu-button-new{border-radius:.5rem;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:rgba(241,245,249,.6);border:1px solid hsla(0,0%,100%,.6);box-shadow:0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.02)}.user-menu-button-new:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background:rgba(241,245,249,.8);box-shadow:0 8px 16px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.04)}.dark .user-menu-button-new{background:rgba(30,41,59,.6);border:1px solid hsla(0,0%,100%,.08);box-shadow:0 2px 8px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.1)}.dark .user-menu-button-new:hover{background:rgba(30,41,59,.8);box-shadow:0 8px 16px rgba(0,0,0,.15),0 2px 4px rgba(0,0,0,.1)}.user-avatar-new{display:flex;height:1.75rem;width:1.75rem;align-items:center;justify-content:center;border-radius:9999px;font-size:.75rem;line-height:1rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:linear-gradient(135deg,#000,#333);box-shadow:0 2px 4px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.1)}.dark .user-avatar-new{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#0f172a;box-shadow:0 2px 4px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2)}.login-button-new{display:flex;align-items:center;border-radius:.5rem;padding:.375rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:#000;color:#fff;border:1px solid hsla(0,0%,100%,.1);box-shadow:0 2px 8px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.08)}.login-button-new:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background:#333;box-shadow:0 8px 16px rgba(0,0,0,.15),0 3px 4px rgba(0,0,0,.1)}.dark .login-button-new{background:#fff;color:#000;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15)}.dark .login-button-new:hover{background:#f1f5f9;box-shadow:0 8px 16px rgba(0,0,0,.25),0 3px 4px rgba(0,0,0,.2)}.mobile-menu-new{z-index:40;width:100%;overflow:hidden;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:hsla(0,0%,100%,.8);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 4px 20px rgba(0,0,0,.06);max-height:0;opacity:0}.mobile-menu-new,.mobile-menu-new.open{border-bottom:1px solid rgba(241,245,249,.8)}.mobile-menu-new.open{max-height:400px;opacity:1}.dark .mobile-menu-new{background:rgba(15,23,42,.8);box-shadow:0 4px 20px rgba(0,0,0,.2);border-bottom:1px solid rgba(30,41,59,.8)}.mobile-nav-item{display:flex;align-items:center}.mobile-nav-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.625rem*var(--tw-space-x-reverse));margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)))}.mobile-nav-item{border-radius:.5rem;padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.mobile-nav-item:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.mobile-nav-item:hover{background:rgba(241,245,249,.8)}.dark .mobile-nav-item:hover{background:rgba(30,41,59,.6)}.mobile-nav-item.active{background:rgba(241,245,249,.9);color:#000;font-weight:500}.dark .mobile-nav-item.active{background:rgba(30,41,59,.8);color:#fff}.mb-stat-card{background:linear-gradient(135deg,rgba(240,249,255,.6),rgba(230,242,255,.6));color:#0f172a;position:relative;overflow:hidden;border:none;border-radius:var(--card-radius);backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 25px 50px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.1);padding:1.5rem;margin:1rem;transition:transform .3s ease,box-shadow .3s ease}.dark .mb-stat-card{background:linear-gradient(135deg,rgba(0,0,0,.7),hsla(0,0%,4%,.7));color:var(--text-primary,#f8fafc);box-shadow:0 25px 50px rgba(0,0,0,.3),0 0 0 1px hsla(0,0%,100%,.05)}.job-card,.stats-card{border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.7);background-color:hsla(0,0%,100%,.6);--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.job-card:is(.dark *),.stats-card:is(.dark *){border-color:rgba(51,65,85,.2);background-color:rgba(0,0,0,.8)}.job-card,.stats-card{backdrop-filter:blur(24px) saturate(200%) brightness(120%);-webkit-backdrop-filter:blur(24px) saturate(200%) brightness(120%);box-shadow:0 25px 50px rgba(0,0,0,.2),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius)}footer{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:hsla(0,0%,100%,.1);backdrop-filter:blur(30px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(30px) saturate(180%) brightness(120%);border-top:1px solid hsla(0,0%,100%,.2);box-shadow:0 -8px 32px rgba(0,0,0,.1),0 -2px 8px rgba(0,0,0,.05),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05)}.dark footer{background:rgba(0,0,0,.3);backdrop-filter:blur(30px) saturate(160%) brightness(110%);-webkit-backdrop-filter:blur(30px) saturate(160%) brightness(110%);border-top:1px solid hsla(0,0%,100%,.1);box-shadow:0 -8px 32px rgba(0,0,0,.3),0 -2px 8px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.1),0 0 0 1px hsla(0,0%,100%,.03)}.dropdown-arrow{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.mercedes-star-bg{position:relative}.mercedes-star-bg:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' fill='currentColor' opacity='.05'%3E%3Cpath d='M58.6 4.5C53 1.6 46.7 0 40 0S27 1.6 21.4 4.5C8.7 11.2 0 24.6 0 40s8.7 28.8 21.5 35.5C27 78.3 33.3 80 40 80s12.9-1.7 18.5-4.6C71.3 68.8 80 55.4 80 40S71.3 11.2 58.6 4.5M4 40c0-13.1 7-24.5 17.5-30.9C26.6 6 32.5 4.2 39 4l-4.5 32.7-13 10.1L8.3 57.1C5.6 52 4 46.2 4 40m54.6 30.8C53.1 74.1 46.8 76 40 76s-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9L40 46.6l18.6 7.5 12 4.9c-3 4.9-7.2 8.9-12 11.8m0-24-12.9-10L41.1 4c6.3.2 12.3 2 17.4 5.1C69 15.4 76 26.9 76 40c0 6.2-1.5 12-4.3 17.1z'/%3E%3C/svg%3E");background-position:50%;background-repeat:repeat;background-size:40px 40px;z-index:-1;opacity:.05}.dark .mercedes-star-bg:after{opacity:.02;filter:invert(1) brightness(.4)}.glass-effect{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 8px 32px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.3)}.dark .glass-effect{background:rgba(0,0,0,.3);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 8px 32px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15)}.glass-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-hover:hover{transform:translateY(-2px);backdrop-filter:blur(25px) saturate(200%) brightness(120%);-webkit-backdrop-filter:blur(25px) saturate(200%) brightness(120%);box-shadow:0 20px 40px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.4)}.dark .glass-hover:hover{box-shadow:0 20px 40px rgba(0,0,0,.4),0 8px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.2)}.printer-card-new{position:relative;overflow:hidden;border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.7);background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from:hsla(0,0%,100%,.9) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:hsla(0,0%,100%,.7) var(--tw-gradient-to-position);padding:1.25rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.printer-card-new:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.printer-card-new:is(.dark *){border-color:rgba(51,65,85,.3);--tw-gradient-from:rgba(30,41,59,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,41,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:rgba(15,23,42,.7) var(--tw-gradient-to-position)}.printer-card-new{box-shadow:0 20px 40px rgba(0,0,0,.08),0 10px 20px rgba(0,0,0,.06),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius,1rem)}.dark .printer-card-new{box-shadow:0 20px 40px rgba(0,0,0,.4),0 10px 20px rgba(0,0,0,.3),0 0 0 1px hsla(0,0%,100%,.05)}.printer-card-new.online{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1));background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from:rgba(240,253,244,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:rgba(236,253,245,.8) var(--tw-gradient-to-position)}.printer-card-new.online:is(.dark *){border-color:rgba(21,128,61,.5);--tw-gradient-from:rgba(20,83,45,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:rgba(6,78,59,.2) var(--tw-gradient-to-position)}.printer-card-new.online{box-shadow:0 20px 40px rgba(0,122,85,.08),0 10px 20px rgba(0,122,85,.06),0 0 0 1px rgba(209,250,229,.4)}.dark .printer-card-new.online{box-shadow:0 20px 40px rgba(0,0,0,.3),0 10px 20px rgba(0,0,0,.2),0 0 0 1px rgba(16,185,129,.2)}.status-badge-new{display:inline-flex;align-items:center}.status-badge-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.status-badge-new{border-radius:9999px;padding:.25rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);background:hsla(0,0%,100%,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 5px rgba(0,0,0,.05)}.dark .status-badge-new{background:rgba(30,41,59,.7);box-shadow:0 2px 5px rgba(0,0,0,.2)}.status-badge-new.online{background-color:rgba(220,252,231,.9);--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.status-badge-new.online:is(.dark *){background-color:rgba(20,83,45,.6);--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.status-badge-new.offline{background-color:hsla(0,93%,94%,.9);--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.status-badge-new.offline:is(.dark *){background-color:rgba(127,29,29,.6);--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.filter-bar-new{border-radius:.5rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.8);padding:.375rem;--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.filter-bar-new:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(30,41,59,.8)}.filter-bar-new{box-shadow:0 10px 25px rgba(0,0,0,.05),0 5px 10px rgba(0,0,0,.03),0 0 0 1px hsla(0,0%,100%,.2)}.dark .filter-bar-new{box-shadow:0 10px 25px rgba(0,0,0,.2),0 5px 10px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.05)}.filter-btn-new{border-radius:.375rem;padding:.5rem .875rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.filter-btn-new.active{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter-btn-new.active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.filter-btn-new.active{box-shadow:0 4px 10px rgba(0,0,0,.1)}.dark .filter-btn-new.active{box-shadow:0 4px 10px rgba(0,0,0,.3)}.action-btn-new{display:flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.action-btn-new:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.action-btn-new{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.action-btn-new.primary{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.action-btn-new.primary:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.action-btn-new.primary:is(.dark *){--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.action-btn-new.primary:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.action-btn-new.primary{box-shadow:0 5px 15px rgba(79,70,229,.2)}.dark .action-btn-new.primary{box-shadow:0 5px 15px rgba(79,70,229,.3)}.action-btn-new.success{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.action-btn-new.success:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.action-btn-new.success:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.action-btn-new.success:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.action-btn-new.success{box-shadow:0 5px 15px rgba(16,185,129,.2)}.dark .action-btn-new.success{box-shadow:0 5px 15px rgba(16,185,129,.3)}.action-btn-new.danger{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.action-btn-new.danger:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.action-btn-new.danger:is(.dark *){--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.action-btn-new.danger:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.action-btn-new.danger{box-shadow:0 5px 15px rgba(239,68,68,.2)}.dark .action-btn-new.danger{box-shadow:0 5px 15px rgba(239,68,68,.3)}.printer-info-row{margin-bottom:.375rem;display:flex;align-items:center;gap:.5rem;font-size:.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.printer-info-row:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}@media (min-width:640px){.printer-info-row{font-size:.875rem;line-height:1.25rem}}.printer-info-icon{height:.875rem;width:.875rem;flex-shrink:0;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.printer-info-icon:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}@media (min-width:640px){.printer-info-icon{height:1rem;width:1rem}}.online-indicator{position:absolute;top:.625rem;right:.625rem;height:.75rem;width:.75rem;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:0 0 0 rgba(16,185,129,.6);animation:pulse-ring 2s cubic-bezier(.455,.03,.515,.955) infinite}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(16,185,129,.6)}70%{box-shadow:0 0 0 6px rgba(16,185,129,0)}to{box-shadow:0 0 0 0 rgba(16,185,129,0)}}.status-overview-new{display:flex;flex-wrap:wrap;gap:.75rem;border-radius:.5rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.6);padding:.75rem;font-size:.75rem;line-height:1rem;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.status-overview-new:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(30,41,59,.6)}@media (min-width:640px){.status-overview-new{font-size:.875rem;line-height:1.25rem}}.status-overview-new{box-shadow:0 10px 25px rgba(0,0,0,.04),0 5px 10px rgba(0,0,0,.02),0 0 0 1px hsla(0,0%,100%,.1)}.dark .status-overview-new{box-shadow:0 10px 25px rgba(0,0,0,.15),0 5px 10px rgba(0,0,0,.1),0 0 0 1px hsla(0,0%,100%,.03)}.status-dot{height:.625rem;width:.625rem;border-radius:9999px}.status-dot.online{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));animation:pulse-dot 2s cubic-bezier(.455,.03,.515,.955) infinite}.status-dot.offline{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}@keyframes pulse-dot{0%{transform:scale(.95);opacity:1}50%{transform:scale(1.1);opacity:.8}to{transform:scale(.95);opacity:1}}.modal-new{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.4);padding:1rem;--tw-backdrop-blur:blur(4px)}.modal-content-new,.modal-new{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.modal-content-new{width:100%;max-width:28rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:1rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.9);padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(40px);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.modal-content-new:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(30,41,59,.9)}.modal-content-new{box-shadow:0 25px 50px rgba(0,0,0,.15),0 15px 30px rgba(0,0,0,.1),0 20px 25px -5px rgba(0,0,0,.5),0 10px 10px -5px rgba(0,0,0,.3)}.user-dropdown-item{display:flex;cursor:pointer;align-items:center;padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.user-dropdown-item:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.user-dropdown-item:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.user-dropdown-item:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.user-dropdown-item:first-child{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.user-dropdown-item:last-child{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.user-dropdown-item:hover{background:rgba(248,250,252,.8);transform:translateX(2px)}.dark .user-dropdown-item:hover{background:rgba(30,41,59,.8)}.user-dropdown-icon{margin-right:.75rem;height:1rem;width:1rem;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.user-dropdown-icon:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.user-dropdown-item:hover .user-dropdown-icon{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.user-dropdown-item:hover .user-dropdown-icon:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.user-dropdown-divider{margin-top:.25rem;margin-bottom:.25rem;border-top-width:1px;--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.user-dropdown-divider:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.user-info-section{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1));padding:.75rem 1rem}.user-info-section:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.user-info-section{background:rgba(248,250,252,.5)}.dark .user-info-section{background:rgba(30,41,59,.5)}.user-info-name{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.user-info-name:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.user-info-role{margin-top:.25rem;font-size:.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.user-info-role:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:bg-dark-surface:is(.dark *){background-color:#1e293b}.hover\:-translate-y-0:hover{--tw-translate-y:-0px}.hover\:-translate-y-0:hover,.hover\:-translate-y-0\.5:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1:hover,.hover\:-translate-y-2:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y:-0.5rem}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:scale-105:hover,.hover\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.hover\:border-emerald-600:hover{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity,1))}.hover\:bg-black\/70:hover{background-color:rgba(0,0,0,.7)}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-100\/80:hover{background-color:rgba(243,244,246,.8)}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-indigo-600:hover{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.hover\:bg-mercedes-silver:hover{--tw-bg-opacity:1;background-color:rgb(192 192 192/var(--tw-bg-opacity,1))}.hover\:bg-orange-600:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-orange-700:hover{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.hover\:bg-purple-600:hover{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-slate-100\/50:hover{background-color:rgba(241,245,249,.5)}.hover\:bg-slate-100\/80:hover{background-color:rgba(241,245,249,.8)}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.hover\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\:bg-teal-600:hover{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:bg-white\/25:hover{background-color:hsla(0,0%,100%,.25)}.hover\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.hover\:bg-yellow-700:hover{--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.hover\:from-blue-600:hover{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-green-600:hover{--tw-gradient-from:#16a34a var(--tw-gradient-from-position);--tw-gradient-to:rgba(22,163,74,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-slate-600:hover{--tw-gradient-from:#475569 var(--tw-gradient-from-position);--tw-gradient-to:rgba(71,85,105,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:to-blue-700:hover{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.hover\:to-green-700:hover{--tw-gradient-to:#15803d var(--tw-gradient-to-position)}.hover\:to-slate-700:hover{--tw-gradient-to:#334155 var(--tw-gradient-to-position)}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:text-blue-900:hover{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.hover\:text-emerald-600:hover{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-green-900:hover{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.hover\:text-red-900:hover{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.hover\:text-slate-800:hover{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.hover\:text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.hover\:shadow-2xl:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:border-blue-600:focus{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.focus\:border-red-500:focus{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:bg-gray-100\/80:focus{background-color:rgba(243,244,246,.8)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}.focus\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.focus\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\:ring-green-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:ring-slate-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1))}.focus\:ring-yellow-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(234 179 8/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:translate-x-full{--tw-translate-x:100%}.group:hover .group-hover\:rotate-180,.group:hover .group-hover\:translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-180{--tw-rotate:180deg}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\:scale-105,.group:hover .group-hover\:scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.group:hover .group-hover\:text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.group:hover .group-hover\:opacity-100{opacity:1}.group:active .group-active\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:inline:is(.dark *){display:inline}.dark\:hidden:is(.dark *){display:none}.dark\:rotate-0:is(.dark *){--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:rotate-90:is(.dark *){--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-75:is(.dark *){--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(55 65 81/var(--tw-divide-opacity,1))}.dark\:divide-slate-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(51 65 85/var(--tw-divide-opacity,1))}.dark\:border-blue-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-blue-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.dark\:border-blue-700\/30:is(.dark *){border-color:rgba(29,78,216,.3)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-blue-800\/50:is(.dark *){border-color:rgba(30,64,175,.5)}.dark\:border-dark-border:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:border-emerald-700\/30:is(.dark *){border-color:rgba(4,120,87,.3)}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-green-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.dark\:border-green-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(21 128 61/var(--tw-border-opacity,1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-green-800\/50:is(.dark *){border-color:rgba(22,101,52,.5)}.dark\:border-indigo-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(129 140 248/var(--tw-border-opacity,1))}.dark\:border-indigo-800\/50:is(.dark *){border-color:rgba(55,48,163,.5)}.dark\:border-orange-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.dark\:border-orange-800\/50:is(.dark *){border-color:rgba(154,52,18,.5)}.dark\:border-purple-800\/50:is(.dark *){border-color:rgba(107,33,168,.5)}.dark\:border-red-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-red-800\/50:is(.dark *){border-color:rgba(153,27,27,.5)}.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.dark\:border-slate-600\/50:is(.dark *){border-color:rgba(71,85,105,.5)}.dark\:border-slate-600\/60:is(.dark *){border-color:rgba(71,85,105,.6)}.dark\:border-slate-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:border-slate-700\/20:is(.dark *){border-color:rgba(51,65,85,.2)}.dark\:border-slate-700\/30:is(.dark *){border-color:rgba(51,65,85,.3)}.dark\:border-slate-700\/50:is(.dark *){border-color:rgba(51,65,85,.5)}.dark\:border-white:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:border-white\/20:is(.dark *){border-color:hsla(0,0%,100%,.2)}.dark\:border-white\/70:is(.dark *){border-color:hsla(0,0%,100%,.7)}.dark\:border-yellow-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(133 77 14/var(--tw-border-opacity,1))}.dark\:border-t-slate-700:is(.dark *){--tw-border-opacity:1;border-top-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:bg-amber-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.dark\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:bg-black\/50:is(.dark *){background-color:rgba(0,0,0,.5)}.dark\:bg-black\/60:is(.dark *){background-color:rgba(0,0,0,.6)}.dark\:bg-black\/70:is(.dark *){background-color:rgba(0,0,0,.7)}.dark\:bg-black\/80:is(.dark *){background-color:rgba(0,0,0,.8)}.dark\:bg-blue-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity,1))}.dark\:bg-blue-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:bg-blue-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.dark\:bg-blue-600\/70:is(.dark *){background-color:rgba(37,99,235,.7)}.dark\:bg-blue-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:bg-blue-900\/10:is(.dark *){background-color:rgba(30,58,138,.1)}.dark\:bg-blue-900\/20:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\:bg-blue-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:bg-blue-900\/50:is(.dark *){background-color:rgba(30,58,138,.5)}.dark\:bg-cyan-900\/50:is(.dark *){background-color:rgba(22,78,99,.5)}.dark\:bg-dark-surface:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-emerald-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(6 78 59/var(--tw-bg-opacity,1))}.dark\:bg-emerald-900\/50:is(.dark *){background-color:rgba(6,78,59,.5)}.dark\:bg-gray-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-gray-900\/30:is(.dark *){background-color:rgba(17,24,39,.3)}.dark\:bg-green-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(134 239 172/var(--tw-bg-opacity,1))}.dark\:bg-green-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.dark\:bg-green-600\/70:is(.dark *){background-color:rgba(22,163,74,.7)}.dark\:bg-green-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.dark\:bg-green-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 101 52/var(--tw-bg-opacity,1))}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:bg-green-900\/10:is(.dark *){background-color:rgba(20,83,45,.1)}.dark\:bg-green-900\/20:is(.dark *){background-color:rgba(20,83,45,.2)}.dark\:bg-green-900\/30:is(.dark *){background-color:rgba(20,83,45,.3)}.dark\:bg-green-900\/50:is(.dark *){background-color:rgba(20,83,45,.5)}.dark\:bg-green-900\/60:is(.dark *){background-color:rgba(20,83,45,.6)}.dark\:bg-indigo-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.dark\:bg-indigo-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.dark\:bg-indigo-900\/10:is(.dark *){background-color:rgba(49,46,129,.1)}.dark\:bg-indigo-900\/30:is(.dark *){background-color:rgba(49,46,129,.3)}.dark\:bg-indigo-900\/50:is(.dark *){background-color:rgba(49,46,129,.5)}.dark\:bg-orange-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(253 186 116/var(--tw-bg-opacity,1))}.dark\:bg-orange-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.dark\:bg-orange-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.dark\:bg-orange-900\/10:is(.dark *){background-color:rgba(124,45,18,.1)}.dark\:bg-orange-900\/30:is(.dark *){background-color:rgba(124,45,18,.3)}.dark\:bg-orange-900\/50:is(.dark *){background-color:rgba(124,45,18,.5)}.dark\:bg-purple-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.dark\:bg-purple-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.dark\:bg-purple-900\/10:is(.dark *){background-color:rgba(88,28,135,.1)}.dark\:bg-purple-900\/30:is(.dark *){background-color:rgba(88,28,135,.3)}.dark\:bg-purple-900\/50:is(.dark *){background-color:rgba(88,28,135,.5)}.dark\:bg-red-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity,1))}.dark\:bg-red-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.dark\:bg-red-600\/70:is(.dark *){background-color:rgba(220,38,38,.7)}.dark\:bg-red-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity,1))}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\:bg-red-900\/10:is(.dark *){background-color:rgba(127,29,29,.1)}.dark\:bg-red-900\/20:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:bg-red-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-red-900\/50:is(.dark *){background-color:rgba(127,29,29,.5)}.dark\:bg-red-900\/60:is(.dark *){background-color:rgba(127,29,29,.6)}.dark\:bg-slate-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.dark\:bg-slate-700\/30:is(.dark *){background-color:rgba(51,65,85,.3)}.dark\:bg-slate-700\/40:is(.dark *){background-color:rgba(51,65,85,.4)}.dark\:bg-slate-700\/60:is(.dark *){background-color:rgba(51,65,85,.6)}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-slate-800\/50:is(.dark *){background-color:rgba(30,41,59,.5)}.dark\:bg-slate-800\/60:is(.dark *){background-color:rgba(30,41,59,.6)}.dark\:bg-slate-800\/80:is(.dark *){background-color:rgba(30,41,59,.8)}.dark\:bg-slate-800\/90:is(.dark *){background-color:rgba(30,41,59,.9)}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.dark\:bg-slate-900\/50:is(.dark *){background-color:rgba(15,23,42,.5)}.dark\:bg-slate-900\/60:is(.dark *){background-color:rgba(15,23,42,.6)}.dark\:bg-slate-900\/80:is(.dark *){background-color:rgba(15,23,42,.8)}.dark\:bg-slate-900\/90:is(.dark *){background-color:rgba(15,23,42,.9)}.dark\:bg-teal-900\/50:is(.dark *){background-color:rgba(19,78,74,.5)}.dark\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\:bg-white\/10:is(.dark *){background-color:hsla(0,0%,100%,.1)}.dark\:bg-yellow-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.dark\:bg-yellow-600\/70:is(.dark *){background-color:rgba(202,138,4,.7)}.dark\:bg-yellow-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(133 77 14/var(--tw-bg-opacity,1))}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1))}.dark\:bg-yellow-900\/20:is(.dark *){background-color:rgba(113,63,18,.2)}.dark\:bg-yellow-900\/30:is(.dark *){background-color:rgba(113,63,18,.3)}.dark\:bg-yellow-900\/50:is(.dark *){background-color:rgba(113,63,18,.5)}.dark\:bg-opacity-95:is(.dark *){--tw-bg-opacity:0.95}.dark\:from-blue-400:is(.dark *){--tw-gradient-from:#60a5fa var(--tw-gradient-from-position);--tw-gradient-to:rgba(96,165,250,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-400\/20:is(.dark *){--tw-gradient-from:rgba(96,165,250,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(96,165,250,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-900\/10:is(.dark *){--tw-gradient-from:rgba(30,58,138,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-900\/20:is(.dark *){--tw-gradient-from:rgba(30,58,138,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-900\/30:is(.dark *){--tw-gradient-from:rgba(30,58,138,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-emerald-900\/20:is(.dark *){--tw-gradient-from:rgba(6,78,59,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(6,78,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-400:is(.dark *){--tw-gradient-from:#4ade80 var(--tw-gradient-from-position);--tw-gradient-to:rgba(74,222,128,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-400\/20:is(.dark *){--tw-gradient-from:rgba(74,222,128,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(74,222,128,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-900\/10:is(.dark *){--tw-gradient-from:rgba(20,83,45,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-900\/20:is(.dark *){--tw-gradient-from:rgba(20,83,45,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-900\/30:is(.dark *){--tw-gradient-from:rgba(20,83,45,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-400:is(.dark *){--tw-gradient-from:#fb923c var(--tw-gradient-from-position);--tw-gradient-to:rgba(251,146,60,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-400\/20:is(.dark *){--tw-gradient-from:rgba(251,146,60,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(251,146,60,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-900\/10:is(.dark *){--tw-gradient-from:rgba(124,45,18,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(124,45,18,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-900\/20:is(.dark *){--tw-gradient-from:rgba(124,45,18,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(124,45,18,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-purple-900\/20:is(.dark *){--tw-gradient-from:rgba(88,28,135,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(88,28,135,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-purple-900\/30:is(.dark *){--tw-gradient-from:rgba(88,28,135,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(88,28,135,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-red-400:is(.dark *){--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-red-400\/20:is(.dark *){--tw-gradient-from:hsla(0,91%,71%,.2) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-800\/90:is(.dark *){--tw-gradient-from:rgba(30,41,59,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,41,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-900:is(.dark *){--tw-gradient-from:#0f172a var(--tw-gradient-from-position);--tw-gradient-to:rgba(15,23,42,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-950:is(.dark *){--tw-gradient-from:#020617 var(--tw-gradient-from-position);--tw-gradient-to:rgba(2,6,23,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-white:is(.dark *){--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-yellow-900\/20:is(.dark *){--tw-gradient-from:rgba(113,63,18,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(113,63,18,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:via-blue-200:is(.dark *){--tw-gradient-to:rgba(191,219,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#bfdbfe var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-blue-900\/20:is(.dark *){--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(30,58,138,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-blue-950:is(.dark *){--tw-gradient-to:rgba(23,37,84,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#172554 var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-emerald-900\/20:is(.dark *){--tw-gradient-to:rgba(6,78,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(6,78,59,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-red-900\/20:is(.dark *){--tw-gradient-to:rgba(127,29,29,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(127,29,29,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-slate-800:is(.dark *){--tw-gradient-to:rgba(30,41,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1e293b var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:to-blue-500:is(.dark *){--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.dark\:to-blue-800\/30:is(.dark *){--tw-gradient-to:rgba(30,64,175,.3) var(--tw-gradient-to-position)}.dark\:to-blue-900\/20:is(.dark *){--tw-gradient-to:rgba(30,58,138,.2) var(--tw-gradient-to-position)}.dark\:to-cyan-900\/20:is(.dark *){--tw-gradient-to:rgba(22,78,99,.2) var(--tw-gradient-to-position)}.dark\:to-emerald-400\/20:is(.dark *){--tw-gradient-to:rgba(52,211,153,.2) var(--tw-gradient-to-position)}.dark\:to-emerald-900\/10:is(.dark *){--tw-gradient-to:rgba(6,78,59,.1) var(--tw-gradient-to-position)}.dark\:to-emerald-900\/20:is(.dark *){--tw-gradient-to:rgba(6,78,59,.2) var(--tw-gradient-to-position)}.dark\:to-green-500:is(.dark *){--tw-gradient-to:#22c55e var(--tw-gradient-to-position)}.dark\:to-green-800\/30:is(.dark *){--tw-gradient-to:rgba(22,101,52,.3) var(--tw-gradient-to-position)}.dark\:to-green-900\/20:is(.dark *){--tw-gradient-to:rgba(20,83,45,.2) var(--tw-gradient-to-position)}.dark\:to-indigo-400\/20:is(.dark *){--tw-gradient-to:rgba(129,140,248,.2) var(--tw-gradient-to-position)}.dark\:to-indigo-900\/10:is(.dark *){--tw-gradient-to:rgba(49,46,129,.1) var(--tw-gradient-to-position)}.dark\:to-indigo-900\/20:is(.dark *){--tw-gradient-to:rgba(49,46,129,.2) var(--tw-gradient-to-position)}.dark\:to-indigo-950:is(.dark *){--tw-gradient-to:#1e1b4b var(--tw-gradient-to-position)}.dark\:to-orange-500:is(.dark *){--tw-gradient-to:#f97316 var(--tw-gradient-to-position)}.dark\:to-orange-900\/20:is(.dark *){--tw-gradient-to:rgba(124,45,18,.2) var(--tw-gradient-to-position)}.dark\:to-pink-400\/20:is(.dark *){--tw-gradient-to:rgba(244,114,182,.2) var(--tw-gradient-to-position)}.dark\:to-pink-900\/20:is(.dark *){--tw-gradient-to:rgba(131,24,67,.2) var(--tw-gradient-to-position)}.dark\:to-purple-500:is(.dark *){--tw-gradient-to:#a855f7 var(--tw-gradient-to-position)}.dark\:to-purple-800\/30:is(.dark *){--tw-gradient-to:rgba(107,33,168,.3) var(--tw-gradient-to-position)}.dark\:to-red-400\/20:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,.2) var(--tw-gradient-to-position)}.dark\:to-red-500:is(.dark *){--tw-gradient-to:#ef4444 var(--tw-gradient-to-position)}.dark\:to-red-900\/10:is(.dark *){--tw-gradient-to:rgba(127,29,29,.1) var(--tw-gradient-to-position)}.dark\:to-red-900\/20:is(.dark *){--tw-gradient-to:rgba(127,29,29,.2) var(--tw-gradient-to-position)}.dark\:to-slate-200:is(.dark *){--tw-gradient-to:#e2e8f0 var(--tw-gradient-to-position)}.dark\:to-slate-900:is(.dark *){--tw-gradient-to:#0f172a var(--tw-gradient-to-position)}.dark\:to-slate-900\/70:is(.dark *){--tw-gradient-to:rgba(15,23,42,.7) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-blue-100:is(.dark *){--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-blue-500:is(.dark *){--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.dark\:text-dark-text:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:text-dark-text-muted:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.dark\:text-green-100:is(.dark *){--tw-text-opacity:1;color:rgb(220 252 231/var(--tw-text-opacity,1))}.dark\:text-green-200:is(.dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-green-500:is(.dark *){--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-purple-200:is(.dark *){--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-red-100:is(.dark *){--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.dark\:text-slate-600:is(.dark *){--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.dark\:text-slate-900:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dark\:text-teal-400:is(.dark *){--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-100:is(.dark *){--tw-text-opacity:1;color:rgb(254 249 195/var(--tw-text-opacity,1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity,1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:placeholder-slate-400:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.dark\:placeholder-slate-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.dark\:opacity-0:is(.dark *){opacity:0}.dark\:opacity-100:is(.dark *){opacity:1}.dark\:opacity-5:is(.dark *){opacity:.05}.dark\:shadow-2xl:is(.dark *){--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:shadow-slate-900\/20:is(.dark *){--tw-shadow-color:rgba(15,23,42,.2);--tw-shadow:var(--tw-shadow-colored)}.dark\:hover\:border-blue-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:hover\:border-emerald-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:hover\:bg-blue-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.dark\:hover\:bg-blue-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-green-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.dark\:hover\:bg-green-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.dark\:hover\:bg-purple-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.dark\:hover\:bg-red-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\:hover\:bg-red-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.dark\:hover\:bg-red-900\/10:hover:is(.dark *){background-color:rgba(127,29,29,.1)}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:hover\:bg-slate-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-700\/50:hover:is(.dark *){background-color:rgba(51,65,85,.5)}.dark\:hover\:bg-slate-700\/60:hover:is(.dark *){background-color:rgba(51,65,85,.6)}.dark\:hover\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-800\/50:hover:is(.dark *){background-color:rgba(30,41,59,.5)}.dark\:hover\:bg-white\/15:hover:is(.dark *){background-color:hsla(0,0%,100%,.15)}.dark\:hover\:bg-white\/70:hover:is(.dark *){background-color:hsla(0,0%,100%,.7)}.dark\:hover\:text-blue-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:hover\:text-emerald-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:hover\:text-green-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:hover\:text-red-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:hover\:text-red-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dark\:hover\:text-slate-900:hover:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:hover\:shadow-slate-900\/50:hover:is(.dark *){--tw-shadow-color:rgba(15,23,42,.5);--tw-shadow:var(--tw-shadow-colored)}.dark\:focus\:ring-blue-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\:focus\:ring-gray-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity,1))}.dark\:disabled\:bg-slate-800:disabled:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.group:hover .dark\:group-hover\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-0{margin-top:0}.sm\:mt-12{margin-top:3rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:h-10{height:2.5rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:w-10{width:2.5rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-80{width:20rem}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:justify-center{justify-content:center}.sm\:gap-8{gap:2rem}.sm\:space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pb-4{padding-bottom:1rem}.sm\:pt-8{padding-top:2rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.md\:p-12{padding:3rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-8xl{font-size:6rem;line-height:1}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-7{height:1.75rem}.lg\:w-7{width:1.75rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lg\:p-12{padding:3rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-right{text-align:right}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}} \ No newline at end of file +*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-text-primary:#0f172a;--color-text-secondary:#334155;--color-text-muted:#64748b;--color-border-primary:#e2e8f0;--color-accent:#000;--color-accent-hover:#333;--color-accent-text:#fff;--color-shadow:rgba(0,0,0,.1);--card-radius:1rem}.dark{--color-bg-primary:#000;--color-bg-secondary:#0a0a0a;--color-text-primary:#fff;--color-text-secondary:#e2e8f0;--color-text-muted:#94a3b8;--color-border-primary:#1a1a1a;--color-accent:#fff;--color-accent-hover:#f0f0f0;--color-accent-text:#000;--color-shadow:rgba(0,0,0,.8);--mb-black:#000}body{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}body:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}body{position:relative;min-height:100vh}.dark body{background:linear-gradient(135deg,#000,#0a0a0a 50%,#000)}nav{border-bottom-width:1px;border-color:rgba(229,231,235,.7);background-color:hsla(0,0%,100%,.6);--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}nav:is(.dark *){border-color:rgba(51,65,85,.2);background-color:rgba(0,0,0,.6)}nav{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 8px 32px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.05)}#user-dropdown{position:absolute;right:0;z-index:50;margin-top:.5rem;width:16rem;border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.7);background-color:hsla(0,0%,100%,.6);--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}#user-dropdown:is(.dark *){border-color:rgba(51,65,85,.2);background-color:rgba(0,0,0,.6)}#user-dropdown{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 20px 40px rgba(0,0,0,.2),0 0 0 1px hsla(0,0%,100%,.1);animation:fadeIn .2s ease-out forwards}.\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:1rem!important;padding-left:1rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:1rem;padding-left:1rem}@media (min-width:640px){.\!container{max-width:640px!important;padding-right:1.5rem!important;padding-left:1.5rem!important}.container{max-width:640px;padding-right:1.5rem;padding-left:1.5rem}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important;padding-right:2rem!important;padding-left:2rem!important}.container{max-width:1024px;padding-right:2rem;padding-left:2rem}}@media (min-width:1280px){.\!container{max-width:1280px!important;padding-right:3rem!important;padding-left:3rem!important}.container{max-width:1280px;padding-right:3rem;padding-left:3rem}}@media (min-width:1400px){.\!container{max-width:1400px!important;padding-right:4rem!important;padding-left:4rem!important}.container{max-width:1400px;padding-right:4rem;padding-left:4rem}}.dark .bg-dark-card{background-color:#1e293b;--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.bg-dark-surface{background-color:#1e293b}.transition-all-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.admin-container{margin-left:auto;margin-right:auto;max-width:80rem;padding:1rem}@media (min-width:768px){.admin-container{padding:2rem}}.admin-stats{margin-bottom:2rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media (min-width:640px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.stat-card{position:relative;overflow:hidden;border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.6);padding:1.25rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.stat-card,.stat-card:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.stat-card:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.stat-card:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(0,0,0,.7)}.stat-card{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 25px 50px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.1)}.stat-icon{position:absolute;top:1rem;right:1rem;font-size:2.25rem;line-height:2.5rem;opacity:.15}.stat-title{margin-bottom:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;text-transform:uppercase;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.stat-title:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.stat-value{margin-bottom:.25rem;font-size:1.5rem;line-height:2rem;font-weight:700;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.stat-value:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.stat-desc{font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.stat-desc:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.nav-tabs{margin-bottom:1rem;display:flex;overflow-x:auto;border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.nav-tabs:is(.dark *){border-color:rgba(51,65,85,.3)}.nav-tab{cursor:pointer;white-space:nowrap;border-bottom-width:2px;border-color:transparent;padding:1rem 1.5rem;--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.nav-tab:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.nav-tab:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.nav-tab:hover:is(.dark *){background-color:rgba(30,41,59,.5);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.nav-tab.active{border-bottom-width:2px;--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1));font-weight:500;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.nav-tab.active:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.tab-content{margin-top:2rem}.tab-pane{display:none}.dark-mode-toggle-new .moon-icon:not(.tab-pane),.dark-mode-toggle-new .sun-icon:not(.tab-pane){animation:spin-in .5s cubic-bezier(.25,1,.5,1) forwards}.tab-pane.active{display:block}.form-group{margin-bottom:1rem}.form-label{margin-bottom:.5rem;display:block;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.form-label:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.form-input,.form-select,.form-textarea{width:100%;border-radius:.5rem;border-width:1px;border-color:rgba(209,213,219,.6);background-color:hsla(0,0%,100%,.6);padding:.5rem .75rem;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.form-input::-moz-placeholder,.form-select::-moz-placeholder,.form-textarea::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.form-input,.form-select,.form-textarea{--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:transparent;outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1))}.form-input:is(.dark *),.form-select:is(.dark *),.form-textarea:is(.dark *){border-color:rgba(71,85,105,.6);background-color:rgba(30,41,59,.6);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.form-input,.form-select,.form-textarea{backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:0 10px 20px rgba(0,0,0,.1),0 0 0 1px hsla(0,0%,100%,.05)}.admin-table{min-width:100%}.admin-table>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse));--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.admin-table:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(51 65 85/var(--tw-divide-opacity,1))}.admin-table thead{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.admin-table thead:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.admin-table th{padding:.75rem 1.5rem;text-align:left;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.admin-table th:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.admin-table tbody>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse));--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.admin-table tbody{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.admin-table tbody:is(.dark *){background-color:#1e293b}.admin-table tbody:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(51 65 85/var(--tw-divide-opacity,1))}.admin-table tbody:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.admin-table tr{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.admin-table tr:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.admin-table tr:hover:is(.dark *){background-color:rgba(51,65,85,.5)}.admin-table td{white-space:nowrap;padding:1rem 1.5rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.admin-table td:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.badge{display:inline-flex;border-radius:9999px;padding-left:.5rem;padding-right:.5rem;font-size:.75rem;font-weight:600;line-height:1.25rem}.badge-success{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.badge-success:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.badge-error{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.badge-error:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.badge-warning{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.badge-warning:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.badge-info{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.badge-info:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.printer-card{border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.6);padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.printer-card,.printer-card:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.printer-card:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.printer-card:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(0,0,0,.7)}.printer-card{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 25px 50px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.1)}.printer-header{margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between}.printer-name{font-size:1.25rem;line-height:1.75rem;font-weight:700;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.printer-name:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.printer-actions{display:flex}.printer-actions>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.printer-info{margin-bottom:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.printer-status{margin-top:1rem;display:flex;align-items:center}.status-indicator{margin-right:.5rem;height:.75rem;width:.75rem;border-radius:9999px}.status-running{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));animation:pulse 2s infinite}.status-stopped{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.log-entry{margin-bottom:.5rem;border-top-right-radius:.5rem;border-bottom-right-radius:.5rem;border-left-width:4px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:.75rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.log-entry:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.log-entry:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.log-entry:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.log-debug{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.log-debug:is(.dark *){--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.log-info{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.log-info:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.log-warning{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.log-warning:is(.dark *){--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.log-error{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.log-error:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.log-critical{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.log-critical:is(.dark *){--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.scheduler-status{display:flex;align-items:center;border-radius:.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.scheduler-status:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.progress-bar{height:.5rem;width:100%;overflow:hidden;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.progress-bar:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.progress-bar-fill{height:100%;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.progress-bar-fill-blue{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.progress-bar-fill-blue:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.progress-bar-fill-green{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.progress-bar-fill-green:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.progress-bar-fill-purple{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.progress-bar-fill-purple:is(.dark *){--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.\!notification{position:fixed;top:1rem;right:1rem;z-index:50;max-width:28rem;--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.5rem;border-left-width:4px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;opacity:0;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.\!notification:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.notification{position:fixed;top:1rem;right:1rem;z-index:50;max-width:28rem;--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.5rem;border-left-width:4px;--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));padding:1rem;opacity:0;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.notification:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.\!notification.show,.notification.\!show,.notification.show{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:1}.notification-success{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.notification-error{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.notification-warning{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.notification-info{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.alert{margin-bottom:1rem;border-radius:.5rem;border-width:1px;padding:1rem}.alert-success{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.alert-success:is(.dark *){background-color:rgba(20,83,45,.3);--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.alert-error{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.alert-error:is(.dark *){background-color:rgba(127,29,29,.3);--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.alert-warning{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.alert-warning:is(.dark *){background-color:rgba(113,63,18,.3);--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.alert-info{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.alert-info:is(.dark *){background-color:rgba(30,58,138,.3);--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.btn-primary{border-radius:.5rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-primary:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-primary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.btn-primary:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.btn-primary{background:rgba(0,0,0,.7);backdrop-filter:blur(20px) saturate(150%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(150%) brightness(110%);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 20px 40px rgba(0,0,0,.3),0 8px 16px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.1)}.btn-primary:hover{background:rgba(0,0,0,.9);backdrop-filter:blur(25px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(25px) saturate(180%) brightness(120%);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.4),0 10px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.3)}.dark .btn-primary{background:hsla(0,0%,100%,.7);border:1px solid rgba(0,0,0,.1);box-shadow:0 20px 40px rgba(0,0,0,.2),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.8),0 0 0 1px rgba(0,0,0,.05)}.dark .btn-primary:hover{background:hsla(0,0%,100%,.9);border:1px solid rgba(0,0,0,.15);box-shadow:0 25px 50px rgba(0,0,0,.3),0 10px 20px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.9)}.btn-secondary{border-radius:.5rem;padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1));--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-secondary:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-secondary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.btn-secondary:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn-secondary{background:hsla(0,0%,100%,.3);backdrop-filter:blur(20px) saturate(150%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(150%) brightness(110%);border:1px solid hsla(0,0%,100%,.4);box-shadow:0 20px 40px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.5),0 0 0 1px hsla(0,0%,100%,.2)}.btn-secondary:hover{background:hsla(0,0%,100%,.5);backdrop-filter:blur(25px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(25px) saturate(180%) brightness(120%);border:1px solid hsla(0,0%,100%,.6);box-shadow:0 25px 50px rgba(0,0,0,.2),0 10px 20px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.7)}.dark .btn-secondary{background:rgba(0,0,0,.4);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 20px 40px rgba(0,0,0,.3),0 8px 16px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.1)}.dark .btn-secondary:hover{background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.4),0 10px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.3)}.btn-outline{border-radius:.5rem;border-width:2px;border-color:rgba(0,0,0,.7);padding:.5rem 1rem;--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1));--tw-backdrop-blur:blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.btn-outline:hover{background-color:rgba(0,0,0,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn-outline:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.btn-outline:is(.dark *){border-color:hsla(0,0%,100%,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.btn-outline:hover:is(.dark *){background-color:hsla(0,0%,100%,.7);--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.btn-outline{backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);box-shadow:0 15px 30px rgba(0,0,0,.1),0 0 0 1px hsla(0,0%,100%,.05)}.glass-card{border-radius:.75rem;padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:hsla(0,0%,100%,.15);backdrop-filter:blur(30px) saturate(200%) brightness(120%) contrast(110%);-webkit-backdrop-filter:blur(30px) saturate(200%) brightness(120%) contrast(110%);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius)}.dark .glass-card{background:rgba(0,0,0,.3);backdrop-filter:blur(30px) saturate(180%) brightness(110%) contrast(120%);-webkit-backdrop-filter:blur(30px) saturate(180%) brightness(110%) contrast(120%);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 25px 50px rgba(0,0,0,.4),0 8px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.05)}.dashboard-card{border-radius:.75rem;padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.dashboard-card:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dashboard-card{background:hsla(0,0%,100%,.12);backdrop-filter:blur(35px) saturate(200%) brightness(125%) contrast(115%);-webkit-backdrop-filter:blur(35px) saturate(200%) brightness(125%) contrast(115%);border:1px solid hsla(0,0%,100%,.25);box-shadow:0 25px 50px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.08),inset 0 1px 0 hsla(0,0%,100%,.25),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius)}.dark .dashboard-card{background:rgba(0,0,0,.35);backdrop-filter:blur(35px) saturate(180%) brightness(115%) contrast(125%);-webkit-backdrop-filter:blur(35px) saturate(180%) brightness(115%) contrast(125%);border:1px solid hsla(0,0%,100%,.12);box-shadow:0 25px 50px rgba(0,0,0,.5),0 8px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.12),0 0 0 1px hsla(0,0%,100%,.05)}.nav-link{display:flex;align-items:center;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.nav-link:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nav-link:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.nav-link:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.nav-link:hover:is(.dark *){background-color:rgba(51,65,85,.5)}.nav-link.active{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1));--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nav-link.active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.navbar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:hsla(0,0%,100%,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:all .3s ease}.navbar-button{padding:.25rem .5rem;font-size:.875rem;border-radius:5px;transition:background-color .3s ease}.navbar-button:hover{background-color:hsla(0,0%,100%,.2)}@media (max-width:768px){.navbar{flex-direction:column;padding:.25rem}.navbar-button{margin:.25rem 0}}.dark .navbar{background:rgba(0,0,0,.25);backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);-webkit-backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);box-shadow:0 8px 32px rgba(0,0,0,.6),0 2px 8px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.1),0 0 0 1px hsla(0,0%,100%,.05);border-bottom:1px solid hsla(0,0%,100%,.1)}.navbar-brand{display:flex;align-items:center}.navbar-brand>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.navbar-brand{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.navbar-brand:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.navbar-menu{margin-left:1rem;margin-right:1rem;display:flex;align-items:center;justify-content:center}.navbar-menu>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.navbar-menu{border-radius:1rem;border-width:1px;padding:.75rem}@media (min-width:768px){.navbar-menu>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}}@media (min-width:1024px){.navbar-menu>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}}.navbar-menu{background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 4px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.4),0 0 0 1px hsla(0,0%,100%,.1)}.dark .navbar-menu,.navbar-menu{backdrop-filter:blur(20px) saturate(150%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(150%) brightness(110%)}.dark .navbar-menu{background:rgba(0,0,0,.4);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 4px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05)}.navbar-button{border-radius:9999px;padding:.5rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.navbar-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:2px}.user-menu-button{display:flex;align-items:center}.user-menu-button>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.user-menu-button{border-radius:.5rem;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.user-menu-button:hover{background-color:rgba(243,244,246,.8)}.user-menu-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}.user-menu-button:hover:is(.dark *){background-color:rgba(51,65,85,.6)}.user-avatar{display:flex;height:2.5rem;width:2.5rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));font-size:.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.user-avatar,.user-avatar:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.user-avatar:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.user-avatar:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.avatar-large{display:flex;height:3.5rem;width:3.5rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));font-size:1.125rem;line-height:1.75rem;font-weight:700;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.avatar-large:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.user-dropdown-item{transition-duration:.3s}.user-dropdown-item:hover{background-color:rgba(243,244,246,.8);--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.user-dropdown-item:focus{background-color:rgba(243,244,246,.8);outline:2px solid transparent;outline-offset:2px}.user-dropdown-item:is(.dark *){color:rgb(203 213 225/var(--tw-text-opacity,1))}.user-dropdown-item:hover:is(.dark *){background-color:rgba(51,65,85,.6);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.user-dropdown-item:focus:is(.dark *){background-color:rgba(51,65,85,.6)}.user-dropdown-separator{margin-top:.25rem;margin-bottom:.25rem;border-top-width:1px;border-color:rgba(229,231,235,.8)}.user-dropdown-separator:is(.dark *){border-color:rgba(51,65,85,.3)}.menu-item{display:flex;align-items:center}.menu-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.menu-item{border-radius:.75rem;padding:.625rem 1rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.menu-item:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.menu-item{background:hsla(0,0%,100%,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 2px 8px rgba(0,0,0,.05)}.menu-item:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.menu-item:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.menu-item:hover{background:hsla(0,0%,100%,.3);backdrop-filter:blur(15px) saturate(150%);-webkit-backdrop-filter:blur(15px) saturate(150%);border:1px solid hsla(0,0%,100%,.4);box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(-1px)}.dark .menu-item{background:rgba(0,0,0,.2);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 2px 8px rgba(0,0,0,.2)}.dark .menu-item:hover{background:rgba(0,0,0,.4);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 4px 16px rgba(0,0,0,.3)}.menu-item.active{font-weight:500;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.menu-item.active:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.menu-item.active{background:hsla(0,0%,100%,.5);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid hsla(0,0%,100%,.6);box-shadow:0 4px 16px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.5)}.dark .menu-item.active{background:rgba(0,0,0,.6);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 4px 16px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2)}.user-dropdown{position:absolute;right:0;z-index:50;margin-top:.5rem;width:16rem;overflow:hidden;border-radius:.75rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);background:hsla(0,0%,100%,.1);backdrop-filter:blur(40px) saturate(200%) brightness(130%) contrast(110%);-webkit-backdrop-filter:blur(40px) saturate(200%) brightness(130%) contrast(110%);border:1px solid hsla(0,0%,100%,.3);box-shadow:0 25px 50px rgba(0,0,0,.25),0 8px 16px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.4),0 0 0 1px hsla(0,0%,100%,.1);animation:fadeIn .2s ease-out forwards}.dark .user-dropdown{background:rgba(0,0,0,.4);backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);-webkit-backdrop-filter:blur(40px) saturate(180%) brightness(120%) contrast(120%);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 25px 50px rgba(0,0,0,.6),0 8px 16px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05)}.dropdown-header{display:flex;align-items:center;border-bottom-width:1px;border-color:rgba(229,231,235,.8);padding:1rem}.dropdown-header:is(.dark *){border-color:rgba(51,65,85,.3)}.dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.dropdown-item:hover{background-color:rgba(243,244,246,.8);--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dropdown-item:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dropdown-item:hover:is(.dark *){background-color:rgba(51,65,85,.6);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dropdown-divider{border-top-width:1px;border-color:rgba(229,231,235,.8)}.dropdown-divider:is(.dark *){border-color:rgba(51,65,85,.3)}@keyframes mercedes-rotate{0%{transform:rotate(0deg)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}75%{transform:rotate(270deg)}to{transform:rotate(1turn)}}.navbar-brand:hover svg{animation:mercedes-rotate 5s linear infinite;transform-origin:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{inset:-.25rem}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-bottom-2{bottom:-.5rem}.-bottom-8{bottom:-2rem}.-left-2{left:-.5rem}.-right-1{right:-.25rem}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-full{bottom:100%}.end-1{inset-inline-end:.25rem}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:.75rem}.left-4{left:1rem}.right-0{right:0}.right-2\.5{right:.625rem}.right-4{right:1rem}.right-5{right:1.25rem}.right-8{right:2rem}.top-0{top:0}.top-1\/2{top:50%}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-5{top:1.25rem}.top-8{top:2rem}.top-full{top:100%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.m-1{margin:.25rem}.-mx-1\.5{margin-left:-.375rem;margin-right:-.375rem}.-my-1\.5{margin-top:-.375rem;margin-bottom:-.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-1{margin-left:-.25rem}.-mt-8{margin-top:-2rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-8{margin-left:2rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.list-item{display:list-item}.hidden{display:none}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-full{height:100%}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[90vh\]{max-height:90vh}.min-h-\[80vh\]{min-height:80vh}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:.25rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[150px\]{min-width:150px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-xl{max-width:1280px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.origin-top-right{transform-origin:top right}.-translate-x-1{--tw-translate-x:-0.25rem}.-translate-x-1,.-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.-translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-0{--tw-translate-y:-0px}.-translate-y-1{--tw-translate-y:-0.25rem}.-translate-y-1,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x:0.25rem}.translate-x-full{--tw-translate-x:100%}.translate-x-full,.translate-y-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1{--tw-translate-y:0.25rem}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg}.rotate-90{--tw-rotate:90deg}.rotate-90,.skew-x-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.skew-x-12{--tw-skew-x:12deg}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-75{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-95,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .5s ease-in-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-up{animation:slideUp .5s ease-out}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize{resize:both}.scroll-mt-8{scroll-margin-top:2rem}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-0\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.125rem*var(--tw-space-x-reverse));margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-1\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-2\.5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.625rem*var(--tw-space-x-reverse));margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(226 232 240/var(--tw-divide-opacity,1))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-r-lg{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r-4{border-right-width:4px}.border-t{border-top-width:1px}.border-t-4{border-top-width:4px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-black\/70{border-color:rgba(0,0,0,.7)}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-200\/50{border-color:rgba(191,219,254,.5)}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-emerald-200\/50{border-color:rgba(167,243,208,.5)}.border-emerald-500{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-200\/50{border-color:rgba(229,231,235,.5)}.border-gray-200\/60{border-color:rgba(229,231,235,.6)}.border-gray-200\/70{border-color:rgba(229,231,235,.7)}.border-gray-200\/80{border-color:rgba(229,231,235,.8)}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-300\/60{border-color:rgba(209,213,219,.6)}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-200\/50{border-color:rgba(187,247,208,.5)}.border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-indigo-200{--tw-border-opacity:1;border-color:rgb(199 210 254/var(--tw-border-opacity,1))}.border-indigo-200\/50{border-color:rgba(199,210,254,.5)}.border-indigo-600{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-light-border{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-mercedes-silver{--tw-border-opacity:1;border-color:rgb(192 192 192/var(--tw-border-opacity,1))}.border-orange-200{--tw-border-opacity:1;border-color:rgb(254 215 170/var(--tw-border-opacity,1))}.border-orange-200\/50{border-color:hsla(32,98%,83%,.5)}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-purple-200\/50{border-color:rgba(233,213,255,.5)}.border-purple-400{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-200\/50{border-color:hsla(0,96%,89%,.5)}.border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.border-slate-200\/50{border-color:rgba(226,232,240,.5)}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-white\/30{border-color:hsla(0,0%,100%,.3)}.border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.border-yellow-400{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.border-t-slate-800{--tw-border-opacity:1;border-top-color:rgb(30 41 59/var(--tw-border-opacity,1))}.border-t-slate-900{--tw-border-opacity:1;border-top-color:rgb(15 23 42/var(--tw-border-opacity,1))}.bg-accent-primary{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-amber-400{--tw-bg-opacity:1;background-color:rgb(251 191 36/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-black\/70{background-color:rgba(0,0,0,.7)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-50\/50{background-color:rgba(239,246,255,.5)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/70{background-color:rgba(59,130,246,.7)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-dark-card,.bg-dark-surface{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-100\/90{background-color:rgba(220,252,231,.9)}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-50\/50{background-color:rgba(240,253,244,.5)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/70{background-color:rgba(34,197,94,.7)}.bg-green-600{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.bg-indigo-50{--tw-bg-opacity:1;background-color:rgb(238 242 255/var(--tw-bg-opacity,1))}.bg-indigo-50\/50{background-color:rgba(238,242,255,.5)}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.bg-indigo-600{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-light-surface{--tw-bg-opacity:1;background-color:rgb(247 250 252/var(--tw-bg-opacity,1))}.bg-mercedes-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-mercedes-silver{--tw-bg-opacity:1;background-color:rgb(192 192 192/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.bg-orange-50{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity,1))}.bg-orange-50\/50{background-color:rgba(255,247,237,.5)}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-orange-600{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-400{--tw-bg-opacity:1;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}.bg-purple-50\/50{background-color:rgba(250,245,255,.5)}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-100\/90{background-color:hsla(0,93%,94%,.9)}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-50\/50{background-color:hsla(0,86%,97%,.5)}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\/70{background-color:rgba(239,68,68,.7)}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-50\/50{background-color:rgba(248,250,252,.5)}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.bg-slate-600{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-teal-100{--tw-bg-opacity:1;background-color:rgb(204 251 241/var(--tw-bg-opacity,1))}.bg-teal-500{--tw-bg-opacity:1;background-color:rgb(20 184 166/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/15{background-color:hsla(0,0%,100%,.15)}.bg-white\/20{background-color:hsla(0,0%,100%,.2)}.bg-white\/40{background-color:hsla(0,0%,100%,.4)}.bg-white\/60{background-color:hsla(0,0%,100%,.6)}.bg-white\/80{background-color:hsla(0,0%,100%,.8)}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity,1))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.bg-yellow-500\/70{background-color:rgba(234,179,8,.7)}.bg-yellow-600{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.bg-opacity-50{--tw-bg-opacity:0.5}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-opacity-95{--tw-bg-opacity:0.95}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-amber-300{--tw-gradient-from:#fcd34d var(--tw-gradient-from-position);--tw-gradient-to:rgba(252,211,77,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-100{--tw-gradient-from:#dbeafe var(--tw-gradient-from-position);--tw-gradient-to:rgba(219,234,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-400{--tw-gradient-from:#60a5fa var(--tw-gradient-from-position);--tw-gradient-to:rgba(96,165,250,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-50{--tw-gradient-from:#eff6ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,246,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-500\/10{--tw-gradient-from:rgba(59,130,246,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(59,130,246,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-blue-600\/10{--tw-gradient-from:rgba(37,99,235,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-400{--tw-gradient-from:#34d399 var(--tw-gradient-from-position);--tw-gradient-to:rgba(52,211,153,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-emerald-50{--tw-gradient-from:#ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to:rgba(236,253,245,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-100{--tw-gradient-from:#dcfce7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(220,252,231,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-400{--tw-gradient-from:#4ade80 var(--tw-gradient-from-position);--tw-gradient-to:rgba(74,222,128,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-50{--tw-gradient-from:#f0fdf4 var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-50\/90{--tw-gradient-from:rgba(240,253,244,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500\/10{--tw-gradient-from:rgba(34,197,94,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-50{--tw-gradient-from:#fff7ed var(--tw-gradient-from-position);--tw-gradient-to:rgba(255,247,237,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from:#f97316 var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,115,22,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-orange-500\/10{--tw-gradient-from:rgba(249,115,22,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(249,115,22,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-100{--tw-gradient-from:#f3e8ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(243,232,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-50{--tw-gradient-from:#faf5ff var(--tw-gradient-from-position);--tw-gradient-to:rgba(250,245,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from:#a855f7 var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-purple-500\/10{--tw-gradient-from:rgba(168,85,247,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-400{--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-500{--tw-gradient-from:#ef4444 var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-red-500\/10{--tw-gradient-from:rgba(239,68,68,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(239,68,68,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from:#f8fafc var(--tw-gradient-from-position);--tw-gradient-to:rgba(248,250,252,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-500{--tw-gradient-from:#64748b var(--tw-gradient-from-position);--tw-gradient-to:rgba(100,116,139,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from:#0f172a var(--tw-gradient-from-position);--tw-gradient-to:rgba(15,23,42,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-transparent{--tw-gradient-from:transparent var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-white{--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-white\/90{--tw-gradient-from:hsla(0,0%,100%,.9) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-yellow-400{--tw-gradient-from:#facc15 var(--tw-gradient-from-position);--tw-gradient-to:rgba(250,204,21,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-yellow-50{--tw-gradient-from:#fefce8 var(--tw-gradient-from-position);--tw-gradient-to:hsla(55,92%,95%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-blue-100{--tw-gradient-to:rgba(219,234,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#dbeafe var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-200{--tw-gradient-to:rgba(191,219,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#bfdbfe var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-50{--tw-gradient-to:rgba(239,246,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#eff6ff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-blue-900{--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1e3a8a var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-green-50{--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#f0fdf4 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-green-500{--tw-gradient-to:rgba(34,197,94,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#22c55e var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-indigo-50{--tw-gradient-to:rgba(238,242,255,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#eef2ff var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-purple-500{--tw-gradient-to:rgba(168,85,247,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#a855f7 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-red-50{--tw-gradient-to:hsla(0,86%,97%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fef2f2 var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-white\/20{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,0%,100%,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-white\/5{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(0,0%,100%,.05) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-blue-200{--tw-gradient-to:#bfdbfe var(--tw-gradient-to-position)}.to-blue-50{--tw-gradient-to:#eff6ff var(--tw-gradient-to-position)}.to-blue-500{--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-cyan-50{--tw-gradient-to:#ecfeff var(--tw-gradient-to-position)}.to-emerald-50{--tw-gradient-to:#ecfdf5 var(--tw-gradient-to-position)}.to-emerald-50\/80{--tw-gradient-to:rgba(236,253,245,.8) var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to:#10b981 var(--tw-gradient-to-position)}.to-emerald-500\/10{--tw-gradient-to:rgba(16,185,129,.1) var(--tw-gradient-to-position)}.to-emerald-600{--tw-gradient-to:#059669 var(--tw-gradient-to-position)}.to-green-200{--tw-gradient-to:#bbf7d0 var(--tw-gradient-to-position)}.to-green-50{--tw-gradient-to:#f0fdf4 var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)}.to-indigo-50{--tw-gradient-to:#eef2ff var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to:#6366f1 var(--tw-gradient-to-position)}.to-indigo-500\/10{--tw-gradient-to:rgba(99,102,241,.1) var(--tw-gradient-to-position)}.to-indigo-900{--tw-gradient-to:#312e81 var(--tw-gradient-to-position)}.to-orange-400{--tw-gradient-to:#fb923c var(--tw-gradient-to-position)}.to-orange-50{--tw-gradient-to:#fff7ed var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to:#f97316 var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to:#ea580c var(--tw-gradient-to-position)}.to-pink-50{--tw-gradient-to:#fdf2f8 var(--tw-gradient-to-position)}.to-pink-500\/10{--tw-gradient-to:rgba(236,72,153,.1) var(--tw-gradient-to-position)}.to-purple-200{--tw-gradient-to:#e9d5ff var(--tw-gradient-to-position)}.to-purple-50{--tw-gradient-to:#faf5ff var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to:#a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to:#9333ea var(--tw-gradient-to-position)}.to-purple-600\/10{--tw-gradient-to:rgba(147,51,234,.1) var(--tw-gradient-to-position)}.to-red-50{--tw-gradient-to:#fef2f2 var(--tw-gradient-to-position)}.to-red-500\/10{--tw-gradient-to:rgba(239,68,68,.1) var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to:#dc2626 var(--tw-gradient-to-position)}.to-rose-500{--tw-gradient-to:#f43f5e var(--tw-gradient-to-position)}.to-slate-100{--tw-gradient-to:#f1f5f9 var(--tw-gradient-to-position)}.to-slate-600{--tw-gradient-to:#475569 var(--tw-gradient-to-position)}.to-teal-50{--tw-gradient-to:#f0fdfa var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.to-violet-500\/10{--tw-gradient-to:rgba(139,92,246,.1) var(--tw-gradient-to-position)}.to-white{--tw-gradient-to:#fff var(--tw-gradient-to-position)}.to-white\/70{--tw-gradient-to:hsla(0,0%,100%,.7) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-10{padding-right:2.5rem}.pr-20{padding-right:5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent-primary{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-100{--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-emerald-800{--tw-text-opacity:1;color:rgb(6 95 70/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-indigo-800{--tw-text-opacity:1;color:rgb(55 48 163/var(--tw-text-opacity,1))}.text-indigo-900{--tw-text-opacity:1;color:rgb(49 46 129/var(--tw-text-opacity,1))}.text-light-text{--tw-text-opacity:1;color:rgb(26 32 44/var(--tw-text-opacity,1))}.text-light-text-muted{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity,1))}.text-mercedes-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-mercedes-silver{--tw-text-opacity:1;color:rgb(192 192 192/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-orange-800{--tw-text-opacity:1;color:rgb(154 52 18/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-800{--tw-text-opacity:1;color:rgb(107 33 168/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-teal-600{--tw-text-opacity:1;color:rgb(13 148 136/var(--tw-text-opacity,1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity:1;color:rgb(107 114 128/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.placeholder-slate-500::placeholder{--tw-placeholder-opacity:1;color:rgb(100 116 139/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-15{opacity:.15}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.ring-opacity-5{--tw-ring-opacity:0.05}.blur{--tw-blur:blur(8px)}.blur,.blur-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-sm{--tw-blur:blur(4px)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgba(0,0,0,.1)) drop-shadow(0 1px 1px rgba(0,0,0,.06))}.drop-shadow,.drop-shadow-sm{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgba(0,0,0,.05))}.invert{--tw-invert:invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(40px)}.backdrop-blur-2xl,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-blur-xl{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.flash-message{position:fixed;top:1rem;right:1rem;z-index:50;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.75rem;border-width:1px;border-color:hsla(0,0%,100%,.2);padding:1rem 1.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;backdrop-filter:blur(20px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(120%);box-shadow:0 25px 50px rgba(0,0,0,.2),0 0 0 1px hsla(0,0%,100%,.1);animation:slide-down .3s ease-out}.flash-message.info{background-color:rgba(59,130,246,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.info:is(.dark *){background-color:rgba(37,99,235,.7)}.flash-message.success{background-color:rgba(34,197,94,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.success:is(.dark *){background-color:rgba(22,163,74,.7)}.flash-message.warning{background-color:rgba(234,179,8,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.warning:is(.dark *){background-color:rgba(202,138,4,.7)}.flash-message.error{background-color:rgba(239,68,68,.7);--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.flash-message.error:is(.dark *){background-color:rgba(220,38,38,.7)}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.mercedes-background:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' fill='currentColor' opacity='.03'%3E%3Cpath d='M58.6 4.5C53 1.6 46.7 0 40 0S27 1.6 21.4 4.5C8.7 11.2 0 24.6 0 40s8.7 28.8 21.5 35.5C27 78.3 33.3 80 40 80s12.9-1.7 18.5-4.6C71.3 68.8 80 55.4 80 40S71.3 11.2 58.6 4.5M4 40c0-13.1 7-24.5 17.5-30.9C26.6 6 32.5 4.2 39 4l-4.5 32.7-13 10.1L8.3 57.1C5.6 52 4 46.2 4 40m54.6 30.8C53.1 74.1 46.8 76 40 76s-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9L40 46.6l18.6 7.5 12 4.9c-3 4.9-7.2 8.9-12 11.8m0-24-12.9-10L41.1 4c6.3.2 12.3 2 17.4 5.1C69 15.4 76 26.9 76 40c0 6.2-1.5 12-4.3 17.1z'/%3E%3C/svg%3E");background-position:50%;background-repeat:repeat;background-size:120px 120px;pointer-events:none;opacity:.03;transition:opacity .3s ease}.dark .mercedes-background:before{opacity:.015;filter:invert(1) brightness(.3);background-size:150px 150px}.navbar{position:sticky!important;top:0!important;z-index:50!important;width:100%!important;left:0!important;right:0!important;--navbar-blur:40px;--navbar-opacity:0.15;background:rgba(255,255,255,var(--navbar-opacity,.15))!important;backdrop-filter:blur(var(--navbar-blur,40px)) saturate(200%) brightness(110%) contrast(105%)!important;-webkit-backdrop-filter:blur(var(--navbar-blur,40px)) saturate(200%) brightness(110%) contrast(105%)!important;box-shadow:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.08),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.15)!important;border-bottom:1px solid hsla(0,0%,100%,.2)!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.dark .navbar{--navbar-dark-opacity:0.25;background:rgba(0,0,0,var(--navbar-dark-opacity,.25))!important;backdrop-filter:blur(calc(var(--navbar-blur, 40px) + 5px)) saturate(180%) brightness(120%) contrast(115%)!important;-webkit-backdrop-filter:blur(calc(var(--navbar-blur, 40px) + 5px)) saturate(180%) brightness(120%) contrast(115%)!important;box-shadow:0 8px 32px rgba(0,0,0,.4),0 2px 8px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.08)!important;border-bottom:1px solid hsla(0,0%,100%,.1)!important}.navbar.scrolled{--navbar-blur:50px;--navbar-opacity:0.25;background:rgba(255,255,255,var(--navbar-opacity,.25))!important;backdrop-filter:blur(var(--navbar-blur,50px)) saturate(220%) brightness(115%) contrast(110%)!important;-webkit-backdrop-filter:blur(var(--navbar-blur,50px)) saturate(220%) brightness(115%) contrast(110%)!important;box-shadow:0 12px 40px rgba(0,0,0,.15),0 4px 12px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.4),0 0 0 1px hsla(0,0%,100%,.2)!important}.dark .navbar.scrolled{--navbar-dark-opacity:0.35;background:rgba(0,0,0,var(--navbar-dark-opacity,.35))!important;backdrop-filter:blur(calc(var(--navbar-blur, 50px) + 5px)) saturate(200%) brightness(125%) contrast(120%)!important;-webkit-backdrop-filter:blur(calc(var(--navbar-blur, 50px) + 5px)) saturate(200%) brightness(125%) contrast(120%)!important;box-shadow:0 12px 40px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.1)!important}.navbar-menu-new{display:flex;align-items:center;justify-content:center}.navbar-menu-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.125rem*var(--tw-space-x-reverse));margin-left:calc(.125rem*(1 - var(--tw-space-x-reverse)))}@media (min-width:768px){.navbar-menu-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}}.navbar-menu-new{max-width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;background:hsla(0,0%,100%,.1);backdrop-filter:blur(25px) saturate(170%) brightness(108%);-webkit-backdrop-filter:blur(25px) saturate(170%) brightness(108%);border-radius:16px;padding:8px;margin:0 16px;border:1px solid hsla(0,0%,100%,.15);box-shadow:0 6px 20px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05);transition:all .3s cubic-bezier(.4,0,.2,1)}.dark .navbar-menu-new{background:rgba(0,0,0,.2);backdrop-filter:blur(30px) saturate(150%) brightness(115%);-webkit-backdrop-filter:blur(30px) saturate(150%) brightness(115%);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 6px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.1),0 0 0 1px hsla(0,0%,100%,.03)}.navbar-menu-new::-webkit-scrollbar{display:none}.navbar-menu-new:hover{backdrop-filter:blur(35px) saturate(190%) brightness(112%);-webkit-backdrop-filter:blur(35px) saturate(190%) brightness(112%);box-shadow:0 8px 25px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.1);transform:translateY(-1px)}.dark .navbar-menu-new:hover{backdrop-filter:blur(40px) saturate(170%) brightness(120%);-webkit-backdrop-filter:blur(40px) saturate(170%) brightness(120%);box-shadow:0 8px 25px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.05)}.nav-item{display:flex;align-items:center}.nav-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.nav-item{border-radius:.75rem;padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;color:rgba(15,23,42,.85);background:hsla(0,0%,100%,.08);backdrop-filter:blur(15px) saturate(140%);-webkit-backdrop-filter:blur(15px) saturate(140%);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 4px 12px rgba(0,0,0,.05),inset 0 1px 0 hsla(0,0%,100%,.15);position:relative;overflow:hidden;animation:nav-item-entrance .6s ease-out}.nav-item:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);transition:left .5s}.nav-item:hover:before{left:100%}.nav-item:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,hsla(0,0%,100%,.1) 30deg,transparent 60deg);opacity:0;transition:opacity .3s ease;pointer-events:none;animation:rotate 3s linear infinite}.nav-item:hover:after{opacity:1}.dark .nav-item{color:hsla(0,0%,100%,.85);background:rgba(0,0,0,.15);backdrop-filter:blur(20px) saturate(130%);-webkit-backdrop-filter:blur(20px) saturate(130%);border:1px solid hsla(0,0%,100%,.08);box-shadow:0 4px 12px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.08)}.nav-item:hover{color:#0f172a;background:hsla(0,0%,100%,.2);backdrop-filter:blur(25px) saturate(160%) brightness(110%);-webkit-backdrop-filter:blur(25px) saturate(160%) brightness(110%);border:1px solid hsla(0,0%,100%,.25);box-shadow:0 8px 20px rgba(0,0,0,.12),inset 0 1px 0 hsla(0,0%,100%,.3),0 0 0 1px hsla(0,0%,100%,.1);transform:translateY(-2px) scale(1.02)}.dark .nav-item:hover{color:#fff;background:rgba(0,0,0,.25);backdrop-filter:blur(30px) saturate(150%) brightness(120%);-webkit-backdrop-filter:blur(30px) saturate(150%) brightness(120%);border:1px solid hsla(0,0%,100%,.15);box-shadow:0 8px 20px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15),0 0 0 1px hsla(0,0%,100%,.05)}.nav-item.active{color:#0f172a;background:hsla(0,0%,100%,.35);backdrop-filter:blur(35px) saturate(180%) brightness(115%);-webkit-backdrop-filter:blur(35px) saturate(180%) brightness(115%);border:1px solid hsla(0,0%,100%,.4);box-shadow:0 12px 24px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.5),0 0 0 1px rgba(59,130,246,.3);transform:translateY(-1px);animation:nav-item-active-glow 2s ease-in-out infinite alternate}.dark .nav-item.active{color:#fff;background:rgba(0,0,0,.4);backdrop-filter:blur(40px) saturate(160%) brightness(125%);-webkit-backdrop-filter:blur(40px) saturate(160%) brightness(125%);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 12px 24px rgba(0,0,0,.4),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px rgba(59,130,246,.2)}@keyframes nav-item-entrance{0%{opacity:0;transform:translateY(10px) scale(.95);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);-webkit-backdrop-filter:blur(15px) saturate(140%);backdrop-filter:blur(15px) saturate(140%)}}@keyframes nav-item-active-glow{0%{box-shadow:0 12px 24px rgba(0,0,0,.15),inset 0 1px 0 hsla(0,0%,100%,.5),0 0 0 1px rgba(59,130,246,.3)}to{box-shadow:0 16px 32px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.6),0 0 0 2px rgba(59,130,246,.5)}}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.navbar:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,hsla(0,0%,100%,.1) 1px,transparent 0),radial-gradient(circle at 80% 50%,hsla(0,0%,100%,.1) 1px,transparent 0),radial-gradient(circle at 40% 20%,hsla(0,0%,100%,.05) 1px,transparent 0),radial-gradient(circle at 60% 80%,hsla(0,0%,100%,.05) 1px,transparent 0);opacity:0;animation:glassmorphism-particles 8s ease-in-out infinite;pointer-events:none}.dark .navbar:before{background:radial-gradient(circle at 20% 50%,hsla(0,0%,100%,.05) 1px,transparent 0),radial-gradient(circle at 80% 50%,hsla(0,0%,100%,.05) 1px,transparent 0),radial-gradient(circle at 40% 20%,hsla(0,0%,100%,.03) 1px,transparent 0),radial-gradient(circle at 60% 80%,hsla(0,0%,100%,.03) 1px,transparent 0)}@keyframes glassmorphism-particles{0%,to{opacity:0;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.dark-mode-toggle-new{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:center;border-radius:9999px;padding:.5rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:rgba(241,245,249,.8);border:1px solid hsla(0,0%,100%,.7);box-shadow:0 2px 8px rgba(0,0,0,.05),0 1px 2px rgba(0,0,0,.04);color:#334155;z-index:100}.dark-mode-toggle-new:hover{--tw-translate-y:-0.125rem;background:rgba(241,245,249,.9);box-shadow:0 8px 16px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.06)}.dark-mode-toggle-new:active,.dark-mode-toggle-new:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark-mode-toggle-new:active{--tw-scale-x:.95;--tw-scale-y:.95;transition:transform .1s}.dark .dark-mode-toggle-new{background:rgba(30,41,59,.8);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 2px 8px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.1);color:#e2e8f0}.dark .dark-mode-toggle-new:hover{background:rgba(30,41,59,.9);box-shadow:0 8px 16px rgba(0,0,0,.2),0 2px 4px rgba(0,0,0,.15)}.dark-mode-toggle-new .moon-icon,.dark-mode-toggle-new .sun-icon{position:absolute;top:50%;left:50%;--tw-translate-x:-50%;--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.dark-mode-toggle-new .moon-icon:not(.hidden),.dark-mode-toggle-new .sun-icon:not(.hidden){animation:spin-in .5s cubic-bezier(.25,1,.5,1) forwards}@keyframes spin-in{0%{opacity:0;transform:translateY(10px) scale(.7) rotate(20deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}.dark .sun-icon{display:none}.dark .moon-icon,.sun-icon{display:block}.moon-icon{display:none}.user-menu-button-new{display:flex;align-items:center}.user-menu-button-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.375rem*var(--tw-space-x-reverse));margin-left:calc(.375rem*(1 - var(--tw-space-x-reverse)))}.user-menu-button-new{border-radius:.5rem;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:rgba(241,245,249,.6);border:1px solid hsla(0,0%,100%,.6);box-shadow:0 2px 8px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.02)}.user-menu-button-new:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background:rgba(241,245,249,.8);box-shadow:0 8px 16px rgba(0,0,0,.06),0 2px 4px rgba(0,0,0,.04)}.dark .user-menu-button-new{background:rgba(30,41,59,.6);border:1px solid hsla(0,0%,100%,.08);box-shadow:0 2px 8px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.1)}.dark .user-menu-button-new:hover{background:rgba(30,41,59,.8);box-shadow:0 8px 16px rgba(0,0,0,.15),0 2px 4px rgba(0,0,0,.1)}.user-avatar-new{display:flex;height:1.75rem;width:1.75rem;align-items:center;justify-content:center;border-radius:9999px;font-size:.75rem;line-height:1rem;font-weight:600;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:linear-gradient(135deg,#000,#333);box-shadow:0 2px 4px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.1)}.dark .user-avatar-new{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#0f172a;box-shadow:0 2px 4px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2)}.login-button-new{display:flex;align-items:center;border-radius:.5rem;padding:.375rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:#000;color:#fff;border:1px solid hsla(0,0%,100%,.1);box-shadow:0 2px 8px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.08)}.login-button-new:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));background:#333;box-shadow:0 8px 16px rgba(0,0,0,.15),0 3px 4px rgba(0,0,0,.1)}.dark .login-button-new{background:#fff;color:#000;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 8px rgba(0,0,0,.2),0 1px 2px rgba(0,0,0,.15)}.dark .login-button-new:hover{background:#f1f5f9;box-shadow:0 8px 16px rgba(0,0,0,.25),0 3px 4px rgba(0,0,0,.2)}.mobile-menu-new{z-index:40;width:100%;overflow:hidden;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:hsla(0,0%,100%,.8);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 4px 20px rgba(0,0,0,.06);max-height:0;opacity:0}.mobile-menu-new,.mobile-menu-new.open{border-bottom:1px solid rgba(241,245,249,.8)}.mobile-menu-new.open{max-height:400px;opacity:1}.dark .mobile-menu-new{background:rgba(15,23,42,.8);box-shadow:0 4px 20px rgba(0,0,0,.2);border-bottom:1px solid rgba(30,41,59,.8)}.mobile-nav-item{display:flex;align-items:center}.mobile-nav-item>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.625rem*var(--tw-space-x-reverse));margin-left:calc(.625rem*(1 - var(--tw-space-x-reverse)))}.mobile-nav-item{border-radius:.5rem;padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.mobile-nav-item:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.mobile-nav-item:hover{background:rgba(241,245,249,.8)}.dark .mobile-nav-item:hover{background:rgba(30,41,59,.6)}.mobile-nav-item.active{background:rgba(241,245,249,.9);color:#000;font-weight:500}.dark .mobile-nav-item.active{background:rgba(30,41,59,.8);color:#fff}.mb-stat-card{background:linear-gradient(135deg,rgba(240,249,255,.6),rgba(230,242,255,.6));color:#0f172a;position:relative;overflow:hidden;border:none;border-radius:var(--card-radius);backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);box-shadow:0 25px 50px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.1);padding:1.5rem;margin:1rem;transition:transform .3s ease,box-shadow .3s ease}.dark .mb-stat-card{background:linear-gradient(135deg,rgba(0,0,0,.7),hsla(0,0%,4%,.7));color:var(--text-primary,#f8fafc);box-shadow:0 25px 50px rgba(0,0,0,.3),0 0 0 1px hsla(0,0%,100%,.05)}.job-card,.stats-card{border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.7);background-color:hsla(0,0%,100%,.6);--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.job-card:is(.dark *),.stats-card:is(.dark *){border-color:rgba(51,65,85,.2);background-color:rgba(0,0,0,.8)}.job-card,.stats-card{backdrop-filter:blur(24px) saturate(200%) brightness(120%);-webkit-backdrop-filter:blur(24px) saturate(200%) brightness(120%);box-shadow:0 25px 50px rgba(0,0,0,.2),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius)}footer{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;background:hsla(0,0%,100%,.1);backdrop-filter:blur(30px) saturate(180%) brightness(120%);-webkit-backdrop-filter:blur(30px) saturate(180%) brightness(120%);border-top:1px solid hsla(0,0%,100%,.2);box-shadow:0 -8px 32px rgba(0,0,0,.1),0 -2px 8px rgba(0,0,0,.05),inset 0 1px 0 hsla(0,0%,100%,.2),0 0 0 1px hsla(0,0%,100%,.05)}.dark footer{background:rgba(0,0,0,.3);backdrop-filter:blur(30px) saturate(160%) brightness(110%);-webkit-backdrop-filter:blur(30px) saturate(160%) brightness(110%);border-top:1px solid hsla(0,0%,100%,.1);box-shadow:0 -8px 32px rgba(0,0,0,.3),0 -2px 8px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.1),0 0 0 1px hsla(0,0%,100%,.03)}.dropdown-arrow{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.mercedes-star-bg{position:relative}.mercedes-star-bg:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' fill='currentColor' opacity='.05'%3E%3Cpath d='M58.6 4.5C53 1.6 46.7 0 40 0S27 1.6 21.4 4.5C8.7 11.2 0 24.6 0 40s8.7 28.8 21.5 35.5C27 78.3 33.3 80 40 80s12.9-1.7 18.5-4.6C71.3 68.8 80 55.4 80 40S71.3 11.2 58.6 4.5M4 40c0-13.1 7-24.5 17.5-30.9C26.6 6 32.5 4.2 39 4l-4.5 32.7-13 10.1L8.3 57.1C5.6 52 4 46.2 4 40m54.6 30.8C53.1 74.1 46.8 76 40 76s-13.2-1.9-18.6-5.2c-4.9-2.9-8.9-6.9-11.9-11.7l11.9-4.9L40 46.6l18.6 7.5 12 4.9c-3 4.9-7.2 8.9-12 11.8m0-24-12.9-10L41.1 4c6.3.2 12.3 2 17.4 5.1C69 15.4 76 26.9 76 40c0 6.2-1.5 12-4.3 17.1z'/%3E%3C/svg%3E");background-position:50%;background-repeat:repeat;background-size:40px 40px;z-index:-1;opacity:.05}.dark .mercedes-star-bg:after{opacity:.02;filter:invert(1) brightness(.4)}.glass-effect{backdrop-filter:blur(20px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(110%);background:hsla(0,0%,100%,.1);border:1px solid hsla(0,0%,100%,.2);box-shadow:0 8px 32px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.3)}.dark .glass-effect{background:rgba(0,0,0,.3);border:1px solid hsla(0,0%,100%,.1);box-shadow:0 8px 32px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.15)}.glass-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-hover:hover{transform:translateY(-2px);backdrop-filter:blur(25px) saturate(200%) brightness(120%);-webkit-backdrop-filter:blur(25px) saturate(200%) brightness(120%);box-shadow:0 20px 40px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.1),inset 0 1px 0 hsla(0,0%,100%,.4)}.dark .glass-hover:hover{box-shadow:0 20px 40px rgba(0,0,0,.4),0 8px 16px rgba(0,0,0,.3),inset 0 1px 0 hsla(0,0%,100%,.2)}.printer-card-new{position:relative;overflow:hidden;border-radius:.75rem;border-width:1px;border-color:rgba(229,231,235,.7);background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from:hsla(0,0%,100%,.9) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:hsla(0,0%,100%,.7) var(--tw-gradient-to-position);padding:1.25rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.printer-card-new:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.printer-card-new:is(.dark *){border-color:rgba(51,65,85,.3);--tw-gradient-from:rgba(30,41,59,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,41,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:rgba(15,23,42,.7) var(--tw-gradient-to-position)}.printer-card-new{box-shadow:0 20px 40px rgba(0,0,0,.08),0 10px 20px rgba(0,0,0,.06),0 0 0 1px hsla(0,0%,100%,.1);border-radius:var(--card-radius,1rem)}.dark .printer-card-new{box-shadow:0 20px 40px rgba(0,0,0,.4),0 10px 20px rgba(0,0,0,.3),0 0 0 1px hsla(0,0%,100%,.05)}.printer-card-new.online{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1));background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from:rgba(240,253,244,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(240,253,244,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:rgba(236,253,245,.8) var(--tw-gradient-to-position)}.printer-card-new.online:is(.dark *){border-color:rgba(21,128,61,.5);--tw-gradient-from:rgba(20,83,45,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to);--tw-gradient-to:rgba(6,78,59,.2) var(--tw-gradient-to-position)}.printer-card-new.online{box-shadow:0 20px 40px rgba(0,122,85,.08),0 10px 20px rgba(0,122,85,.06),0 0 0 1px rgba(209,250,229,.4)}.dark .printer-card-new.online{box-shadow:0 20px 40px rgba(0,0,0,.3),0 10px 20px rgba(0,0,0,.2),0 0 0 1px rgba(16,185,129,.2)}.status-badge-new{display:inline-flex;align-items:center}.status-badge-new>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.status-badge-new{border-radius:9999px;padding:.25rem .625rem;font-size:.75rem;line-height:1rem;font-weight:500;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);background:hsla(0,0%,100%,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 5px rgba(0,0,0,.05)}.dark .status-badge-new{background:rgba(30,41,59,.7);box-shadow:0 2px 5px rgba(0,0,0,.2)}.status-badge-new.online{background-color:rgba(220,252,231,.9);--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.status-badge-new.online:is(.dark *){background-color:rgba(20,83,45,.6);--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.status-badge-new.offline{background-color:hsla(0,93%,94%,.9);--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.status-badge-new.offline:is(.dark *){background-color:rgba(127,29,29,.6);--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.filter-bar-new{border-radius:.5rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.8);padding:.375rem;--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.filter-bar-new:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(30,41,59,.8)}.filter-bar-new{box-shadow:0 10px 25px rgba(0,0,0,.05),0 5px 10px rgba(0,0,0,.03),0 0 0 1px hsla(0,0%,100%,.2)}.dark .filter-bar-new{box-shadow:0 10px 25px rgba(0,0,0,.2),0 5px 10px rgba(0,0,0,.15),0 0 0 1px hsla(0,0%,100%,.05)}.filter-btn-new{border-radius:.375rem;padding:.5rem .875rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.filter-btn-new.active{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter-btn-new.active:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.filter-btn-new.active{box-shadow:0 4px 10px rgba(0,0,0,.1)}.dark .filter-btn-new.active{box-shadow:0 4px 10px rgba(0,0,0,.3)}.action-btn-new{display:flex;align-items:center;justify-content:center;gap:.5rem;border-radius:.5rem;padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.action-btn-new:hover{--tw-translate-y:-0.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.action-btn-new{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.action-btn-new.primary{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.action-btn-new.primary:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.action-btn-new.primary:is(.dark *){--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.action-btn-new.primary:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.action-btn-new.primary{box-shadow:0 5px 15px rgba(79,70,229,.2)}.dark .action-btn-new.primary{box-shadow:0 5px 15px rgba(79,70,229,.3)}.action-btn-new.success{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.action-btn-new.success:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.action-btn-new.success:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.action-btn-new.success:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.action-btn-new.success{box-shadow:0 5px 15px rgba(16,185,129,.2)}.dark .action-btn-new.success{box-shadow:0 5px 15px rgba(16,185,129,.3)}.action-btn-new.danger{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.action-btn-new.danger:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.action-btn-new.danger:is(.dark *){--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.action-btn-new.danger:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.action-btn-new.danger{box-shadow:0 5px 15px rgba(239,68,68,.2)}.dark .action-btn-new.danger{box-shadow:0 5px 15px rgba(239,68,68,.3)}.printer-info-row{margin-bottom:.375rem;display:flex;align-items:center;gap:.5rem;font-size:.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.printer-info-row:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}@media (min-width:640px){.printer-info-row{font-size:.875rem;line-height:1.25rem}}.printer-info-icon{height:.875rem;width:.875rem;flex-shrink:0;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.printer-info-icon:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}@media (min-width:640px){.printer-info-icon{height:1rem;width:1rem}}.online-indicator{position:absolute;top:.625rem;right:.625rem;height:.75rem;width:.75rem;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:0 0 0 rgba(16,185,129,.6);animation:pulse-ring 2s cubic-bezier(.455,.03,.515,.955) infinite}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 rgba(16,185,129,.6)}70%{box-shadow:0 0 0 6px rgba(16,185,129,0)}to{box-shadow:0 0 0 0 rgba(16,185,129,0)}}.status-overview-new{display:flex;flex-wrap:wrap;gap:.75rem;border-radius:.5rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.6);padding:.75rem;font-size:.75rem;line-height:1rem;--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.status-overview-new:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(30,41,59,.6)}@media (min-width:640px){.status-overview-new{font-size:.875rem;line-height:1.25rem}}.status-overview-new{box-shadow:0 10px 25px rgba(0,0,0,.04),0 5px 10px rgba(0,0,0,.02),0 0 0 1px hsla(0,0%,100%,.1)}.dark .status-overview-new{box-shadow:0 10px 25px rgba(0,0,0,.15),0 5px 10px rgba(0,0,0,.1),0 0 0 1px hsla(0,0%,100%,.03)}.status-dot{height:.625rem;width:.625rem;border-radius:9999px}.status-dot.online{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1));animation:pulse-dot 2s cubic-bezier(.455,.03,.515,.955) infinite}.status-dot.offline{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}@keyframes pulse-dot{0%{transform:scale(.95);opacity:1}50%{transform:scale(1.1);opacity:.8}to{transform:scale(.95);opacity:1}}.modal-new{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.4);padding:1rem;--tw-backdrop-blur:blur(4px)}.modal-content-new,.modal-new{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.modal-content-new{width:100%;max-width:28rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:1rem;border-width:1px;border-color:rgba(229,231,235,.6);background-color:hsla(0,0%,100%,.9);padding:1.5rem;--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-backdrop-blur:blur(40px);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.modal-content-new:is(.dark *){border-color:rgba(51,65,85,.3);background-color:rgba(30,41,59,.9)}.modal-content-new{box-shadow:0 25px 50px rgba(0,0,0,.15),0 15px 30px rgba(0,0,0,.1),0 20px 25px -5px rgba(0,0,0,.5),0 10px 10px -5px rgba(0,0,0,.3)}.user-dropdown-item{display:flex;cursor:pointer;align-items:center;padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.user-dropdown-item:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.user-dropdown-item:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.user-dropdown-item:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.user-dropdown-item:first-child{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.user-dropdown-item:last-child{border-bottom-right-radius:.75rem;border-bottom-left-radius:.75rem}.user-dropdown-item:hover{background:rgba(248,250,252,.8);transform:translateX(2px)}.dark .user-dropdown-item:hover{background:rgba(30,41,59,.8)}.user-dropdown-icon{margin-right:.75rem;height:1rem;width:1rem;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.user-dropdown-icon:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.user-dropdown-item:hover .user-dropdown-icon{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.user-dropdown-item:hover .user-dropdown-icon:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.user-dropdown-divider{margin-top:.25rem;margin-bottom:.25rem;border-top-width:1px;--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.user-dropdown-divider:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.user-info-section{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1));padding:.75rem 1rem}.user-info-section:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.user-info-section{background:rgba(248,250,252,.5)}.dark .user-info-section{background:rgba(30,41,59,.5)}.user-info-name{font-size:.875rem;line-height:1.25rem;font-weight:600;--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.user-info-name:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.user-info-role{margin-top:.25rem;font-size:.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.user-info-role:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:bg-dark-surface:is(.dark *){background-color:#1e293b}.hover\:-translate-y-0:hover{--tw-translate-y:-0px}.hover\:-translate-y-0:hover,.hover\:-translate-y-0\.5:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1:hover,.hover\:-translate-y-2:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-2:hover{--tw-translate-y:-0.5rem}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:scale-105:hover,.hover\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.hover\:border-emerald-600:hover{--tw-border-opacity:1;border-color:rgb(5 150 105/var(--tw-border-opacity,1))}.hover\:bg-black\/70:hover{background-color:rgba(0,0,0,.7)}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-100\/80:hover{background-color:rgba(243,244,246,.8)}.hover\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:bg-gray-600:hover{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\:bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\:bg-green-100:hover{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.hover\:bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:bg-indigo-600:hover{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.hover\:bg-mercedes-silver:hover{--tw-bg-opacity:1;background-color:rgb(192 192 192/var(--tw-bg-opacity,1))}.hover\:bg-orange-600:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-orange-700:hover{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.hover\:bg-purple-600:hover{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.hover\:bg-slate-100\/50:hover{background-color:rgba(241,245,249,.5)}.hover\:bg-slate-100\/80:hover{background-color:rgba(241,245,249,.8)}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.hover\:bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.hover\:bg-slate-600:hover{--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.hover\:bg-slate-700:hover{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.hover\:bg-teal-600:hover{--tw-bg-opacity:1;background-color:rgb(13 148 136/var(--tw-bg-opacity,1))}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:bg-white\/25:hover{background-color:hsla(0,0%,100%,.25)}.hover\:bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.hover\:bg-yellow-700:hover{--tw-bg-opacity:1;background-color:rgb(161 98 7/var(--tw-bg-opacity,1))}.hover\:from-blue-600:hover{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:rgba(37,99,235,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-green-600:hover{--tw-gradient-from:#16a34a var(--tw-gradient-from-position);--tw-gradient-to:rgba(22,163,74,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-slate-600:hover{--tw-gradient-from:#475569 var(--tw-gradient-from-position);--tw-gradient-to:rgba(71,85,105,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:to-blue-700:hover{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.hover\:to-green-700:hover{--tw-gradient-to:#15803d var(--tw-gradient-to-position)}.hover\:to-slate-700:hover{--tw-gradient-to:#334155 var(--tw-gradient-to-position)}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:text-blue-900:hover{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.hover\:text-emerald-600:hover{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.hover\:text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.hover\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.hover\:text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:text-green-900:hover{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.hover\:text-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-red-700:hover{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.hover\:text-red-900:hover{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.hover\:text-slate-800:hover{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity,1))}.hover\:text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.hover\:shadow-2xl:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:z-10:focus{z-index:10}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:border-blue-600:focus{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.focus\:border-red-500:focus{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:bg-gray-100\/80:focus{background-color:rgba(243,244,246,.8)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:ring-blue-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 99 235/var(--tw-ring-opacity,1))}.focus\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.focus\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\:ring-green-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.focus\:ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(99 102 241/var(--tw-ring-opacity,1))}.focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:ring-slate-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(100 116 139/var(--tw-ring-opacity,1))}.focus\:ring-yellow-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(234 179 8/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-100:disabled{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:translate-x-full{--tw-translate-x:100%}.group:hover .group-hover\:rotate-180,.group:hover .group-hover\:translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rotate-180{--tw-rotate:180deg}.group:hover .group-hover\:scale-105{--tw-scale-x:1.05;--tw-scale-y:1.05}.group:hover .group-hover\:scale-105,.group:hover .group-hover\:scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.group:hover .group-hover\:text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.group:hover .group-hover\:opacity-100{opacity:1}.group:active .group-active\:scale-95{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:inline:is(.dark *){display:inline}.dark\:hidden:is(.dark *){display:none}.dark\:rotate-0:is(.dark *){--tw-rotate:0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:rotate-90:is(.dark *){--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-100:is(.dark *){--tw-scale-x:1;--tw-scale-y:1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:scale-75:is(.dark *){--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:divide-gray-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(55 65 81/var(--tw-divide-opacity,1))}.dark\:divide-slate-700:is(.dark *)>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(51 65 85/var(--tw-divide-opacity,1))}.dark\:border-blue-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-blue-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(29 78 216/var(--tw-border-opacity,1))}.dark\:border-blue-700\/30:is(.dark *){border-color:rgba(29,78,216,.3)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-blue-800\/50:is(.dark *){border-color:rgba(30,64,175,.5)}.dark\:border-dark-border:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:border-emerald-700\/30:is(.dark *){border-color:rgba(4,120,87,.3)}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.dark\:border-green-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.dark\:border-green-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(21 128 61/var(--tw-border-opacity,1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-green-800\/50:is(.dark *){border-color:rgba(22,101,52,.5)}.dark\:border-indigo-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(129 140 248/var(--tw-border-opacity,1))}.dark\:border-indigo-800\/50:is(.dark *){border-color:rgba(55,48,163,.5)}.dark\:border-orange-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(154 52 18/var(--tw-border-opacity,1))}.dark\:border-orange-800\/50:is(.dark *){border-color:rgba(154,52,18,.5)}.dark\:border-purple-800\/50:is(.dark *){border-color:rgba(107,33,168,.5)}.dark\:border-red-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(185 28 28/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-red-800\/50:is(.dark *){border-color:rgba(153,27,27,.5)}.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.dark\:border-slate-600\/50:is(.dark *){border-color:rgba(71,85,105,.5)}.dark\:border-slate-600\/60:is(.dark *){border-color:rgba(71,85,105,.6)}.dark\:border-slate-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:border-slate-700\/20:is(.dark *){border-color:rgba(51,65,85,.2)}.dark\:border-slate-700\/30:is(.dark *){border-color:rgba(51,65,85,.3)}.dark\:border-slate-700\/50:is(.dark *){border-color:rgba(51,65,85,.5)}.dark\:border-white:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:border-white\/20:is(.dark *){border-color:hsla(0,0%,100%,.2)}.dark\:border-white\/70:is(.dark *){border-color:hsla(0,0%,100%,.7)}.dark\:border-yellow-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(161 98 7/var(--tw-border-opacity,1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(133 77 14/var(--tw-border-opacity,1))}.dark\:border-t-slate-700:is(.dark *){--tw-border-opacity:1;border-top-color:rgb(51 65 85/var(--tw-border-opacity,1))}.dark\:bg-amber-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.dark\:bg-black:is(.dark *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.dark\:bg-black\/50:is(.dark *){background-color:rgba(0,0,0,.5)}.dark\:bg-black\/60:is(.dark *){background-color:rgba(0,0,0,.6)}.dark\:bg-black\/70:is(.dark *){background-color:rgba(0,0,0,.7)}.dark\:bg-black\/80:is(.dark *){background-color:rgba(0,0,0,.8)}.dark\:bg-blue-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(147 197 253/var(--tw-bg-opacity,1))}.dark\:bg-blue-400:is(.dark *){--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.dark\:bg-blue-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:bg-blue-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.dark\:bg-blue-600\/70:is(.dark *){background-color:rgba(37,99,235,.7)}.dark\:bg-blue-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:bg-blue-900\/10:is(.dark *){background-color:rgba(30,58,138,.1)}.dark\:bg-blue-900\/20:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\:bg-blue-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:bg-blue-900\/50:is(.dark *){background-color:rgba(30,58,138,.5)}.dark\:bg-cyan-900\/50:is(.dark *){background-color:rgba(22,78,99,.5)}.dark\:bg-dark-surface:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-emerald-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(6 78 59/var(--tw-bg-opacity,1))}.dark\:bg-emerald-900\/50:is(.dark *){background-color:rgba(6,78,59,.5)}.dark\:bg-gray-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:bg-gray-900\/30:is(.dark *){background-color:rgba(17,24,39,.3)}.dark\:bg-green-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(134 239 172/var(--tw-bg-opacity,1))}.dark\:bg-green-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.dark\:bg-green-600\/70:is(.dark *){background-color:rgba(22,163,74,.7)}.dark\:bg-green-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.dark\:bg-green-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(22 101 52/var(--tw-bg-opacity,1))}.dark\:bg-green-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(20 83 45/var(--tw-bg-opacity,1))}.dark\:bg-green-900\/10:is(.dark *){background-color:rgba(20,83,45,.1)}.dark\:bg-green-900\/20:is(.dark *){background-color:rgba(20,83,45,.2)}.dark\:bg-green-900\/30:is(.dark *){background-color:rgba(20,83,45,.3)}.dark\:bg-green-900\/50:is(.dark *){background-color:rgba(20,83,45,.5)}.dark\:bg-green-900\/60:is(.dark *){background-color:rgba(20,83,45,.6)}.dark\:bg-indigo-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.dark\:bg-indigo-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(67 56 202/var(--tw-bg-opacity,1))}.dark\:bg-indigo-900\/10:is(.dark *){background-color:rgba(49,46,129,.1)}.dark\:bg-indigo-900\/30:is(.dark *){background-color:rgba(49,46,129,.3)}.dark\:bg-indigo-900\/50:is(.dark *){background-color:rgba(49,46,129,.5)}.dark\:bg-orange-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(253 186 116/var(--tw-bg-opacity,1))}.dark\:bg-orange-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(154 52 18/var(--tw-bg-opacity,1))}.dark\:bg-orange-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(124 45 18/var(--tw-bg-opacity,1))}.dark\:bg-orange-900\/10:is(.dark *){background-color:rgba(124,45,18,.1)}.dark\:bg-orange-900\/30:is(.dark *){background-color:rgba(124,45,18,.3)}.dark\:bg-orange-900\/50:is(.dark *){background-color:rgba(124,45,18,.5)}.dark\:bg-purple-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.dark\:bg-purple-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(88 28 135/var(--tw-bg-opacity,1))}.dark\:bg-purple-900\/10:is(.dark *){background-color:rgba(88,28,135,.1)}.dark\:bg-purple-900\/30:is(.dark *){background-color:rgba(88,28,135,.3)}.dark\:bg-purple-900\/50:is(.dark *){background-color:rgba(88,28,135,.5)}.dark\:bg-red-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(252 165 165/var(--tw-bg-opacity,1))}.dark\:bg-red-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.dark\:bg-red-600\/70:is(.dark *){background-color:rgba(220,38,38,.7)}.dark\:bg-red-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity,1))}.dark\:bg-red-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(127 29 29/var(--tw-bg-opacity,1))}.dark\:bg-red-900\/10:is(.dark *){background-color:rgba(127,29,29,.1)}.dark\:bg-red-900\/20:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:bg-red-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-red-900\/50:is(.dark *){background-color:rgba(127,29,29,.5)}.dark\:bg-red-900\/60:is(.dark *){background-color:rgba(127,29,29,.6)}.dark\:bg-slate-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:bg-slate-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.dark\:bg-slate-700\/30:is(.dark *){background-color:rgba(51,65,85,.3)}.dark\:bg-slate-700\/40:is(.dark *){background-color:rgba(51,65,85,.4)}.dark\:bg-slate-700\/60:is(.dark *){background-color:rgba(51,65,85,.6)}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-slate-800\/50:is(.dark *){background-color:rgba(30,41,59,.5)}.dark\:bg-slate-800\/60:is(.dark *){background-color:rgba(30,41,59,.6)}.dark\:bg-slate-800\/80:is(.dark *){background-color:rgba(30,41,59,.8)}.dark\:bg-slate-800\/90:is(.dark *){background-color:rgba(30,41,59,.9)}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.dark\:bg-slate-900\/50:is(.dark *){background-color:rgba(15,23,42,.5)}.dark\:bg-slate-900\/60:is(.dark *){background-color:rgba(15,23,42,.6)}.dark\:bg-slate-900\/80:is(.dark *){background-color:rgba(15,23,42,.8)}.dark\:bg-slate-900\/90:is(.dark *){background-color:rgba(15,23,42,.9)}.dark\:bg-teal-900\/50:is(.dark *){background-color:rgba(19,78,74,.5)}.dark\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\:bg-white\/10:is(.dark *){background-color:hsla(0,0%,100%,.1)}.dark\:bg-yellow-300:is(.dark *){--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.dark\:bg-yellow-600\/70:is(.dark *){background-color:rgba(202,138,4,.7)}.dark\:bg-yellow-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(133 77 14/var(--tw-bg-opacity,1))}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(113 63 18/var(--tw-bg-opacity,1))}.dark\:bg-yellow-900\/20:is(.dark *){background-color:rgba(113,63,18,.2)}.dark\:bg-yellow-900\/30:is(.dark *){background-color:rgba(113,63,18,.3)}.dark\:bg-yellow-900\/50:is(.dark *){background-color:rgba(113,63,18,.5)}.dark\:bg-opacity-95:is(.dark *){--tw-bg-opacity:0.95}.dark\:from-blue-400:is(.dark *){--tw-gradient-from:#60a5fa var(--tw-gradient-from-position);--tw-gradient-to:rgba(96,165,250,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-400\/20:is(.dark *){--tw-gradient-from:rgba(96,165,250,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(96,165,250,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-900\/10:is(.dark *){--tw-gradient-from:rgba(30,58,138,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-900\/20:is(.dark *){--tw-gradient-from:rgba(30,58,138,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-blue-900\/30:is(.dark *){--tw-gradient-from:rgba(30,58,138,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-emerald-900\/20:is(.dark *){--tw-gradient-from:rgba(6,78,59,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(6,78,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-400:is(.dark *){--tw-gradient-from:#4ade80 var(--tw-gradient-from-position);--tw-gradient-to:rgba(74,222,128,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-400\/20:is(.dark *){--tw-gradient-from:rgba(74,222,128,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(74,222,128,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-900\/10:is(.dark *){--tw-gradient-from:rgba(20,83,45,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-900\/20:is(.dark *){--tw-gradient-from:rgba(20,83,45,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-green-900\/30:is(.dark *){--tw-gradient-from:rgba(20,83,45,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(20,83,45,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-400:is(.dark *){--tw-gradient-from:#fb923c var(--tw-gradient-from-position);--tw-gradient-to:rgba(251,146,60,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-400\/20:is(.dark *){--tw-gradient-from:rgba(251,146,60,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(251,146,60,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-900\/10:is(.dark *){--tw-gradient-from:rgba(124,45,18,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(124,45,18,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-orange-900\/20:is(.dark *){--tw-gradient-from:rgba(124,45,18,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(124,45,18,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-purple-900\/20:is(.dark *){--tw-gradient-from:rgba(88,28,135,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(88,28,135,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-purple-900\/30:is(.dark *){--tw-gradient-from:rgba(88,28,135,.3) var(--tw-gradient-from-position);--tw-gradient-to:rgba(88,28,135,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-red-400:is(.dark *){--tw-gradient-from:#f87171 var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-red-400\/20:is(.dark *){--tw-gradient-from:hsla(0,91%,71%,.2) var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,91%,71%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-800\/90:is(.dark *){--tw-gradient-from:rgba(30,41,59,.9) var(--tw-gradient-from-position);--tw-gradient-to:rgba(30,41,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-900:is(.dark *){--tw-gradient-from:#0f172a var(--tw-gradient-from-position);--tw-gradient-to:rgba(15,23,42,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-slate-950:is(.dark *){--tw-gradient-from:#020617 var(--tw-gradient-from-position);--tw-gradient-to:rgba(2,6,23,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-white:is(.dark *){--tw-gradient-from:#fff var(--tw-gradient-from-position);--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:from-yellow-900\/20:is(.dark *){--tw-gradient-from:rgba(113,63,18,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(113,63,18,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.dark\:via-blue-200:is(.dark *){--tw-gradient-to:rgba(191,219,254,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#bfdbfe var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-blue-900\/20:is(.dark *){--tw-gradient-to:rgba(30,58,138,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(30,58,138,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-blue-950:is(.dark *){--tw-gradient-to:rgba(23,37,84,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#172554 var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-emerald-900\/20:is(.dark *){--tw-gradient-to:rgba(6,78,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(6,78,59,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-red-900\/20:is(.dark *){--tw-gradient-to:rgba(127,29,29,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(127,29,29,.2) var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:via-slate-800:is(.dark *){--tw-gradient-to:rgba(30,41,59,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#1e293b var(--tw-gradient-via-position),var(--tw-gradient-to)}.dark\:to-blue-500:is(.dark *){--tw-gradient-to:#3b82f6 var(--tw-gradient-to-position)}.dark\:to-blue-800\/30:is(.dark *){--tw-gradient-to:rgba(30,64,175,.3) var(--tw-gradient-to-position)}.dark\:to-blue-900\/20:is(.dark *){--tw-gradient-to:rgba(30,58,138,.2) var(--tw-gradient-to-position)}.dark\:to-cyan-900\/20:is(.dark *){--tw-gradient-to:rgba(22,78,99,.2) var(--tw-gradient-to-position)}.dark\:to-emerald-400\/20:is(.dark *){--tw-gradient-to:rgba(52,211,153,.2) var(--tw-gradient-to-position)}.dark\:to-emerald-900\/10:is(.dark *){--tw-gradient-to:rgba(6,78,59,.1) var(--tw-gradient-to-position)}.dark\:to-emerald-900\/20:is(.dark *){--tw-gradient-to:rgba(6,78,59,.2) var(--tw-gradient-to-position)}.dark\:to-green-500:is(.dark *){--tw-gradient-to:#22c55e var(--tw-gradient-to-position)}.dark\:to-green-800\/30:is(.dark *){--tw-gradient-to:rgba(22,101,52,.3) var(--tw-gradient-to-position)}.dark\:to-green-900\/20:is(.dark *){--tw-gradient-to:rgba(20,83,45,.2) var(--tw-gradient-to-position)}.dark\:to-indigo-400\/20:is(.dark *){--tw-gradient-to:rgba(129,140,248,.2) var(--tw-gradient-to-position)}.dark\:to-indigo-900\/10:is(.dark *){--tw-gradient-to:rgba(49,46,129,.1) var(--tw-gradient-to-position)}.dark\:to-indigo-900\/20:is(.dark *){--tw-gradient-to:rgba(49,46,129,.2) var(--tw-gradient-to-position)}.dark\:to-indigo-950:is(.dark *){--tw-gradient-to:#1e1b4b var(--tw-gradient-to-position)}.dark\:to-orange-500:is(.dark *){--tw-gradient-to:#f97316 var(--tw-gradient-to-position)}.dark\:to-orange-900\/20:is(.dark *){--tw-gradient-to:rgba(124,45,18,.2) var(--tw-gradient-to-position)}.dark\:to-pink-400\/20:is(.dark *){--tw-gradient-to:rgba(244,114,182,.2) var(--tw-gradient-to-position)}.dark\:to-pink-900\/20:is(.dark *){--tw-gradient-to:rgba(131,24,67,.2) var(--tw-gradient-to-position)}.dark\:to-purple-500:is(.dark *){--tw-gradient-to:#a855f7 var(--tw-gradient-to-position)}.dark\:to-purple-800\/30:is(.dark *){--tw-gradient-to:rgba(107,33,168,.3) var(--tw-gradient-to-position)}.dark\:to-red-400\/20:is(.dark *){--tw-gradient-to:hsla(0,91%,71%,.2) var(--tw-gradient-to-position)}.dark\:to-red-500:is(.dark *){--tw-gradient-to:#ef4444 var(--tw-gradient-to-position)}.dark\:to-red-900\/10:is(.dark *){--tw-gradient-to:rgba(127,29,29,.1) var(--tw-gradient-to-position)}.dark\:to-red-900\/20:is(.dark *){--tw-gradient-to:rgba(127,29,29,.2) var(--tw-gradient-to-position)}.dark\:to-slate-200:is(.dark *){--tw-gradient-to:#e2e8f0 var(--tw-gradient-to-position)}.dark\:to-slate-900:is(.dark *){--tw-gradient-to:#0f172a var(--tw-gradient-to-position)}.dark\:to-slate-900\/70:is(.dark *){--tw-gradient-to:rgba(15,23,42,.7) var(--tw-gradient-to-position)}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-blue-100:is(.dark *){--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-blue-500:is(.dark *){--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.dark\:text-dark-text:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:text-dark-text-muted:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-emerald-300:is(.dark *){--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.dark\:text-green-100:is(.dark *){--tw-text-opacity:1;color:rgb(220 252 231/var(--tw-text-opacity,1))}.dark\:text-green-200:is(.dark *){--tw-text-opacity:1;color:rgb(187 247 208/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-green-500:is(.dark *){--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity:1;color:rgb(255 237 213/var(--tw-text-opacity,1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 215 170/var(--tw-text-opacity,1))}.dark\:text-orange-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-purple-200:is(.dark *){--tw-text-opacity:1;color:rgb(233 213 255/var(--tw-text-opacity,1))}.dark\:text-purple-300:is(.dark *){--tw-text-opacity:1;color:rgb(216 180 254/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-red-100:is(.dark *){--tw-text-opacity:1;color:rgb(254 226 226/var(--tw-text-opacity,1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-slate-500:is(.dark *){--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.dark\:text-slate-600:is(.dark *){--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.dark\:text-slate-900:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dark\:text-teal-400:is(.dark *){--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-yellow-100:is(.dark *){--tw-text-opacity:1;color:rgb(254 249 195/var(--tw-text-opacity,1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity,1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity,1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:placeholder-slate-400:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.dark\:placeholder-slate-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(148 163 184/var(--tw-placeholder-opacity,1))}.dark\:opacity-0:is(.dark *){opacity:0}.dark\:opacity-100:is(.dark *){opacity:1}.dark\:opacity-5:is(.dark *){opacity:.05}.dark\:shadow-2xl:is(.dark *){--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:shadow-slate-900\/20:is(.dark *){--tw-shadow-color:rgba(15,23,42,.2);--tw-shadow:var(--tw-shadow-colored)}.dark\:hover\:border-blue-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:hover\:border-emerald-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.dark\:hover\:bg-blue-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.dark\:hover\:bg-blue-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.dark\:hover\:bg-gray-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:hover\:bg-green-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.dark\:hover\:bg-green-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.dark\:hover\:bg-purple-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(126 34 206/var(--tw-bg-opacity,1))}.dark\:hover\:bg-red-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.dark\:hover\:bg-red-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity,1))}.dark\:hover\:bg-red-900\/10:hover:is(.dark *){background-color:rgba(127,29,29,.1)}.dark\:hover\:bg-red-900\/20:hover:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:hover\:bg-slate-500:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-700\/50:hover:is(.dark *){background-color:rgba(51,65,85,.5)}.dark\:hover\:bg-slate-700\/60:hover:is(.dark *){background-color:rgba(51,65,85,.6)}.dark\:hover\:bg-slate-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-800\/50:hover:is(.dark *){background-color:rgba(30,41,59,.5)}.dark\:hover\:bg-white\/15:hover:is(.dark *){background-color:hsla(0,0%,100%,.15)}.dark\:hover\:bg-white\/70:hover:is(.dark *){background-color:hsla(0,0%,100%,.7)}.dark\:hover\:text-blue-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:hover\:text-emerald-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:hover\:text-green-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:hover\:text-red-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity,1))}.dark\:hover\:text-red-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.dark\:hover\:text-slate-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dark\:hover\:text-slate-900:hover:is(.dark *){--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:hover\:shadow-slate-900\/50:hover:is(.dark *){--tw-shadow-color:rgba(15,23,42,.5);--tw-shadow:var(--tw-shadow-colored)}.dark\:focus\:ring-blue-400:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.dark\:focus\:ring-gray-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity,1))}.dark\:disabled\:bg-slate-800:disabled:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.group:hover .dark\:group-hover\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-0{margin-top:0}.sm\:mt-12{margin-top:3rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:h-10{height:2.5rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:w-10{width:2.5rem}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-80{width:20rem}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:justify-center{justify-content:center}.sm\:gap-8{gap:2rem}.sm\:space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.sm\:p-0{padding:0}.sm\:p-6{padding:1.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pb-4{padding-bottom:1rem}.sm\:pt-8{padding-top:2rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.md\:p-12{padding:3rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-8xl{font-size:6rem;line-height:1}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-20{height:5rem}.lg\:h-7{height:1.75rem}.lg\:w-7{width:1.75rem}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-between{justify-content:space-between}.lg\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.lg\:p-12{padding:3rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-right{text-align:right}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}} \ No newline at end of file diff --git a/backend/utils/__pycache__/advanced_tables.cpython-313.pyc b/backend/utils/__pycache__/advanced_tables.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d18742712ff32680f84e29190e537f7ae435fc45 GIT binary patch literal 37797 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 literal 0 HcmV?d00001 diff --git a/backend/utils/__pycache__/drag_drop_system.cpython-313.pyc b/backend/utils/__pycache__/drag_drop_system.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..79e827989ba66cfa43212bcf80f724f1ad97cf9a GIT binary patch literal 57200 zcmeIb3vgT4nI?Ea0DORN@lBE9B`JxZB!Hyeq9xfB^&lycvI#<#E!q@FfFvXkU@ibX z=qRIcrh1gE>4}_2Tj}X(t7lRbIh*R0(>ood)>|#xleDs(%mSutvJrL1Q=9GGRPBR~ z+?`IcHM`$`&VA#8q@1K{w`yVQ^4@#S`Oi83`Okm;*E#obX{k%VFZ9Y&vmY%A!v91M z%CAtqd3?nt2wxR^f+YBCzPyt*$;STXNqOwAU9#h^{iI{aAvr|K<2dOY%9rwo3Z#Oe zLaA`5NGcj~Nv@${shFiZPnHaoN~J?(QW<;BKUqFhAyo`jN|i$!qz&v{!O5zjYN?vt z7oMycs+DTlebLFfp?ax)s6lENYLps>HcA`Wd)LXPp=POhXp^*wJr|#B84@LNs8wnm zYLnVTVZ63Y@RjUAU+5>bkC)a9cvIRa_{#R=@wa>UA3@qIrS3SPjS2OM!?;LmYH@owFwT;3BhqMjv@y=Jrp0>+R z_3UZKOkQV0GKwa3y*5gag&&Q+$hcFkLMC-&8Aqjm9xqe1uFw$wu z6b1u{P$E1R>denLj)tca8ONz`Jdv^YMXzQGPtSAAWSnEk`A8_^^hbfI&b&+!iUp=3 zz-J~u5D%hUr#(|3g+7xEp>V;4cq|&8zM3hXN=i~FnwSX8&!e&uXimP8>gd z>gcgibOszkcdw`=XKXh!Db}4mPQ~KwSyauHc%`+MY&FA}^j2`nr?ewJ3cM+pug}zwKxbgbP&HhEl#^ntguOGj`?i!jou{19?HiIy>5Q)^)gIKCQbky@I2)cnDit&Pe zkM}a!NYD9*@A>SFg5>l$X#B_XcRPIfY&|bvZweq4IDCcdP0=P{li=IL-n)>yc--Y< zqmNQ9Um4}OV3UevNJtqkmE{MA53&j5hcZfo{7}K3%6*l9uwlGn+{NS$=XfO~jVhM5 zfu%W>G_;|by{}T=S5q0huVL?Ne6@f@5FD~}QtN|UBGvgCaIKe18QavzN;dd5q80`X z+<7<<1uaQGBRnUG?Z_{(8S`m~8H|aAqEoUchwOqt z#7oQ3V-c6H3f+QVh~SR@*pr%jMtIXUf>pX)Ay~e0#xv!#X2xh$otO%M`C|=s#6ywk zI29EoqBG*f;b=GkzFKc;yjMv%fPC={xLg;O2T$H`JS=Ql-m~w9Ze61V6?aqM>9+lsSiw<71)0_$-2*vl6}Hn|A30D$3+@=_KO_Lk4^^Pa4Ea z=@c$;YLqCWtY%6If%C|#pCYJawwUo}nT^;$oH)gG;iK)I8;+&IrgUM`trydU?ni}X zUo8GYajLfKuItWcQ`H9_79LtIZ%7q3a5R@PMmI0Zj8lYB zum{QoMoU)d9RFuU>ogh+f8MA%I!e`oK%+Ke>�MKRo{4+cODKW6$D3QZfyMI2(>G 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 literal 0 HcmV?d00001 diff --git a/backend/utils/__pycache__/email_notification.cpython-313.pyc b/backend/utils/__pycache__/email_notification.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..717f7aa7e10dde9f3700373162170e7889455c3f GIT binary patch literal 6976 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 literal 0 HcmV?d00001 diff --git a/backend/utils/__pycache__/form_validation.cpython-313.pyc b/backend/utils/__pycache__/form_validation.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb98268462b5d3f140b02c089e23bf3c703078c9 GIT binary patch literal 33948 zcmeHwe^4A(erFFe12e<$OF{wxg65ZC1T*?AO9+r90hW+JUIx6fLB<0#XslsiyJutx zTN~BoZcExYCwa3Q%ZV>$t6aC}vbj~R?k;lT%R13+;@s8cW){3dI!;!p+oYnqs|vE@ zwQuvs-RJvWcTdmIAbYd9{BvFKy8HF}{l357_q};oP~Z`8J$3QWx&Qp4ApCcF(J!a= z@USjN5WXP<1z8B%f;lH`vW?wyy!NckNny}e%9+gl(Puy^Ol!rmgesJB=y?k$l^SX}PO4ZR!XjqEw^WNGgvc@ukf zo!s18CYP~i_sR0!E%KJ$3b{fQM#}1hpl6?rw^*($7x126Aq2f6Rr~B(>{b?AfY`!) z=n-9VHH#}kT(J>X!{SO1w_&8l$StzijfgEB5slbd7P|?tn@wr!SZo<$%T2NMEOrZG zD@?HsEVdG{Ri@ZR7P}R()keFv1#3pO?ac{_6~c=Sxk-DgWpB;eTOE7zX>axHZF{g` zBzL4`#I-kvrWD_*_d0@&>|1Ma+lXg}K;_aml-|VR{YceMtFc_S@6l~zs* z%Gu6R?3l{&wZwlL6X5BVUy{NxNsdWk&x|}BkA!6ZGoeU$A}q=A=#)5l_gz_>2q|LU zvrqejmz0<^?dka3m⪙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 literal 0 HcmV?d00001 diff --git a/backend/utils/__pycache__/maintenance_system.cpython-313.pyc b/backend/utils/__pycache__/maintenance_system.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ebd1cf8e13581dcc55b53e262e9a7d93383764b7 GIT binary patch literal 38257 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 delta 4527 zcmb7{d2rLm700!@d>fzG7TA_JE#vsYBoGK-4igh&gJoj_0{Lf2wgs|fRxc~a*!3CChGa(^XN1s!xCb#Wx*q)flUitOdKN>}%IgV`;-x-EwZA16H z9}_(~ZKBweW^~$WcZ%sOT_~na@g>oZMNv;YMWl;w~tcRG}yx7w8T;B7~^z0#yXv4Mn@iGiyi}xU7h$W$s;O~XNWDy zjcmR6JlVzSMMX+WscKR@?Y<5*F4)!SEAwq0CL8=tLt zOnHRI>FLXI9%g(Oj05kA-=;6sjPDY;L%(FlL`+73bvycBAyn|6q4^T98~6pVOVnqK zuhv`-eYk53`xTG~3<354Nx-WFHQwV3cKVgIt`4Q$%lC?l86!(yL+|UrP{0B_EdCyJ z0LR3*%ne%nJrsYIIG*`$c3vFLTI!T@z>cY~GyXCZ?wf@cf5!h8e+mq}C{|nM>0+ciI0Y#V4K8_?23dKkS z7_Q8*>S^S1Yau%-Ua}Ts{~l%!64dB6CFr8kYY!TvI`sc)oxuJfGHqMf`tWPEy?Qgu z^Rr_9sD?Q*>87quQn5$zL3RSGyqx0PXO-_RI@+O+Un)1(bv%u;J<+!1z|TvLeZ2z zC27z|fLG1wIdM6!gjq$R{RmC$w7p%=-V{>`EZq_3*GNG%D>SFifFkX#C3S8|0kJryt65JQfd5p2mr_75B1=*}H ze6!#!R`3Byc_anz(<9X#(i~)jzL|VXP1Po@=A{nt1zm2%-R5 zZ~$tmLGgI{jmhnXWs4XSXG*5AIx(cQoD#pF^ctgLe7tNJHcPKr?qjyoAsn(f1HY;|6LC)WdD@ z)f0IvB+@5dA_q4n{+KoX7bA6)Y0e00lsnK7qGhbGo8>$;-wQCv0n`EYgnmy(s6OcF z4wZWWdro}!~*Q(|gpFc#q z86H(ri;o9Gs>$sSkRj=A6Xem9ZZhois4=tGxV@brU!X(V5++g&44e)!`4Jbfo@Q5& zLc!>7VTWaTA3PuQh$b7A7Z+LBH^k-gQ{C^A5|;&i6fMNk!>W7q)f{=W4}0`M{2|7p zW>sTzAmG=Md=kQF;2eN^fwu9_qa`<*AsFIvFK{}?X6pEL>QN0os*JlBa~rq=An6>T zKlE+$9(sXm;pH>aS={>mXMRv5%`FQbo^?jg(!|y|_FOqs)<7=?eE}o@vIb6wi*w48 zhX(y2Z6=~;BT`=35E4wifL96O1}6R1|kA*upkU}rX2p;c2kfgKS)sw|l- zbV%H&%+lU9YB*``YJIkqr0deH zZA!@6;d8fztRA1&S{v~Dy;g1$d#kJoBWMK0l}2BDq&QoZ+C3VQc$pzCli!Q@@1Hwl zF~AsTjs@pLD z)OSzfqy-!xGI3BZ5`pSb>@%^mx@6Jd>|rE-Abaus*~5E*PbBjf=|708%Y*`6J>Gnh@xtew)WrHoX$HUQ50a(5B!_kg=VFK}N1 zADO$TLAjHsu}mP&GA)5{hK)L;FN0J(=qnHjj_LXzn5c35vnY}{7c|_^W)^l ztry!Tr-iHPEo_=h3HB2$DC%E3P%**CJBq|=61_;>D+ZVM3>sq*`xfTWVR?FC3d@nE za01XS*#uM4ik@1yW{4jeET&nclP9tp#|*`!)I?7gS8zJI+5%lX$lnexYRohg;J~e` zwlmcv#Z|QdC{Y8AdWM+2)sma4y-U_vwkvtmyfRXZi7a6%pmu(A(iec&_bj<9r#o?g*cR&LDUiLB<&+h zLAA7Ur6c4DdD}Y!T;Xd6=W#CSObCDE+^c8Dh2Qo1NFq1RTRA8Vy4lGKMD(2u;+o{QbR^sL=DZ5 z0JXqkzzH+~9Y6r+1XclF;3q&G&;lqxGk}W>_W^Cd3P4`Cw@|BFjc)gb6ps>8HTSJ%z67U4HLW z?j5m(nc>U6rObS?B(5gb_&=0VNKpU) diff --git a/backend/utils/__pycache__/realtime_dashboard.cpython-313.pyc b/backend/utils/__pycache__/realtime_dashboard.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aa8e0ac8b9196897b14d598d1b5b28d98704c73d GIT binary patch literal 50059 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 literal 0 HcmV?d00001 diff --git a/backend/utils/__pycache__/report_generator.cpython-313.pyc b/backend/utils/__pycache__/report_generator.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f70d15979a4c7508d8da4b48fed2e735e87b46fa GIT binary patch literal 45442 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 str: gap: 1rem; } } - """ \ No newline at end of file + """ + +def create_table_config(table_id: str, columns: List[ColumnConfig], **kwargs) -> TableConfig: + """ + Erstellt eine neue Tabellen-Konfiguration. + + Args: + table_id: Eindeutige ID für die Tabelle + columns: Liste der Spalten-Konfigurationen + **kwargs: Zusätzliche Konfigurationsoptionen + + Returns: + TableConfig: Konfiguration für die erweiterte Tabelle + """ + return TableConfig( + table_id=table_id, + columns=columns, + default_sort=kwargs.get('default_sort', []), + default_filters=kwargs.get('default_filters', []), + pagination=kwargs.get('pagination', PaginationConfig()), + searchable=kwargs.get('searchable', True), + exportable=kwargs.get('exportable', True), + selectable=kwargs.get('selectable', False), + row_actions=kwargs.get('row_actions', []) + ) + +def get_advanced_tables_js() -> str: + """Alias für die bestehende Funktion""" + return get_advanced_table_javascript() + +def get_advanced_tables_css() -> str: + """Alias für die bestehende Funktion""" + return get_advanced_table_css() \ No newline at end of file diff --git a/backend/utils/maintenance_system.py b/backend/utils/maintenance_system.py index 74674cdf..e9bc752a 100644 --- a/backend/utils/maintenance_system.py +++ b/backend/utils/maintenance_system.py @@ -685,4 +685,106 @@ def get_maintenance_javascript() -> str: document.addEventListener('DOMContentLoaded', function() { window.maintenanceManager = new MaintenanceManager(); }); - """ \ No newline at end of file + """ + +def create_maintenance_task(printer_id: int, title: str, description: str = "", + maintenance_type: MaintenanceType = MaintenanceType.PREVENTIVE, + priority: MaintenancePriority = MaintenancePriority.NORMAL) -> int: + """ + Erstellt eine neue Wartungsaufgabe. + + Args: + printer_id: ID des Druckers + title: Titel der Wartungsaufgabe + description: Beschreibung der Aufgabe + maintenance_type: Art der Wartung + priority: Priorität der Aufgabe + + Returns: + int: ID der erstellten Aufgabe + """ + task = MaintenanceTask( + printer_id=printer_id, + title=title, + description=description, + maintenance_type=maintenance_type, + priority=priority, + checklist=maintenance_manager.create_maintenance_checklist(maintenance_type) + ) + + return maintenance_manager.create_task(task) + +def schedule_maintenance(printer_id: int, maintenance_type: MaintenanceType, + interval_days: int, description: str = "") -> MaintenanceSchedule: + """ + Plant regelmäßige Wartungen (Alias für maintenance_manager.schedule_maintenance). + + Args: + printer_id: ID des Druckers + maintenance_type: Art der Wartung + interval_days: Intervall in Tagen + description: Beschreibung + + Returns: + MaintenanceSchedule: Erstellter Wartungsplan + """ + return maintenance_manager.schedule_maintenance( + printer_id=printer_id, + maintenance_type=maintenance_type, + interval_days=interval_days, + description=description + ) + +def get_maintenance_overview() -> Dict[str, Any]: + """ + Holt eine Übersicht aller Wartungsaktivitäten. + + Returns: + Dict: Wartungsübersicht mit Statistiken und anstehenden Aufgaben + """ + upcoming = maintenance_manager.get_upcoming_maintenance() + overdue = maintenance_manager.get_overdue_tasks() + metrics = maintenance_manager.get_maintenance_metrics() + + # Aktive Tasks + active_tasks = [task for task in maintenance_manager.tasks.values() + if task.status == MaintenanceStatus.IN_PROGRESS] + + # Completed tasks in last 30 days + thirty_days_ago = datetime.now() - timedelta(days=30) + recent_completed = [task for task in maintenance_manager.maintenance_history + if task.completed_at and task.completed_at >= thirty_days_ago] + + return { + 'summary': { + 'total_tasks': len(maintenance_manager.tasks), + 'active_tasks': len(active_tasks), + 'upcoming_tasks': len(upcoming), + 'overdue_tasks': len(overdue), + 'completed_this_month': len(recent_completed) + }, + 'upcoming_tasks': [asdict(task) for task in upcoming[:10]], + 'overdue_tasks': [asdict(task) for task in overdue], + 'active_tasks': [asdict(task) for task in active_tasks], + 'recent_completed': [asdict(task) for task in recent_completed[:5]], + 'metrics': asdict(metrics), + 'schedules': { + printer_id: [asdict(schedule) for schedule in schedules] + for printer_id, schedules in maintenance_manager.schedules.items() + } + } + +def update_maintenance_status(task_id: int, new_status: MaintenanceStatus, + notes: str = "") -> bool: + """ + Aktualisiert den Status einer Wartungsaufgabe (Alias für maintenance_manager.update_task_status). + + Args: + task_id: ID der Wartungsaufgabe + new_status: Neuer Status + notes: Optionale Notizen + + Returns: + bool: True wenn erfolgreich aktualisiert + """ + return maintenance_manager.update_task_status(task_id, new_status, notes) \ No newline at end of file diff --git a/backend/utils/multi_location_system.py b/backend/utils/multi_location_system.py index 7311ea55..7d9e629f 100644 --- a/backend/utils/multi_location_system.py +++ b/backend/utils/multi_location_system.py @@ -520,23 +520,138 @@ class MultiLocationManager: } # Globale Instanz -multi_location_manager = MultiLocationManager() +location_manager = MultiLocationManager() + +# Alias für Import-Kompatibilität +LocationManager = MultiLocationManager + +def create_location(name: str, code: str, location_type: LocationType = LocationType.BRANCH, + address: str = "", city: str = "", country: str = "", + parent_id: Optional[int] = None) -> int: + """ + Erstellt einen neuen Standort (globale Funktion). + + Args: + name: Name des Standorts + code: Kurzer Code für den Standort + location_type: Art des Standorts + address: Adresse + city: Stadt + country: Land + parent_id: Parent-Standort ID + + Returns: + int: ID des erstellten Standorts + """ + location = Location( + name=name, + code=code, + location_type=location_type, + address=address, + city=city, + country=country, + parent_id=parent_id + ) + + return location_manager.create_location(location) + +def assign_user_to_location(user_id: int, location_id: int, + access_level: AccessLevel = AccessLevel.READ_WRITE, + granted_by: int = 1, is_primary: bool = False) -> bool: + """ + Weist einen Benutzer einem Standort zu. + + Args: + user_id: ID des Benutzers + location_id: ID des Standorts + access_level: Zugriffslevel + granted_by: ID des gewährenden Benutzers + is_primary: Ob dies der primäre Standort ist + + Returns: + bool: True wenn erfolgreich + """ + return location_manager.grant_location_access( + user_id=user_id, + location_id=location_id, + access_level=access_level, + granted_by=granted_by, + is_primary=is_primary + ) + +def get_user_locations(user_id: int) -> List[Location]: + """ + Holt alle Standorte eines Benutzers (globale Funktion). + + Args: + user_id: ID des Benutzers + + Returns: + List[Location]: Liste der zugänglichen Standorte + """ + return location_manager.get_user_locations(user_id) + +def calculate_distance(lat1: float, lon1: float, lat2: float, lon2: float) -> float: + """ + Berechnet die Entfernung zwischen zwei Koordinaten (Haversine-Formel). + + Args: + lat1, lon1: Koordinaten des ersten Punkts + lat2, lon2: Koordinaten des zweiten Punkts + + Returns: + float: Entfernung in Kilometern + """ + from math import radians, sin, cos, sqrt, atan2 + + R = 6371 # Erdradius in km + + lat1, lon1, lat2, lon2 = map(radians, [lat1, lon1, lat2, lon2]) + dlat = lat2 - lat1 + dlon = lon2 - lon1 + + a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2 + c = 2 * atan2(sqrt(a), sqrt(1-a)) + + return R * c + +def find_nearest_location(latitude: float, longitude: float, + radius_km: float = 50) -> Optional[Location]: + """ + Findet den nächstgelegenen Standort. + + Args: + latitude: Breitengrad + longitude: Längengrad + radius_km: Suchradius in Kilometern + + Returns: + Optional[Location]: Nächstgelegener Standort oder None + """ + nearest_locations = location_manager.find_nearest_locations( + latitude=latitude, + longitude=longitude, + radius_km=radius_km, + limit=1 + ) + + return nearest_locations[0][0] if nearest_locations else None def get_location_dashboard_data(user_id: int) -> Dict[str, Any]: """Holt Dashboard-Daten für Standorte eines Benutzers""" - user_locations = multi_location_manager.get_user_locations(user_id) - primary_location = multi_location_manager.get_user_primary_location(user_id) + user_locations = location_manager.get_user_locations(user_id) + primary_location = location_manager.get_user_primary_location(user_id) dashboard_data = { 'user_locations': [asdict(loc) for loc in user_locations], 'primary_location': asdict(primary_location) if primary_location else None, 'location_count': len(user_locations), - 'hierarchy': multi_location_manager.get_location_hierarchy() + 'hierarchy': location_manager.get_location_hierarchy() } # Füge Statistiken für jeden Standort hinzu for location in user_locations: - location_stats = multi_location_manager.get_location_statistics(location.id) + location_stats = location_manager.get_location_statistics(location.id) dashboard_data[f'stats_{location.id}'] = location_stats return dashboard_data @@ -553,7 +668,7 @@ def create_location_from_address(name: str, address: str, city: str, country=country ) - return multi_location_manager.create_location(location) + return location_manager.create_location(location) # JavaScript für Multi-Location Frontend def get_multi_location_javascript() -> str: diff --git a/backend/utils/permissions.py b/backend/utils/permissions.py index 73e4d386..79365351 100644 --- a/backend/utils/permissions.py +++ b/backend/utils/permissions.py @@ -43,6 +43,7 @@ class Permission(Enum): EXTEND_JOB = "extend_job" CANCEL_JOB = "cancel_job" VIEW_JOB_HISTORY = "view_job_history" + APPROVE_JOBS = "approve_jobs" # Berechtigung zum Genehmigen und Verwalten von Jobs # Benutzer-Berechtigungen VIEW_USERS = "view_users" @@ -59,6 +60,7 @@ class Permission(Enum): EXPORT_DATA = "export_data" BACKUP_DATABASE = "backup_database" MANAGE_SETTINGS = "manage_settings" + ADMIN = "admin" # Allgemeine Admin-Berechtigung für administrative Funktionen # Gast-Berechtigungen VIEW_GUEST_REQUESTS = "view_guest_requests" @@ -149,6 +151,7 @@ ROLE_PERMISSIONS[Role.SUPERVISOR] = ROLE_PERMISSIONS[Role.TECHNICIAN] | { Permission.MANAGE_GUEST_REQUESTS, Permission.MANAGE_SHIFTS, Permission.VIEW_USER_DETAILS, + Permission.APPROVE_JOBS, # Jobs genehmigen und verwalten } # Admin erweitert Supervisor-Permissions @@ -161,6 +164,7 @@ ROLE_PERMISSIONS[Role.ADMIN] = ROLE_PERMISSIONS[Role.SUPERVISOR] | { Permission.EXPORT_DATA, Permission.VIEW_LOGS, Permission.MANAGE_SETTINGS, + Permission.ADMIN, # Allgemeine Admin-Berechtigung hinzufügen } # Super Admin hat alle Berechtigungen diff --git a/backend/utils/realtime_dashboard.py b/backend/utils/realtime_dashboard.py index 81debc8a..631b5ceb 100644 --- a/backend/utils/realtime_dashboard.py +++ b/backend/utils/realtime_dashboard.py @@ -25,12 +25,28 @@ from concurrent.futures import ThreadPoolExecutor # WebSocket-Support try: from flask_socketio import SocketIO, emit, join_room, leave_room, disconnect - from eventlet import wsgi, listen - import eventlet + # Eventlet separat importieren für bessere Fehlerbehandlung + try: + from eventlet import wsgi, listen + import eventlet + EVENTLET_AVAILABLE = True + except (ImportError, AttributeError) as e: + # Eventlet nicht verfügbar oder nicht kompatibel (z.B. Python 3.13) + print(f"⚠️ Eventlet nicht verfügbar: {e}") + print("🔄 Fallback auf standard threading mode für WebSocket") + EVENTLET_AVAILABLE = False + eventlet = None + wsgi = None + listen = None + WEBSOCKET_AVAILABLE = True -except ImportError: +except ImportError as e: + print(f"⚠️ Flask-SocketIO nicht verfügbar: {e}") + print("📡 Dashboard läuft ohne Real-time Updates") WEBSOCKET_AVAILABLE = False + EVENTLET_AVAILABLE = False SocketIO = None + eventlet = None from flask import request, session, current_app from flask_login import current_user @@ -122,16 +138,24 @@ class DashboardManager: logger.warning("WebSocket-Funktionalität nicht verfügbar. Flask-SocketIO installieren.") return None + # Bestimme den async_mode basierend auf verfügbaren Bibliotheken + if EVENTLET_AVAILABLE: + async_mode = 'eventlet' + logger.info("Dashboard WebSocket-Server wird mit eventlet initialisiert") + else: + async_mode = 'threading' + logger.info("Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)") + self.socketio = SocketIO( app, cors_allowed_origins=cors_allowed_origins, logger=False, engineio_logger=False, - async_mode='eventlet' + async_mode=async_mode ) self._setup_socket_handlers() - logger.info("Dashboard WebSocket-Server initialisiert") + logger.info(f"Dashboard WebSocket-Server initialisiert (async_mode: {async_mode})") return self.socketio def _setup_socket_handlers(self):