@omniloy/sofia-sdk 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16971,6 +16971,9 @@ const Japanese$4 = "اليابانية";
16971
16971
  const Dictionary$5 = "قاموس";
16972
16972
  const Copilot$4 = "امساعد الطيار";
16973
16973
  const Reasoning$4 = "التفكير";
16974
+ const Language$5 = "اللغة";
16975
+ const Chat$6 = "الدردشة";
16976
+ const Sources$4 = "المصادر";
16974
16977
  const ar = {
16975
16978
  Add: Add$4,
16976
16979
  "Ask Omniscribe assistant": "اسأل مساعد أومنيسكريب",
@@ -16984,6 +16987,7 @@ const ar = {
16984
16987
  "Error searching for devices": "حدث خطأ أثناء البحث عن الأجهزة",
16985
16988
  "Fill out report": "املأ التقرير",
16986
16989
  "Generate report": "إنشاء تقرير",
16990
+ "Generating patient summary": "مرحباً! امنحني بضع ثوان لإنشاء ملخص المريض.",
16987
16991
  "Hello Doctor, I'm your personal assistant. How can I help you today?": "مرحباً يا دكتور، أنا مساعدك الشخصي. كيف يمكنني مساعدتك اليوم؟",
16988
16992
  History: History$4,
16989
16993
  "I'd like to see a summary of the patient's chart": "أود أن أرى ملخصًا لمخطط المريض",
@@ -17019,7 +17023,6 @@ const ar = {
17019
17023
  "Wrong Word": "كلمة خاطئة",
17020
17024
  "Wrong Words": "كلمات خاطئة",
17021
17025
  "You must grant microphone permissions": "يجب منح أذونات الميكروفون",
17022
- "See list of sources": "عرض قائمة المصادر",
17023
17026
  "My source library": "مكتبة المصادر",
17024
17027
  "Specify the sources and resources that should guide the AI's responses.": "تشير إلى المصادر والموارد التي ينبغي أن تُوجِّه استجابات الذكاء الاصطناعي.",
17025
17028
  "My specialty": "تخصصي",
@@ -17114,15 +17117,17 @@ const ar = {
17114
17117
  "SofIA Scribe": "سوفيا سكرايب",
17115
17118
  "Microphone options": "خيارات الميكروفون",
17116
17119
  "Select the input microphone": "حدد ميكروفون الإدخال",
17117
- "Select the input microphone to ensure proper functioning of SofIA Scribe": "حدد ميكروفون الإدخال لضمان التشغيل السليم لصوفيا سكرايب",
17118
- "Language options": "خيارات اللغة",
17119
- "Select the interface language and the language in which the clinical note is generated in addition to the language for transcription": "حدد لغة الواجهة واللغة التي يتم بها إنشاء الملاحظة السريرية بالإضافة إلى لغة النسخ.",
17120
+ "Select the input microphone to ensure proper functioning": "حدد ميكروفون الإدخال لضمان التشغيل السليم",
17121
+ Language: Language$5,
17122
+ "Select the language options.": "حدد خيارات اللغة.",
17120
17123
  "Select the interface language and the language in which the clinical note is generated": "حدد لغة الواجهة واللغة التي يتم بها إنشاء الملاحظة السريرية.",
17121
17124
  "Select the language for audio transcription": "حدد اللغة التي سيتم بها نسخ المحادثة مع المريض.",
17122
17125
  "Clinical note template": "قالب الملاحظة السريرية",
17123
- "Customize the clinical note by indicating to the AI how to write and organize consultation information in each field": "خصص الملاحظة السريرية من خلال إبلاغ الذكاء الاصطناعي بكيفية كتابة وتنظيم معلومات الاستشارة في كل حقل.",
17126
+ "Customize the clinical note depending on the report you are filling out.": "خصص الملاحظة السريرية حسب التقرير الذي تقوم بملؤه.",
17124
17127
  "Clinical dictionary": "قاموس سريري",
17125
17128
  "Customize clinical language and medication format": "خصص اللغة السريرية وتنسيق الأدوية.",
17129
+ Chat: Chat$6,
17130
+ "Customize the patient summary and chat sources.": "خصص ملخص المريض ومصادر الدردشة.",
17126
17131
  "No custom words added yet": "لا توجد كلمات مخصصة مضافة بعد",
17127
17132
  "Custom version": "نسخة مخصصة",
17128
17133
  "Word or phrase (e.g: ibuprofeno)": "كلمة أو عبارة (على سبيل المثال: ibuprofeno)",
@@ -17134,6 +17139,18 @@ const ar = {
17134
17139
  "Save changes": "حفظ التغييرات",
17135
17140
  "{count} characters": "{count} حرف",
17136
17141
  "Sending...": "جارٍ الإرسال...",
17142
+ "Show patient summary first": "إظهار ملخص المريض أولاً",
17143
+ "Patient summary customization": "تخصيص ملخص المريض",
17144
+ Sources: Sources$4,
17145
+ "Select the sources you want the AI to use for reasoning": "اختر المصادر التي تريد أن تستخدمها الذكي الاصطناعي للتفكير",
17146
+ "Don't leave out relevant information...": "لا تترك المعلومات ذات الصلة...",
17147
+ "File is too large. Maximum size is 5MB": "الملف كبير جداً. الحد الأقصى للحجم هو 5 ميجابايت",
17148
+ "Maximum number of files is 5": "العدد الأقصى للملفات هو 5",
17149
+ "Attach file": "إرفاق ملف",
17150
+ "Error processing file": "خطأ في معالجة الملف",
17151
+ "Unsupported file format": "تنسيق الملف غير مدعوم",
17152
+ "{count} documents": "{count} مستندات",
17153
+ "{count} images": "{count} صور",
17137
17154
  };
17138
17155
 
17139
17156
  const Add$3 = "Add";
@@ -17181,6 +17198,11 @@ const Japanese$3 = "Japanese";
17181
17198
  const Dictionary$4 = "Dictionary";
17182
17199
  const Copilot$3 = "Copilot";
17183
17200
  const Reasoning$3 = "Reasoning";
17201
+ const Language$4 = "Language";
17202
+ const Chat$5 = "Chat";
17203
+ const Sources$3 = "Sources";
17204
+ const Enabled$1 = "Enabled";
17205
+ const Disabled$1 = "Disabled";
17184
17206
  const en = {
17185
17207
  Add: Add$3,
17186
17208
  "Ask Omniscribe assistant": "Ask Omniscribe assistant",
@@ -17194,6 +17216,7 @@ const en = {
17194
17216
  "Error searching for devices": "Error searching for devices",
17195
17217
  "Fill out report": "Fill out report",
17196
17218
  "Generate report": "Generate report",
17219
+ "Generating patient summary": "Hello! Give me a few seconds to generate the patient summary.",
17197
17220
  "Hello Doctor, I'm your personal assistant. How can I help you today?": "Hello Doctor, I'm your personal assistant. How can I help you today?",
17198
17221
  History: History$3,
17199
17222
  "I'd like to see a summary of the patient's chart": "I'd like to see a summary of the patient's chart",
@@ -17229,7 +17252,6 @@ const en = {
17229
17252
  "Wrong Word": "Wrong Word",
17230
17253
  "Wrong Words": "Wrong Words",
17231
17254
  "You must grant microphone permissions": "You must grant microphone permissions",
17232
- "See list of sources": "See list of sources",
17233
17255
  "My source library": "My source library",
17234
17256
  "Specify the sources and resources that should guide the AI's responses.": "Specify the sources and resources that should guide the AI's responses.",
17235
17257
  "My specialty": "My specialty",
@@ -17324,15 +17346,17 @@ const en = {
17324
17346
  "SofIA Scribe": "SofIA Scribe",
17325
17347
  "Microphone options": "Microphone options",
17326
17348
  "Select the input microphone": "Select the input microphone",
17327
- "Select the input microphone to ensure proper functioning of SofIA Scribe": "Select the input microphone to ensure proper functioning of SofIA Scribe",
17328
- "Language options": "Language options",
17329
- "Select the interface language and the language in which the clinical note is generated in addition to the language for transcription": "Select the interface language and the language in which the clinical note is generated in addition to the language for transcription.",
17349
+ "Select the input microphone to ensure proper functioning": "Select the input microphone to ensure proper functioning.",
17350
+ Language: Language$4,
17351
+ "Select the language options.": "Select the language options.",
17330
17352
  "Select the interface language and the language in which the clinical note is generated": "Select the interface language and the language in which the clinical note is generated.",
17331
17353
  "Select the language for audio transcription": "Select the language for audio transcription.",
17332
17354
  "Clinical note template": "Clinical note template",
17333
- "Customize the clinical note by indicating to the AI how to write and organize consultation information in each field": "Customize the clinical note by indicating to the AI how to write and organize consultation information in each field.",
17355
+ "Customize the clinical note depending on the report you are filling out.": "Customize the clinical note depending on the report you are filling out.",
17334
17356
  "Clinical dictionary": "Clinical dictionary",
17335
17357
  "Customize clinical language and medication format": "Customize clinical language and medication format.",
17358
+ Chat: Chat$5,
17359
+ "Customize the patient summary and chat sources.": "Customize the patient summary and chat sources.",
17336
17360
  "No custom words added yet": "No custom words added yet",
17337
17361
  "Custom version": "Custom version",
17338
17362
  "Word or phrase (e.g: ibuprofen)": "Word or phrase (e.g: ibuprofen)",
@@ -17345,6 +17369,20 @@ const en = {
17345
17369
  "Save changes": "Save changes",
17346
17370
  "{count} characters": "{count} characters",
17347
17371
  "Sending...": "Sending...",
17372
+ "Show patient summary first": "Show patient summary first",
17373
+ "Patient summary customization": "Patient summary customization",
17374
+ Sources: Sources$3,
17375
+ "Select the sources you want the AI to use for reasoning": "Select the sources you want the AI to use for reasoning",
17376
+ "Don't leave out relevant information...": "Don't leave out relevant information...",
17377
+ Enabled: Enabled$1,
17378
+ Disabled: Disabled$1,
17379
+ "File is too large. Maximum size is 5MB": "File is too large. Maximum size is 5MB",
17380
+ "Maximum number of files is 5": "Maximum number of files is 5",
17381
+ "Attach file": "Attach file",
17382
+ "Error processing file": "Error processing file",
17383
+ "Unsupported file format": "Unsupported file format",
17384
+ "{count} documents": "{count} documents",
17385
+ "{count} images": "{count} images",
17348
17386
  };
17349
17387
 
17350
17388
  const Add$2 = "Añadir";
@@ -17392,6 +17430,11 @@ const Japanese$2 = "Japonés";
17392
17430
  const Dictionary$3 = "Diccionario";
17393
17431
  const Copilot$2 = "Copilot";
17394
17432
  const Reasoning$2 = "Razonamiento";
17433
+ const Language$3 = "Idioma";
17434
+ const Chat$4 = "Chat";
17435
+ const Sources$2 = "Fuentes";
17436
+ const Enabled = "Activado";
17437
+ const Disabled = "Desactivado";
17395
17438
  const es = {
17396
17439
  Add: Add$2,
17397
17440
  "Ask Omniscribe assistant": "Pregunta al asistente Omniscribe",
@@ -17405,6 +17448,7 @@ const es = {
17405
17448
  "Error searching for devices": "Error al buscar dispositivos",
17406
17449
  "Fill out report": "Rellenar informe",
17407
17450
  "Generate report": "Generar informe",
17451
+ "Generating patient summary": "¡Hola! Dame unos segundos para generar el resumen del paciente.",
17408
17452
  "Hello Doctor, I'm your personal assistant. How can I help you today?": "Hola doctor, soy su asistente personal. ¿En qué le puedo ayudar hoy?",
17409
17453
  History: History$2,
17410
17454
  "I'd like to see a summary of the patient's chart": "Quiero ver el resumen de la ficha del paciente",
@@ -17440,7 +17484,6 @@ const es = {
17440
17484
  "Wrong Word": "Palabra Incorrecta",
17441
17485
  "Wrong Words": "Palabras Incorrectas",
17442
17486
  "You must grant microphone permissions": "Debes conceder permisos de micrófono",
17443
- "See list of sources": "Ver Lista de fuentes",
17444
17487
  "My source library": "Mi librería de fuentes",
17445
17488
  "Specify the sources and resources that should guide the AI's responses.": "Indica las fuentes y recursos que deben orientar las respuestas de la IA.",
17446
17489
  "My specialty": "Mi especialidad",
@@ -17535,15 +17578,17 @@ const es = {
17535
17578
  "SofIA Scribe": "SofIA Escriba",
17536
17579
  "Microphone options": "Opciones de micrófono",
17537
17580
  "Select the input microphone": "Selecciona el micrófono de entrada",
17538
- "Select the input microphone to ensure proper functioning of SofIA Scribe": "Selecciona el micrófono de entrada para asegurar el buen funcionamiento de SofIA Escriba",
17539
- "Language options": "Opciones de idioma",
17540
- "Select the interface language and the language in which the clinical note is generated in addition to the language for transcription": "Selecciona el idioma de la interfaz y en el que se genera la nota clínica además del idioma para la transcripción.",
17581
+ "Select the input microphone to ensure proper functioning": "Seleccione el micrófono de entrada para asegurar el buen funcionamiento.",
17582
+ Language: Language$3,
17583
+ "Select the language options.": "Seleccione las opciones de idioma.",
17541
17584
  "Select the interface language and the language in which the clinical note is generated": "Selecciona el idioma de la interfaz y en el que se genera la nota clínica.",
17542
17585
  "Select the language for audio transcription": "Selecciona el idioma en el que grabará la conversación con el paciente.",
17543
17586
  "Clinical note template": "Plantilla de nota clínica",
17544
- "Customize the clinical note by indicating to the AI how to write and organize consultation information in each field": "Personalice la nota clínica indicando a la IA cómo redactar y organizar la información de la consulta en cada campo.",
17587
+ "Customize the clinical note depending on the report you are filling out.": "Personalice la nota clínica dependiendo del informe que esté rellenando.",
17545
17588
  "Clinical dictionary": "Diccionario clínico",
17546
- "Customize clinical language and medication format": "Personaliza el lenguaje clínico y el formato de los medicamentos.",
17589
+ "Customize clinical language and medication format": "Personalice el lenguaje clínico y el formato de los medicamentos.",
17590
+ Chat: Chat$4,
17591
+ "Customize the patient summary and chat sources.": "Personalice el resumen del paciente y las fuentes del chat.",
17547
17592
  "No custom words added yet": "No se han añadido palabras personalizadas aún",
17548
17593
  "Custom version": "Versión personalizada",
17549
17594
  "Word or phrase (e.g: ibuprofeno)": "Palabra o frase (ej: ibuprofeno)",
@@ -17556,6 +17601,20 @@ const es = {
17556
17601
  "Save changes": "Guardar cambios",
17557
17602
  "{count} characters": "{count} caracteres",
17558
17603
  "Sending...": "Enviando...",
17604
+ "Show patient summary first": "Lo primero que quiero ver es el resumen del paciente.",
17605
+ "Patient summary customization": "Personalización del resumen del paciente",
17606
+ Sources: Sources$2,
17607
+ "Select the sources you want the AI to use for reasoning": "Seleccione las fuentes que quiera que la IA use para razonar",
17608
+ "Don't leave out relevant information...": "No te dejes información relevante...",
17609
+ Enabled,
17610
+ Disabled,
17611
+ "File is too large. Maximum size is 5MB": "El archivo es muy grande. El tamaño máximo es 5MB",
17612
+ "Maximum number of files is 5": "El número máximo de archivos es 5",
17613
+ "Attach file": "Adjuntar archivo",
17614
+ "Error processing file": "Ha habido un error al procesar el fichero",
17615
+ "Unsupported file format": "Fichero no soportado",
17616
+ "{count} documents": "{count} documentos",
17617
+ "{count} images": "{count} imágenes",
17559
17618
  };
17560
17619
 
17561
17620
  const Add$1 = "जोड़ें";
@@ -17603,6 +17662,9 @@ const Japanese$1 = "जापानी";
17603
17662
  const Dictionary$2 = "शब्दकोश";
17604
17663
  const Copilot$1 = "कोपायलट";
17605
17664
  const Reasoning$1 = "तर्क";
17665
+ const Language$2 = "भाषा";
17666
+ const Chat$3 = "चैट";
17667
+ const Sources$1 = "स्रोत";
17606
17668
  const hi = {
17607
17669
  Add: Add$1,
17608
17670
  "Ask Omniscribe assistant": "Omniscribe सहायक से पूछें",
@@ -17616,6 +17678,7 @@ const hi = {
17616
17678
  "Error searching for devices": "उपकरण खोजने में त्रुटि",
17617
17679
  "Fill out report": "रिपोर्ट भरें",
17618
17680
  "Generate report": "रिपोर्ट बनाएं",
17681
+ "Generating patient summary": "नमस्ते! मुझे रोगी का सारांश तैयार करने के लिए कुछ सेकंड दें।",
17619
17682
  "Hello Doctor, I'm your personal assistant. How can I help you today?": "नमस्ते डॉक्टर, मैं आपका निजी सहायक हूँ। आज मैं आपकी कैसे मदद कर सकता हूँ?",
17620
17683
  History: History$1,
17621
17684
  "I'd like to see a summary of the patient's chart": "मैं रोगी के चार्ट का सारांश देखना चाहूंगा",
@@ -17651,7 +17714,6 @@ const hi = {
17651
17714
  "Wrong Word": "गलत शब्द",
17652
17715
  "Wrong Words": "गलत शब्द",
17653
17716
  "You must grant microphone permissions": "आपको माइक्रोफ़ोन की अनुमति देनी होगी",
17654
- "See list of sources": "स्रोतों की सूची देखें",
17655
17717
  "My source library": "मेरी स्रोत लाइब्रेरी",
17656
17718
  "Specify the sources and resources that should guide the AI's responses.": "उन स्रोतों और संसाधनों को निर्दिष्ट करें जो AI की प्रतिक्रियाओं का मार्गदर्शन करें।",
17657
17719
  "My specialty": "मेरी विशेषज्ञता",
@@ -17746,15 +17808,17 @@ const hi = {
17746
17808
  "SofIA Scribe": "SofIA Scribe",
17747
17809
  "Microphone options": "माइक्रोफोन विकल्प",
17748
17810
  "Select the input microphone": "इनपुट माइक्रोफोन का चयन करें",
17749
- "Select the input microphone to ensure proper functioning of SofIA Scribe": "SofIA Scribe के समुचित कार्य को सुनिश्चित करने के लिए इनपुट माइक्रोफोन का चयन करें",
17750
- "Language options": "भाषा विकल्प",
17751
- "Select the interface language and the language in which the clinical note is generated in addition to the language for transcription": "इंटरफ़ेस भाषा और उस भाषा का चयन करें जिसमें नैदानिक नोट उत्पन्न होता है, इसके अलावा प्रतिलेखन के लिए भाषा का चयन करें।",
17811
+ "Select the input microphone to ensure proper functioning": "समुचित कार्य को सुनिश्चित करने के लिए इनपुट माइक्रोफोन का चयन करें",
17812
+ Language: Language$2,
17813
+ "Select the language options.": "भाषा विकल्प चुनें।",
17752
17814
  "Select the interface language and the language in which the clinical note is generated": "इंटरफ़ेस भाषा और उस भाषा का चयन करें जिसमें नैदानिक नोट उत्पन्न होता है।",
17753
17815
  "Select the language for audio transcription": "ऑडियो प्रतिलेखन के लिए भाषा का चयन करें।",
17754
17816
  "Clinical note template": "नैदानिक नोट टेम्पलेट",
17755
- "Customize the clinical note by indicating to the AI how to write and organize consultation information in each field": "AI को यह संकेत देकर नैदानिक नोट को अनुकूलित करें कि प्रत्येक क्षेत्र में परामर्श जानकारी कैसे लिखें और व्यवस्थित करें।",
17817
+ "Customize the clinical note depending on the report you are filling out.": "आप जो रिपोर्ट भर रहे हैं, उसके आधार पर नैदानिक नोट को अनुकूलित करें।",
17756
17818
  "Clinical dictionary": "नैदानिक शब्दकोश",
17757
17819
  "Customize clinical language and medication format": "नैदानिक भाषा और दवा प्रारूप को अनुकूलित करें।",
17820
+ Chat: Chat$3,
17821
+ "Customize the patient summary and chat sources.": "रोगी सारांश और चैट स्रोतों को अनुकूलित करें।",
17758
17822
  "No custom words added yet": "अभी तक कोई कस्टम शब्द नहीं जोड़ा गया है",
17759
17823
  "Custom version": "कस्टम संस्करण",
17760
17824
  "Word or phrase (e.g: ibuprofen)": "शब्द या वाक्यांश (जैसे: ibuprofen)",
@@ -17767,6 +17831,18 @@ const hi = {
17767
17831
  "Save changes": "परिवर्तन सहेजें",
17768
17832
  "{count} characters": "{count} वर्ण",
17769
17833
  "Sending...": "भेजा जा रहा है...",
17834
+ "Show patient summary first": "पहले रोगी सारांश दिखाएं",
17835
+ "Patient summary customization": "रोगी सारांश अनुकूलन",
17836
+ Sources: Sources$1,
17837
+ "Select the sources you want the AI to use for reasoning": "वे स्रोत चुनें जिन्हें आप चाहते हैं कि AI तर्क के लिए उपयोग करे",
17838
+ "Don't leave out relevant information...": "प्रासंगिक जानकारी को न छोड़ें...",
17839
+ "File is too large. Maximum size is 5MB": "फ़ाइल बहुत बड़ी है। अधिकतम आकार 5MB है",
17840
+ "Maximum number of files is 5": "फ़ाइलों की अधिकतम संख्या 5 है",
17841
+ "Attach file": "फ़ाइल संलग्न करें",
17842
+ "Error processing file": "फ़ाइल प्रोसेसिंग में त्रुटि",
17843
+ "Unsupported file format": "असमर्थित फ़ाइल प्रारूप",
17844
+ "{count} documents": "{count} दस्तावेज़",
17845
+ "{count} images": "{count} चित्र",
17770
17846
  };
17771
17847
 
17772
17848
  const Add = "Tambahkan";
@@ -17814,6 +17890,9 @@ const Japanese = "Jepang";
17814
17890
  const Dictionary$1 = "Kamus";
17815
17891
  const Copilot = "Copilot";
17816
17892
  const Reasoning = "Penalaran";
17893
+ const Language$1 = "Bahasa";
17894
+ const Chat$2 = "Chat";
17895
+ const Sources = "Sumber";
17817
17896
  const id = {
17818
17897
  Add,
17819
17898
  "Ask Omniscribe assistant": "Tanya asisten Omniscribe",
@@ -17827,6 +17906,7 @@ const id = {
17827
17906
  "Error searching for devices": "Kesalahan saat mencari perangkat",
17828
17907
  "Fill out report": "Isi laporan",
17829
17908
  "Generate report": "Menghasilkan laporan",
17909
+ "Generating patient summary": "Halo! Beri saya beberapa detik untuk membuat ringkasan pasien.",
17830
17910
  "Hello Doctor, I'm your personal assistant. How can I help you today?": "Halo Dokter, saya asisten pribadi Anda. Bagaimana saya bisa membantu Anda hari ini?",
17831
17911
  History,
17832
17912
  "I'd like to see a summary of the patient's chart": "Saya ingin melihat ringkasan grafik pasien",
@@ -17862,7 +17942,6 @@ const id = {
17862
17942
  "Wrong Word": "Kata yang salah",
17863
17943
  "Wrong Words": "Kata-kata yang salah",
17864
17944
  "You must grant microphone permissions": "Anda harus memberikan izin mikrofon",
17865
- "See list of sources": "Lihat Daftar Sumber",
17866
17945
  "My source library": "Perpustakaan Sumber Saya",
17867
17946
  "Specify the sources and resources that should guide the AI's responses.": "Menunjukkan sumber dan sumber daya yang seharusnya memandu respons AI.",
17868
17947
  "My specialty": "Spesialisasi Saya",
@@ -17957,15 +18036,17 @@ const id = {
17957
18036
  "SofIA Scribe": "SofIA Juru Tulis",
17958
18037
  "Microphone options": "Opsi mikrofon",
17959
18038
  "Select the input microphone": "Pilih mikrofon input",
17960
- "Select the input microphone to ensure proper functioning of SofIA Scribe": "Pilih mikrofon input untuk memastikan fungsi yang tepat dari SofIA Scribe",
17961
- "Language options": "Opsi bahasa",
17962
- "Select the interface language and the language in which the clinical note is generated in addition to the language for transcription": "Pilih bahasa antarmuka dan bahasa di mana catatan klinis dihasilkan selain bahasa untuk transkripsi.",
18039
+ "Select the input microphone to ensure proper functioning": "Pilih mikrofon input untuk memastikan fungsi yang tepat.",
18040
+ Language: Language$1,
18041
+ "Select the language options.": "Pilih opsi bahasa.",
17963
18042
  "Select the interface language and the language in which the clinical note is generated": "Pilih bahasa antarmuka dan bahasa di mana catatan klinis dihasilkan.",
17964
18043
  "Select the language for audio transcription": "Pilih bahasa untuk transkripsi audio.",
17965
18044
  "Clinical note template": "Template catatan klinis",
17966
- "Customize the clinical note by indicating to the AI how to write and organize consultation information in each field": "Sesuaikan catatan klinis dengan menunjukkan kepada AI bagaimana menulis dan mengatur informasi konsultasi di setiap bidang.",
18045
+ "Customize the clinical note depending on the report you are filling out.": "Sesuaikan catatan klinis tergantung pada laporan yang Anda isi.",
17967
18046
  "Clinical dictionary": "Kamus klinis",
17968
18047
  "Customize clinical language and medication format": "Sesuaikan bahasa klinis dan format pengobatan.",
18048
+ Chat: Chat$2,
18049
+ "Customize the patient summary and chat sources.": "Sesuaikan ringkasan pasien dan sumber chat.",
17969
18050
  "No custom words added yet": "Belum ada kata kustom yang ditambahkan",
17970
18051
  "Custom version": "Versi kustom",
17971
18052
  "Word or phrase (e.g: ibuprofeno)": "Kata atau frasa (mis: ibuprofeno)",
@@ -17977,6 +18058,18 @@ const id = {
17977
18058
  "Save changes": "Simpan perubahan",
17978
18059
  "{count} characters": "{count} karakter",
17979
18060
  "Sending...": "Mengirim...",
18061
+ "Show patient summary first": "Tampilkan ringkasan pasien terlebih dahulu",
18062
+ "Patient summary customization": "Penyesuaian ringkasan pasien",
18063
+ Sources,
18064
+ "Select the sources you want the AI to use for reasoning": "Pilih sumber yang ingin Anda gunakan AI untuk penalaran",
18065
+ "Don't leave out relevant information...": "Jangan tinggalkan informasi yang relevan...",
18066
+ "File is too large. Maximum size is 5MB": "File terlalu besar. Ukuran maksimum adalah 5MB",
18067
+ "Maximum number of files is 5": "Jumlah file maksimum adalah 5",
18068
+ "Attach file": "Lampirkan file",
18069
+ "Error processing file": "Kesalahan memproses file",
18070
+ "Unsupported file format": "Format file tidak didukung",
18071
+ "{count} documents": "{count} dokumen",
18072
+ "{count} images": "{count} gambar",
17980
18073
  };
17981
18074
 
17982
18075
  var LanguageCode;
@@ -21910,7 +22003,7 @@ const {
21910
22003
  mergeConfig: mergeConfig$1
21911
22004
  } = axios;
21912
22005
 
21913
- const version$1 = "0.0.9";
22006
+ const version$1 = "0.0.10";
21914
22007
 
21915
22008
  const handleApiError = async (error) => {
21916
22009
  return Promise.reject(error);
@@ -22104,6 +22197,7 @@ var SettingsApiKeys;
22104
22197
  SettingsApiKeys2["template"] = "template";
22105
22198
  SettingsApiKeys2["baseTemplate"] = "baseTemplate";
22106
22199
  SettingsApiKeys2["templateId"] = "templateId";
22200
+ SettingsApiKeys2["summary"] = "summary";
22107
22201
  })(SettingsApiKeys || (SettingsApiKeys = {}));
22108
22202
  const SettingsApi = {
22109
22203
  updateSetting: async (key, value) => {
@@ -22164,7 +22258,8 @@ const SettingsApi = {
22164
22258
  [SettingsApiKeys.sources]: profileResponse.sources,
22165
22259
  [SettingsApiKeys.availableSources]: profileResponse.availableSources,
22166
22260
  [SettingsApiKeys.template]: profileResponse.template,
22167
- [SettingsApiKeys.baseTemplate]: profileResponse.baseTemplate
22261
+ [SettingsApiKeys.baseTemplate]: profileResponse.baseTemplate,
22262
+ [SettingsApiKeys.summary]: profileResponse.summary
22168
22263
  };
22169
22264
  return mappedResponse;
22170
22265
  }
@@ -22474,6 +22569,7 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22474
22569
  const [sources, setSources] = React.useState(null);
22475
22570
  const [availableSources, setAvailableSources] = React.useState([]);
22476
22571
  const [preferredMicrophone, setPreferredMicrophone] = React.useState(null);
22572
+ const [summary, setSummary] = React.useState(null);
22477
22573
  const [templateCustomizations, setTemplateCustomizations] = React.useState({});
22478
22574
  const [baseTemplate, setBaseTemplate] = React.useState({});
22479
22575
  const [customTemplate, setCustomTemplate] = React.useState(null);
@@ -22512,12 +22608,14 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22512
22608
  };
22513
22609
  }
22514
22610
  }
22611
+ const newSummary = profile?.[SettingsApiKeys.summary] || null;
22515
22612
  setDictionary(newDictionary);
22516
22613
  setLanguage(newLanguage);
22517
22614
  setTranscriptionLanguage(newTranscriptionLanguage);
22518
22615
  setSources(newSources);
22519
22616
  setAvailableSources(newAvailableSources);
22520
22617
  setPreferredMicrophone(newPreferredMicrophone);
22618
+ setSummary(newSummary);
22521
22619
  setCustomTemplate(newCustomTemplate);
22522
22620
  setBaseTemplate(newBaseTemplate);
22523
22621
  const cache = SettingsCache.getInstance();
@@ -22598,6 +22696,21 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22598
22696
  logger.settingsError("Error updating sources:", error);
22599
22697
  }
22600
22698
  }, []);
22699
+ const updateSummary = React.useCallback(async (summary2) => {
22700
+ try {
22701
+ setSummary(summary2);
22702
+ await SettingsApi.updateSetting(SettingsApiKeys.summary, summary2);
22703
+ } catch (error) {
22704
+ logger.settingsError("Error updating summary:", error);
22705
+ }
22706
+ }, []);
22707
+ const sendSummaryMessage = React.useCallback(() => {
22708
+ if (!summary || !summary.isEnabled) {
22709
+ return;
22710
+ }
22711
+ const event = new CustomEvent("sendSummaryMessage");
22712
+ window.dispatchEvent(event);
22713
+ }, [summary]);
22601
22714
  const updatePreferredMicrophone = React.useCallback(async (microphone) => {
22602
22715
  try {
22603
22716
  setPreferredMicrophone(microphone);
@@ -22675,6 +22788,7 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22675
22788
  templateId: profile[SettingsApiKeys.templateId]
22676
22789
  } : null;
22677
22790
  const newBaseTemplate = profile?.[SettingsApiKeys.baseTemplate] ? profile?.[SettingsApiKeys.baseTemplate] : {};
22791
+ const newSummary = profile?.[SettingsApiKeys.summary] || null;
22678
22792
  const microphoneData = profile?.[SettingsApiKeys.preferredMicrophone];
22679
22793
  let newPreferredMicrophone = null;
22680
22794
  if (microphoneData) {
@@ -22696,6 +22810,7 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22696
22810
  setSources(newSources);
22697
22811
  setAvailableSources(newAvailableSources);
22698
22812
  setPreferredMicrophone(newPreferredMicrophone);
22813
+ setSummary(newSummary);
22699
22814
  setCustomTemplate(newCustomTemplate);
22700
22815
  setBaseTemplate(newBaseTemplate);
22701
22816
  const cache = SettingsCache.getInstance();
@@ -22779,6 +22894,7 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22779
22894
  sources,
22780
22895
  availableSources,
22781
22896
  preferredMicrophone,
22897
+ summary,
22782
22898
  isLoading,
22783
22899
  templateId,
22784
22900
  toolArgs,
@@ -22792,6 +22908,8 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22792
22908
  updateTranscriptionLanguage,
22793
22909
  updateSources,
22794
22910
  updatePreferredMicrophone,
22911
+ updateSummary,
22912
+ sendSummaryMessage,
22795
22913
  updateTemplateCustomizations,
22796
22914
  updateBaseTemplate,
22797
22915
  updateSettings,
@@ -22804,6 +22922,7 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22804
22922
  sources,
22805
22923
  availableSources,
22806
22924
  preferredMicrophone,
22925
+ summary,
22807
22926
  isLoading,
22808
22927
  templateId,
22809
22928
  toolArgs,
@@ -22817,6 +22936,8 @@ const SettingsProvider = ({ predefinedLanguage, templateId, toolArgs, children }
22817
22936
  updateTranscriptionLanguage,
22818
22937
  updateSources,
22819
22938
  updatePreferredMicrophone,
22939
+ updateSummary,
22940
+ sendSummaryMessage,
22820
22941
  updateTemplateCustomizations,
22821
22942
  updateBaseTemplate,
22822
22943
  updateSettings,
@@ -122766,7 +122887,7 @@ function parseAnthropicStreamedToolCalls(content) {
122766
122887
  };
122767
122888
  });
122768
122889
  }
122769
- function AssistantMessage({ message, isLoading, handleRegenerate, isLastAiMessage = false, firstTokenReceived = false }) {
122890
+ function AssistantMessage({ message, isLoading, handleRegenerate, isLastAiMessage = false }) {
122770
122891
  const [isHovered, setIsHovered] = reactExports.useState(false);
122771
122892
  const { appointmentData, runId } = useLangGraphContext();
122772
122893
  const contentStringNotFormated = getContentString(message.content);
@@ -122783,7 +122904,7 @@ function AssistantMessage({ message, isLoading, handleRegenerate, isLastAiMessag
122783
122904
  const hasActualContent = contentString.length > 0;
122784
122905
  if (!isLastMessage && !isToolResult && !contentString.length && !message.content && !reasoning)
122785
122906
  return null;
122786
- return jsxRuntimeExports.jsx("div", { className: "omniscribe_assistant-message-container", onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: isToolResult ? jsxRuntimeExports.jsx(ToolResult, { message }) : jsxRuntimeExports.jsxs("div", { className: "omniscribe_assistant-message-calls-container", children: [isLastMessage && isLoading && !firstTokenReceived && reasoning && jsxRuntimeExports.jsx(AssistantMessageLoading, {}), contentString.length > 0 && jsxRuntimeExports.jsx("div", { className: "omniscribe_assistant-markdown-container", children: jsxRuntimeExports.jsx(MarkdownText, { children: contentString }) }), jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: hasAnthropicToolCalls && isLastMessage && jsxRuntimeExports.jsx(ToolCalls, { toolCalls: anthropicStreamedToolCalls }) || hasToolCalls && isLastMessage && jsxRuntimeExports.jsx(ToolCalls, { toolCalls: message.tool_calls }) }), jsxRuntimeExports.jsx(CustomComponent, { message, thread }), hasActualContent && jsxRuntimeExports.jsxs("div", { className: "omniscribe_assistant-commands-container", children: [jsxRuntimeExports.jsx(BranchSwitcher, { branch: meta?.branch, branchOptions: meta?.branchOptions, onSelect: (branch) => thread.setBranch(branch), isLoading }), jsxRuntimeExports.jsx(CommandBar, { disabled: hasAnthropicToolCalls && isLastMessage || hasToolCalls, content: contentString, isLoading, isAiMessage: true, handleRegenerate: () => handleRegenerate(parentCheckpoint), isLastMessage: isLastAiMessage, isHovered, runId: runId || void 0 })] })] }) });
122907
+ return jsxRuntimeExports.jsx("div", { className: "omniscribe_assistant-message-container", onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: isToolResult ? jsxRuntimeExports.jsx(ToolResult, { message }) : jsxRuntimeExports.jsxs("div", { className: "omniscribe_assistant-message-calls-container", children: [isLastMessage && isLoading && contentString.length === 0 && jsxRuntimeExports.jsx(AssistantMessageLoading, {}), contentString.length > 0 && jsxRuntimeExports.jsx("div", { className: "omniscribe_assistant-markdown-container", children: jsxRuntimeExports.jsx(MarkdownText, { children: contentString }) }), jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: hasAnthropicToolCalls && isLastMessage && jsxRuntimeExports.jsx(ToolCalls, { toolCalls: anthropicStreamedToolCalls }) || hasToolCalls && isLastMessage && jsxRuntimeExports.jsx(ToolCalls, { toolCalls: message.tool_calls }) }), jsxRuntimeExports.jsx(CustomComponent, { message, thread }), hasActualContent && jsxRuntimeExports.jsxs("div", { className: "omniscribe_assistant-commands-container", children: [jsxRuntimeExports.jsx(BranchSwitcher, { branch: meta?.branch, branchOptions: meta?.branchOptions, onSelect: (branch) => thread.setBranch(branch), isLoading }), jsxRuntimeExports.jsx(CommandBar, { disabled: hasAnthropicToolCalls && isLastMessage || hasToolCalls, content: contentString, isLoading, isAiMessage: true, handleRegenerate: () => handleRegenerate(parentCheckpoint), isLastMessage: isLastAiMessage, isHovered, runId: runId || void 0 })] })] }) });
122787
122908
  }
122788
122909
 
122789
122910
  const textareaVariants = cva("omniscribe_textarea-general", {
@@ -122802,6 +122923,102 @@ const Textarea = reactExports.forwardRef(({ className, variant, ...props }, ref)
122802
122923
  });
122803
122924
  Textarea.displayName = "Textarea";
122804
122925
 
122926
+ const MessageImagesContext = reactExports.createContext(void 0);
122927
+ const MessageImagesProvider = ({ children }) => {
122928
+ const [messageImages, setMessageImagesMap] = reactExports.useState(/* @__PURE__ */ new Map());
122929
+ const messageImagesRef = reactExports.useRef(messageImages);
122930
+ reactExports.useEffect(() => {
122931
+ messageImagesRef.current = messageImages;
122932
+ });
122933
+ reactExports.useEffect(() => {
122934
+ return () => {
122935
+ messageImagesRef.current.forEach((images) => {
122936
+ images.forEach((image) => {
122937
+ if (image.previewUrl) {
122938
+ URL.revokeObjectURL(image.previewUrl);
122939
+ }
122940
+ });
122941
+ });
122942
+ };
122943
+ }, []);
122944
+ const setMessageImages = reactExports.useCallback((messageId, images) => {
122945
+ setMessageImagesMap((prev) => {
122946
+ const newMap = new Map(prev);
122947
+ newMap.set(messageId, images);
122948
+ return newMap;
122949
+ });
122950
+ }, []);
122951
+ const getMessageImages = reactExports.useCallback((messageId) => {
122952
+ return messageImages.get(messageId) || [];
122953
+ }, [messageImages]);
122954
+ const clearMessageImages = reactExports.useCallback((messageId) => {
122955
+ const images = messageImages.get(messageId);
122956
+ if (images) {
122957
+ images.forEach((image) => {
122958
+ if (image.previewUrl) {
122959
+ URL.revokeObjectURL(image.previewUrl);
122960
+ }
122961
+ });
122962
+ }
122963
+ setMessageImagesMap((prev) => {
122964
+ const newMap = new Map(prev);
122965
+ newMap.delete(messageId);
122966
+ return newMap;
122967
+ });
122968
+ }, [messageImages]);
122969
+ const value = reactExports.useMemo(() => ({
122970
+ messageImages,
122971
+ setMessageImages,
122972
+ getMessageImages,
122973
+ clearMessageImages
122974
+ }), [messageImages, setMessageImages, getMessageImages, clearMessageImages]);
122975
+ return jsxRuntimeExports.jsx(MessageImagesContext.Provider, { value, children });
122976
+ };
122977
+
122978
+ const useMessageImages = () => {
122979
+ const context = reactExports.useContext(MessageImagesContext);
122980
+ if (!context) {
122981
+ throw new Error("useMessageImages must be used within a MessageImagesProvider");
122982
+ }
122983
+ return context;
122984
+ };
122985
+
122986
+ const DocumentIcon = ({ width = 24, height = 24, className }) => {
122987
+ return jsxRuntimeExports.jsxs("svg", { fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", width, height, viewBox: "0 0 24 24", className, children: [jsxRuntimeExports.jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), jsxRuntimeExports.jsx("polyline", { points: "14 2 14 8 20 8" }), jsxRuntimeExports.jsx("line", { x1: "16", y1: "13", x2: "8", y2: "13" }), jsxRuntimeExports.jsx("line", { x1: "16", y1: "17", x2: "8", y2: "17" }), jsxRuntimeExports.jsx("polyline", { points: "10 9 9 9 8 9" })] });
122988
+ };
122989
+
122990
+ const MessageImages = ({ uploadedFiles, className = "" }) => {
122991
+ const [loadedImages, setLoadedImages] = reactExports.useState(/* @__PURE__ */ new Set());
122992
+ const [failedImages, setFailedImages] = reactExports.useState(/* @__PURE__ */ new Set());
122993
+ const { formatMessage } = useIntl();
122994
+ const handleImageLoad = (index) => {
122995
+ setLoadedImages((prev) => new Set(prev).add(index));
122996
+ };
122997
+ const handleImageError = (index) => {
122998
+ setFailedImages((prev) => new Set(prev).add(index));
122999
+ };
123000
+ if (uploadedFiles.length === 0) {
123001
+ return null;
123002
+ }
123003
+ const imageFiles = uploadedFiles.filter((file) => file.type === "image");
123004
+ const documentFiles = uploadedFiles.filter((file) => file.type === "document");
123005
+ if (imageFiles.length === 0 && documentFiles.length === 0) {
123006
+ return null;
123007
+ }
123008
+ return jsxRuntimeExports.jsxs("div", { className: `omniscribe_message-files ${className}`, children: [imageFiles.length > 0 && jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-images", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_message-images-grid", children: imageFiles.map((file, index) => {
123009
+ const imageUrl = file.previewUrl;
123010
+ if (!imageUrl) {
123011
+ return jsxRuntimeExports.jsx("div", { className: "omniscribe_message-image-error", title: "Image could not be displayed", children: jsxRuntimeExports.jsx("span", { children: "📷" }) }, file.id);
123012
+ }
123013
+ const isLoaded = loadedImages.has(index);
123014
+ const hasFailed = failedImages.has(index);
123015
+ return jsxRuntimeExports.jsxs("div", { className: `omniscribe_message-image-container ${imageFiles.length > 1 ? "omniscribe_message-image-container-multiple" : "omniscribe_message-image-container-single"}`, children: [!isLoaded && !hasFailed && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-image-loading", children: jsxRuntimeExports.jsx("span", { children: "Loading..." }) }), hasFailed ? jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-image-error", title: "Failed to load image", children: [jsxRuntimeExports.jsx("span", { children: "📷" }), jsxRuntimeExports.jsx("small", { children: "Image unavailable" })] }) : jsxRuntimeExports.jsx("img", { src: imageUrl, alt: `Attached image ${index + 1}`, className: "omniscribe_message-image", onLoad: () => handleImageLoad(index), onError: () => handleImageError(index), title: `Image ${index + 1}`, style: { display: isLoaded ? "block" : "none" } }), imageFiles.length > 1 && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-image-counter", children: index + 1 })] }, file.id);
123016
+ }) }), imageFiles.length > 1 && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-images-count", children: formatMessage({ id: "{count} images", defaultMessage: "{count} images" }, { count: imageFiles.length }) })] }), documentFiles.length > 0 && jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-documents", children: [documentFiles.map((file) => jsxRuntimeExports.jsxs("div", { className: "omniscribe_message-document", title: `Document: ${file.file.name}`, children: [jsxRuntimeExports.jsx(DocumentIcon, { width: 24, height: 24 }), jsxRuntimeExports.jsx("div", { className: "omniscribe_message-document-info", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_message-document-name", children: file.file.name || "Unknown file" }) })] }, file.id)), documentFiles.length > 1 && jsxRuntimeExports.jsx("div", { className: "omniscribe_message-documents-count", children: formatMessage({
123017
+ id: "{count} documents",
123018
+ defaultMessage: "{count} documents"
123019
+ }, { count: documentFiles.length }) })] })] });
123020
+ };
123021
+
122805
123022
  function EditableContent({ value, setValue, onSubmit, chatHistoryOpen = false }) {
122806
123023
  const handleKeyDown = (e) => {
122807
123024
  if ((e.metaKey || e.ctrlKey) && e.key === "Enter") {
@@ -122819,6 +123036,9 @@ function HumanMessage({ message, isLoading, isLastHumanMessage = false, chatHist
122819
123036
  const [isEditing, setIsEditing] = reactExports.useState(false);
122820
123037
  const [value, setValue] = reactExports.useState("");
122821
123038
  const contentString = getContentString(message.content);
123039
+ const { getMessageImages } = useMessageImages();
123040
+ const messageImages = getMessageImages(message.id || "");
123041
+ const hasMessageFiles = messageImages.length > 0;
122822
123042
  const handleSubmitEdit = () => {
122823
123043
  setIsEditing(false);
122824
123044
  const newMessage = { type: "human", content: value };
@@ -122836,7 +123056,7 @@ function HumanMessage({ message, isLoading, isLastHumanMessage = false, chatHist
122836
123056
  }
122837
123057
  });
122838
123058
  };
122839
- return jsxRuntimeExports.jsx("div", { className: `omniscribe_human-message-container ${isEditing ? "omniscribe_human-message-container-editing" : "omniscribe_human-message-container-no-editing"}`, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-subcontainer ${isEditing && "omniscribe_human-message-subcontainer-editing"}`, children: [isEditing ? jsxRuntimeExports.jsx(EditableContent, { value, setValue, onSubmit: handleSubmitEdit, chatHistoryOpen }) : jsxRuntimeExports.jsx("p", { className: "omniscribe_human-message-content-text", children: contentString }), jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-command-container ${isEditing && "omniscribe_human-message-command-container-editing"}`, children: [jsxRuntimeExports.jsx(BranchSwitcher, { branch: meta?.branch, branchOptions: meta?.branchOptions, onSelect: (branch) => thread.setBranch(branch), isLoading }), jsxRuntimeExports.jsx(CommandBar, { isLoading, content: contentString, isEditing, setIsEditing: (c) => {
123059
+ return jsxRuntimeExports.jsx("div", { className: `omniscribe_human-message-container ${isEditing ? "omniscribe_human-message-container-editing" : "omniscribe_human-message-container-no-editing"}`, onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-subcontainer ${isEditing && "omniscribe_human-message-subcontainer-editing"}`, children: [isEditing ? jsxRuntimeExports.jsx(EditableContent, { value, setValue, onSubmit: handleSubmitEdit, chatHistoryOpen }) : jsxRuntimeExports.jsxs("div", { className: "omniscribe_human-message-content", children: [hasMessageFiles && jsxRuntimeExports.jsx(MessageImages, { uploadedFiles: messageImages }), jsxRuntimeExports.jsx("p", { className: "omniscribe_human-message-content-text", children: contentString })] }), jsxRuntimeExports.jsxs("div", { className: `omniscribe_human-message-command-container ${isEditing && "omniscribe_human-message-command-container-editing"}`, children: [jsxRuntimeExports.jsx(BranchSwitcher, { branch: meta?.branch, branchOptions: meta?.branchOptions, onSelect: (branch) => thread.setBranch(branch), isLoading }), jsxRuntimeExports.jsx(CommandBar, { isLoading, content: contentString, isEditing, setIsEditing: (c) => {
122840
123060
  if (c) {
122841
123061
  setValue(contentString);
122842
123062
  }
@@ -123427,7 +123647,7 @@ const GradientBox = ({ children, colors, className = "omniscribe_gradient-box" }
123427
123647
  return jsxRuntimeExports.jsx("div", { className, style: gradient, children });
123428
123648
  };
123429
123649
 
123430
- const PredefinedQuestions = ({ handleSubmit, messages }) => {
123650
+ const PredefinedQuestions = ({ handleSubmit, messages, isAutoSendingSummary }) => {
123431
123651
  const contentClassName = "text-p omniscribe_predefined-questions-content";
123432
123652
  const { formatMessage } = useIntl();
123433
123653
  const data = [
@@ -123437,58 +123657,17 @@ const PredefinedQuestions = ({ handleSubmit, messages }) => {
123437
123657
  }),
123438
123658
  formatMessage({ id: "What shouldn't I overlook today?" })
123439
123659
  ];
123660
+ if (isAutoSendingSummary || messages > 0) {
123661
+ return null;
123662
+ }
123440
123663
  return jsxRuntimeExports.jsxs("div", { className: "omniscribe_predefined-questions-container", children: [jsxRuntimeExports.jsx("span", { className: "text-p-semi omniscribe_predefined-questions-span omniscribe_predefined-title", children: formatMessage({
123441
123664
  id: "Hello Doctor, I'm your personal assistant. How can I help you today?"
123442
- }) }), !messages && data.map((text) => jsxRuntimeExports.jsx("div", { className: "omniscribe_predefined-questions-msg-container whitespace-wrap", children: jsxRuntimeExports.jsx(GradientBox, { children: jsxRuntimeExports.jsx(Button, { onClick: (e) => handleSubmit(e, text), className: contentClassName, rounded: "omniscribe_predefined-questions-btn-rounded", whitespace: "", variant: "empty", size: "empty", children: text }) }) }, text))] });
123665
+ }) }), data.map((text) => jsxRuntimeExports.jsx("div", { className: "omniscribe_predefined-questions-msg-container whitespace-wrap", children: jsxRuntimeExports.jsx(GradientBox, { children: jsxRuntimeExports.jsx(Button, { onClick: (e) => handleSubmit(e, text), className: contentClassName, rounded: "omniscribe_predefined-questions-btn-rounded", whitespace: "", variant: "empty", size: "empty", children: text }) }) }, text))] });
123443
123666
  };
123444
123667
 
123445
- const MousePointerClickIcon = ({ className, width = 24, height = 24 }) => {
123446
- return jsxRuntimeExports.jsx("svg", { width, height, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", className, children: jsxRuntimeExports.jsx("path", { d: "M14 4.1L12 6M5.1 8l-2.9-.8M6 12l-1.9 2M7.2 2.2L8 5.1M9.037 9.69a.498.498 0 01.653-.653l11 4.5a.5.5 0 01-.074.949l-4.349 1.041a1 1 0 00-.74.739l-1.04 4.35a.5.5 0 01-.95.074z" }) });
123447
- };
123448
-
123449
- const sleep = async (ms) => {
123450
- return new Promise((resolve) => setTimeout(resolve, ms));
123451
- };
123452
-
123453
- const Modal = ({ visible, setModalVisible, className = "", title, children, scroll = true }) => {
123454
- const [show, setShow] = reactExports.useState(false);
123455
- const popupRef = reactExports.useRef(null);
123456
- const { dragHandlers, dragStyle } = useDraggable(!visible);
123457
- const handleCloseModal = async () => {
123458
- setShow(false);
123459
- await sleep(350);
123460
- setModalVisible(false);
123461
- };
123462
- const handleOverlayClick = (e) => {
123463
- if (e.target === e.currentTarget) {
123464
- handleCloseModal();
123465
- }
123466
- };
123467
- reactExports.useEffect(() => {
123468
- if (visible)
123469
- setTimeout(() => setShow(true), 10);
123470
- }, [visible]);
123471
- if (!visible)
123472
- return null;
123473
- return jsxRuntimeExports.jsx("div", { className: "omniscribe_modal-overlay", onClick: handleOverlayClick, children: jsxRuntimeExports.jsx("div", { className: `omniscribe_modal-container ${show ? "omniscribe_modal-container-show" : "omniscribe_modal-container-hide"} ${className} ${scroll ? "omniscribe_modal-container-scroll" : ""}`, ref: popupRef, onClick: (e) => e.stopPropagation(), style: dragStyle, children: jsxRuntimeExports.jsxs("div", { className: "omniscribe_modal-subcontainer", children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_modal-title-container", onMouseDown: dragHandlers.onMouseDown, children: [jsxRuntimeExports.jsx("h2", { className: "omniscribe_modal-title", children: title }), jsxRuntimeExports.jsx("button", { id: "closeModalDictionaryButton", className: "omniscribe_modal-button", "aria-label": "Cerrar", onClick: handleCloseModal, children: jsxRuntimeExports.jsx(XIcon, { strokeWidth: 4 }) })] }), children] }) }) });
123474
- };
123475
-
123476
- const cn = (...classes) => {
123477
- return classes.filter(Boolean).join(" ");
123478
- };
123479
- const SourcesModal = ({ isOpen, onClose, sources, selectedSources, onToggleSource, onSave, onSelectAll, setModalVisible, isSaving = false }) => {
123668
+ const SummaryLoading = () => {
123480
123669
  const { formatMessage } = useIntl();
123481
- if (!isOpen)
123482
- return null;
123483
- return jsxRuntimeExports.jsx(Modal, { setModalVisible, className: "omniscribe_modal-sources", visible: isOpen, title: formatMessage({ id: "My source library" }), children: jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_header_description", children: [jsxRuntimeExports.jsx(MousePointerClickIcon, { width: 16, height: 16, className: "omniscribe_icon_blue" }), formatMessage({
123484
- id: `Specify the sources and resources that should guide the AI's responses.`
123485
- })] }), jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_filter_section", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_filter_buttons", children: jsxRuntimeExports.jsx(Button, { className: "omniscribe_button_all", onClick: onSelectAll, children: formatMessage({ id: "All" }) }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_sources_count", children: formatMessage({
123486
- id: "sourcesSelected",
123487
- defaultMessage: "{selected} of {total} selected"
123488
- }, {
123489
- selected: selectedSources.length,
123490
- total: sources.length
123491
- }) })] }), jsxRuntimeExports.jsx("div", { className: "omniscribe_sources_container scrollbar-pretty", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_sources_list", children: sources.map((source) => jsxRuntimeExports.jsx("div", { onClick: () => onToggleSource(source), className: cn("omniscribe_source_item", selectedSources.some((s) => s.url === source.url) && "omniscribe_source_item_selected"), children: jsxRuntimeExports.jsx("div", { className: "omniscribe_source_content", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_source_title_container", children: jsxRuntimeExports.jsx("a", { href: source.url, target: "_blank", rel: "noopener noreferrer", onClick: (e) => e.stopPropagation(), className: "omniscribe_source_link", children: formatMessage({ id: source.title }) }) }) }) }, source.title)) }) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_footer", children: [jsxRuntimeExports.jsx(Button, { className: "omniscribe_button_outline", onClick: onClose, disabled: isSaving, children: formatMessage({ id: "Cancel" }) }), jsxRuntimeExports.jsx(Button, { className: "omniscribe_button_primary", onClick: onSave, disabled: isSaving, children: isSaving ? formatMessage({ id: "Saving" }) : formatMessage({ id: "Save" }) })] })] })] }) });
123670
+ return jsxRuntimeExports.jsxs("div", { className: "omniscribe_auto-summary-container", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_auto-summary-text", children: formatMessage({ id: "Generating patient summary" }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_auto-summary-loading", children: jsxRuntimeExports.jsx("div", { className: "omniscribe_loading-dots", children: jsxRuntimeExports.jsx("span", {}) }) })] });
123492
123671
  };
123493
123672
 
123494
123673
  var ChatSourceCategory;
@@ -123498,10 +123677,6 @@ var ChatSourceCategory;
123498
123677
  ChatSourceCategory2["MedicalResearchDomains"] = "medical_research_domains";
123499
123678
  })(ChatSourceCategory || (ChatSourceCategory = {}));
123500
123679
 
123501
- const BookTextIcon = ({ className, width = 16, height = 16, stroke = "currentColor" }) => {
123502
- return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M2.66699 13V2.99998C2.66699 2.55795 2.84259 2.13403 3.15515 1.82147C3.46771 1.50891 3.89163 1.33331 4.33366 1.33331H12.667C12.8438 1.33331 13.0134 1.40355 13.1384 1.52858C13.2634 1.6536 13.3337 1.82317 13.3337 1.99998V14C13.3337 14.1768 13.2634 14.3464 13.1384 14.4714C13.0134 14.5964 12.8438 14.6666 12.667 14.6666H4.33366C3.89163 14.6666 3.46771 14.4911 3.15515 14.1785C2.84259 13.8659 2.66699 13.442 2.66699 13ZM2.66699 13C2.66699 12.558 2.84259 12.134 3.15515 11.8215C3.46771 11.5089 3.89163 11.3333 4.33366 11.3333H13.3337", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M5.33301 8.66667L7.99967 4L10.6663 8.66667", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M6.06641 7.33331H9.86641", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
123503
- };
123504
-
123505
123680
  class InputValidator {
123506
123681
  // JSON Validation
123507
123682
  static validateJson(input) {
@@ -124243,58 +124418,56 @@ const getCurrentDateTime = () => {
124243
124418
  return `${iso_local} (${human_readable})`;
124244
124419
  };
124245
124420
 
124246
- const hasMessageContent = (message) => {
124247
- return Array.isArray(message.content) ? message.content.length > 0 : !!message.content;
124421
+ const CloseIcon = ({ width = 24, height = 24, className }) => {
124422
+ return jsxRuntimeExports.jsxs("svg", { fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", width, height, viewBox: "0 0 24 24", className, children: [jsxRuntimeExports.jsx("path", { d: "M18 6L6 18" }), jsxRuntimeExports.jsx("path", { d: "M6 6l12 12" })] });
124248
124423
  };
124249
- const getCurrentResponseMessages = (messages) => {
124250
- let lastHumanIndex = -1;
124251
- for (let index = messages.length - 1; index >= 0; index -= 1) {
124252
- if (messages[index].type === "human") {
124253
- lastHumanIndex = index;
124254
- break;
124255
- }
124256
- }
124257
- return messages.slice(lastHumanIndex + 1);
124258
- };
124259
- const currentResponseHasContent = (messages) => {
124260
- return getCurrentResponseMessages(messages).some((msg) => {
124261
- if (msg.type !== "ai")
124262
- return false;
124263
- return hasMessageContent(msg);
124264
- });
124265
- };
124266
- const getLastAiMessage = (messages) => {
124267
- if (!messages?.length)
124424
+
124425
+ const FilePreview = ({ files, onRemove, chatHistoryOpen = false }) => {
124426
+ if (files.length === 0)
124268
124427
  return null;
124269
- const lastMessage = messages[messages.length - 1];
124270
- return lastMessage.type === "ai" ? lastMessage : null;
124428
+ const imageFiles = files.filter((f) => f.type === "image");
124429
+ const documentFiles = files.filter((f) => f.type === "document");
124430
+ return jsxRuntimeExports.jsxs("div", { className: `omniscribe_file-preview-container ${chatHistoryOpen ? "omniscribe_file-preview-container-history-open" : ""}`, children: [documentFiles.map((file) => jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-preview-document", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_file-preview-document-icon", children: jsxRuntimeExports.jsx(DocumentIcon, { width: 24, height: 24 }) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-preview-document-info", children: [jsxRuntimeExports.jsx("span", { className: "omniscribe_file-preview-document-title", children: file.file.name }), jsxRuntimeExports.jsx("span", { className: "omniscribe_file-preview-document-type", children: getFileExtension(file.file.name).toUpperCase() })] }), jsxRuntimeExports.jsx("button", { type: "button", className: "omniscribe_file-preview-remove-btn", onClick: () => onRemove(file.id), "aria-label": "Remove file", children: jsxRuntimeExports.jsx(CloseIcon, { width: 12, height: 12 }) })] }, file.id)), imageFiles.map((file) => jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-preview-image", children: [file.previewUrl ? jsxRuntimeExports.jsx("img", { src: file.previewUrl, alt: file.file.name, className: "omniscribe_file-preview-image-img" }) : jsxRuntimeExports.jsx("div", { className: "omniscribe_file-preview-image-placeholder" }), jsxRuntimeExports.jsx("button", { type: "button", className: "omniscribe_file-preview-remove-btn omniscribe_file-preview-remove-btn--image", onClick: () => onRemove(file.id), "aria-label": "Remove image", children: jsxRuntimeExports.jsx(CloseIcon, { width: 10, height: 10 }) })] }, file.id))] });
124271
124431
  };
124432
+ function getFileExtension(filename) {
124433
+ const parts = filename.split(".");
124434
+ return parts.length > 1 ? parts[parts.length - 1] : "";
124435
+ }
124272
124436
 
124273
- const useMessageLoadingState = (messages) => {
124274
- const [firstTokenReceived, setFirstTokenReceived] = reactExports.useState(false);
124437
+ const WarningIcon = ({ className, width = 24, height = 24, strokeWidth = 2 }) => {
124438
+ return jsxRuntimeExports.jsxs("svg", { fill: "none", width, height, viewBox: "0 0 24 24", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth, className, children: [jsxRuntimeExports.jsx("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }), jsxRuntimeExports.jsx("path", { d: "M12 9v4" }), jsxRuntimeExports.jsx("path", { d: "m12 17 .01 0" })] });
124439
+ };
124440
+
124441
+ function FileLimitBanner({ message, onClose, isVisible }) {
124275
124442
  reactExports.useEffect(() => {
124276
- const lastAiMessage = getLastAiMessage(messages);
124277
- if (!lastAiMessage) {
124278
- setFirstTokenReceived(false);
124279
- return;
124443
+ if (isVisible) {
124444
+ const timer = setTimeout(() => {
124445
+ onClose();
124446
+ }, 5e3);
124447
+ return () => clearTimeout(timer);
124280
124448
  }
124281
- const currentHasContent = currentResponseHasContent(messages);
124282
- setFirstTokenReceived((prev) => {
124283
- if (currentHasContent && !prev) {
124284
- return true;
124285
- }
124286
- if (!currentHasContent && prev) {
124287
- return false;
124288
- }
124289
- return prev;
124290
- });
124291
- }, [messages]);
124292
- return {
124293
- firstTokenReceived,
124294
- setFirstTokenReceived
124295
- };
124449
+ }, [isVisible]);
124450
+ if (!isVisible)
124451
+ return null;
124452
+ return jsxRuntimeExports.jsx("div", { className: "omniscribe_file-limit-banner", children: jsxRuntimeExports.jsxs("div", { className: "omniscribe_file-limit-banner-content", children: [jsxRuntimeExports.jsx("div", { className: "omniscribe_file-limit-banner-icon", children: jsxRuntimeExports.jsx(WarningIcon, { width: 20, height: 20 }) }), jsxRuntimeExports.jsx("span", { className: "omniscribe_file-limit-banner-message", children: message }), jsxRuntimeExports.jsx("button", { className: "omniscribe_file-limit-banner-close", onClick: onClose, type: "button", children: jsxRuntimeExports.jsx(XIcon, {}) })] }) });
124453
+ }
124454
+
124455
+ const MAX_FILES = 5;
124456
+ const MAX_FILE_SIZE = 5 * 1024 * 1024;
124457
+ const SUPPORTED_FILE_TYPES = [
124458
+ // Images
124459
+ "image/jpeg",
124460
+ "image/jpg",
124461
+ "image/png",
124462
+ "image/gif",
124463
+ "image/webp",
124464
+ // 'image/svg+xml', // Removed: SVG can contain malicious JavaScript
124465
+ // Documents
124466
+ "application/pdf"
124467
+ ];
124468
+ const isFileTypeSupported = (fileType) => {
124469
+ return SUPPORTED_FILE_TYPES.includes(fileType) || fileType.startsWith("image/");
124296
124470
  };
124297
-
124298
124471
  function StickyToBottomContent(props) {
124299
124472
  const context = useStickToBottomContext();
124300
124473
  return jsxRuntimeExports.jsxs("div", { ref: context.scrollRef, className: props.className, children: [jsxRuntimeExports.jsx("div", { ref: context.contentRef, className: props.contentClassName, children: props.content }), props.footer] });
@@ -124306,6 +124479,23 @@ function ScrollToBottom$1(props) {
124306
124479
  return null;
124307
124480
  return jsxRuntimeExports.jsxs(Button, { variant: "outline", className: props.className, onClick: () => scrollToBottom(), children: [jsxRuntimeExports.jsx(ArrowDownIcon, { className: "omniscribe_thread-down-btn" }), jsxRuntimeExports.jsx("span", { children: formatMessage({ id: "Scroll down" }) })] });
124308
124481
  }
124482
+ function getAutoSummarySessionKey(patientId, doctorId) {
124483
+ const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
124484
+ return `sofia-auto-summary:${patientId ?? ""}:${doctorId ?? ""}:${today}`;
124485
+ }
124486
+ function isAutoSummarySent(patientId, doctorId) {
124487
+ try {
124488
+ return sessionStorage.getItem(getAutoSummarySessionKey(patientId, doctorId)) === "true";
124489
+ } catch {
124490
+ return false;
124491
+ }
124492
+ }
124493
+ function markAutoSummarySent(patientId, doctorId) {
124494
+ try {
124495
+ sessionStorage.setItem(getAutoSummarySessionKey(patientId, doctorId), "true");
124496
+ } catch {
124497
+ }
124498
+ }
124309
124499
  const Thread = () => {
124310
124500
  const { appointmentData, chatHistoryOpen } = useLangGraphContext();
124311
124501
  const { disableAllActions } = useApiConfigContext();
@@ -124317,27 +124507,31 @@ const Thread = () => {
124317
124507
  });
124318
124508
  const chatApi = useChatApi();
124319
124509
  const stream = useStreamContext();
124320
- const { availableSources, sources: settingsSources, updateSources } = useSettingsContext();
124510
+ const { availableSources, sources: settingsSources, summary } = useSettingsContext();
124321
124511
  const messages = stream.messages;
124322
124512
  const isLoading = stream.isLoading;
124323
- const { firstTokenReceived, setFirstTokenReceived } = useMessageLoadingState(messages);
124324
124513
  const lastError = reactExports.useRef(void 0);
124325
124514
  const textareaRef = reactExports.useRef(null);
124326
- const [isSourcesModalOpen, setIsSourcesModalOpen] = reactExports.useState(false);
124327
- const [isSavingSources, setIsSavingSources] = reactExports.useState(false);
124515
+ const fileInputRef = reactExports.useRef(null);
124516
+ const handleSubmitRef = reactExports.useRef(null);
124517
+ const [uploadedFiles, setUploadedFiles] = reactExports.useState([]);
124518
+ const [showFileLimitBanner, setShowFileLimitBanner] = reactExports.useState(false);
124519
+ const [bannerMessage, setBannerMessage] = reactExports.useState("");
124520
+ const uploadedFilesRef = reactExports.useRef([]);
124521
+ const formatMessageRef = reactExports.useRef(null);
124522
+ const autoSummaryLoadingStarted = reactExports.useRef(false);
124523
+ const [autoSummaryCancelled, setAutoSummaryCancelled] = reactExports.useState(false);
124524
+ const [isAutoSendingSummary, setIsAutoSendingSummary] = reactExports.useState(false);
124328
124525
  const [inputIsValid, setInputIsValid] = reactExports.useState(() => InputValidator.validate(input.value, { maxLength: inputMaxLength }).isValid);
124526
+ reactExports.useEffect(() => {
124527
+ uploadedFilesRef.current = uploadedFiles;
124528
+ }, [uploadedFiles]);
124329
124529
  const [selectedSources, setSelectedSources] = reactExports.useState(() => Array.isArray(settingsSources) ? settingsSources : availableSources);
124330
124530
  const { setToastState } = useToastContext();
124331
- const handleToggleSource = (source) => {
124332
- setSelectedSources((prev) => prev.some((p) => p.url === source.url) ? prev.filter((p) => p.url !== source.url) : [...prev, source]);
124333
- };
124334
- const handleSelectAll = () => {
124335
- if (selectedSources.length === availableSources.length) {
124336
- setSelectedSources([]);
124337
- } else {
124338
- setSelectedSources([...availableSources]);
124339
- }
124340
- };
124531
+ reactExports.useEffect(() => {
124532
+ const sources = Array.isArray(settingsSources) ? settingsSources : availableSources;
124533
+ setSelectedSources(sources);
124534
+ }, [settingsSources, availableSources]);
124341
124535
  const handleTranscriptionUpdate = (text) => {
124342
124536
  const newText = input.value.length ? `${input.value} ${text}` : text;
124343
124537
  input.setValue(newText);
@@ -124347,20 +124541,107 @@ const Thread = () => {
124347
124541
  input.onChange(e);
124348
124542
  setInputIsValid(InputValidator.validate(e.target.value, { maxLength: inputMaxLength }).isValid);
124349
124543
  };
124350
- const handleSaveSources = async () => {
124351
- if (isSavingSources)
124544
+ const handleAttachClick = () => {
124545
+ fileInputRef.current?.click();
124546
+ };
124547
+ const handleFileSelect = async (e) => {
124548
+ const files = e.target.files;
124549
+ if (!files)
124550
+ return;
124551
+ const filesArray = Array.from(files);
124552
+ const totalFiles = uploadedFiles.length + filesArray.length;
124553
+ const oversizedFiles = filesArray.filter((file) => file.size > MAX_FILE_SIZE);
124554
+ const hasOversizedFiles = oversizedFiles.length > 0;
124555
+ const unsupportedFiles = filesArray.filter((file) => !isFileTypeSupported(file.type));
124556
+ const hasUnsupportedFiles = unsupportedFiles.length > 0;
124557
+ const exceedsFileCount = totalFiles > MAX_FILES;
124558
+ let message = "";
124559
+ if (hasUnsupportedFiles) {
124560
+ message = formatMessage({ id: "Unsupported file format" });
124561
+ } else if (hasOversizedFiles) {
124562
+ message = formatMessage({ id: "File is too large. Maximum size is 5MB" });
124563
+ } else if (exceedsFileCount) {
124564
+ message = formatMessage({ id: "Maximum number of files is 5" });
124565
+ }
124566
+ if (hasUnsupportedFiles || hasOversizedFiles || exceedsFileCount) {
124567
+ setBannerMessage(message);
124568
+ setShowFileLimitBanner(true);
124569
+ if (fileInputRef.current) {
124570
+ fileInputRef.current.value = "";
124571
+ }
124352
124572
  return;
124353
- setIsSavingSources(true);
124354
- try {
124355
- await updateSources(selectedSources);
124356
- setIsSourcesModalOpen(false);
124357
- } catch (error) {
124358
- logger.error("Error saving sources:", error);
124359
- } finally {
124360
- setIsSavingSources(false);
124361
124573
  }
124574
+ const newFiles = [];
124575
+ for (const file of filesArray) {
124576
+ try {
124577
+ const isImage = file.type.startsWith("image/");
124578
+ const uploadedFile = {
124579
+ id: v4(),
124580
+ file,
124581
+ type: isImage ? "image" : "document"
124582
+ };
124583
+ if (isImage) {
124584
+ uploadedFile.previewUrl = URL.createObjectURL(file);
124585
+ }
124586
+ const base64Data = await fileToBase64(file);
124587
+ uploadedFile.processedData = isImage ? {
124588
+ type: "image",
124589
+ source_type: "base64",
124590
+ data: base64Data,
124591
+ mime_type: file.type
124592
+ } : {
124593
+ type: "file",
124594
+ source_type: "base64",
124595
+ data: base64Data,
124596
+ mime_type: file.type,
124597
+ filename: file.name
124598
+ };
124599
+ newFiles.push(uploadedFile);
124600
+ } catch (error) {
124601
+ logger.error("Failed to process file:", file.name, error);
124602
+ newFiles.forEach((f) => {
124603
+ if (f.previewUrl) {
124604
+ URL.revokeObjectURL(f.previewUrl);
124605
+ }
124606
+ });
124607
+ setBannerMessage(formatMessage({ id: "Error processing file" }));
124608
+ setShowFileLimitBanner(true);
124609
+ if (fileInputRef.current) {
124610
+ fileInputRef.current.value = "";
124611
+ }
124612
+ return;
124613
+ }
124614
+ }
124615
+ setUploadedFiles((prev) => [...prev, ...newFiles]);
124616
+ if (fileInputRef.current) {
124617
+ fileInputRef.current.value = "";
124618
+ }
124619
+ };
124620
+ const handleFileRemove = (id) => {
124621
+ setUploadedFiles((prev) => {
124622
+ const fileToRemove = prev.find((f) => f.id === id);
124623
+ if (fileToRemove?.previewUrl) {
124624
+ URL.revokeObjectURL(fileToRemove.previewUrl);
124625
+ }
124626
+ return prev.filter((f) => f.id !== id);
124627
+ });
124362
124628
  };
124363
- const handleSubmit = (e, predefinedText) => {
124629
+ const fileToBase64 = (file) => {
124630
+ return new Promise((resolve, reject) => {
124631
+ const reader = new FileReader();
124632
+ reader.onload = () => {
124633
+ const base64String = reader.result;
124634
+ const base64Data = base64String.split(",")[1];
124635
+ resolve(base64Data);
124636
+ };
124637
+ reader.onerror = (error) => {
124638
+ logger.error("Failed to read file:", file.name, error);
124639
+ reject(new Error(`Failed to read file: ${file.name}`));
124640
+ };
124641
+ reader.readAsDataURL(file);
124642
+ });
124643
+ };
124644
+ const handleSubmit = (e, predefinedText, isAutoSummary) => {
124364
124645
  e.preventDefault();
124365
124646
  const inputValidation = input.validate();
124366
124647
  const invalidInput = !inputValidation.isValid || inputValidation.error;
@@ -124368,9 +124649,8 @@ const Thread = () => {
124368
124649
  return;
124369
124650
  if (predefinedText && !InputValidator.validate(predefinedText).isValid)
124370
124651
  return;
124371
- setFirstTokenReceived(false);
124372
124652
  const newHumanMessage = {
124373
- id: v4(),
124653
+ id: isAutoSummary ? `${DO_NOT_RENDER_ID_PREFIX}${v4()}` : v4(),
124374
124654
  type: "human",
124375
124655
  content: predefinedText ?? input.value
124376
124656
  };
@@ -124380,7 +124660,7 @@ const Thread = () => {
124380
124660
  info: restOfExtraData,
124381
124661
  "Full Name:": "Sam Test",
124382
124662
  "Birth Date:": "01/01/1990",
124383
- "- Móvil:": "600000006",
124663
+ "Mobile:": "600000006",
124384
124664
  "Address:": "456 Avenida Inventada, Ciudad Y",
124385
124665
  patientId: appointmentData?.patientId,
124386
124666
  doctorId: appointmentData?.doctorId
@@ -124403,6 +124683,7 @@ const Thread = () => {
124403
124683
  logger.warn(`Unknown source category: ${source.category} for source: ${source.title}`);
124404
124684
  }
124405
124685
  });
124686
+ const messageFiles = uploadedFiles.map((file) => file.processedData).filter(Boolean);
124406
124687
  const data = {
124407
124688
  values: {
124408
124689
  messages: [...toolMessages, newHumanMessage],
@@ -124416,7 +124697,9 @@ const Thread = () => {
124416
124697
  medical_practice: medical_practice ?? "Atención Primaria",
124417
124698
  patient_medical_notes,
124418
124699
  doctor_id: appointmentData?.doctorId,
124419
- current_datetime: getCurrentDateTime()
124700
+ current_datetime: getCurrentDateTime(),
124701
+ prompt_summary: summary?.isEnabled ? summary?.prompt || "" : "",
124702
+ ...messageFiles.length > 0 && { files: messageFiles }
124420
124703
  },
124421
124704
  options: {
124422
124705
  streamMode: ["values"],
@@ -124432,9 +124715,14 @@ const Thread = () => {
124432
124715
  };
124433
124716
  chatApi.submitMessages(stream, data);
124434
124717
  input.reset();
124718
+ uploadedFiles.forEach((file) => {
124719
+ if (file.previewUrl) {
124720
+ URL.revokeObjectURL(file.previewUrl);
124721
+ }
124722
+ });
124723
+ setUploadedFiles([]);
124435
124724
  };
124436
124725
  const handleRegenerate = (parentCheckpoint) => {
124437
- setFirstTokenReceived(false);
124438
124726
  const data = {
124439
124727
  values: void 0,
124440
124728
  options: {
@@ -124469,6 +124757,53 @@ const Thread = () => {
124469
124757
  } catch {
124470
124758
  }
124471
124759
  }, [stream.error, formatMessage, setToastState]);
124760
+ reactExports.useEffect(() => {
124761
+ handleSubmitRef.current = handleSubmit;
124762
+ formatMessageRef.current = formatMessage;
124763
+ }, [handleSubmit, formatMessage]);
124764
+ reactExports.useEffect(() => {
124765
+ const patientId = appointmentData?.patientId;
124766
+ const doctorId = appointmentData?.doctorId;
124767
+ if (!isAutoSummarySent(patientId, doctorId) && !isLoading && summary?.isEnabled && handleSubmitRef.current && formatMessageRef.current) {
124768
+ markAutoSummarySent(patientId, doctorId);
124769
+ autoSummaryLoadingStarted.current = false;
124770
+ setAutoSummaryCancelled(false);
124771
+ setIsAutoSendingSummary(true);
124772
+ const summaryMessage = formatMessageRef.current({
124773
+ id: "I'd like to see a summary of the patient's chart"
124774
+ });
124775
+ handleSubmitRef.current({ preventDefault: () => {
124776
+ } }, summaryMessage, true);
124777
+ }
124778
+ }, [
124779
+ isLoading,
124780
+ summary?.isEnabled,
124781
+ appointmentData?.patientId,
124782
+ appointmentData?.doctorId
124783
+ ]);
124784
+ reactExports.useEffect(() => {
124785
+ if (isAutoSendingSummary && !isLoading && messages.length > 0) {
124786
+ const hasAIResponseWithContent = messages.some((msg) => msg.type === "ai" && msg.content && String(msg.content).trim().length > 0);
124787
+ if (hasAIResponseWithContent) {
124788
+ setIsAutoSendingSummary(false);
124789
+ }
124790
+ }
124791
+ }, [isAutoSendingSummary, isLoading, messages]);
124792
+ reactExports.useEffect(() => {
124793
+ if (!isAutoSendingSummary)
124794
+ return;
124795
+ if (isLoading) {
124796
+ autoSummaryLoadingStarted.current = true;
124797
+ return;
124798
+ }
124799
+ if (autoSummaryLoadingStarted.current) {
124800
+ const hasAIResponseWithContent = messages.some((msg) => msg.type === "ai" && msg.content && String(msg.content).trim().length > 0);
124801
+ if (!hasAIResponseWithContent) {
124802
+ setAutoSummaryCancelled(true);
124803
+ setIsAutoSendingSummary(false);
124804
+ }
124805
+ }
124806
+ }, [isAutoSendingSummary, isLoading, messages]);
124472
124807
  reactExports.useEffect(() => {
124473
124808
  const sources = Array.isArray(settingsSources) ? settingsSources : availableSources;
124474
124809
  setSelectedSources(sources);
@@ -124479,33 +124814,50 @@ const Thread = () => {
124479
124814
  textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`;
124480
124815
  }
124481
124816
  }, [input.value]);
124482
- return jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-container ", children: [jsxRuntimeExports.jsx("div", { className: `omniscribe_thread-container-history-cont ${chatHistoryOpen && "omniscribe_thread-container-history-cont-open"}`, children: jsxRuntimeExports.jsx("div", { className: `omniscribe_thread-container-history-subcont ${chatHistoryOpen ? "omniscribe_thread-container-history-subcont-open" : "omniscribe_thread-container-history-subcont-close"}`, children: jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-container-history-content", children: jsxRuntimeExports.jsx(ThreadHistory, { chatHistoryOpen, newDisabled: disableAllActions || isLoading }) }) }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-content-container", children: jsxRuntimeExports.jsx(StickToBottom, { className: "omniscribe_thread-stick-to-bottom", children: jsxRuntimeExports.jsx(StickyToBottomContent, { className: "omniscribe_thread-stick-to-bottom-content no-scrollbar", contentClassName: "omniscribe_thread-stick-to-bottom-content-class", content: jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(PredefinedQuestions, { handleSubmit, messages: messages?.length }), reactExports.useMemo(() => {
124817
+ reactExports.useEffect(() => {
124818
+ return () => {
124819
+ uploadedFilesRef.current.forEach((file) => {
124820
+ if (file.previewUrl) {
124821
+ URL.revokeObjectURL(file.previewUrl);
124822
+ }
124823
+ });
124824
+ };
124825
+ }, []);
124826
+ const renderedMessages = reactExports.useMemo(() => {
124483
124827
  const filteredMessages = messages.filter((m) => !m.id?.startsWith(DO_NOT_RENDER_ID_PREFIX));
124484
- const lastHumanIndex = filteredMessages.map((m, i) => m.type === "human" ? i : -1).filter((i) => i !== -1).pop();
124485
- const lastAiIndex = filteredMessages.map((m, i) => m.type === "ai" ? i : -1).filter((i) => i !== -1).pop();
124486
- return filteredMessages.map((message, index) => {
124828
+ const finalMessages = autoSummaryCancelled ? filteredMessages.filter((msg) => {
124829
+ if (msg.type === "human")
124830
+ return true;
124831
+ const aiIndex = filteredMessages.indexOf(msg);
124832
+ const hasHumanBefore = filteredMessages.slice(0, aiIndex).some((m) => m.type === "human");
124833
+ return hasHumanBefore;
124834
+ }) : filteredMessages;
124835
+ const lastHumanIndex = finalMessages.map((m, i) => m.type === "human" ? i : -1).filter((i) => i !== -1).pop();
124836
+ const lastAiIndex = finalMessages.map((m, i) => m.type === "ai" ? i : -1).filter((i) => i !== -1).pop();
124837
+ return finalMessages.map((message, index) => {
124487
124838
  const isLastHuman = message.type === "human" && index === lastHumanIndex;
124488
124839
  const isLastAi = message.type === "ai" && index === lastAiIndex;
124489
- return message.type === "human" ? jsxRuntimeExports.jsx(HumanMessage, { message, isLoading, isLastHumanMessage: isLastHuman, chatHistoryOpen }, message.id || `${message.type}-${index}`) : jsxRuntimeExports.jsx(AssistantMessage, { message, isLoading, handleRegenerate, isLastAiMessage: isLastAi, firstTokenReceived }, message.id || `${message.type}-${index}`);
124840
+ return message.type === "human" ? jsxRuntimeExports.jsx(HumanMessage, { message, isLoading, isLastHumanMessage: isLastHuman, chatHistoryOpen }, message.id || `${message.type}-${index}`) : jsxRuntimeExports.jsx(AssistantMessage, { message, isLoading, handleRegenerate, isLastAiMessage: isLastAi }, message.id || `${message.type}-${index}`);
124490
124841
  });
124491
- }, [messages, isLoading, firstTokenReceived, handleRegenerate])] }), footer: jsxRuntimeExports.jsxs("div", { className: `omniscribe_thread-footer-container ${chatHistoryOpen ? "omniscribe_footer-size-decrease" : ""}`, children: [jsxRuntimeExports.jsx(ScrollToBottom$1, { className: "omniscribe_thread-footer-scroll-to-bottom" }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-footer-form-container", children: jsxRuntimeExports.jsx("form", { className: "omniscribe_thread-footer-form", children: jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-content", children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-left-btns", children: [availableSources.length ? jsxRuntimeExports.jsx(Tooltip, { message: formatMessage({
124492
- id: "See list of sources"
124493
- }), side: "top", children: jsxRuntimeExports.jsx(Button, { variant: "ghost", type: "button", onClick: () => setIsSourcesModalOpen(true), disabled: !availableSources.length, style: { marginInline: "4px" }, children: jsxRuntimeExports.jsx(BookTextIcon, { width: 16, height: 16, stroke: selectedSources.length > 0 ? "#105bdb" : "#2b303aff" }) }) }) : jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-no-sources" }), jsxRuntimeExports.jsx(Textarea, { ref: textareaRef, rows: 1, value: input.value, variant: "secondary", onChange: handleInputChange, onKeyDown: (e) => {
124842
+ }, [messages, isLoading, handleRegenerate, chatHistoryOpen]);
124843
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(FileLimitBanner, { message: bannerMessage, isVisible: showFileLimitBanner, onClose: () => setShowFileLimitBanner(false) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-container ", children: [jsxRuntimeExports.jsx("div", { className: `omniscribe_thread-container-history-cont ${chatHistoryOpen && "omniscribe_thread-container-history-cont-open"}`, children: jsxRuntimeExports.jsx("div", { className: `omniscribe_thread-container-history-subcont ${chatHistoryOpen ? "omniscribe_thread-container-history-subcont-open" : "omniscribe_thread-container-history-subcont-close"}`, children: jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-container-history-content", children: jsxRuntimeExports.jsx(ThreadHistory, { chatHistoryOpen, newDisabled: disableAllActions || isLoading }) }) }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-content-container", children: jsxRuntimeExports.jsx(StickToBottom, { className: "omniscribe_thread-stick-to-bottom", children: jsxRuntimeExports.jsx(StickyToBottomContent, { className: "omniscribe_thread-stick-to-bottom-content no-scrollbar", contentClassName: "omniscribe_thread-stick-to-bottom-content-class", content: jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: isAutoSendingSummary ? jsxRuntimeExports.jsx(SummaryLoading, {}) : jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(PredefinedQuestions, { handleSubmit, messages: renderedMessages.length, isAutoSendingSummary: false }), renderedMessages] }) }), footer: jsxRuntimeExports.jsxs("div", { className: `omniscribe_thread-footer-container ${chatHistoryOpen ? "omniscribe_footer-size-decrease" : ""}`, children: [jsxRuntimeExports.jsx(ScrollToBottom$1, { className: "omniscribe_thread-footer-scroll-to-bottom" }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-container", children: [uploadedFiles.length > 0 && jsxRuntimeExports.jsx(FilePreview, { files: uploadedFiles, onRemove: handleFileRemove, chatHistoryOpen }), jsxRuntimeExports.jsxs("form", { onSubmit: handleSubmit, className: "omniscribe_thread-footer-form", children: [jsxRuntimeExports.jsx("input", { ref: fileInputRef, type: "file", multiple: true, accept: "image/*,.pdf", onChange: handleFileSelect, style: { display: "none" } }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-content", children: [jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-form-left-btns", children: [jsxRuntimeExports.jsx(Tooltip, { message: formatMessage({ id: "Attach file" }), side: "top", children: jsxRuntimeExports.jsx("button", { type: "button", className: "omniscribe_thread-attach-btn", onClick: handleAttachClick, disabled: uploadedFiles.length >= MAX_FILES, children: jsxRuntimeExports.jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: jsxRuntimeExports.jsx("path", { d: "M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48" }) }) }) }), jsxRuntimeExports.jsx(Textarea, { ref: textareaRef, rows: 1, value: input.value, variant: "secondary", onChange: handleInputChange, onKeyDown: (e) => {
124494
124844
  if (e.key === "Enter" && !e.shiftKey && !e.metaKey) {
124495
124845
  e.preventDefault();
124496
- handleSubmit(e);
124846
+ const el = e.target;
124847
+ const form = el?.closest("form");
124848
+ form?.requestSubmit();
124497
124849
  }
124498
124850
  }, maxLength: inputMaxLength, className: "omniscribe_thread-footer-textarea no-scrollbar", placeholder: formatMessage({
124499
124851
  id: "Write your question..."
124500
- }) })] }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-btns-container", children: [jsxRuntimeExports.jsx(MicrophoneButton, { onTextUpdate: handleTranscriptionUpdate }), stream.isLoading ? jsxRuntimeExports.jsx(Button, { type: "button", onClick: () => stream.stop(), children: jsxRuntimeExports.jsx(SquareIcon, {}) }, "stop") : jsxRuntimeExports.jsx(Button, { onClick: handleSubmit, size: "sm", className: "omniscribe_thread-footer-form-btn", disabled: disableAllActions || isLoading || !input.value.length || !inputIsValid, children: formatMessage({
124852
+ }) })] }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_thread-footer-btns-container", children: [jsxRuntimeExports.jsx(MicrophoneButton, { onTextUpdate: handleTranscriptionUpdate }), stream.isLoading ? jsxRuntimeExports.jsx(Button, { onClick: () => stream.stop(), children: jsxRuntimeExports.jsx(SquareIcon, {}) }, "stop") : jsxRuntimeExports.jsx(Button, { type: "submit", size: "sm", className: "omniscribe_thread-footer-form-btn", disabled: disableAllActions || isLoading || !input.value.length || !inputIsValid, children: formatMessage({
124501
124853
  id: "Send"
124502
- }) })] })] }) }) }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-footer-info", children: formatMessage({
124854
+ }) })] })] })] })] }), jsxRuntimeExports.jsx("div", { className: "omniscribe_thread-footer-info", children: formatMessage({
124503
124855
  id: "SofIA may make mistakes. Consider checking important information."
124504
- }) })] }) }) }) }), Boolean(availableSources.length) && jsxRuntimeExports.jsx(SourcesModal, { setModalVisible: setIsSourcesModalOpen, isOpen: isSourcesModalOpen, onClose: () => setIsSourcesModalOpen(false), sources: availableSources, selectedSources, onToggleSource: handleToggleSource, onSelectAll: handleSelectAll, onSave: handleSaveSources, isSaving: isSavingSources })] });
124856
+ }) })] }) }) }) })] })] });
124505
124857
  };
124506
124858
 
124507
- const Chat = () => {
124508
- return jsxRuntimeExports.jsx(Thread, {});
124859
+ const Chat$1 = () => {
124860
+ return jsxRuntimeExports.jsx(MessageImagesProvider, { children: jsxRuntimeExports.jsx(Thread, {}) });
124509
124861
  };
124510
124862
 
124511
124863
  const Toast = () => {
@@ -125402,6 +125754,10 @@ const updateTransformedTranscriptions = async (segments, setState, appointmentDa
125402
125754
  }
125403
125755
  };
125404
125756
 
125757
+ const sleep = async (ms) => {
125758
+ return new Promise((resolve) => setTimeout(resolve, ms));
125759
+ };
125760
+
125405
125761
  const TranscriptionApi = {
125406
125762
  createTranscription: async (data) => {
125407
125763
  try {
@@ -126098,39 +126454,48 @@ const LanguageIcon = ({ className, width = 16, height = 17, stroke = "#4A5364" }
126098
126454
  return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M7.99967 15.1667C11.6816 15.1667 14.6663 12.1819 14.6663 8.50004C14.6663 4.81814 11.6816 1.83337 7.99967 1.83337C4.31778 1.83337 1.33301 4.81814 1.33301 8.50004C1.33301 12.1819 4.31778 15.1667 7.99967 15.1667Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M7.99967 1.83337C6.28783 3.63081 5.33301 6.01787 5.33301 8.50004C5.33301 10.9822 6.28783 13.3693 7.99967 15.1667C9.71152 13.3693 10.6663 10.9822 10.6663 8.50004C10.6663 6.01787 9.71152 3.63081 7.99967 1.83337Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M1.33301 8.5H14.6663", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
126099
126455
  };
126100
126456
 
126457
+ const ChatIcon = ({ className, width = 16, height = 16, strokeWidth = 1, stroke = "currentColor" }) => {
126458
+ return jsxRuntimeExports.jsxs("svg", { width, height, viewBox: "0 0 16 16", fill: "none", stroke, strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", className, children: [jsxRuntimeExports.jsx("path", { d: "M1.99462 10.8951C2.09265 11.1424 2.11447 11.4133 2.05729 11.6731L1.34729 13.8664C1.32441 13.9777 1.33033 14.0929 1.36447 14.2012C1.39862 14.3095 1.45987 14.4073 1.5424 14.4853C1.62494 14.5633 1.72603 14.6189 1.83609 14.6469C1.94615 14.6749 2.06153 14.6742 2.17129 14.6451L4.44662 13.9798C4.69177 13.9312 4.94564 13.9524 5.17929 14.0411C6.60288 14.7059 8.21553 14.8466 9.73272 14.4383C11.2499 14.0299 12.5741 13.0989 13.4718 11.8094C14.3694 10.5198 14.7827 8.95472 14.6388 7.39015C14.4949 5.82557 13.8031 4.36209 12.6853 3.25791C11.5676 2.15373 10.0958 1.47981 8.52955 1.35504C6.96333 1.23028 5.40338 1.6627 4.12492 2.57601C2.84646 3.48931 1.93164 4.82481 1.54189 6.34687C1.15213 7.86894 1.31247 9.47975 1.99462 10.8951Z" }), jsxRuntimeExports.jsx("path", { d: "M5.3335 8H5.34016" }), jsxRuntimeExports.jsx("path", { d: "M8 8H8.00667" }), jsxRuntimeExports.jsx("path", { d: "M10.6665 8H10.6732" })] });
126459
+ };
126460
+
126101
126461
  const DocumentTemplateIcon = ({ className, width = 16, height = 17, stroke = "#252A32" }) => {
126102
126462
  return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M13.3333 2.5H2.66667C2.29848 2.5 2 2.79848 2 3.16667V6.5C2 6.86819 2.29848 7.16667 2.66667 7.16667H13.3333C13.7015 7.16667 14 6.86819 14 6.5V3.16667C14 2.79848 13.7015 2.5 13.3333 2.5Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M6 9.83337H2.66667C2.29848 9.83337 2 10.1319 2 10.5V13.8334C2 14.2016 2.29848 14.5 2.66667 14.5H6C6.36819 14.5 6.66667 14.2016 6.66667 13.8334V10.5C6.66667 10.1319 6.36819 9.83337 6 9.83337Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M13.333 9.83337H9.99967C9.63148 9.83337 9.33301 10.1319 9.33301 10.5V13.8334C9.33301 14.2016 9.63148 14.5 9.99967 14.5H13.333C13.7012 14.5 13.9997 14.2016 13.9997 13.8334V10.5C13.9997 10.1319 13.7012 9.83337 13.333 9.83337Z", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
126103
126463
  };
126104
126464
 
126465
+ const BookTextIcon = ({ className, width = 16, height = 16, stroke = "currentColor" }) => {
126466
+ return jsxRuntimeExports.jsxs("svg", { width, height, className, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxRuntimeExports.jsx("path", { d: "M2.66699 13V2.99998C2.66699 2.55795 2.84259 2.13403 3.15515 1.82147C3.46771 1.50891 3.89163 1.33331 4.33366 1.33331H12.667C12.8438 1.33331 13.0134 1.40355 13.1384 1.52858C13.2634 1.6536 13.3337 1.82317 13.3337 1.99998V14C13.3337 14.1768 13.2634 14.3464 13.1384 14.4714C13.0134 14.5964 12.8438 14.6666 12.667 14.6666H4.33366C3.89163 14.6666 3.46771 14.4911 3.15515 14.1785C2.84259 13.8659 2.66699 13.442 2.66699 13ZM2.66699 13C2.66699 12.558 2.84259 12.134 3.15515 11.8215C3.46771 11.5089 3.89163 11.3333 4.33366 11.3333H13.3337", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M5.33301 8.66667L7.99967 4L10.6663 8.66667", stroke, strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M6.06641 7.33331H9.86641", stroke, strokeLinecap: "round", strokeLinejoin: "round" })] });
126467
+ };
126468
+
126105
126469
  const CONFIG_OPTIONS = [
126470
+ {
126471
+ id: "language",
126472
+ titleId: "Language",
126473
+ descriptionId: "Select the language options.",
126474
+ IconComponent: LanguageIcon
126475
+ },
126106
126476
  {
126107
126477
  id: "microphone",
126108
126478
  titleId: "Microphone",
126109
- descriptionId: "Select the input microphone to ensure proper functioning of SofIA Scribe",
126110
- IconComponent: MicrophoneIcon,
126111
- isImplemented: true
126479
+ descriptionId: "Select the input microphone to ensure proper functioning",
126480
+ IconComponent: MicrophoneIcon
126112
126481
  },
126113
126482
  {
126114
- id: "language",
126115
- titleId: "Language options",
126116
- descriptionId: "Select the interface language and the language in which the clinical note is generated in addition to the language for transcription",
126117
- IconComponent: LanguageIcon,
126118
- isImplemented: true
126483
+ id: "chat",
126484
+ titleId: "Chat",
126485
+ descriptionId: "Customize the patient summary and chat sources.",
126486
+ IconComponent: ChatIcon
126119
126487
  },
126120
126488
  {
126121
126489
  id: "template",
126122
126490
  titleId: "Clinical note template",
126123
- descriptionId: "Customize the clinical note by indicating to the AI how to write and organize consultation information in each field",
126124
- IconComponent: DocumentTemplateIcon,
126125
- isImplemented: true
126126
- // Now implemented
126491
+ descriptionId: "Customize the clinical note depending on the report you are filling out.",
126492
+ IconComponent: DocumentTemplateIcon
126127
126493
  },
126128
126494
  {
126129
126495
  id: "dictionary",
126130
126496
  titleId: "Clinical dictionary",
126131
126497
  descriptionId: "Customize clinical language and medication format",
126132
- IconComponent: BookTextIcon,
126133
- isImplemented: true
126498
+ IconComponent: BookTextIcon
126134
126499
  }
126135
126500
  ];
126136
126501
  const CONFIG_UI_CONSTANTS = {
@@ -126160,7 +126525,6 @@ const useConfigurationLogic = () => {
126160
126525
  const IconComponent = option.IconComponent;
126161
126526
  return {
126162
126527
  id: option.id,
126163
- isImplemented: option.isImplemented,
126164
126528
  title: formatMessage({ id: option.titleId }),
126165
126529
  description: formatMessage({ id: option.descriptionId }),
126166
126530
  icon: reactExports.createElement(IconComponent, {
@@ -126431,13 +126795,169 @@ const ConfigSection = ({ description, children, className = "" }) => {
126431
126795
  const Language = ({ onBack }) => {
126432
126796
  const { formatMessage } = useIntl();
126433
126797
  const { chatApp } = useApiConfigContext();
126434
- return jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-content", children: [jsxRuntimeExports.jsx(SubscreenHeader, { title: formatMessage({ id: "Language options" }), onBack }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-subscreen-content", children: [jsxRuntimeExports.jsx(ConfigSection, { description: formatMessage({
126798
+ return jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-content", children: [jsxRuntimeExports.jsx(SubscreenHeader, { title: formatMessage({ id: "Language" }), onBack }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-subscreen-content", children: [jsxRuntimeExports.jsx(ConfigSection, { description: formatMessage({
126435
126799
  id: "Select the interface language and the language in which the clinical note is generated"
126436
126800
  }), children: jsxRuntimeExports.jsx(LanguageSelector, {}) }), !chatApp && jsxRuntimeExports.jsx(ConfigSection, { description: formatMessage({
126437
126801
  id: "Select the language for audio transcription"
126438
126802
  }), children: jsxRuntimeExports.jsx(TranscriptionLanguageSelector, {}) })] }), jsxRuntimeExports.jsx(VersionSection, {})] });
126439
126803
  };
126440
126804
 
126805
+ const Toggle = ({ checked, onChange, label, enabledText = "Enabled", disabledText = "Disabled", disabled = false, className = "", id }) => {
126806
+ const handleClick = () => {
126807
+ if (!disabled) {
126808
+ onChange(!checked);
126809
+ }
126810
+ };
126811
+ const handleKeyDown = (e) => {
126812
+ if ((e.key === "Enter" || e.key === " ") && !disabled) {
126813
+ e.preventDefault();
126814
+ onChange(!checked);
126815
+ }
126816
+ };
126817
+ return jsxRuntimeExports.jsxs("div", { className: `omniscribe_toggle-container ${className}`.trim(), children: [jsxRuntimeExports.jsx("span", { className: "omniscribe_toggle-label", children: label }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_toggle-wrapper", children: [jsxRuntimeExports.jsx("div", { className: `omniscribe_toggle-switch ${checked ? "omniscribe_toggle-switch-checked" : ""} ${disabled ? "omniscribe_toggle-switch-disabled" : ""}`.trim(), onClick: handleClick, onKeyDown: handleKeyDown, role: "switch", "aria-checked": checked, "aria-labelledby": id, tabIndex: disabled ? -1 : 0, children: jsxRuntimeExports.jsx("div", { className: "omniscribe_toggle-thumb" }) }), jsxRuntimeExports.jsx("span", { className: "omniscribe_toggle-status", children: checked ? enabledText : disabledText })] })] });
126818
+ };
126819
+
126820
+ const Separator = ({ className = "", orientation = "horizontal", decorative = true, ...props }) => {
126821
+ return jsxRuntimeExports.jsx("div", { className: `omniscribe_separator omniscribe_separator--${orientation} ${className}`.trim(), role: !decorative ? "separator" : void 0, "aria-orientation": !decorative ? orientation : void 0, ...props });
126822
+ };
126823
+
126824
+ const ExternalLinkIcon = ({ className, onClick }) => jsxRuntimeExports.jsxs("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", className, onClick, style: { cursor: onClick ? "pointer" : "default" }, children: [jsxRuntimeExports.jsx("path", { d: "M7.5 1.5H10.5V4.5", stroke: "#105BDB", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M5 7L10.5 1.5", stroke: "#105BDB", strokeLinecap: "round", strokeLinejoin: "round" }), jsxRuntimeExports.jsx("path", { d: "M9 6.5V9.5C9 9.76522 8.89464 10.0196 8.70711 10.2071C8.51957 10.3946 8.26522 10.5 8 10.5H2.5C2.23478 10.5 1.98043 10.3946 1.79289 10.2071C1.60536 10.0196 1.5 9.76522 1.5 9.5V4C1.5 3.73478 1.60536 3.48043 1.79289 3.29289C1.98043 3.10536 2.23478 3 2.5 3H5.5", stroke: "#105BDB", strokeLinecap: "round", strokeLinejoin: "round" })] });
126825
+
126826
+ const SourceItem = ({ source, onToggle }) => {
126827
+ const handleIconClick = () => {
126828
+ if (source.url) {
126829
+ window.open(source.url, "_blank", "noopener,noreferrer");
126830
+ }
126831
+ };
126832
+ return jsxRuntimeExports.jsxs("div", { className: "omniscribe_source-item", children: [jsxRuntimeExports.jsxs("label", { className: "omniscribe_source-label", children: [jsxRuntimeExports.jsx("input", { type: "checkbox", checked: source.selected, onChange: () => onToggle(source.id), className: "omniscribe_source-checkbox" }), jsxRuntimeExports.jsx("span", { className: "omniscribe_source-name", children: source.name })] }), jsxRuntimeExports.jsx(ExternalLinkIcon, { className: "omniscribe_source-external-icon", onClick: handleIconClick })] });
126833
+ };
126834
+
126835
+ const chatSourceToSource = (chatSource, selected) => ({
126836
+ ...chatSource,
126837
+ selected
126838
+ });
126839
+ const SourceSelector = ({ sources, onSourceToggle, isPromptActive = false }) => {
126840
+ const { formatMessage } = useIntl();
126841
+ return jsxRuntimeExports.jsxs("div", { className: "omniscribe_source-selector", children: [jsxRuntimeExports.jsx("span", { className: "omniscribe_source-selector-title", children: formatMessage({ id: "Sources" }) }), jsxRuntimeExports.jsx("span", { className: "omniscribe_source-selector-description", children: formatMessage({
126842
+ id: "Select the sources you want the AI to use for reasoning"
126843
+ }) }), jsxRuntimeExports.jsx("div", { className: `omniscribe_source-list ${isPromptActive ? "omniscribe_source-list--compact" : ""}`.trim(), children: sources.map((source) => jsxRuntimeExports.jsx(SourceItem, { source: {
126844
+ id: source.url || source.title || "unknown",
126845
+ // Use URL as primary ID for toggle functionality
126846
+ name: source.title,
126847
+ // Map title to name
126848
+ selected: source.selected,
126849
+ url: source.url
126850
+ // Pass URL for external links
126851
+ }, onToggle: onSourceToggle }, source.url || source.title || "unknown")) })] });
126852
+ };
126853
+
126854
+ const PromptCustomization = ({ localPrompt, characterCount, maxCharacters, onPromptChange, onPromptBlur }) => {
126855
+ const { formatMessage } = useIntl();
126856
+ return jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-prompt-section", children: [jsxRuntimeExports.jsx("h3", { className: "omniscribe_chat-prompt-title", children: formatMessage({ id: "Patient summary customization" }) }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-prompt-container", children: [jsxRuntimeExports.jsx("textarea", { className: "omniscribe_chat-prompt-textarea", value: localPrompt, onChange: onPromptChange, onBlur: onPromptBlur, placeholder: formatMessage({
126857
+ id: "Don't leave out relevant information..."
126858
+ }), rows: 4 }), jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-character-count", children: [characterCount, "/", maxCharacters, " ", formatMessage({ id: "{count} characters" }, { count: "" }).replace(/\d+ /, "")] })] })] });
126859
+ };
126860
+
126861
+ const useDebounce = (value, delay) => {
126862
+ const [debouncedValue, setDebouncedValue] = reactExports.useState(value);
126863
+ reactExports.useEffect(() => {
126864
+ const handler = setTimeout(() => {
126865
+ setDebouncedValue(value);
126866
+ }, delay);
126867
+ return () => {
126868
+ clearTimeout(handler);
126869
+ };
126870
+ }, [value, delay]);
126871
+ return debouncedValue;
126872
+ };
126873
+ const Chat = ({ onBack }) => {
126874
+ const { formatMessage } = useIntl();
126875
+ const { summary, updateSummary, availableSources = [], sources: settingsSources = [], updateSources } = useSettingsContext();
126876
+ const [selectedSources, setSelectedSources] = reactExports.useState(() => Array.isArray(settingsSources) && settingsSources.length > 0 ? settingsSources : availableSources);
126877
+ const isSavingSourcesRef = reactExports.useRef(false);
126878
+ const pendingSourcesRef = reactExports.useRef(null);
126879
+ const [characterCount, setCharacterCount] = reactExports.useState(0);
126880
+ const [localPrompt, setLocalPrompt] = reactExports.useState("");
126881
+ const [isInitialized, setIsInitialized] = reactExports.useState(false);
126882
+ const maxCharacters = 1e3;
126883
+ const currentSummary = reactExports.useMemo(() => ({
126884
+ prompt: typeof summary?.prompt === "string" ? summary.prompt : "",
126885
+ isEnabled: typeof summary?.isEnabled === "boolean" ? summary.isEnabled : false
126886
+ }), [summary]);
126887
+ const debouncedPrompt = useDebounce(localPrompt, 500);
126888
+ reactExports.useEffect(() => {
126889
+ setLocalPrompt(currentSummary.prompt);
126890
+ setCharacterCount(currentSummary.prompt.length);
126891
+ setIsInitialized(true);
126892
+ }, [summary]);
126893
+ reactExports.useEffect(() => {
126894
+ if (isInitialized && debouncedPrompt !== currentSummary.prompt && updateSummary && !(debouncedPrompt === "" && currentSummary.prompt !== "")) {
126895
+ const newConfig = { ...currentSummary, prompt: debouncedPrompt };
126896
+ updateSummary(newConfig).catch((error) => {
126897
+ logger.settingsError("Error updating summary prompt:", error);
126898
+ });
126899
+ }
126900
+ }, [debouncedPrompt, currentSummary, updateSummary, isInitialized]);
126901
+ const handleToggleChange = async (enabled) => {
126902
+ if (!updateSummary)
126903
+ return;
126904
+ const newConfig = { ...currentSummary, isEnabled: enabled };
126905
+ try {
126906
+ await updateSummary(newConfig);
126907
+ } catch (error) {
126908
+ logger.settingsError("Error updating summary toggle:", error);
126909
+ }
126910
+ };
126911
+ const handlePromptChange = (e) => {
126912
+ const value = e.target.value;
126913
+ if (value.length <= maxCharacters) {
126914
+ setLocalPrompt(value);
126915
+ setCharacterCount(value.length);
126916
+ }
126917
+ };
126918
+ const handlePromptBlur = async () => {
126919
+ if (localPrompt !== currentSummary.prompt && updateSummary) {
126920
+ const newConfig = { ...currentSummary, prompt: localPrompt };
126921
+ try {
126922
+ await updateSummary(newConfig);
126923
+ } catch (error) {
126924
+ logger.settingsError("Error updating summary on blur:", error);
126925
+ }
126926
+ }
126927
+ };
126928
+ const saveSourcesNow = async (sources) => {
126929
+ isSavingSourcesRef.current = true;
126930
+ try {
126931
+ await updateSources(sources);
126932
+ } catch (error) {
126933
+ logger.settingsError("Error saving sources:", error);
126934
+ } finally {
126935
+ isSavingSourcesRef.current = false;
126936
+ if (pendingSourcesRef.current) {
126937
+ const next = pendingSourcesRef.current;
126938
+ pendingSourcesRef.current = null;
126939
+ saveSourcesNow(next);
126940
+ }
126941
+ }
126942
+ };
126943
+ const handleSourceToggle = (sourceUrl) => {
126944
+ const source = availableSources.find((s) => s.url === sourceUrl);
126945
+ if (!source)
126946
+ return;
126947
+ setSelectedSources((prev) => {
126948
+ const isSelected = prev.some((s) => s.url === sourceUrl);
126949
+ const next = isSelected ? prev.filter((s) => s.url !== sourceUrl) : [...prev, source];
126950
+ if (isSavingSourcesRef.current) {
126951
+ pendingSourcesRef.current = next;
126952
+ } else {
126953
+ saveSourcesNow(next);
126954
+ }
126955
+ return next;
126956
+ });
126957
+ };
126958
+ return jsxRuntimeExports.jsxs("div", { className: "omniscribe_config-content", children: [jsxRuntimeExports.jsx(SubscreenHeader, { title: formatMessage({ id: "Chat" }), onBack }), jsxRuntimeExports.jsx("div", { className: "omniscribe_config-subscreen-content", children: jsxRuntimeExports.jsx(ConfigSection, { children: jsxRuntimeExports.jsxs("div", { className: "omniscribe_chat-config", children: [jsxRuntimeExports.jsx(Toggle, { checked: currentSummary.isEnabled, onChange: handleToggleChange, label: formatMessage({ id: "Show patient summary first" }), enabledText: formatMessage({ id: "Enabled" }), disabledText: formatMessage({ id: "Disabled" }) }), currentSummary.isEnabled && jsxRuntimeExports.jsx(PromptCustomization, { localPrompt, characterCount, maxCharacters, onPromptChange: handlePromptChange, onPromptBlur: handlePromptBlur }), availableSources && availableSources.length > 0 && jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Separator, {}), jsxRuntimeExports.jsx(SourceSelector, { sources: availableSources.map((source) => chatSourceToSource(source, selectedSources.some((s) => s.url === source.url))), onSourceToggle: handleSourceToggle, isPromptActive: currentSummary.isEnabled })] })] }) }) })] });
126959
+ };
126960
+
126441
126961
  function Input({ className = "omniscribe_input", type = "text", error, showError = true, errorClassName = "omniscribe_input-error", isValid = true, ...props }) {
126442
126962
  const inputClassName = `${className} ${!isValid && error ? "invalid" : ""}`.trim();
126443
126963
  return jsxRuntimeExports.jsxs("div", { className: "omniscribe_input-container", children: [jsxRuntimeExports.jsx("input", { type, "data-slot": "input", className: inputClassName, "aria-invalid": !isValid, "aria-describedby": error && showError ? `${props.id}-error` : void 0, ...props }), showError && error && jsxRuntimeExports.jsx("span", { id: `${props.id}-error`, className: errorClassName, role: "alert", "aria-live": "polite", children: error })] });
@@ -126735,7 +127255,7 @@ const useTemplateLogic = (onBack) => {
126735
127255
  });
126736
127256
  }
126737
127257
  const templateString = JSON.stringify(modifiedTemplate);
126738
- let templateId = contextTemplateId;
127258
+ const templateId = contextTemplateId;
126739
127259
  const settingsToUpdate = {
126740
127260
  template: templateString
126741
127261
  };
@@ -126793,6 +127313,7 @@ const useScreenRenderers = (handleBackToMain) => {
126793
127313
  const screenRenderers = reactExports.useMemo(() => ({
126794
127314
  microphone: () => jsxRuntimeExports.jsx(Microphone, { onBack: handleBackToMain }),
126795
127315
  language: () => jsxRuntimeExports.jsx(Language, { onBack: handleBackToMain }),
127316
+ chat: () => jsxRuntimeExports.jsx(Chat, { onBack: handleBackToMain }),
126796
127317
  template: () => jsxRuntimeExports.jsx(Template, { onBack: handleBackToMain }),
126797
127318
  dictionary: () => jsxRuntimeExports.jsx(Dictionary, { onBack: handleBackToMain })
126798
127319
  }), [handleBackToMain]);
@@ -126838,7 +127359,7 @@ const App = ({ title }) => {
126838
127359
  if (showConfig) {
126839
127360
  return jsxRuntimeExports.jsx(Configuration, {});
126840
127361
  }
126841
- return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(AudioRecorder, { isChat: shouldShowChat }), jsxRuntimeExports.jsx("div", { className: shouldShowChat ? "omniscribe_visible" : "omniscribe_hidden", children: jsxRuntimeExports.jsx(Chat, {}) })] });
127362
+ return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(AudioRecorder, { isChat: shouldShowChat }), jsxRuntimeExports.jsx("div", { className: shouldShowChat ? "omniscribe_visible" : "omniscribe_hidden", children: jsxRuntimeExports.jsx(Chat$1, {}) })] });
126842
127363
  };
126843
127364
  return jsxRuntimeExports.jsx(OmniscribeContainer, { width: WIDTH, height: HEIGHT, children: jsxRuntimeExports.jsxs(OmniscribeLayout, { children: [jsxRuntimeExports.jsx(MinimizeButton, { title }), jsxRuntimeExports.jsx(UtilityButtons, { isChat, setIsChat, showConfig, setShowConfig }), renderContent(), toast?.visible && jsxRuntimeExports.jsx(Toast, {})] }) });
126844
127365
  };
@@ -129689,7 +130210,7 @@ const zig$1 = /*#__PURE__*/_mergeNamespaces({
129689
130210
  default: zig
129690
130211
  }, [zigExports]);
129691
130212
 
129692
- const injectedCss = "/* Source: index.css */\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');\n\n#Omniscribe {\n font-family: 'Lato', sans-serif;\n /* define colors */\n --active: #0a3785;\n --background-primary: #e7effd;\n --warning: #ffc107;\n --grey-50: #f9fafb;\n --grey-100: #f6f7f9;\n --grey-200: #e5e7eb;\n --grey-700: #6f7d95;\n --grey-800: #4a5364;\n --grey-900: #111827;\n --active-black: #252a32;\n --placeholder: #a4adbc;\n --line: #e5e7ec;\n --custom-black: #13161a;\n --primary: #105bdb;\n --border: #e5e7ec;\n --white: #fdfdfd;\n --omni: #daf2ff;\n --omni-secondary: rgba(219, 219, 219, 0.75);\n --primary-button: #132caa;\n --primary-text: #36a3cf;\n --primary-900: #061044;\n --blue-100: #dbeafe;\n --blue-200: #bfdbfe;\n --blue-500: #105bdb;\n --blue-600: #2563eb;\n --blue-700: #1d4ed8;\n --report: var(--primary-button);\n --gray: #616161;\n --black: #1b2125;\n --sky-blue: #dbecff;\n --blue: #5886ba;\n --blue-600: #0b1962;\n --background: #f3f3f3bb;\n --foreground: oklch(0.145 0 0);\n --primary: #061044;\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --light-border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.87 0 0);\n --radius: 0.625rem;\n /* TEXT */\n --text-3xs: 8px;\n --text-3xs--line-height: calc(0.5 / 0.25);\n --text-2xs: 10px;\n --text-2xs--line-height: calc(0.75 / 0.5);\n --text-xs: 12px;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 14px;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 16px;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 18px;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 20px;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 22px;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 24px;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 26px;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 28px;\n --text-5xl--line-height: 1;\n --text-6xl: 30px;\n --text-6xl--line-height: 1;\n --text-7xl: 32px;\n --text-7xl--line-height: 1;\n --text-8xl: 34px;\n --text-8xl--line-height: 1;\n --text-9xl: 46px;\n --text-9xl--line-height: 1;\n --font-weight-thin: 100;\n --font-weight-extralight: 200;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-extrabold: 800;\n --font-weight-black: 900;\n /* custom colors */\n --color-white: var(--white);\n --color-light-border: var(--light-border);\n --color-omni: var(--omni);\n --color-report: var(--report);\n --color-omni-secondary: var(--omni-secondary);\n --color-primary-text: var(--primary-text);\n --color-primary-900: var(--primary-900);\n --color-blue-500: var(--blue-500);\n --color-gray: var(--gray);\n --color-black: var(--black);\n --color-sky-blue: var(--sky-blue);\n --color-cream: var(--cream);\n --color-pink: var(--pink);\n --color-blue: var(--blue);\n --color-blue-600: var(--blue-600);\n --color-sky-blue-100: var(--sky-blue-100);\n --color-white-2: var(--white-2);\n --color-primary-700: var(--primary-700);\n --color-primary-500: var(--primary-500);\n --color-neutral-800: var(--neutral-800);\n --color-blue-2: var(--blue-2);\n --color-light-blue: var(--light-blue);\n --color-primary-100: var(--primary-100);\n --color-primary-300: var(--primary-300);\n --color-black-2: var(--black-2);\n --color-primary-button: var(--primary-button);\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: #f3f4f6;\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-zinc-900: oklch(21% 0.006 285.885);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n /* rounded */\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n /* spacing */\n --spacing-layout-w: var(--layout-w);\n --spacing-layout-h: var(--layout-h);\n --spacing: 0.25rem;\n /* size */\n --container-md: 28rem;\n --container-xl: 36rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n\n --tracking-tight: -0.025em;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n\n .no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n a,\n p,\n textarea,\n button,\n span,\n h1,\n h2,\n h3,\n h4,\n h5,\n div {\n font-family: 'Lato', sans-serif;\n }\n /* Hide scrollbar for IE, Edge and Firefox */\n .no-scrollbar {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n .shadow-inner-right {\n box-shadow: inset -9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .shadow-inner-left {\n box-shadow: inset 9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .annotation {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-normal);\n }\n .annotation-semi {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .annotation-bold {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .info {\n font-size: var(--text-2xs);\n font-weight: var(--font-weight-normal);\n }\n .info-semi {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .info-bold {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .text-p {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-normal);\n }\n .text-p-semi {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .text-p-bold {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .omniscribe_shadow-xl {\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n }\n .scrollbar-pretty {\n &::-webkit-scrollbar {\n width: 6px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n background-color: var(--omni-secondary);\n }\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n }\n\n .omniscribe_visible {\n visibility: visible;\n display: flex;\n flex: 1;\n }\n .omniscribe_hidden {\n display: none;\n height: 0;\n }\n\n .omniscribe_animate-spin {\n animation: spin 1s linear infinite;\n }\n}\n\n\n/* Source: modules/audio-recorder/components/audio-visualizer/AudioVisualizer.css */\n.omniscribe_audio-visualizer-container {\n display: flex;\n border-radius: var(--radius-md);\n width: calc(var(--spacing) * 60);\n align-items: center;\n justify-content: center;\n height: 60px;\n background: transparent;\n overflow: hidden;\n}\n\n.omniscribe_audio-visualizer-subcontainer {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_audio-visualizer-item-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding-inline: 1px;\n margin-top: 0.25rem;\n}\n\n.omniscribe_audio-visualizer-item {\n width: 2px;\n height: 2px;\n background-color: rgba(48, 54, 68, 0.85);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 50ms;\n}\n\n.lk-audio-bar-visualizer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background: var(--lk-bg);\n gap: var(--lk-va-bar-gap, 24px);\n}\n.lk-audio-bar-visualizer > .lk-audio-bar {\n transform-origin: 'center';\n height: 100%;\n width: var(--lk-va-bar-width, 12px);\n border-radius: var(--lk-va-bar-border-radius, 32px);\n background-color: var(--lk-va-bar-bg, rgba(136, 136, 136, 0.2));\n transition: background-color 0.25s ease-out;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='speaking'] > .lk-audio-bar,\n.lk-audio-bar-visualizer > .lk-audio-bar.lk-highlighted,\n.lk-audio-bar-visualizer > [data-lk-highlighted='true'] {\n background-color: var(--lk-fg, rgb(136, 136, 136));\n transition: none;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='thinking'] {\n transition: background-color 0.15s ease-out;\n}\n\n\n/* Source: modules/audio-recorder/components/content-container/content-containter.css */\n.omniscribe_audio-content-container {\n background-color: var(--white);\n width: -webkit-fill-available;\n flex: 1 1 0 !important;\n min-height: 0 !important;\n display: flex !important;\n flex-direction: column !important;\n overflow: hidden !important;\n}\n\n.omniscribe_audio-content-messages {\n color: var(--black);\n}\n\n.omniscribe_transcription-footer-container {\n position: sticky;\n display: flex;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-bottom: calc(var(--spacing) * 3);\n}\n\n.omniscribe_audio-content-render {\n color: var(--black);\n font-weight: var(--font-weight-medium);\n padding-block: 0.5rem;\n padding-inline: 0.75rem;\n margin-bottom: 0.25rem;\n}\n\n.omniscribe_patient {\n color: #db10c1;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_doctor {\n color: var(--blue-500);\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_speaker {\n color: #28a745;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_transcription {\n color: var(--black);\n}\n\n.omniscribe_transcription-down-btn-container {\n background-color: white;\n}\n\n.omniscribe_transcription-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n/* Chrome, Safari, Edge (Webkit) */\n.omniscribe_audio-content-container > div::-webkit-scrollbar {\n width: 6px !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-thumb {\n border-radius: 10px !important;\n background-color: var(--omni-secondary) !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-track {\n background-color: transparent !important;\n}\n\n/* Firefox */\n.omniscribe_audio-content-container > div {\n scrollbar-width: thin !important;\n scrollbar-color: var(--omni-secondary) transparent !important;\n}\n\n\n/* Source: modules/audio-recorder/components/recorder-counter/RecorderCounter.css */\n.omniscribe_audio-recorder-timer {\n color: var(--blue-500);\n font-weight: 600; /* SemiBold */\n font-style: normal; /* SemiBold is a weight, not a style */\n font-size: var(--font-size-400); /* design token */\n line-height: var(--line-height-400); /* design token */\n letter-spacing: 0;\n text-align: center;\n}\n\n\n/* Source: modules/audio-recorder/components/report-button/ReportButton.css */\n.omniscribe_report-button-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.omniscribe_report-button-width {\n max-height: 32px;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width {\n max-height: 32px;\n background-color: var(--blue-500) !important;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width:hover {\n background-color: #0c48ad !important; /* darker shade of blue */\n}\n\n\n/* Source: modules/audio-recorder/components/toggle-record/ToggleRecord.css */\n.omniscribe_record-button-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.omniscribe_record-button-classname {\n background-color: transparent;\n border: none;\n padding: 4px;\n}\n\n.omniscribe_record-button {\n background-color: var(--primary-button);\n border-radius: 50%;\n cursor: pointer;\n width: 56px;\n height: 56px;\n align-items: center;\n justify-content: center;\n display: flex;\n transition-duration: 300ms;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_record-button-enabled {\n opacity: 100%;\n pointer-events: auto;\n scale: 110%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-not-enabled {\n opacity: 50%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-disabled {\n opacity: 50%;\n background-color: dimgray;\n pointer-events: none;\n}\n\n.omniscribe_record-enabled {\n width: 50px;\n height: 50px;\n background-color: var(--primary-button);\n animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n position: absolute;\n z-index: -1;\n border-radius: calc(infinity * 1px);\n opacity: 100%;\n}\n\n@keyframes ping {\n 75%,\n 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n\n/* Source: modules/audio-recorder/section/AudioRecorder.css */\n.omniscribe_audio-recorder {\n align-items: center;\n padding-block: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n background-color: var(--white);\n display: flex;\n flex: 1;\n flex-direction: column;\n}\n\n[dir='ltr'] .omniscribe_audio-recorder {\n border-bottom-left-radius: 12px;\n}\n\n[dir='rtl'] .omniscribe_audio-recorder {\n border-bottom-right-radius: 12px;\n border-bottom-left-radius: 0px;\n}\n\n.omniscribe_audio-recorder-container {\n display: flex;\n align-items: center;\n border: solid 1px var(--light-border);\n background-color: var(--white);\n max-height: 42px;\n border-radius: 9999px;\n border-width: 1px;\n justify-content: space-between;\n margin-bottom: 5px;\n flex: 1;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n padding-inline: calc(var(--spacing) * 2);\n}\n\n.omniscribe_audio-recorder-audio-container {\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: center;\n}\n\n.omniscribe_audio-recorder-refresh-btn {\n cursor: pointer;\n background-color: #f6f7f9;\n border-radius: 100px;\n transition:\n transform 0.3s ease,\n opacity 0.3s ease,\n background-color 0.3s ease;\n transform: scale(1);\n}\n.omniscribe_audio-recorder-refresh-btn-enabled {\n pointer-events: auto;\n opacity: 1;\n\n &:hover {\n transform: scale(1.15);\n }\n}\n.omniscribe_audio-recorder-refresh-btn-disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n.omniscribe_audio-recorder-audio-content-container {\n border: 1px solid #e5e7ec;\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n border-radius: 8px;\n margin-top: 18px;\n padding-top: 8px;\n padding-inline: calc(var(--spacing) * 4);\n padding-bottom: 8px;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n}\n.omniscribe_audio-recorder-footer {\n border-top: 1px solid #e5e7ec;\n padding-top: 16px;\n margin-top: 12px;\n display: flex;\n width: 100%;\n}\n.omniscribe_audio-recorder-footer-content {\n padding-inline: calc(var(--spacing) * 4);\n width: 100%;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n.omniscribe_audio-recorder-audio-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n padding-block: 8px;\n}\n\n.omniscribe_audio-recorder-audio-star-icons {\n display: flex;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_audio-recorder-audio-feedback {\n color: #4a5364;\n}\n\n.omniscribe_audio-recorder-refresh-icon {\n color: #252a32;\n}\n\n.omniscribe_audio-recorder-star-icon {\n cursor: pointer;\n display: inline-block;\n}\n\n.omniscribe_audio-recorder-audio-star-container {\n position: relative;\n}\n\n\n/* Source: modules/chat/components/MicrophoneButton.css */\n/* Microphone Button Styles */\n.microphone-button {\n transition: all 150ms ease;\n border: none !important;\n background-color: white !important;\n box-shadow: none !important;\n margin-right: 3px;\n}\n\n.microphone-button--recording {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n background-color: red !important;\n}\n\n/* Pulse animation for recording state */\n@keyframes pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n\n\n/* Source: modules/chat/components/SourcesModal.css */\n/* SourcesModal CSS Styles */\n\n/* Modal container */\n.omniscribe_modal-sources {\n width: 100%;\n right: 10px;\n bottom: 100px;\n}\n\n.omniscribe_header_description {\n font-size: 0.875rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n color: #6b7280;\n margin-top: 0.25rem;\n}\n\n.omniscribe_icon_blue {\n color: var(--blue-500);\n}\n\n/* Filter section */\n.omniscribe_filter_section {\n padding: 1.5rem 0 0 0;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n}\n\n.omniscribe_filter_buttons {\n display: flex;\n gap: 0.5rem;\n margin-bottom: 1rem;\n}\n\n.omniscribe_button_all {\n padding: 0.25rem 0.75rem;\n color: var(--blue-700);\n border: 1px solid var(--blue-700);\n background-color: var(--blue-100);\n border-radius: 9999px;\n font-size: 0.875rem;\n cursor: pointer;\n transition: all 0.2s;\n font-family: inherit;\n}\n\n.omniscribe_button_all:hover {\n background-color: var(--blue-200);\n color: var(--blue-700);\n}\n\n.omniscribe_button_specialty {\n padding: 0.25rem 0.75rem;\n font-size: 0.875rem;\n font-weight: 700;\n color: #4b5563;\n background-color: #f6f7f9;\n border: 1px solid #d1d5db;\n border-radius: 9999px;\n cursor: not-allowed;\n opacity: 0.6;\n font-family: inherit;\n}\n\n.omniscribe_sources_count {\n font-size: 0.75rem;\n color: #6b7280;\n margin-bottom: 1rem;\n}\n\n/* Sources list section */\n.omniscribe_sources_container {\n padding: 0 0 1rem 0;\n max-height: 20rem;\n overflow-y: auto;\n}\n\n.omniscribe_sources_list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n/* Source item */\n.omniscribe_source_item {\n padding: 0.75rem;\n border-radius: 8px;\n border: 1px solid var(--grey-200);\n cursor: pointer;\n transition: all 0.2s;\n background-color: white;\n margin: 0 0 0.5rem 0;\n}\n\n.omniscribe_source_item_selected {\n border-color: var(--blue-500);\n background-color: #eff6ff;\n}\n\n.omniscribe_source_content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.omniscribe_source_title_container {\n flex: 1;\n}\n\n.omniscribe_source_link {\n font-weight: 700;\n font-size: 14px;\n color: var(--blue-600) !important;\n text-decoration: none;\n transition: color 0.2s;\n}\n\n.omniscribe_source_link:hover {\n color: var(--blue-700) !important;\n}\n\n/* Footer section */\n.omniscribe_footer {\n display: flex;\n justify-content: flex-end;\n gap: 0.75rem;\n padding: 1.5rem 0 0 0;\n border-top: 1px solid var(--grey-200);\n margin-top: 1rem;\n}\n\n.omniscribe_button_outline {\n padding: 0.5rem 1rem;\n border: 1px solid #d1d5db;\n background-color: white;\n color: #374151;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n font-size: 0.875rem;\n font-weight: 500;\n font-family: inherit;\n}\n\n.omniscribe_button_outline:hover {\n background-color: var(--color-gray-100);\n border-color: #9ca3af;\n}\n\n.omniscribe_button_primary {\n padding: 0.5rem 1rem;\n background-color: var(--blue-500);\n color: white;\n border: 1px solid var(--blue-500);\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s;\n font-size: 0.875rem;\n font-weight: 500;\n font-family: inherit;\n}\n\n.omniscribe_button_primary:hover {\n background-color: var(--blue-600);\n border-color: var(--blue-600);\n}\n\n/* Utility classes */\n.omniscribe_hidden {\n display: none;\n}\n\n\n/* Source: modules/chat/components/thread/Thread.css */\n.omniscribe_thread-container {\n flex: 1;\n border-style: none;\n display: flex;\n overflow: hidden;\n background: transparent;\n bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n margin-block: calc(var(--spacing) * 0) /* 0rem = 0px */;\n right: 20px;\n border-bottom-left-radius: 12px;\n width: 100%;\n}\n\n.omniscribe_thread-container-history-cont {\n position: relative;\n display: flex;\n width: 0%;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-container-history-cont-open {\n width: 33%;\n}\n\n.omniscribe_thread-container-history-subcont {\n position: absolute;\n width: 100%;\n height: 100%;\n border-right-width: 1px;\n border-color: var(--color-slate-200)\n /* oklch(92.9% 0.013 255.508) = #e2e8f0 */;\n overflow: hidden;\n z-index: 20;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n.omniscribe_thread-container-history-subcont-open {\n translate: calc(var(--spacing) * 0);\n}\n\n.omniscribe_thread-container-history-subcont-close {\n translate: calc(300px * -1);\n}\n\n.omniscribe_thread-container-history-content {\n position: relative;\n height: 100%;\n width: 100%;\n}\n\n.omniscribe_thread-content-container {\n display: flex;\n flex: 1;\n width: 100%;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-content-btn-container {\n top: 0;\n left: 0;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 3);\n padding: calc(var(--spacing) * 2);\n padding-left: calc(var(--spacing) * 4);\n z-index: 10;\n}\n.omniscribe_absolute {\n position: absolute;\n}\n\n.omniscribe_relative {\n position: relative;\n}\n\n.omniscribe_thread-content-btn {\n background-color: #b2c3d6;\n}\n.omniscribe_thread-content-btn:hover {\n background-color: var(--color-gray-100);\n}\n\n.omniscribe_thread-content-btn-started-container {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: calc(var(--spacing) * 2);\n position: relative;\n}\n\n.omniscribe_thread-content-btn-started-subcontainer {\n position: absolute;\n left: 0;\n z-index: 10;\n top: calc(var(--spacing) * 2);\n}\n\n.omniscribe_thread-stick-to-bottom {\n font-size: 14px;\n}\n.omniscribe_thread-stick-to-bottom-content {\n position: absolute;\n inset: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n display: grid;\n grid-template-rows: 1fr auto;\n}\n\n.omniscribe_thread-stick-to-bottom-content-class {\n padding-bottom: calc(var(--spacing) * 13);\n display: flex;\n flex-direction: column;\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n min-width: 0;\n}\n\n.omniscribe_thread-footer-container {\n position: sticky;\n display: flex;\n background-color: white;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-inline: calc(var(--spacing) * 4);\n padding-top: calc(var(--spacing) * 1);\n border-bottom: 1px solid #e5e7ec;\n border-bottom-left-radius: 0.5rem;\n}\n\n.omniscribe_thread-footer-scroll-to-bottom {\n position: fixed;\n bottom: 17%;\n}\n.omniscribe_thread-footer-form-container {\n background-color: white;\n border-radius: 1rem;\n border: solid 1px var(--border);\n box-shadow: 0px 4px 4px 0px #00000040;\n margin-inline: auto;\n margin-bottom: calc(0.25rem /* 4px */ * 2);\n width: 100%;\n max-width: 48rem;\n position: relative;\n z-index: 10;\n}\n.omniscribe_thread-footer-form {\n display: grid;\n grid-template-rows: 1fr auto;\n max-width: var(--container-3xl) /* 48rem = 768px */;\n margin-inline: auto;\n}\n.omniscribe_thread-footer-textarea {\n resize: none;\n width: 100%;\n min-height: 20px;\n max-height: 56px;\n height: 20px;\n padding: 0 !important;\n overflow-y: auto;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n.omniscribe_thread-footer-form-content {\n position: relative;\n display: flex;\n align-items: center;\n right: 0;\n bottom: 0;\n width: 100%;\n padding-block: 6px;\n}\n.omniscribe_thread-footer-form-btn {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n}\n.omniscribe_thread-footer-form-left-btns {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.omniscribe_thread-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n.omniscribe_thread-footer-btns-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding-right: 8px;\n}\n\n.omniscribe_thread-footer-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n margin-bottom: 8px;\n}\n\n.omniscribe_thread-no-sources {\n width: 10px;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenu.css */\n.omniscribe_link-menu-container {\n width: 18rem;\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n border: 1px solid var(--grey-200);\n background-color: #ffffff;\n}\n\n.omniscribe_link-menu-navigation {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: var(--grey-50);\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n\n.omniscribe_nav-button {\n height: 1.5rem;\n width: 1.5rem;\n padding: 0.125rem;\n background-color: transparent;\n border: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n color: #6b7280;\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_nav-button:hover {\n background-color: var(--color-gray-100);\n color: #374151;\n}\n\n.omniscribe_nav-button:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px #3b82f6;\n}\n\n.omniscribe_nav-button:active {\n background-color: var(--grey-200);\n}\n\n.omniscribe_nav-icon {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.omniscribe_page-indicator {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: #4b5563;\n}\n\n.omniscribe_link-menu-content {\n padding: 0.375rem;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenuCard.css */\n.omniscribe_card-link {\n display: block;\n border-radius: 0.5rem;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n background-color: #ffffff;\n border: 1px solid var(--grey-200);\n text-decoration: none;\n}\n\n.omniscribe_card {\n border: 0;\n box-shadow: none;\n border-radius: 0.5rem;\n margin: 0;\n padding: 0;\n}\n\n.omniscribe_card:hover {\n background-color: var(--grey-50);\n}\n\n.omniscribe_card-header {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: rgba(249, 250, 251, 0.5);\n}\n\n.omniscribe_favicon {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-icon {\n width: 1rem;\n height: 1rem;\n border-radius: 0.125rem;\n background-color: #d1d5db;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-text {\n font-size: 8px;\n font-weight: 700;\n color: var(--grey-600);\n text-transform: uppercase;\n}\n\n.omniscribe_card-title {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: var(--grey-800);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-grow: 1;\n min-width: 0;\n margin: 0;\n}\n\n.omniscribe_card-content {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.omniscribe_card-content > * + * {\n margin-top: 0.25rem;\n}\n\n.omniscribe_link-text {\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600;\n color: var(--color-activeblack, #000000);\n line-height: 1.375;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.omniscribe_snippet-text {\n font-size: 0.75rem;\n line-height: 1rem;\n color: #4b5563;\n line-height: 1.625;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupPill.css */\n.omniscribe_pill-container {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n\n.omniscribe_pill-button {\n display: inline-flex;\n align-items: center;\n border-radius: 9999px;\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n background-color: var(--blue-100);\n color: var(--blue-700);\n border: 1px solid var(--blue-200);\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.omniscribe_pill-button:hover {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-button:focus {\n background-color: var(--blue-200);\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow:\n 0 0 0 2px #3b82f6,\n 0 0 0 4px rgba(59, 130, 246, 0.1);\n}\n\n.omniscribe_pill-button--active {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-domain {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (min-width: 640px) {\n .omniscribe_pill-domain {\n max-width: 200px;\n }\n}\n\n.omniscribe_pill-counter {\n margin-left: 0.375rem;\n background-color: var(--blue-200);\n color: #1e40af;\n border-radius: 9999px;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n font-size: 10px;\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_menu-portal {\n position: absolute;\n z-index: 100;\n}\n\n\n/* Source: modules/chat/components/thread/components/PredefinedQuestions.css */\n.omniscribe_predefined-questions-container {\n margin-top: calc(var(--spacing) * 2) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n display: flex;\n flex-direction: column;\n}\n.omniscribe_predefined-questions-span {\n color: var(--black);\n}\n\n.omniscribe_predefined-title {\n margin-bottom: 8px;\n}\n\n.omniscribe_predefined-questions-msg-container {\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_predefined-questions-content {\n background-color: #ecf9ff !important;\n text-align: left;\n padding-top: 4px;\n padding-right: 16px;\n padding-bottom: 4px;\n padding-left: 16px;\n border-radius: 4px;\n width: fit-content;\n height: fit-content;\n}\n\n.omniscribe_predefined-questions-btn-rounded {\n border-radius: 8px;\n}\n\n\n/* Source: modules/chat/components/thread/components/history/ThreadHistory.css */\n.omniscribe_thread-list-container {\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-list-content {\n padding-bottom: calc(var(--spacing) * 16);\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.omniscribe_thread-list-item {\n width: 100%;\n padding-inline: 0;\n}\n\n.omniscribe_thread-list-btn {\n text-align: left;\n align-items: center !important;\n justify-content: flex-start !important;\n width: calc(100% - var(--spacing) * 2);\n border-radius: 4px !important;\n margin-bottom: 4px;\n font-weight: var(--font-weight-normal);\n padding-inline: calc(var(--spacing) * 1) !important;\n}\n\n.omniscribe_thread-list-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--Text-Active, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-loading {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2);\n align-items: flex-start;\n justify-content: flex-start;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-history-loading-skeleton {\n width: 100%;\n height: calc(var(--spacing) * 10);\n}\n\n.omniscribe_thread-history-container {\n display: flex;\n flex-direction: column;\n border-right: 1px solid #e5e7ec;\n align-items: flex-start;\n justify-content: flex-start;\n /* gap: calc(var(--spacing) * 6); */\n height: 100%;\n flex-shrink: 0;\n}\n\n.omniscribe_thread-history-button-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n /* space between left group and back button */\n width: 92%;\n /* padding-top: calc(var(--spacing) * 2); */\n background: var(--Greyscale-100, #f6f7f9);\n /* padding-inline: calc(var(--spacing) * 2); */\n padding: 8px;\n}\n\n/* Flex container for the left group */\n.omniscribe_thread-history-left-group {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n /* space between icon and text */\n}\n\n.omniscribe_thread-history-left-text {\n color: var(--Greyscale-900, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n padding-block: calc(var(--spacing) * 1);\n background-color: color-mix(in oklab, var(--blue) 40%, transparent);\n width: stretch;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill-available;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_thread-history-no-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n width: 100%;\n}\n\n.omniscribe_thread-history-chat-started-btn {\n border: none;\n background: transparent;\n padding: 0px;\n display: flex;\n flex-direction: row;\n gap: calc(var(--spacing) * 2);\n align-items: center;\n cursor: pointer;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-history-chat-started-btn-text {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n font-weight: var(--font-weight-semibold);\n letter-spacing: var(--tracking-tight);\n}\n\n.omniscribe_thread-history-title {\n color: var(--Button-Primary-Active, #105bdb);\n font-family: var(--Font-Family-Omniscribe, Lato);\n font-size: var(--Font-Size-font-size-100, 12px) !important;\n font-style: normal;\n line-height: var(--Font-Line-Height-line-height-100, 14.4px) !important;\n /* 120% */\n letter-spacing: var(\n --Font-Letter-Spacing-letter-spacing-100,\n 0.05px\n ) !important;\n cursor: pointer;\n padding-inline: calc(var(--spacing) * 2) !important;\n}\n\n.omniscribe_thread-history-btn {\n border-radius: var(--Radius-radius-small, 4px) !important;\n background-color: var(--Greyscale-300, #e5e7ec) !important;\n cursor: pointer;\n\n &:hover {\n background-color: var(--Greyscale-300, #e5e7ec);\n }\n}\n\n.omniscribe_thread-tooltip {\n padding: calc(0.25rem /* 4px */ * 4);\n}\n\n\n/* Source: modules/chat/components/thread/components/markdown-text.css */\n.omniscribe_markdown-code-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 4) /* 1rem = 16px */;\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--color-zinc-900)\n /* oklch(21% 0.006 285.885) = #18181b */;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n color: var(--white);\n}\n\n.omniscribe_markdown-code-span {\n text-transform: lowercase;\n & > span {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n }\n}\n\n.omniscribe_markdown-h1 {\n margin-bottom: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-4xl) /* 2.25rem = 36px */;\n line-height: var(--text-4xl--line-height) /* calc(2.5 / 2.25) ≈ 1.1111 */;\n font-weight: var(--font-weight-extrabold) /* 800 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h2 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-3xl) /* 1.875rem = 30px */;\n line-height: var(--text-3xl--line-height) /* calc(2.25 / 1.875) ≈ 1.2 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h3 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-2xl);\n line-height: var(--text-2xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h4 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-xl);\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h5 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-size: var(--text-lg);\n line-height: var(--text-lg--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h6 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-p {\n margin-block: calc(var(--spacing) * 2.5);\n line-height: calc(var(--spacing) * 5);\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-a {\n color: var(--primary);\n font-weight: var(--font-weight-medium) /* 500 */;\n text-decoration-line: underline;\n text-underline-offset: 4px;\n overflow-wrap: break-word;\n}\n\n.omniscribe_markdown-blockquote {\n border-left-width: 2px;\n padding-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n font-style: italic;\n}\n\n.omniscribe_markdown-ul {\n list-style-type: disc;\n padding-inline-start: 20px;\n word-break: break-word;\n & > li {\n margin-top: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-ol {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n margin-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n list-style-type: decimal;\n & > li {\n margin-top: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-hr {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n border-bottom-width: 1px;\n}\n.omniscribe_markdown-table {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n width: 100%;\n border-collapse: separate;\n border-spacing: calc(var(--spacing) * 0) /* 0rem = 0px */;\n overflow-y: auto;\n}\n.omniscribe_markdown-th {\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n font-weight: var(--font-weight-bold) /* 700 */;\n &:first-child {\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child {\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-td {\n border-bottom-width: 1px;\n border-left-width: 1px;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n &:last-child {\n border-right-width: 1px;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-tr {\n margin: calc(var(--spacing) * 0) /* 0rem = 0px */;\n &:first-child {\n border-top-width: 1px;\n }\n &:last-child > td:first-child {\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child > td:last-child {\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n}\n\n.omniscribe_markdown-sup {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n & > a {\n text-decoration-line: none;\n }\n}\n\n.omniscribe_markdown-pre {\n overflow-x: auto;\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--black);\n padding: calc(var(--spacing) * 4) /* 1rem = 16px */;\n color: var(--white);\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_markdown-code {\n border-radius: 0.25rem /* 4px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n}\n\n.omniscribe_markdown-link {\n color: var(--color-primary); /* text-primary */\n font-weight: 500; /* font-medium */\n text-decoration: underline; /* underline */\n text-underline-offset: 4px; /* underline-offset-4 */\n word-wrap: break-word; /* break-words */\n}\n\n.omniscribe_markdown-link:hover {\n color: var(--color-primary-dark); /* hover:text-primary-dark */\n}\n\n.omniscribe_assistant-markdown-container strong,\n.omniscribe_assistant-markdown-container b {\n font-weight: bold !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessage.css */\n.omniscribe_assistant-message-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n width: 100%;\n}\n\n.omniscribe_assistant-message-calls-container {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n}\n\n.omniscribe_assistant-markdown-container {\n padding-block: calc(var(--spacing) * 0.5) /* 0.25rem = 4px */;\n}\n\n.omniscribe_assistant-commands-container {\n display: flex;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n align-items: center;\n margin-right: auto;\n}\n.omniscribe_assistant-message-container:hover,\n.omniscribe_assistant-message-container:focus {\n .omniscribe_assistant-commands-container {\n opacity: 100%;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessageLoading.css */\n.omniscribe_assistant-message-loading-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n margin-top: 3px;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_assistant-message-loading {\n display: flex;\n align-items: center;\n border-radius: var(--radius-2xl) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 1);\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n height: calc(var(--spacing) * 8) /* 2rem = 32px */;\n}\n.omniscribe_assistant-message-loading-dot {\n width: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n height: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n border-radius: calc(infinity * 1px);\n animation: loadingFade 2s infinite;\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(1) {\n animation-delay: 0.2s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(2) {\n animation-delay: 0.4s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n@keyframes loadingFade {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 0.8;\n }\n 100% {\n opacity: 0;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/BranchSwitcher.css */\n.omniscribe_brand-switcher-container {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_brand-switcher-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_brand-switcher-btn {\n width: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n height: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n padding: calc(0.25rem /* 4px */ * 1) /* 0.25rem = 4px */;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/CommandBar.css */\n.omniscribe_command-bar-container {\n display: flex;\n align-items: center;\n padding-right: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n transition: opacity 0.2s ease-in-out;\n}\n\n.omniscribe_command-bar-container.omniscribe_command-bar-hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.thumbs.active {\n color: var(--blue-500);\n}\n\n.omniscribe_feedback-button-container {\n position: relative;\n display: inline-block;\n}\n\n.omniscribe_command-bar-container-icon-color,\n.thumbs {\n color: #4a5364;\n}\n\n.omniscribe_command-bar-container svg {\n width: 12px !important;\n height: 12px !important;\n}\n\n.omniscribe_command-bar-container .omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 0.5) !important;\n}\n\n.omniscribe_command-bar-container .tooltip-base {\n padding: 0.25rem 0.5rem;\n}\n\n.omniscribe_command-bar-container .tooltip-trigger {\n padding: 1px;\n margin: 1px;\n}\n\n.omniscribe_command-bar-container .omniscribe_button-size-icon {\n height: calc(var(--spacing) * 3);\n width: calc(var(--spacing) * 3);\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/HumanMessage.css */\n.omniscribe_human-message-container {\n display: flex;\n align-items: center;\n margin-left: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n.omniscribe_human-message-container-editing {\n width: 100%;\n max-width: var(--container-xl) /* 36rem = 576px */;\n}\n.omniscribe_human-message-container-no-editing {\n max-width: 100%;\n}\n\n.omniscribe_human-message-command-container {\n display: flex;\n gap: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n align-items: center;\n margin-left: auto;\n}\n.omniscribe_human-message-command-container-editing {\n opacity: 100%;\n}\n\n.omniscribe_human-message-container:focus,\n.omniscribe_human-message-container:hover {\n .omniscribe_human-message-command-container {\n opacity: 100%;\n }\n}\n\n.omniscribe_human-message-subcontainer {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n.omniscribe_human-message-subcontainer-editing {\n width: 100%;\n}\n\n.omniscribe_human-message-content-text {\n text-align: right;\n padding-top: 4px;\n padding-bottom: 4px;\n padding-inline: calc(var(--spacing) * 2);\n border-radius: var(--radius-3xl);\n background-color: #f6f7f9;\n font-weight: 500;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n margin: 0;\n}\n.omniscribe_human-message-textarea {\n min-height: 2.5rem !important; /* 40px */\n max-height: 12rem !important; /* 192px - Allow more vertical space */\n min-width: 200px !important; /* Minimum width for usability */\n resize: both; /* Allow controlled resizing in both directions */\n width: 100%;\n overflow: auto; /* Enable scroll when content exceeds max dimensions */\n\n &:focus-visible {\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n}\n\n.omniscribe_human-message-textarea-chat-history-close {\n max-width: 100% !important;\n}\n\n.omniscribe_human-message-textarea-chat-history-open {\n max-width: 385px !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ReasoningSection.css */\n.omniscribe_assistant-reasoning-section {\n margin-top: 12px;\n border-left: 3px solid #e5e7eb;\n padding-left: 12px;\n background-color: #f9fafb;\n border-radius: 4px;\n padding: 8px 12px;\n}\n\n.omniscribe_assistant-reasoning-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #6b7280;\n width: 100%;\n text-align: left;\n}\n\n.omniscribe_assistant-reasoning-arrow {\n display: inline-block;\n transition: transform 0.2s ease-in-out;\n transform: rotate(0deg);\n}\n\n.omniscribe_assistant-reasoning-arrow--expanded {\n transform: rotate(90deg);\n}\n\n.omniscribe_assistant-reasoning-summary {\n margin-top: 8px;\n font-size: 14px;\n color: #374151;\n line-height: 1.5;\n}\n\n.omniscribe_assistant-reasoning-summary-item {\n margin: 8px 0;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolCalls.css */\n.omniscribe_tool-calls-container {\n margin-block-start: calc(calc(var(--spacing) * 4) * var(0));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(0)));\n width: 100%;\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_tool-calls-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n max-width: 100%;\n flex-wrap: wrap;\n gap: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n}\n.omniscribe_tool-calls-h3 {\n font-weight: var(--font-weight-bold);\n color: var(--color-gray-900) /* oklch(21% 0.034 264.665) = #101828 */;\n word-break: break-all;\n font-size: 14px;\n margin: 0;\n}\n\n.omniscribe_tool-calls-item-args {\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.omniscribe_tool-calls-item-args-text {\n word-break: break-all;\n margin-right: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n padding-block: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_tool-calls-item-args-code {\n background-color: var(--color-gray-50);\n border-radius: 0.25rem /* 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n word-break: break-all;\n}\n\n.omniscribe_tool-calls-pre {\n font-size: 12px;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolResults.css */\n/* ToolResult Component Styles */\n\n.omniscribe_tool-result {\n margin-top: 2px;\n border: 1px solid var(--grey-200);\n border-radius: 0.5rem !important; /* !rounded-lg */\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n overflow: hidden; /* overflow-hidden */\n width: 100%;\n}\n\n.omniscribe_tool-result-header {\n background-color: var(--grey-50); /* bg-gray-50 */\n padding-left: 1rem; /* px-4 */\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex; /* flex */\n align-items: center; /* items-center */\n justify-content: space-between; /* justify-between */\n}\n\n.omniscribe_tool-result-header--expanded {\n border-bottom: 1px solid var(--grey-200);\n}\n\n.omniscribe_tool-result-header-content {\n display: flex; /* flex */\n align-items: center; /* items-center */\n gap: 0.5rem; /* gap-2 */\n min-width: 0; /* min-w-0 */\n}\n\n.omniscribe_tool-result-title {\n font-weight: 500; /* font-medium */\n color: var(--grey-900);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; /* truncate */\n margin: 0;\n font-size: 14px;\n}\n\n.omniscribe_expand-button {\n padding: 0.25rem; /* p-1 */\n flex-shrink: 0; /* flex-shrink-0 */\n}\n\n.omniscribe_expand-icon {\n width: 1.25rem; /* w-5 */\n height: 1.25rem; /* h-5 */\n}\n\n.omniscribe_tool-result-content {\n padding: 1rem; /* p-4 */\n background-color: #ffffff; /* bg-white */\n max-height: 24rem; /* max-h-96 */\n overflow-y: auto; /* overflow-y-auto */\n}\n\n.omniscribe_tool-result-content > * + * {\n margin-top: 0.5rem; /* space-y-2 */\n}\n\n/* Scrollbar styles for webkit browsers */\n.omniscribe_tool-result-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-track {\n background: #f1f5f9;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n.omniscribe_result-card {\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n border: 1px solid var(--color-gray-100);\n padding-top: 0.5rem !important; /* !py-2 */\n padding-bottom: 0.5rem !important;\n gap: 0 !important; /* !gap-0 */\n}\n\n.omniscribe_result-card-header {\n padding-top: 0.5rem !important; /* !pt-2 */\n padding-left: 0.5rem !important; /* !px-2 */\n padding-right: 0.5rem !important;\n padding-bottom: 0 !important; /* !pb-0 */\n}\n\n.omniscribe_result-card-title {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n font-weight: 600; /* font-semibold */\n}\n\n.omniscribe_result-link {\n color: var(--blue-600);\n text-decoration: none;\n transition-property: color, text-decoration;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_result-link:hover {\n text-decoration: underline; /* hover:underline */\n color: #1e40af; /* hover:text-blue-800 */\n}\n\n.omniscribe_result-card-content {\n padding: 0.5rem !important; /* !p-2 */\n padding-top: 0 !important; /* !pt-0 */\n}\n\n.omniscribe_result-description {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #374151; /* text-gray-700 */\n line-height: 1.625; /* leading-relaxed */\n word-break: break-all; /* break-all */\n display: -webkit-box;\n -webkit-line-clamp: 2; /* line-clamp-2 */\n -webkit-box-orient: vertical;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms; /* transition-all duration-150 ease-in-out */\n transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1); /* ease-in-out */\n}\n\n.omniscribe_result-description:hover {\n -webkit-line-clamp: unset; /* hover:line-clamp-none */\n display: block;\n}\n\n.omniscribe_result-source {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #6b7280; /* text-gray-500 */\n margin-top: 0.25rem; /* mt-1 */\n padding-top: 0.25rem; /* pt-1 */\n border-top: 1px solid var(--color-gray-100);\n}\n\n.omniscribe_string-result {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n white-space: pre-wrap; /* whitespace-pre-wrap */\n background-color: var(--grey-50);\n padding: 0.75rem; /* p-3 */\n border-radius: 0.375rem; /* rounded-md */\n border: 1px solid var(--grey-200);\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo,\n monospace; /* pre tag font */\n}\n\n\n/* Source: modules/chat/components/thread/components/tooltip-icon-button.css */\n.omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 1);\n /* width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6); */\n}\n\n.omniscribe_tooltip-icon-button-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: none;\n}\n\n\n/* Source: modules/configuration/section/Configuration.css */\n.omniscribe_config-content {\n width: 650px;\n max-height: 590px;\n opacity: 1;\n background-color: #ffffff;\n display: flex;\n flex-direction: column;\n overflow: visible;\n}\n\n.omniscribe_config-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n flex: 1;\n}\n\n.omniscribe_config-item {\n width: 100%;\n height: 75px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n opacity: 1;\n padding: 10px 22px 10px 16px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.omniscribe_config-item:hover {\n background-color: #f9fafb;\n}\n\n.omniscribe_config-item:focus {\n outline: none;\n background-color: #f3f4f6;\n}\n\n.omniscribe_config-item:last-child {\n border-bottom: none;\n}\n\n.omniscribe_config-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n}\n\n.omniscribe_config-icon {\n color: #4a5364;\n}\n\n.omniscribe_config-item-content {\n flex: 1;\n margin-left: 16px;\n margin-right: 16px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_config-item-title {\n margin: 0;\n font-weight: 700;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #252a32;\n}\n\n.omniscribe_config-item-description {\n margin: 0;\n font-weight: 500;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #4a5364;\n}\n\n.omniscribe_config-item-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n color: #9ca3af;\n flex-shrink: 0;\n}\n\n/* Sub-screen styles */\n.omniscribe_config-subscreen-header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 16px 12px;\n color: #13161a;\n font-size: 14px;\n font-style: normal;\n font-weight: 700;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-back-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_config-subscreen-title {\n margin: 0;\n font-size: 14px;\n font-weight: 700;\n color: #13161a;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-subscreen-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 16px;\n border-top: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n}\n\n.omniscribe_config-subscreen-content.no-border {\n border-top: none;\n}\n\n.omniscribe_config-subscreen-content-template {\n flex: 1;\n overflow: hidden;\n}\n\n.omniscribe_config-section-label {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #374151;\n line-height: 1.4;\n}\n\n.omniscribe_config-language-section {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_config-language-section-title {\n font-size: 16px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n}\n\n.omniscribe_config-subscreen-description {\n margin: 0 0 0 0;\n font-size: 14px;\n line-height: 18px;\n color: #13161a;\n font-weight: 400;\n}\n\n/* Dictionary Options View Styles */\n.omniscribe_config-dictionary-section {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.omniscribe_config-dictionary-add-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.omniscribe_config-dictionary-input-row {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n\n.omniscribe_config-dictionary-input {\n height: 32px;\n border: 1px solid #e5e8eb !important;\n border-radius: 8px !important;\n padding: 0 12px !important;\n font-size: 14px !important;\n line-height: 1.4 !important;\n background-color: #ffffff !important;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease !important;\n}\n\n.omniscribe_config-dictionary-input:focus {\n outline: none !important;\n border-color: #4f46e5 !important;\n box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-input::placeholder {\n color: #9ca3af !important;\n font-size: 14px !important;\n}\n\n.omniscribe_config-dictionary-input.error {\n border-color: #dc3545 !important;\n background-color: #fff5f5 !important;\n}\n\n.omniscribe_config-dictionary-input.error:focus {\n border-color: #dc3545 !important;\n box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-add-btn {\n width: 32px;\n height: 32px;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--primary);\n border: 1px solid var(--primary);\n border-radius: 8px;\n color: var(--primary-foreground);\n cursor: pointer;\n transition: all 0.2s ease;\n margin-top: 0;\n font-size: 0;\n}\n\n.omniscribe_config-dictionary-add-btn:hover:not(:disabled) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n border-color: color-mix(in oklab, var(--primary) 90%, transparent);\n}\n\n.omniscribe_config-dictionary-add-btn:disabled {\n background-color: #e5e8eb;\n border-color: #e5e8eb;\n color: #9ca3af;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n}\n\n.omniscribe_config-dictionary-list {\n display: flex;\n padding-top: 16px;\n flex-direction: column;\n gap: 8px;\n max-height: 410px;\n overflow-y: auto;\n margin-top: 4px;\n}\n\n.omniscribe_config-dictionary-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background-color: #f9fafb;\n border: 1px solid #e5e8eb;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.omniscribe_config-dictionary-row:hover {\n background-color: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.omniscribe_config-dictionary-cell {\n flex: 1;\n font-size: 14px;\n line-height: 20px;\n color: #374151;\n word-break: break-word;\n font-weight: 500;\n}\n\n.omniscribe_config-dictionary-arrow {\n color: #9ca3af;\n font-size: 16px;\n font-weight: 600;\n flex-shrink: 0;\n margin: 0 4px;\n}\n\n.omniscribe_config-dictionary-delete-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 6px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.omniscribe_config-dictionary-delete-btn:hover {\n background-color: #fee2e2;\n color: #dc2626;\n transform: scale(1.05);\n}\n\n.omniscribe_config-dictionary-empty {\n padding: 40px 16px;\n margin-top: 16px;\n text-align: center;\n color: #6b7280;\n font-size: 14px;\n line-height: 20px;\n background-color: #f9fafb;\n border: 2px dashed #e5e8eb;\n border-radius: 12px;\n font-style: italic;\n}\n\n/* Template specific styles */\n.omniscribe_template-field {\n background: white;\n border-bottom: 1px solid #e1e8ed;\n margin-bottom: 0;\n}\n\n.omniscribe_template-field:last-child {\n border-bottom: none;\n}\n\n.omniscribe_template-field-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n background: #ffffff;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_template-field-icon {\n margin-right: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon svg {\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon.expanded svg {\n transform: rotate(90deg);\n}\n\n.omniscribe_template-field-label {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n color: #2c3e50;\n}\n\n.omniscribe_template-field-content {\n padding: 16px;\n background: white;\n}\n\n.omniscribe_template-textarea {\n width: 100%;\n min-height: 80px;\n max-height: 300px;\n /* Prevent excessive vertical expansion */\n padding: 12px;\n border: 1px solid #e1e8ed;\n border-radius: 6px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n background: white;\n box-sizing: border-box;\n overflow-y: auto;\n /* Enable scroll when content exceeds max height */\n}\n\n.omniscribe_template-textarea:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.omniscribe_template-character-count {\n margin-top: 8px;\n font-size: 12px;\n color: #95a5a6;\n display: flex;\n}\n\n.omniscribe_template-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e1e8ed;\n background: white;\n margin-top: 18px;\n margin-bottom: 50px;\n}\n\n/* Template fields container */\n.omniscribe_template-fields {\n display: flex;\n flex-direction: column;\n max-height: 400px;\n overflow-y: auto;\n background: white;\n}\n\n/* Improved scrollbar for template fields */\n.omniscribe_template-fields::-webkit-scrollbar {\n width: 6px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n}\n\n.omniscribe_config-version-section {\n background: #F6F7F9;\n color: #4A5364;\n padding: 16px 8px 16px 24px;\n font-weight: 500;\n line-height: 16.8px;\n font-size: 12px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n/* Source: modules/layout/components/MinimizeButton/MinimizeButton.css */\n.omniscribe_minimize-button-container {\n position: absolute;\n top: -1px;\n left: 0;\n transform: translateX(-100%);\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n height: auto;\n max-height: 400px;\n min-height: 180px;\n}\n.omniscribe_minimize-button-subcontainer {\n position: relative;\n background-color: color-mix(in oklab, rgb(15, 15, 15) 65%, transparent);\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n backdrop-filter: sepia(1%);\n cursor: pointer;\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 400ms;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_minimize-button-subcontainer:hover {\n background-color: color-mix(in oklab, rgb(15, 15, 15) 85%, transparent);\n}\n.omniscribe_minimize-button-content {\n display: flex;\n rotate: calc(90deg * -2);\n gap: 10px;\n writing-mode: vertical-rl;\n text-orientation: mixed;\n width: 100%;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-wrap: nowrap;\n padding: 12px;\n min-height: 180px;\n max-height: 400px;\n}\n\n.omniscribe_minimize-button-span {\n font-weight: 400;\n font-size: var(--text-lg) /* 1.125rem = 18px */;\n line-height: var(--text-lg--line-height) /* calc(1.75 / 1.125) ≈ 1.5556 */;\n flex-wrap: nowrap;\n color: var(--white);\n display: flex;\n white-space: nowrap;\n text-align: center;\n}\n\n[dir='ltr'] .omniscribe_minimize-button-container {\n left: 0;\n transform: translateX(-100%);\n}\n\n[dir='ltr'] .omniscribe_minimize-button-subcontainer {\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n[dir='rtl'] .omniscribe_minimize-button-container {\n right: 0;\n left: auto;\n transform: translateX(100%);\n}\n[dir='rtl'] .omniscribe_minimize-button-subcontainer {\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeContainer/OmniscribeContainer.css */\n.omniscribe_container {\n isolation: isolate;\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n z-index: 80;\n}\n\n[dir='ltr'] .omniscribe_container {\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n}\n\n[dir='rtl'] .omniscribe_container {\n left: 0;\n right: auto;\n border-top-right-radius: 30px;\n border-bottom-right-radius: 30px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeLayout/OmniscribeLayout.css */\n.omniscribe_layout {\n position: fixed;\n width: var(--layout-w);\n background: var(--white);\n bottom: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 500ms;\n transition-property: transform, translate, scale, rotate;\n display: flex;\n flex-direction: column;\n height: var(--layout-h);\n min-width: 500px;\n min-height: 500px;\n right: 0;\n}\n\n[dir='rtl'] .omniscribe_layout {\n left: 0;\n right: auto;\n border-bottom-right-radius: 12px;\n}\n\n[dir='ltr'] .omniscribe_layout {\n right: 0;\n border-bottom-left-radius: 12px;\n}\n\n.omniscribe_layout-open {\n background: var(--white);\n translate: 0;\n}\n\n.omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n[dir='rtl'] .omniscribe_layout-close {\n translate: calc(var(--layout-w) * -1);\n}\n\n[dir='ltr'] .omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n\n/* Source: modules/utility-section/section/UtilityButtons.css */\n.omniscribe_utility-btns-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n background-color: #ffffff;\n padding: 16px;\n overflow: hidden;\n background: linear-gradient(90deg, #ffffff 0%, #f5f8fe 50%, #e7effd 100%);\n align-self: stretch;\n}\n\n.omniscribe_utility-btns-left,\n.omniscribe_utility-btns-right {\n display: flex;\n flex-direction: row;\n gap: 4px;\n align-items: center;\n}\n\n.omniscribe_utility-btn-right {\n border-radius: var(--Radius-radius-round, 99999px) !important;\n background-color: var(--Greyscale-100, #f6f7f9) !important;\n border: none !important;\n}\n\n.omniscribe_connected-buttons {\n display: flex;\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n overflow: hidden;\n}\n\n.omniscribe_connected-btn-left,\n.omniscribe_connected-btn-right {\n border: none !important;\n border-radius: 0 !important;\n}\n\n.omniscribe_connected-btn-left {\n border-right: 1px solid var(--Stroke-greyscale-Active, #e5e7ec) !important;\n}\n\n.omniscribe_utility-btns {\n cursor: pointer;\n transition-duration: 300ms;\n background-color: color-mix(in oklab, var(--white) 30%, transparent);\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n position: relative;\n padding: 8px;\n display: flex;\n align-items: center;\n\n &:hover {\n background-color: var(--Greyscale-100, #f6f7f9);\n }\n}\n\n.omniscribe_utility-btns-pointer {\n pointer-events: auto;\n}\n\n.omniscribe_utility-btns-no-pointer {\n pointer-events: none;\n background-color: var(--white);\n}\n\n.omniscribe_utility-btns-no-pointer-opacity {\n pointer-events: none;\n opacity: 50%;\n}\n\n.omniscribe_utility-btns-opacity {\n background-color: var(--white);\n opacity: 100%;\n}\n\n.omniscribe_utility-btns-active {\n background-color: var(--Greyscale-100, #f6f7f9);\n border: 1px solid var(--Stroke-greyscale-Active, #105bdb);\n}\n\n.omniscribe_btn-label {\n margin-left: 6px;\n font-size: 14px;\n color: #212529;\n font-weight: 500;\n}\n\n.omniscribe_btn-label-active {\n color: #105bdb;\n}\n\n.omniscribe_icon {\n color: var(--active-black);\n}\n\n.omniscribe_icon-active {\n color: #105bdb;\n}\n\n.omniscribe_config-view {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.omniscribe_config-close-btn {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n color: #000000;\n width: 32px;\n height: 32px;\n}\n\n.omniscribe_config-title {\n margin: 0;\n color: #000000;\n font-size: 16px;\n font-weight: 700;\n line-height: 19.2px;\n}\n\n\n/* Source: shared/components/Card.css */\n.omniscribe_card {\n background-color: var(--color-card, #ffffff);\n color: var(--color-card-foreground, #000000);\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n border-radius: 0.75rem;\n border: 1px solid var(--color-border, var(--grey-200));\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n}\n\n.omniscribe_card-header {\n container-type: inline-size;\n container-name: card-header;\n display: grid;\n grid-auto-rows: min-content;\n grid-template-rows: auto auto;\n align-items: start;\n gap: 0.375rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n/* When card-header has card-action, adjust grid layout */\n.omniscribe_card-header:has([data-slot='card-action']) {\n grid-template-columns: 1fr auto;\n}\n\n/* When card-header has border-b class, add padding bottom */\n.omniscribe_card-header.border-b {\n padding-bottom: 1.5rem;\n}\n\n.omniscribe_card-title {\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_card-description {\n color: var(--color-muted-foreground, #6b7280);\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.omniscribe_card-action {\n grid-column-start: 2;\n grid-row: span 2 / span 2;\n grid-row-start: 1;\n align-self: start;\n justify-self: end;\n}\n\n.omniscribe_card-content {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer {\n display: flex;\n align-items: center;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer.border-t {\n padding-top: 1.5rem;\n}\n\n\n/* Source: shared/components/button.css */\n.omniscribe_button {\n border: none;\n background: transparent;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: calc(var(--spacing) * 2);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &:disabled {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 50%;\n }\n & svg {\n pointer-events: none;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: calc(var(--spacing) * 4) /* 1rem = 16px */;\n height: calc(var(--spacing) * 4) /* 1rem = 16px */;\n }\n &:focus-visible {\n border-color: var(--ring);\n box-shadow: 0 0 0 calc(3px + var(--tw-ring-offset-width))\n color-mix(in oklab, var(--ring) 50%, transparent);\n }\n &[aria-invalid='true'] {\n border-color: var(--destructive);\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n\n.omniscribe_button-variant-default {\n background-color: var(--primary);\n color: var(--primary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n}\n.omniscribe_button-variant-destructive {\n background-color: var(--destructive);\n color: var(--white);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n.omniscribe_button-variant-outline {\n border: solid 1px var(--input);\n background-color: var(--background);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n }\n}\n.omniscribe_button-variant-icon {\n align-items: center;\n border-radius: 100%;\n padding: 10px;\n & svg {\n pointer-events: auto;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: auto;\n height: auto;\n }\n}\n.omniscribe_button-variant-secondadry {\n background-color: var(--secondary);\n color: var(--secondary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n}\n.omniscribe_button-variant-ghost:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n}\n.omniscribe_button-variant-empty {\n cursor: pointer;\n}\n.omniscribe_button-variant-primary {\n cursor: pointer;\n background-color: color-mix(in oklab, var(--primary-button) 80%, transparent);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px !important;\n color: var(--white);\n &:hover {\n background-color: color-mix(\n in oklab,\n var(--primary-button) 60%,\n transparent\n );\n }\n}\n.omniscribe_button-size-default {\n height: calc(var(--spacing) * 9);\n padding-inline: calc(var(--spacing) * 4);\n padding-block: calc(var(--spacing) * 2);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 3) /* 0.75rem = 12px */;\n }\n}\n.omniscribe_button-size-sm {\n height: calc(var(--spacing) * 8);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n gap: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n padding-inline: calc(var(--spacing) * 3);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n}\n\n.omniscribe_button-size-lg {\n height: calc(var(--spacing) * 10);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n padding-inline: calc(var(--spacing) * 6);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n}\n\n.omniscribe_button-size-icon {\n height: calc(var(--spacing) * 5);\n width: calc(var(--spacing) * 5);\n}\n.omniscribe_button-size-padding {\n padding: calc(var(--spacing) * 2);\n min-width: calc(var(--spacing) * 40);\n}\n\n.omniscribe_button-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n}\n.omniscribe_button-whitespace {\n white-space: nowrap;\n}\n.omniscribe_button-rounded {\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n.omniscribe_button-disabled {\n pointer-events: none;\n}\n.omniscribe_button-loading {\n opacity: 50%;\n}\n.omniscribe_button-animate-spin {\n animation: spin 1s linear infinite;\n}\n.omniscribe_button-variant-report {\n cursor: pointer;\n background-color: var(--report);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px;\n color: var(--white);\n &:hover {\n background-color: color-mix(in oklab, var(--report) 60%, transparent);\n }\n}\n\n\n/* Source: shared/components/feedback-modal.css */\n.omniscribe_feedback-modal {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-top: 8px;\n min-width: 200px;\n width: 200px;\n transform-origin: top left;\n}\n\n.omniscribe_feedback-input-container {\n position: relative;\n display: flex;\n align-items: flex-end;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n}\n\n.omniscribe_feedback-textarea {\n flex: 1;\n border: transparent;\n border-radius: 8px;\n padding: 12px 12px 12px 12px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n resize: none;\n min-height: 20px;\n max-height: 200px;\n overflow-y: auto;\n font-family: inherit;\n line-height: 1.4;\n width: 100%;\n box-sizing: border-box;\n}\n.omniscribe_feedback-textarea-padding {\n margin-bottom: 34px;\n padding-bottom: 0px !important;\n}\n\n.omniscribe_feedback-icons {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.omniscribe_feedback-icons:has(.omniscribe_feedback-send) {\n bottom: 8px;\n top: auto;\n transform: none;\n}\n\n.omniscribe_feedback-close {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-close:hover {\n background-color: #f3f4f6;\n color: #374151;\n}\n\n.omniscribe_feedback-close svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-send {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--blue-500);\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-send:hover {\n background-color: #f0f7ff;\n color: #0d47a1;\n}\n\n.omniscribe_feedback-send svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-confirmation {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-top: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n.omniscribe_feedback-confirmation-icon {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* Right-positioned modal styles */\n.omniscribe_feedback-modal-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-left: 8px;\n width: 200px;\n transform-origin: bottom left;\n}\n\n.omniscribe_feedback-sending-center {\n top: 100%;\n left: 0;\n}\n\n.omniscribe_feedback-sending-right {\n bottom: 0;\n left: 40%;\n}\n\n.omniscribe_feedback-sending {\n position: absolute;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n}\n.omniscribe_feedback-confirmation-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n@keyframes fadeInOut {\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n 10% {\n opacity: 1;\n transform: translateY(0);\n }\n 90% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(-10px);\n }\n}\n\n\n/* Source: shared/components/gradient-box.css */\n.omniscribe_gradient-box {\n border-radius: 8px;\n padding: 1px;\n width: fit-content;\n}\n\n\n/* Source: shared/components/input.css */\n.omniscribe_input {\n height: calc(var(--spacing) * 9);\n width: 100%;\n display: flex;\n border-radius: calc(var(--radius));\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 1);\n font-size: var(--text-base) /* 1rem = 16px */;\n line-height: var(--text-base--line-height);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &::file-selector-button {\n color: var(--foreground);\n display: inline-flex;\n height: calc(var(--spacing) * 7);\n border: none;\n background-color: transparent;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n font-weight: var(--font-weight-medium);\n }\n &::placeholder {\n color: var(--muted-foreground);\n }\n &::selection {\n background-color: var(--primary);\n color: var(--primary-foreground);\n }\n &:disabled {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 50%;\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n @media (width >= 48rem /* 768px */) {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n }\n}\n\n.omniscribe_input-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_input.invalid {\n border-color: #dc3545;\n background-color: #fff5f5;\n box-shadow: 0 0 0 0.125rem rgba(220, 53, 69, 0.25);\n}\n\n.omniscribe_input-error {\n color: #dc3545;\n font-size: 10px;\n margin-block: 0.25rem;\n display: block;\n line-height: 1;\n}\n\n\n/* Source: shared/components/loading-modal.css */\n.omniscribe_loading-modal-container {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n.omniscribe_loading-modal-subcontainer {\n background-color: var(--white);\n padding: calc(var(--spacing) * 8);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n text-align: center;\n max-width: var(--container-md);\n}\n.omniscribe_loading-modal-msg {\n font-size: var(--text-xl) /* 1.25rem = 20px */;\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.omniscribe_loading-modal-spin {\n display: inline-block;\n width: calc(var(--spacing) * 12);\n height: calc(var(--spacing) * 12);\n border: solid 4px var(--color-gray-200);\n border-top-color: var(--blue-500);\n border-radius: calc(infinity * 1px);\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n\n/* Source: shared/components/modal.css */\n.omniscribe_modal-overlay {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n\n.omniscribe_modal-container {\n position: relative;\n background-color: var(--white);\n z-index: 100;\n border-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n padding: calc(var(--spacing) * 5);\n transition-duration: 300ms;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n max-width: 90vw;\n max-height: 90vh;\n}\n.omniscribe_modal-container-scroll {\n overflow: auto;\n}\n\n.omniscribe_modal-container-show {\n opacity: 100%;\n}\n\n.omniscribe_modal-container-hide {\n opacity: 0%;\n}\n\n.omniscribe_modal-subcontainer {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_modal-title-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n margin-bottom: calc(var(--spacing) * 2);\n}\n\n.omniscribe_modal-title {\n font-size: var(--text-3xl); /* 1.875rem = 30px */\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin: 0;\n}\n\n.omniscribe_modal-button {\n border: none;\n background: transparent;\n line-height: var(--text-2xl--line-height);\n cursor: pointer;\n color: var(--black);\n}\n\n@media (min-width: 768px) {\n .omniscribe_modal-container {\n max-width: 60vw;\n }\n}\n\n/* Large screens: desktop */\n@media (min-width: 1024px) {\n .omniscribe_modal-container {\n max-width: 50vw;\n }\n}\n\n/* Very large screens: large desktop and ultra-wide */\n@media (min-width: 1440px) {\n .omniscribe_modal-container {\n max-width: 40vw;\n }\n}\n\n/* Intermediate breakpoint: large tablets */\n@media (min-width: 640px) and (max-width: 767px) {\n .omniscribe_modal-container {\n max-width: 70vw;\n }\n}\n\n\n/* Source: shared/components/select.css */\n.omniscribe_select-container {\n position: relative;\n width: 100%;\n padding-block: calc(var(--spacing) * 3);\n}\n.omniscribe_select-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: calc(var(--spacing) * 3);\n background-color: var(--white);\n border-radius: var(--Radius-radius-medium, 8px);\n border: solid 1px var(--light-border);\n cursor: pointer;\n}\n.omniscribe_select-text {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n}\n.omniscribe_select-content-container {\n position: absolute;\n width: 100%;\n margin-top: calc(var(--spacing) * 2);\n border: solid 1px var(--light-border);\n background-color: var(--white);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n bottom: calc(var(--spacing) * 15);\n padding-inline: calc(var(--spacing) * 1);\n padding-block: calc(var(--spacing) * 0.5);\n z-index: 9999;\n}\n.omniscribe_select-content-ul {\n overflow-y: scroll;\n max-height: calc(var(--spacing) * 80);\n padding-inline: 5px;\n}\n.omniscribe_select-content-li {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--spacing) * 3);\n cursor: pointer;\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-100);\n }\n }\n}\n.omniscribe_select-check-icon {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n color: var(--color-slate-500) /* oklch(55.4% 0.046 257.417) = #62748e */;\n}\n.omniscribe_select-content-li-span {\n display: flex;\n align-items: center;\n gap: calc(0.25rem /* 4px */ * 2);\n}\n\n\n/* Source: shared/components/skeleton.css */\n.omniscribe_skeleton {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n\n\n/* Source: shared/components/textarea.css */\n.omniscribe_textarea-default {\n display: flex;\n min-height: calc(var(--spacing) * 16);\n width: -webkit-fill-available;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 2);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n &::placeholder {\n color: var(--muted-foreground);\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n }\n &:focus-visible {\n border-color: var(--ring);\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n &:disabled {\n cursor: not-allowed;\n opacity: 50%;\n }\n}\n\n.omniscribe_textarea-secondary {\n padding: calc(var(--spacing) * 3.5);\n padding-bottom: calc(var(--spacing) * 0);\n border-style: none;\n background-color: transparent;\n resize: none;\n &:focus {\n outline-style: none;\n }\n}\n.omniscribe_textarea-general {\n font-family: 'Lato', sans-serif;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n\n/* Source: shared/components/toast.css */\n.omniscribe_toast-container {\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n top: calc(var(--spacing) * -30);\n border-radius: var(--radius);\n padding: calc(var(--spacing) * 4);\n height: fit-content;\n transition-duration: 500ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n width: calc(var(--spacing) * 120);\n}\n\n.omniscribe_toast-container-danger {\n background-color: var(--color-red-500);\n}\n.omniscribe_toast-container-black {\n background-color: var(--black);\n}\n.omniscribe_toast-container-show {\n right: calc(var(--spacing) * 10);\n}\n.omniscribe_toast-container-hide {\n right: -100%;\n}\n.omniscribe_toast-subcontainer {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 100ms;\n display: flex;\n flex-direction: column;\n color: var(--white);\n}\n.omniscribe_toast-title {\n font-size: 18px;\n font-weight: var(--font-weight-bold);\n}\n.omniscribe_toast-msg {\n font-size: 16px;\n}\n\n\n/* Source: shared/components/tooltip.css */\n.tooltip-base {\n position: fixed;\n z-index: 9999;\n border-radius: 0.375rem; /* rounded-md */\n background-color: #111827;\n padding: 0.5rem 0.75rem; /* px-3 py-2 */\n font-size: 0.875rem; /* text-sm */\n font-family: 'Lato', sans-serif;\n color: #ffffff; /* text-white */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */\n transition: opacity 0.2s ease-in-out; /* transition-opacity duration-200 */\n pointer-events: none;\n user-select: none;\n word-wrap: break-word;\n line-height: 1.4;\n}\n\n/* Tooltip Arrow Styles */\n.tooltip-arrow {\n position: absolute;\n width: 0.5rem; /* w-2 */\n height: 0.5rem; /* h-2 */\n background-color: #111827;\n transform: rotate(45deg);\n}\n\n/* Arrow positioning for each side */\n.tooltip-arrow-top {\n bottom: -0.25rem; /* bottom-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-bottom {\n top: -0.25rem; /* top-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-left {\n right: -0.25rem; /* right-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-right {\n left: -0.25rem; /* left-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n/* Width classes based on message length */\n.tooltip-width-auto {\n width: auto;\n white-space: nowrap;\n}\n\n.tooltip-width-200 {\n width: auto;\n max-width: 200px;\n}\n\n.tooltip-width-xs {\n width: auto;\n max-width: 20rem; /* max-w-xs */\n}\n\n.tooltip-width-sm {\n width: auto;\n max-width: 24rem; /* max-w-sm */\n}\n\n.tooltip-width-400 {\n width: auto;\n max-width: 400px;\n}\n\n/* Trigger container styles */\n.tooltip-trigger {\n display: inline-block;\n}\n\n/* Animation classes */\n.tooltip-enter {\n opacity: 0;\n transform: scale(0.95);\n}\n\n.tooltip-enter-active {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 0.2s ease-in-out,\n transform 0.2s ease-in-out;\n}\n\n.tooltip-exit {\n opacity: 1;\n transform: scale(1);\n}\n\n.tooltip-exit-active {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 0.15s ease-in-out,\n transform 0.15s ease-in-out;\n}\n\n/* Dark theme variant */\n.tooltip-dark {\n background-color: #1f2937; /* bg-gray-800 */\n color: var(--grey-50);\n}\n\n.tooltip-dark .tooltip-arrow {\n background-color: #1f2937;\n}\n\n/* Light theme variant */\n.tooltip-light {\n background-color: #ffffff;\n color: #374151; /* text-gray-700 */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n}\n\n.tooltip-light .tooltip-arrow {\n background-color: #ffffff;\n}\n\n/* Responsive breakpoints */\n@media (max-width: 640px) {\n .tooltip-base {\n max-width: calc(100vw - 2rem);\n font-size: 0.8125rem; /* Slightly smaller on mobile */\n }\n\n .tooltip-width-400,\n .tooltip-width-sm,\n .tooltip-width-xs {\n max-width: calc(100vw - 2rem);\n }\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n .tooltip-base {\n border: 2px solid #ffffff;\n }\n\n .tooltip-light {\n border: 2px solid #000000;\n }\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .tooltip-base,\n .tooltip-enter-active,\n .tooltip-exit-active {\n transition: none;\n }\n}\n";
130213
+ const injectedCss = "/* Source: index.css */\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@700&family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');\n\n#Omniscribe {\n font-family: 'Lato', sans-serif;\n /* define colors */\n --active: #0a3785;\n --background-primary: #e7effd;\n --warning: #ffc107;\n --grey-50: #f9fafb;\n --grey-100: #f6f7f9;\n --grey-200: #e5e7eb;\n --grey-700: #6f7d95;\n --grey-800: #4a5364;\n --grey-900: #111827;\n --active-black: #252a32;\n --placeholder: #a4adbc;\n --line: #e5e7ec;\n --custom-black: #13161a;\n --primary: #105bdb;\n --border: #e5e7ec;\n --white: #fdfdfd;\n --omni: #daf2ff;\n --omni-secondary: rgba(219, 219, 219, 0.75);\n --primary-button: #132caa;\n --primary-text: #36a3cf;\n --primary-900: #061044;\n --blue-100: #dbeafe;\n --blue-200: #bfdbfe;\n --blue-500: #105bdb;\n --blue-600: #2563eb;\n --blue-700: #1d4ed8;\n --report: var(--primary-button);\n --gray: #616161;\n --black: #1b2125;\n --sky-blue: #dbecff;\n --blue: #5886ba;\n --blue-600: #0b1962;\n --background: #f3f3f3bb;\n --foreground: oklch(0.145 0 0);\n --primary: #061044;\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --destructive-foreground: oklch(0.577 0.245 27.325);\n --light-border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.87 0 0);\n --radius: 0.625rem;\n /* TEXT */\n --text-3xs: 8px;\n --text-3xs--line-height: calc(0.5 / 0.25);\n --text-2xs: 10px;\n --text-2xs--line-height: calc(0.75 / 0.5);\n --text-xs: 12px;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 14px;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 16px;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 18px;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 20px;\n --text-xl--line-height: calc(1.75 / 1.25);\n --text-2xl: 22px;\n --text-2xl--line-height: calc(2 / 1.5);\n --text-3xl: 24px;\n --text-3xl--line-height: calc(2.25 / 1.875);\n --text-4xl: 26px;\n --text-4xl--line-height: calc(2.5 / 2.25);\n --text-5xl: 28px;\n --text-5xl--line-height: 1;\n --text-6xl: 30px;\n --text-6xl--line-height: 1;\n --text-7xl: 32px;\n --text-7xl--line-height: 1;\n --text-8xl: 34px;\n --text-8xl--line-height: 1;\n --text-9xl: 46px;\n --text-9xl--line-height: 1;\n --font-weight-thin: 100;\n --font-weight-extralight: 200;\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --font-weight-extrabold: 800;\n --font-weight-black: 900;\n /* custom colors */\n --color-white: var(--white);\n --color-light-border: var(--light-border);\n --color-omni: var(--omni);\n --color-report: var(--report);\n --color-omni-secondary: var(--omni-secondary);\n --color-primary-text: var(--primary-text);\n --color-primary-900: var(--primary-900);\n --color-blue-500: var(--blue-500);\n --color-gray: var(--gray);\n --color-black: var(--black);\n --color-sky-blue: var(--sky-blue);\n --color-cream: var(--cream);\n --color-pink: var(--pink);\n --color-blue: var(--blue);\n --color-blue-600: var(--blue-600);\n --color-sky-blue-100: var(--sky-blue-100);\n --color-white-2: var(--white-2);\n --color-primary-700: var(--primary-700);\n --color-primary-500: var(--primary-500);\n --color-neutral-800: var(--neutral-800);\n --color-blue-2: var(--blue-2);\n --color-light-blue: var(--light-blue);\n --color-primary-100: var(--primary-100);\n --color-primary-300: var(--primary-300);\n --color-black-2: var(--black-2);\n --color-primary-button: var(--primary-button);\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-destructive-foreground: var(--destructive-foreground);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-red-100: oklch(93.6% 0.032 17.717);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-slate-200: oklch(92.9% 0.013 255.508);\n --color-slate-500: oklch(55.4% 0.046 257.417);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: #f3f4f6;\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-900: oklch(21% 0.034 264.665);\n --color-zinc-900: oklch(21% 0.006 285.885);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n /* rounded */\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --radius-2xl: 1rem;\n --radius-3xl: 1.5rem;\n /* spacing */\n --spacing-layout-w: var(--layout-w);\n --spacing-layout-h: var(--layout-h);\n --spacing: 0.25rem;\n /* size */\n --container-md: 28rem;\n --container-xl: 36rem;\n --container-3xl: 48rem;\n --container-4xl: 56rem;\n\n --tracking-tight: -0.025em;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --animate-spin: spin 1s linear infinite;\n --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n\n .no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n a,\n p,\n textarea,\n button,\n span,\n h1,\n h2,\n h3,\n h4,\n h5,\n div {\n font-family: 'Lato', sans-serif;\n }\n /* Hide scrollbar for IE, Edge and Firefox */\n .no-scrollbar {\n -ms-overflow-style: none; /* IE and Edge */\n scrollbar-width: none; /* Firefox */\n }\n .shadow-inner-right {\n box-shadow: inset -9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .shadow-inner-left {\n box-shadow: inset 9px 0 6px -1px rgb(0 0 0 / 0.02);\n }\n .annotation {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-normal);\n }\n .annotation-semi {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .annotation-bold {\n font-size: var(--text-3xs);\n font-weight: var(--font-weight-semibold);\n }\n .info {\n font-size: var(--text-2xs);\n font-weight: var(--font-weight-normal);\n }\n .info-semi {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .info-bold {\n font-size: var(--text-2s);\n font-weight: var(--font-weight-semibold);\n }\n .text-p {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-normal);\n }\n .text-p-semi {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .text-p-bold {\n font-size: var(--text-sm);\n font-weight: var(--font-weight-semibold);\n }\n .omniscribe_shadow-xl {\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n }\n .scrollbar-pretty {\n &::-webkit-scrollbar {\n width: 6px;\n }\n &::-webkit-scrollbar-thumb {\n border-radius: 10px;\n background-color: var(--omni-secondary);\n }\n &::-webkit-scrollbar-track {\n background-color: transparent;\n }\n }\n\n .omniscribe_visible {\n visibility: visible;\n display: flex;\n flex: 1;\n }\n .omniscribe_hidden {\n display: none;\n height: 0;\n }\n\n .omniscribe_animate-spin {\n animation: spin 1s linear infinite;\n }\n}\n\n\n/* Source: modules/audio-recorder/components/audio-visualizer/AudioVisualizer.css */\n.omniscribe_audio-visualizer-container {\n display: flex;\n border-radius: var(--radius-md);\n width: calc(var(--spacing) * 60);\n align-items: center;\n justify-content: center;\n height: 60px;\n background: transparent;\n overflow: hidden;\n}\n\n.omniscribe_audio-visualizer-subcontainer {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_audio-visualizer-item-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding-inline: 1px;\n margin-top: 0.25rem;\n}\n\n.omniscribe_audio-visualizer-item {\n width: 2px;\n height: 2px;\n background-color: rgba(48, 54, 68, 0.85);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 50ms;\n}\n\n.lk-audio-bar-visualizer {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background: var(--lk-bg);\n gap: var(--lk-va-bar-gap, 24px);\n}\n.lk-audio-bar-visualizer > .lk-audio-bar {\n transform-origin: 'center';\n height: 100%;\n width: var(--lk-va-bar-width, 12px);\n border-radius: var(--lk-va-bar-border-radius, 32px);\n background-color: var(--lk-va-bar-bg, rgba(136, 136, 136, 0.2));\n transition: background-color 0.25s ease-out;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='speaking'] > .lk-audio-bar,\n.lk-audio-bar-visualizer > .lk-audio-bar.lk-highlighted,\n.lk-audio-bar-visualizer > [data-lk-highlighted='true'] {\n background-color: var(--lk-fg, rgb(136, 136, 136));\n transition: none;\n}\n.lk-audio-bar-visualizer[data-lk-va-state='thinking'] {\n transition: background-color 0.15s ease-out;\n}\n\n\n/* Source: modules/audio-recorder/components/content-container/content-containter.css */\n.omniscribe_audio-content-container {\n background-color: var(--white);\n width: -webkit-fill-available;\n flex: 1 1 0 !important;\n min-height: 0 !important;\n display: flex !important;\n flex-direction: column !important;\n overflow: hidden !important;\n}\n\n.omniscribe_audio-content-messages {\n color: var(--black);\n}\n\n.omniscribe_transcription-footer-container {\n position: sticky;\n display: flex;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-bottom: calc(var(--spacing) * 3);\n}\n\n.omniscribe_audio-content-render {\n color: var(--black);\n font-weight: var(--font-weight-medium);\n padding-block: 0.5rem;\n padding-inline: 0.75rem;\n margin-bottom: 0.25rem;\n}\n\n.omniscribe_patient {\n color: #db10c1;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_doctor {\n color: var(--blue-500);\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_speaker {\n color: #28a745;\n padding-right: 0.5rem;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n}\n\n.omniscribe_transcription {\n color: var(--black);\n}\n\n.omniscribe_transcription-down-btn-container {\n background-color: white;\n}\n\n.omniscribe_transcription-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n/* Chrome, Safari, Edge (Webkit) */\n.omniscribe_audio-content-container > div::-webkit-scrollbar {\n width: 6px !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-thumb {\n border-radius: 10px !important;\n background-color: var(--omni-secondary) !important;\n}\n\n.omniscribe_audio-content-container > div::-webkit-scrollbar-track {\n background-color: transparent !important;\n}\n\n/* Firefox */\n.omniscribe_audio-content-container > div {\n scrollbar-width: thin !important;\n scrollbar-color: var(--omni-secondary) transparent !important;\n}\n\n\n/* Source: modules/audio-recorder/components/recorder-counter/RecorderCounter.css */\n.omniscribe_audio-recorder-timer {\n color: var(--blue-500);\n font-weight: 600; /* SemiBold */\n font-style: normal; /* SemiBold is a weight, not a style */\n font-size: var(--font-size-400); /* design token */\n line-height: var(--line-height-400); /* design token */\n letter-spacing: 0;\n text-align: center;\n}\n\n\n/* Source: modules/audio-recorder/components/report-button/ReportButton.css */\n.omniscribe_report-button-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 0.5rem;\n}\n.omniscribe_report-button-width {\n max-height: 32px;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width {\n max-height: 32px;\n background-color: var(--blue-500) !important;\n font-size: var(--text-xs) !important;\n}\n.omniscribe_regenerate-button-width:hover {\n background-color: #0c48ad !important; /* darker shade of blue */\n}\n\n\n/* Source: modules/audio-recorder/components/toggle-record/ToggleRecord.css */\n.omniscribe_record-button-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.omniscribe_record-button-classname {\n background-color: transparent;\n border: none;\n padding: 4px;\n}\n\n.omniscribe_record-button {\n background-color: var(--primary-button);\n border-radius: 50%;\n cursor: pointer;\n width: 56px;\n height: 56px;\n align-items: center;\n justify-content: center;\n display: flex;\n transition-duration: 300ms;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_record-button-enabled {\n opacity: 100%;\n pointer-events: auto;\n scale: 110%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-not-enabled {\n opacity: 50%;\n &:hover {\n scale: 150%;\n }\n}\n.omniscribe_record-button-disabled {\n opacity: 50%;\n background-color: dimgray;\n pointer-events: none;\n}\n\n.omniscribe_record-enabled {\n width: 50px;\n height: 50px;\n background-color: var(--primary-button);\n animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;\n position: absolute;\n z-index: -1;\n border-radius: calc(infinity * 1px);\n opacity: 100%;\n}\n\n@keyframes ping {\n 75%,\n 100% {\n transform: scale(2);\n opacity: 0;\n }\n}\n\n\n/* Source: modules/audio-recorder/section/AudioRecorder.css */\n.omniscribe_audio-recorder {\n align-items: center;\n padding-block: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n background-color: var(--white);\n display: flex;\n flex: 1;\n flex-direction: column;\n}\n\n[dir='ltr'] .omniscribe_audio-recorder {\n border-bottom-left-radius: 12px;\n}\n\n[dir='rtl'] .omniscribe_audio-recorder {\n border-bottom-right-radius: 12px;\n border-bottom-left-radius: 0px;\n}\n\n.omniscribe_audio-recorder-container {\n display: flex;\n align-items: center;\n border: solid 1px var(--light-border);\n background-color: var(--white);\n max-height: 42px;\n border-radius: 9999px;\n border-width: 1px;\n justify-content: space-between;\n margin-bottom: 5px;\n flex: 1;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n padding-inline: calc(var(--spacing) * 2);\n}\n\n.omniscribe_audio-recorder-audio-container {\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: center;\n}\n\n.omniscribe_audio-recorder-refresh-btn {\n cursor: pointer;\n background-color: #f6f7f9;\n border-radius: 100px;\n transition:\n transform 0.3s ease,\n opacity 0.3s ease,\n background-color 0.3s ease;\n transform: scale(1);\n}\n.omniscribe_audio-recorder-refresh-btn-enabled {\n pointer-events: auto;\n opacity: 1;\n\n &:hover {\n transform: scale(1.15);\n }\n}\n.omniscribe_audio-recorder-refresh-btn-disabled {\n pointer-events: none;\n opacity: 0.5;\n}\n.omniscribe_audio-recorder-audio-content-container {\n border: 1px solid #e5e7ec;\n height: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n border-radius: 8px;\n margin-top: 18px;\n padding-top: 8px;\n padding-inline: calc(var(--spacing) * 4);\n padding-bottom: 8px;\n align-self: stretch;\n margin-inline: calc(var(--spacing) * 4);\n}\n.omniscribe_audio-recorder-footer {\n border-top: 1px solid #e5e7ec;\n padding-top: 16px;\n margin-top: 12px;\n display: flex;\n width: 100%;\n}\n.omniscribe_audio-recorder-footer-content {\n padding-inline: calc(var(--spacing) * 4);\n width: 100%;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n.omniscribe_audio-recorder-audio-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n padding-block: 8px;\n}\n\n.omniscribe_audio-recorder-audio-star-icons {\n display: flex;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_audio-recorder-audio-feedback {\n color: #4a5364;\n}\n\n.omniscribe_audio-recorder-refresh-icon {\n color: #252a32;\n}\n\n.omniscribe_audio-recorder-star-icon {\n cursor: pointer;\n display: inline-block;\n}\n\n.omniscribe_audio-recorder-audio-star-container {\n position: relative;\n}\n\n\n/* Source: modules/chat/components/MicrophoneButton.css */\n/* Microphone Button Styles */\n.microphone-button {\n transition: all 150ms ease;\n border: none !important;\n background-color: white !important;\n box-shadow: none !important;\n margin-right: 3px;\n}\n\n.microphone-button--recording {\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n background-color: red !important;\n}\n\n/* Pulse animation for recording state */\n@keyframes pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n}\n\n\n/* Source: modules/chat/components/thread/Thread.css */\n.omniscribe_thread-container {\n flex: 1;\n border-style: none;\n display: flex;\n overflow: hidden;\n background: transparent;\n bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n margin-block: calc(var(--spacing) * 0) /* 0rem = 0px */;\n right: 20px;\n border-bottom-left-radius: 12px;\n width: 100%;\n}\n\n.omniscribe_thread-container-history-cont {\n position: relative;\n display: flex;\n width: 0%;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-container-history-cont-open {\n width: 33%;\n}\n\n.omniscribe_thread-container-history-subcont {\n position: absolute;\n width: 100%;\n height: 100%;\n border-right-width: 1px;\n border-color: var(--color-slate-200)\n /* oklch(92.9% 0.013 255.508) = #e2e8f0 */;\n overflow: hidden;\n z-index: 20;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n.omniscribe_thread-container-history-subcont-open {\n translate: calc(var(--spacing) * 0);\n}\n\n.omniscribe_thread-container-history-subcont-close {\n translate: calc(300px * -1);\n}\n\n.omniscribe_thread-container-history-content {\n position: relative;\n height: 100%;\n width: 100%;\n}\n\n.omniscribe_thread-content-container {\n display: flex;\n flex: 1;\n width: 100%;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-content-btn-container {\n top: 0;\n left: 0;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 3);\n padding: calc(var(--spacing) * 2);\n padding-left: calc(var(--spacing) * 4);\n z-index: 10;\n}\n.omniscribe_absolute {\n position: absolute;\n}\n\n.omniscribe_relative {\n position: relative;\n}\n\n.omniscribe_thread-content-btn {\n background-color: #b2c3d6;\n}\n.omniscribe_thread-content-btn:hover {\n background-color: var(--color-gray-100);\n}\n\n.omniscribe_thread-content-btn-started-container {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: calc(var(--spacing) * 2);\n position: relative;\n}\n\n.omniscribe_thread-content-btn-started-subcontainer {\n position: absolute;\n left: 0;\n z-index: 10;\n top: calc(var(--spacing) * 2);\n}\n\n.omniscribe_thread-stick-to-bottom {\n font-size: 14px;\n}\n.omniscribe_thread-stick-to-bottom-content {\n position: absolute;\n inset: 0;\n overflow-y: scroll;\n overflow-x: hidden;\n display: grid;\n grid-template-rows: 1fr auto;\n}\n\n.omniscribe_thread-stick-to-bottom-content-class {\n padding-bottom: calc(var(--spacing) * 13);\n display: flex;\n flex-direction: column;\n padding-left: calc(var(--spacing) * 4);\n padding-right: calc(var(--spacing) * 4);\n min-width: 0;\n padding-top: 12px;\n position: relative;\n}\n\n.omniscribe_thread-footer-container {\n position: sticky;\n display: flex;\n background-color: white;\n flex-direction: column;\n align-items: center;\n bottom: 0;\n padding-inline: calc(var(--spacing) * 4);\n padding-top: calc(var(--spacing) * 1);\n border-bottom: 1px solid #e5e7ec;\n border-bottom-left-radius: 0.5rem;\n}\n\n.omniscribe_thread-footer-scroll-to-bottom {\n position: fixed;\n bottom: 17%;\n}\n.omniscribe_thread-footer-form-container {\n background-color: white;\n border-radius: 1rem;\n border: solid 1px var(--border);\n box-shadow: 0px 4px 4px 0px #00000040;\n margin-inline: auto;\n margin-bottom: calc(0.25rem /* 4px */ * 2);\n width: 100%;\n max-width: 48rem;\n position: relative;\n z-index: 10;\n}\n\n.omniscribe_thread-footer-form {\n display: grid;\n grid-template-rows: 1fr auto;\n max-width: var(--container-3xl) /* 48rem = 768px */;\n margin-inline: auto;\n}\n\n.omniscribe_thread-footer-textarea {\n resize: none;\n width: 100%;\n min-height: 20px;\n max-height: 56px;\n height: 20px;\n padding: 0 !important;\n overflow-y: auto;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n.omniscribe_thread-footer-form-content {\n position: relative;\n display: flex;\n align-items: center;\n right: 0;\n bottom: 0;\n width: 100%;\n padding-block: 6px;\n}\n.omniscribe_thread-footer-form-btn {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n}\n.omniscribe_thread-footer-form-left-btns {\n display: flex;\n align-items: center;\n width: 100%;\n}\n.omniscribe_thread-down-btn {\n width: calc(0.25rem /* 4px */ * 4);\n height: calc(0.25rem /* 4px */ * 4);\n}\n\n.omniscribe_thread-footer-btns-container {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding-right: 8px;\n}\n\n.omniscribe_thread-footer-info {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n color: #6f7d95;\n margin-bottom: 8px;\n}\n\n.omniscribe_thread-no-sources {\n width: 10px;\n}\n\n/* Attach file button */\n.omniscribe_thread-attach-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: none;\n border-radius: 8px;\n background-color: transparent;\n color: var(--color-gray-500, #6b7280);\n cursor: pointer;\n transition:\n background-color 0.2s ease,\n color 0.2s ease;\n padding: 0;\n margin-left: 8px;\n margin-right: 8px;\n flex-shrink: 0;\n}\n\n.omniscribe_thread-attach-btn:hover {\n background-color: var(--color-gray-100, #f3f4f6);\n color: var(--color-gray-700, #374151);\n}\n\n.omniscribe_thread-attach-btn:disabled {\n background-color: transparent;\n color: var(--color-gray-300, #d1d5db);\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.omniscribe_thread-attach-btn:disabled:hover {\n background-color: transparent;\n color: var(--color-gray-300, #d1d5db);\n}\n\n\n/* Source: modules/chat/components/thread/components/FileLimitBanner.css */\n/* File Limit Banner */\n.omniscribe_file-limit-banner {\n position: fixed;\n top: 20px;\n left: 50%;\n transform: translateX(-50%);\n z-index: 1000;\n background-color: #dc2626;\n color: white;\n border-radius: 12px;\n box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);\n animation:\n slideInFromTop 0.3s ease-out,\n slideOutToTop 0.3s ease-in 4.7s;\n animation-fill-mode: forwards;\n width: auto;\n max-width: 90vw;\n padding: 0;\n margin: 0 auto;\n}\n\n.omniscribe_file-limit-banner-content {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 12px 20px;\n gap: 12px;\n white-space: nowrap;\n}\n\n.omniscribe_file-limit-banner-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: white;\n}\n\n.omniscribe_file-limit-banner-message {\n font-size: 14px;\n font-weight: 500;\n line-height: 1.4;\n text-align: center;\n}\n\n.omniscribe_file-limit-banner-close {\n background: none;\n border: none;\n color: white;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.omniscribe_file-limit-banner-close:hover {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n.omniscribe_file-limit-banner-close svg {\n width: 16px;\n height: 16px;\n}\n\n/* Animations */\n@keyframes slideInFromTop {\n 0% {\n opacity: 0;\n transform: translateX(-50%) translateY(-20px);\n }\n 100% {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n\n@keyframes slideOutToTop {\n 0% {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateX(-50%) translateY(-20px);\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/FilePreview.css */\n/* File Preview Container */\n.omniscribe_file-preview-container {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n gap: 8px;\n width: 580px;\n padding: 12px 16px;\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Force scroll in any context */\n position: relative;\n z-index: 1;\n /* Ensure scroll works even with parent containers that have overflow hidden */\n min-height: 104px; /* minimum height for content */\n}\n\n.omniscribe_file-preview-container-history-open {\n width: 372px;\n}\n\n/* Custom scrollbar */\n.omniscribe_file-preview-container::-webkit-scrollbar {\n height: 6px;\n}\n\n.omniscribe_file-preview-container::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.omniscribe_file-preview-container::-webkit-scrollbar-thumb {\n background-color: #d1d5db;\n border-radius: 3px;\n}\n\n.omniscribe_file-preview-container::-webkit-scrollbar-thumb:hover {\n background-color: #9ca3af;\n}\n\n/* Individual image thumbnail */\n.omniscribe_file-preview-image {\n position: relative;\n width: 80px;\n height: 80px;\n border-radius: 12px;\n background-color: #e8edf5;\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.omniscribe_file-preview-image-img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 12px;\n}\n\n.omniscribe_file-preview-image-placeholder {\n width: 100%;\n height: 100%;\n background-color: #e8edf5;\n border-radius: 12px;\n}\n\n/* Document card */\n.omniscribe_file-preview-document {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px;\n background-color: white;\n border: 1px solid var(--border, #e5e7eb);\n border-radius: 16px;\n min-width: 220px;\n max-width: 280px;\n max-height: 56px;\n position: relative;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n flex-shrink: 0;\n}\n\n.omniscribe_file-preview-document-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 48px;\n height: 48px;\n background-color: #dc2626;\n border-radius: 8px;\n flex-shrink: 0;\n}\n\n.omniscribe_file-preview-document-icon svg {\n color: white;\n}\n\n.omniscribe_file-preview-document-info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n flex: 1;\n padding-right: 24px;\n}\n\n.omniscribe_file-preview-document-title {\n font-size: 14px;\n font-weight: 500;\n color: var(--color-gray-900, #111827);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 200px;\n}\n\n.omniscribe_file-preview-document-type {\n font-size: 12px;\n color: #dc2626;\n font-weight: 500;\n}\n\n/* Remove button */\n.omniscribe_file-preview-remove-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: none;\n border-radius: 50%;\n background-color: #2563eb;\n color: white;\n cursor: pointer;\n padding: 0;\n transition: background-color 0.2s ease;\n z-index: 1;\n}\n\n.omniscribe_file-preview-remove-btn:hover {\n background-color: #1d4ed8;\n}\n\n.omniscribe_file-preview-remove-btn--image {\n top: 6px;\n right: 6px;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenu.css */\n.omniscribe_link-menu-container {\n width: 18rem;\n border-radius: 0.5rem;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n border: 1px solid var(--grey-200);\n background-color: #ffffff;\n}\n\n.omniscribe_link-menu-navigation {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: var(--grey-50);\n border-top-left-radius: 0.5rem;\n border-top-right-radius: 0.5rem;\n}\n\n.omniscribe_nav-button {\n height: 1.5rem;\n width: 1.5rem;\n padding: 0.125rem;\n background-color: transparent;\n border: none;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.375rem;\n color: #6b7280;\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_nav-button:hover {\n background-color: var(--color-gray-100);\n color: #374151;\n}\n\n.omniscribe_nav-button:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow: 0 0 0 2px #3b82f6;\n}\n\n.omniscribe_nav-button:active {\n background-color: var(--grey-200);\n}\n\n.omniscribe_nav-icon {\n width: 0.875rem;\n height: 0.875rem;\n}\n\n.omniscribe_page-indicator {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: #4b5563;\n}\n\n.omniscribe_link-menu-content {\n padding: 0.375rem;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupMenuCard.css */\n.omniscribe_card-link {\n display: block;\n border-radius: 0.5rem;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 200ms;\n background-color: #ffffff;\n border: 1px solid var(--grey-200);\n text-decoration: none;\n}\n\n.omniscribe_card {\n border: 0;\n box-shadow: none;\n border-radius: 0.5rem;\n margin: 0;\n padding: 0;\n}\n\n.omniscribe_card:hover {\n background-color: var(--grey-50);\n}\n\n.omniscribe_card-header {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 0.5rem;\n border-bottom: 1px solid var(--color-gray-100);\n background-color: rgba(249, 250, 251, 0.5);\n}\n\n.omniscribe_favicon {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-icon {\n width: 1rem;\n height: 1rem;\n border-radius: 0.125rem;\n background-color: #d1d5db;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.omniscribe_fallback-text {\n font-size: 8px;\n font-weight: 700;\n color: var(--grey-600);\n text-transform: uppercase;\n}\n\n.omniscribe_card-title {\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n color: var(--grey-800);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-grow: 1;\n min-width: 0;\n margin: 0;\n}\n\n.omniscribe_card-content {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.omniscribe_card-content > * + * {\n margin-top: 0.25rem;\n}\n\n.omniscribe_link-text {\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600;\n color: var(--color-activeblack, #000000);\n line-height: 1.375;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.omniscribe_snippet-text {\n font-size: 0.75rem;\n line-height: 1rem;\n color: #4b5563;\n line-height: 1.625;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n\n/* Source: modules/chat/components/thread/components/LinkGroupPill.css */\n.omniscribe_pill-container {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin-left: 0.125rem;\n margin-right: 0.125rem;\n}\n\n.omniscribe_pill-button {\n display: inline-flex;\n align-items: center;\n border-radius: 9999px;\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n font-size: 0.75rem;\n line-height: 1rem;\n font-weight: 500;\n background-color: var(--blue-100);\n color: var(--blue-700);\n border: 1px solid var(--blue-200);\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.omniscribe_pill-button:hover {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-button:focus {\n background-color: var(--blue-200);\n outline: 2px solid transparent;\n outline-offset: 2px;\n box-shadow:\n 0 0 0 2px #3b82f6,\n 0 0 0 4px rgba(59, 130, 246, 0.1);\n}\n\n.omniscribe_pill-button--active {\n background-color: var(--blue-200);\n}\n\n.omniscribe_pill-domain {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n@media (min-width: 640px) {\n .omniscribe_pill-domain {\n max-width: 200px;\n }\n}\n\n.omniscribe_pill-counter {\n margin-left: 0.375rem;\n background-color: var(--blue-200);\n color: #1e40af;\n border-radius: 9999px;\n padding-left: 0.375rem;\n padding-right: 0.375rem;\n padding-top: 0.125rem;\n padding-bottom: 0.125rem;\n font-size: 10px;\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_menu-portal {\n position: absolute;\n z-index: 100;\n}\n\n\n/* Source: modules/chat/components/thread/components/PredefinedQuestions.css */\n.omniscribe_predefined-questions-container {\n margin-top: calc(var(--spacing) * 2) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n display: flex;\n flex-direction: column;\n}\n.omniscribe_predefined-questions-span {\n color: var(--black);\n}\n\n.omniscribe_predefined-title {\n margin-bottom: 8px;\n}\n\n.omniscribe_predefined-questions-msg-container {\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_predefined-questions-content {\n background-color: #ecf9ff !important;\n text-align: left;\n padding-top: 4px;\n padding-right: 16px;\n padding-bottom: 4px;\n padding-left: 16px;\n border-radius: 4px;\n width: fit-content;\n height: fit-content;\n}\n\n.omniscribe_predefined-questions-btn-rounded {\n border-radius: 8px;\n}\n\n\n/* Source: modules/chat/components/thread/components/SummaryLoading.css */\n/* Auto-summary loading styles */\n.omniscribe_auto-summary-container {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n flex-direction: column;\n padding: 20px;\n z-index: 1000;\n pointer-events: none;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_auto-summary-text {\n font-size: 18px;\n text-align: center;\n margin-bottom: 20px;\n font-weight: 500;\n color: #2b303a;\n}\n\n.omniscribe_auto-summary-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Loading dots animation */\n.omniscribe_loading-dots {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n\n.omniscribe_loading-dots::after {\n content: '';\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #666;\n animation: omniscribe-dot-flashing 1.4s infinite linear;\n}\n\n.omniscribe_loading-dots::before {\n content: '';\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #666;\n animation: omniscribe-dot-flashing 1.4s infinite linear;\n animation-delay: -0.16s;\n margin-right: 4px;\n}\n\n.omniscribe_loading-dots span {\n display: inline-block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: #666;\n animation: omniscribe-dot-flashing 1.4s infinite linear;\n animation-delay: -0.32s;\n margin-right: 4px;\n}\n\n@keyframes omniscribe-dot-flashing {\n 0%,\n 80%,\n 100% {\n opacity: 0;\n }\n 40% {\n opacity: 1;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/history/ThreadHistory.css */\n.omniscribe_thread-list-container {\n width: 100%;\n height: 100%;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-list-content {\n padding-bottom: calc(var(--spacing) * 16);\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.omniscribe_thread-list-item {\n width: 100%;\n padding-inline: 0;\n}\n\n.omniscribe_thread-list-btn {\n text-align: left;\n align-items: center !important;\n justify-content: flex-start !important;\n width: calc(100% - var(--spacing) * 2);\n border-radius: 4px !important;\n margin-bottom: 4px;\n font-weight: var(--font-weight-normal);\n padding-inline: calc(var(--spacing) * 1) !important;\n}\n\n.omniscribe_thread-list-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--Text-Active, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-loading {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: calc(var(--spacing) * 2);\n align-items: flex-start;\n justify-content: flex-start;\n overflow-y: scroll;\n overflow-x: hidden;\n padding-inline: calc(var(--spacing) * 1);\n}\n\n.omniscribe_thread-history-loading-skeleton {\n width: 100%;\n height: calc(var(--spacing) * 10);\n}\n\n.omniscribe_thread-history-container {\n display: flex;\n flex-direction: column;\n border-right: 1px solid #e5e7ec;\n align-items: flex-start;\n justify-content: flex-start;\n /* gap: calc(var(--spacing) * 6); */\n height: 100%;\n flex-shrink: 0;\n}\n\n.omniscribe_thread-history-button-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n /* space between left group and back button */\n width: 92%;\n /* padding-top: calc(var(--spacing) * 2); */\n background: var(--Greyscale-100, #f6f7f9);\n /* padding-inline: calc(var(--spacing) * 2); */\n padding: 8px;\n}\n\n/* Flex container for the left group */\n.omniscribe_thread-history-left-group {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n /* space between icon and text */\n}\n\n.omniscribe_thread-history-left-text {\n color: var(--Greyscale-900, #252a32);\n font-size: var(--Font-Size-font-size-100, 12px);\n font-style: normal;\n font-weight: var(--Font-Weight-Regular, 400);\n line-height: var(--Font-Line-Height-line-height-100, 14.4px);\n /* 120% */\n letter-spacing: var(--Font-Letter-Spacing-letter-spacing-100, 0.05px);\n}\n\n.omniscribe_thread-history-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n padding-block: calc(var(--spacing) * 1);\n background-color: color-mix(in oklab, var(--blue) 40%, transparent);\n width: stretch;\n width: -moz-available;\n width: -webkit-fill-available;\n width: fill-available;\n box-shadow:\n inset 0 2px 4px rgb(0 0 0 / 0.05),\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n.omniscribe_thread-history-no-chat-started-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-inline: calc(var(--spacing) * 2);\n width: 100%;\n}\n\n.omniscribe_thread-history-chat-started-btn {\n border: none;\n background: transparent;\n padding: 0px;\n display: flex;\n flex-direction: row;\n gap: calc(var(--spacing) * 2);\n align-items: center;\n cursor: pointer;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.omniscribe_thread-history-chat-started-btn-text {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n font-weight: var(--font-weight-semibold);\n letter-spacing: var(--tracking-tight);\n}\n\n.omniscribe_thread-history-title {\n color: var(--Button-Primary-Active, #105bdb);\n font-family: var(--Font-Family-Omniscribe, Lato);\n font-size: var(--Font-Size-font-size-100, 12px) !important;\n font-style: normal;\n line-height: var(--Font-Line-Height-line-height-100, 14.4px) !important;\n /* 120% */\n letter-spacing: var(\n --Font-Letter-Spacing-letter-spacing-100,\n 0.05px\n ) !important;\n cursor: pointer;\n padding-inline: calc(var(--spacing) * 2) !important;\n}\n\n.omniscribe_thread-history-btn {\n border-radius: var(--Radius-radius-small, 4px) !important;\n background-color: var(--Greyscale-300, #e5e7ec) !important;\n cursor: pointer;\n\n &:hover {\n background-color: var(--Greyscale-300, #e5e7ec);\n }\n}\n\n.omniscribe_thread-tooltip {\n padding: calc(0.25rem /* 4px */ * 4);\n}\n\n\n/* Source: modules/chat/components/thread/components/markdown-text.css */\n.omniscribe_markdown-code-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: calc(var(--spacing) * 4) /* 1rem = 16px */;\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--color-zinc-900)\n /* oklch(21% 0.006 285.885) = #18181b */;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n color: var(--white);\n}\n\n.omniscribe_markdown-code-span {\n text-transform: lowercase;\n & > span {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n }\n}\n\n.omniscribe_markdown-h1 {\n margin-bottom: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-4xl) /* 2.25rem = 36px */;\n line-height: var(--text-4xl--line-height) /* calc(2.5 / 2.25) ≈ 1.1111 */;\n font-weight: var(--font-weight-extrabold) /* 800 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h2 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 8) /* 2rem = 32px */;\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-3xl) /* 1.875rem = 30px */;\n line-height: var(--text-3xl--line-height) /* calc(2.25 / 1.875) ≈ 1.2 */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h3 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-2xl);\n line-height: var(--text-2xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h4 {\n margin-bottom: calc(var(--spacing) * 4);\n margin-top: calc(var(--spacing) * 6);\n scroll-margin: calc(var(--spacing) * 20) /* 5rem = 80px */;\n font-size: var(--text-xl);\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n letter-spacing: var(--tracking-tight) /* -0.025em */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n.omniscribe_markdown-h5 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-size: var(--text-lg);\n line-height: var(--text-lg--line-height);\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-h6 {\n margin-block: calc(var(--spacing) * 4) /* 1rem = 16px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-p {\n margin-block: calc(var(--spacing) * 2.5);\n line-height: calc(var(--spacing) * 5);\n &:first-child {\n margin-top: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n &:last-child {\n margin-bottom: calc(var(--spacing) * 0) /* 0rem = 0px */;\n }\n}\n\n.omniscribe_markdown-a {\n color: var(--primary);\n font-weight: var(--font-weight-medium) /* 500 */;\n text-decoration-line: underline;\n text-underline-offset: 4px;\n overflow-wrap: break-word;\n}\n\n.omniscribe_markdown-blockquote {\n border-left-width: 2px;\n padding-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n font-style: italic;\n}\n\n.omniscribe_markdown-ul {\n list-style-type: disc;\n padding-inline-start: 20px;\n word-break: break-word;\n & > li {\n margin-top: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-ol {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n margin-left: calc(var(--spacing) * 6) /* 1.5rem = 24px */;\n list-style-type: decimal;\n & > li {\n margin-top: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n }\n}\n\n.omniscribe_markdown-hr {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n border-bottom-width: 1px;\n}\n.omniscribe_markdown-table {\n margin-block: calc(var(--spacing) * 5) /* 1.25rem = 20px */;\n width: 100%;\n border-collapse: separate;\n border-spacing: calc(var(--spacing) * 0) /* 0rem = 0px */;\n overflow-y: auto;\n}\n.omniscribe_markdown-th {\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n font-weight: var(--font-weight-bold) /* 700 */;\n &:first-child {\n border-top-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child {\n border-top-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-td {\n border-bottom-width: 1px;\n border-left-width: 1px;\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n text-align: left;\n &:last-child {\n border-right-width: 1px;\n }\n &[align='center'] {\n text-align: center;\n }\n &[align='right'] {\n text-align: right;\n }\n}\n\n.omniscribe_markdown-tr {\n margin: calc(var(--spacing) * 0) /* 0rem = 0px */;\n &:first-child {\n border-top-width: 1px;\n }\n &:last-child > td:first-child {\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n }\n &:last-child > td:last-child {\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n }\n}\n\n.omniscribe_markdown-sup {\n font-size: var(--text-xs) /* 0.75rem = 12px */;\n line-height: var(--text-xs--line-height) /* calc(1 / 0.75) ≈ 1.3333 */;\n & > a {\n text-decoration-line: none;\n }\n}\n\n.omniscribe_markdown-pre {\n overflow-x: auto;\n border-bottom-right-radius: var(--radius) /* 0.25rem = 4px */;\n border-bottom-left-radius: var(--radius) /* 0.25rem = 4px */;\n background-color: var(--black);\n padding: calc(var(--spacing) * 4) /* 1rem = 16px */;\n color: var(--white);\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_markdown-code {\n border-radius: 0.25rem /* 4px */;\n font-weight: var(--font-weight-semibold) /* 600 */;\n}\n\n.omniscribe_markdown-link {\n color: var(--color-primary); /* text-primary */\n font-weight: 500; /* font-medium */\n text-decoration: underline; /* underline */\n text-underline-offset: 4px; /* underline-offset-4 */\n word-wrap: break-word; /* break-words */\n}\n\n.omniscribe_markdown-link:hover {\n color: var(--color-primary-dark); /* hover:text-primary-dark */\n}\n\n.omniscribe_assistant-markdown-container strong,\n.omniscribe_assistant-markdown-container b {\n font-weight: bold !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessage.css */\n.omniscribe_assistant-message-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n width: 100%;\n}\n\n.omniscribe_assistant-message-calls-container {\n display: flex;\n flex-direction: column;\n max-width: 100%;\n}\n\n.omniscribe_assistant-markdown-container {\n padding-block: calc(var(--spacing) * 0.5) /* 0.25rem = 4px */;\n}\n\n.omniscribe_assistant-commands-container {\n display: flex;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n align-items: center;\n margin-right: auto;\n}\n.omniscribe_assistant-message-container:hover,\n.omniscribe_assistant-message-container:focus {\n .omniscribe_assistant-commands-container {\n opacity: 100%;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/AssistantMessageLoading.css */\n.omniscribe_assistant-message-loading-container {\n display: flex;\n align-items: flex-start;\n margin-right: auto;\n margin-top: 3px;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_assistant-message-loading {\n display: flex;\n align-items: center;\n border-radius: var(--radius-2xl) /* 1rem = 16px */;\n gap: calc(var(--spacing) * 1);\n background-color: var(--muted);\n padding-inline: calc(var(--spacing) * 4) /* 1rem = 16px */;\n padding-block: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n height: calc(var(--spacing) * 8) /* 2rem = 32px */;\n}\n.omniscribe_assistant-message-loading-dot {\n width: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n height: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n border-radius: calc(infinity * 1px);\n animation: loadingFade 2s infinite;\n background-color: color-mix(in oklab, var(--foreground) 50%, transparent);\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(1) {\n animation-delay: 0.2s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(2) {\n animation-delay: 0.4s;\n}\n\n.omniscribe_assistant-message-loading-dot:nth-child(3) {\n animation-delay: 0.6s;\n}\n\n@keyframes loadingFade {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 0.8;\n }\n 100% {\n opacity: 0;\n }\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/BranchSwitcher.css */\n.omniscribe_brand-switcher-container {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n\n.omniscribe_brand-switcher-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_brand-switcher-btn {\n width: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n height: calc(0.25rem /* 4px */ * 6) /* 1.5rem = 24px */;\n padding: calc(0.25rem /* 4px */ * 1) /* 0.25rem = 4px */;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/CommandBar.css */\n.omniscribe_command-bar-container {\n display: flex;\n align-items: center;\n padding-right: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n transition: opacity 0.2s ease-in-out;\n}\n\n.omniscribe_command-bar-container.omniscribe_command-bar-hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.thumbs.active {\n color: var(--blue-500);\n}\n\n.omniscribe_feedback-button-container {\n position: relative;\n display: inline-block;\n}\n\n.omniscribe_command-bar-container-icon-color,\n.thumbs {\n color: #4a5364;\n}\n\n.omniscribe_command-bar-container svg {\n width: 12px !important;\n height: 12px !important;\n}\n\n.omniscribe_command-bar-container .omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 0.5) !important;\n}\n\n.omniscribe_command-bar-container .tooltip-base {\n padding: 0.25rem 0.5rem;\n}\n\n.omniscribe_command-bar-container .tooltip-trigger {\n padding: 1px;\n margin: 1px;\n}\n\n.omniscribe_command-bar-container .omniscribe_button-size-icon {\n height: calc(var(--spacing) * 3);\n width: calc(var(--spacing) * 3);\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/HumanMessage.css */\n.omniscribe_human-message-container {\n display: flex;\n align-items: center;\n margin-left: auto;\n gap: calc(var(--spacing) * 2) /* 0.5rem = 8px */;\n}\n.omniscribe_human-message-container-editing {\n width: 100%;\n max-width: var(--container-xl) /* 36rem = 576px */;\n}\n.omniscribe_human-message-container-no-editing {\n max-width: 100%;\n}\n\n.omniscribe_human-message-command-container {\n display: flex;\n gap: calc(var(--spacing) * 1) /* 0.5rem = 8px */;\n align-items: center;\n margin-left: auto;\n}\n.omniscribe_human-message-command-container-editing {\n opacity: 100%;\n}\n\n.omniscribe_human-message-container:focus,\n.omniscribe_human-message-container:hover {\n .omniscribe_human-message-command-container {\n opacity: 100%;\n }\n}\n\n.omniscribe_human-message-subcontainer {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n}\n.omniscribe_human-message-subcontainer-editing {\n width: 100%;\n}\n\n.omniscribe_human-message-content {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 8px;\n}\n\n.omniscribe_human-message-content-text {\n text-align: right;\n padding-top: 4px;\n padding-bottom: 4px;\n padding-inline: calc(var(--spacing) * 2);\n border-radius: var(--radius-3xl);\n background-color: #f6f7f9;\n font-weight: 500;\n font-size: var(--text-sm);\n line-height: 1.25rem;\n letter-spacing: 0;\n margin: 0;\n}\n.omniscribe_human-message-textarea {\n min-height: 2.5rem !important; /* 40px */\n max-height: 12rem !important; /* 192px - Allow more vertical space */\n min-width: 200px !important; /* Minimum width for usability */\n resize: both; /* Allow controlled resizing in both directions */\n width: 100%;\n overflow: auto; /* Enable scroll when content exceeds max dimensions */\n\n &:focus-visible {\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n}\n\n.omniscribe_human-message-textarea-chat-history-close {\n max-width: 100% !important;\n}\n\n.omniscribe_human-message-textarea-chat-history-open {\n max-width: 385px !important;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/MessageImages.css */\n/* Message Files Container (for both images and documents) */\n.omniscribe_message-files {\n margin-top: 8px;\n margin-bottom: 4px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n/* Message Images Container */\n.omniscribe_message-images {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_message-images-grid {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n max-width: 100%;\n}\n\n/* Individual Image Container */\n.omniscribe_message-image-container {\n position: relative;\n border-radius: 8px;\n overflow: hidden;\n background-color: #f5f5f5;\n border: 1px solid #e0e0e0;\n cursor: pointer;\n transition:\n transform 0.2s ease,\n box-shadow 0.2s ease;\n}\n\n.omniscribe_message-image-container:hover {\n transform: scale(1.02);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n}\n\n.omniscribe_message-image-container-single {\n max-width: 200px;\n max-height: 200px;\n}\n\n.omniscribe_message-image-container-multiple {\n width: 80px;\n height: 80px;\n flex-shrink: 0;\n}\n\n/* Image Element */\n.omniscribe_message-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.omniscribe_message-image-container-single .omniscribe_message-image {\n max-width: 200px;\n max-height: 200px;\n width: auto;\n height: auto;\n}\n\n/* Loading State */\n.omniscribe_message-image-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 60px;\n background-color: #f8f9fa;\n color: #6c757d;\n font-size: 12px;\n border-radius: 8px;\n}\n\n/* Error State */\n.omniscribe_message-image-error {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n min-height: 60px;\n background-color: #f8f9fa;\n color: #6c757d;\n font-size: 12px;\n border-radius: 8px;\n text-align: center;\n cursor: default;\n}\n\n.omniscribe_message-image-error span {\n font-size: 20px;\n margin-bottom: 4px;\n}\n\n.omniscribe_message-image-error small {\n font-size: 10px;\n}\n\n/* Image Counter for Multiple Images */\n.omniscribe_message-image-counter {\n position: absolute;\n top: 4px;\n right: 4px;\n background-color: rgba(0, 0, 0, 0.7);\n color: white;\n font-size: 10px;\n font-weight: bold;\n padding: 2px 6px;\n border-radius: 12px;\n min-width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Images Count */\n.omniscribe_message-images-count {\n margin-top: 4px;\n font-size: 11px;\n color: #6c757d;\n font-style: italic;\n}\n\n/* Modal for Full-Size Images */\n.omniscribe_message-image-modal {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 9999;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_message-image-modal-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.8);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 20px;\n}\n\n.omniscribe_message-image-modal-content {\n position: relative;\n max-width: 90vw;\n max-height: 90vh;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_message-image-modal-img {\n max-width: 100%;\n max-height: 100%;\n border-radius: 8px;\n box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\n}\n\n.omniscribe_message-image-modal-close {\n position: absolute;\n top: -10px;\n right: -10px;\n background-color: #fff;\n border: none;\n border-radius: 50%;\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n font-size: 18px;\n font-weight: bold;\n color: #333;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_message-image-modal-close:hover {\n background-color: #f5f5f5;\n}\n\n/* Message Documents Container */\n.omniscribe_message-documents {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.omniscribe_message-document {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n border-radius: 8px;\n background-color: #f8f9fa;\n border: 1px solid #e0e0e0;\n transition: background-color 0.2s ease;\n max-width: 280px;\n}\n\n.omniscribe_message-document:hover {\n background-color: #f0f0f0;\n}\n\n.omniscribe_message-document-icon {\n font-size: 24px;\n flex-shrink: 0;\n}\n\n.omniscribe_message-document-info {\n flex: 1;\n min-width: 0;\n}\n\n.omniscribe_message-document-name {\n font-weight: 500;\n font-size: 13px;\n color: #333;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.omniscribe_message-document-size {\n font-size: 11px;\n color: #6c757d;\n}\n\n.omniscribe_message-documents-count {\n margin-top: 4px;\n font-size: 11px;\n color: #6c757d;\n font-style: italic;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ReasoningSection.css */\n.omniscribe_assistant-reasoning-section {\n margin-top: 12px;\n border-left: 3px solid #e5e7eb;\n padding-left: 12px;\n background-color: #f9fafb;\n border-radius: 4px;\n padding: 8px 12px;\n}\n\n.omniscribe_assistant-reasoning-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px 0;\n font-size: 14px;\n font-weight: 500;\n color: #6b7280;\n width: 100%;\n text-align: left;\n}\n\n.omniscribe_assistant-reasoning-arrow {\n display: inline-block;\n transition: transform 0.2s ease-in-out;\n transform: rotate(0deg);\n}\n\n.omniscribe_assistant-reasoning-arrow--expanded {\n transform: rotate(90deg);\n}\n\n.omniscribe_assistant-reasoning-summary {\n margin-top: 8px;\n font-size: 14px;\n color: #374151;\n line-height: 1.5;\n}\n\n.omniscribe_assistant-reasoning-summary-item {\n margin: 8px 0;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolCalls.css */\n.omniscribe_tool-calls-container {\n margin-block-start: calc(calc(var(--spacing) * 4) * var(0));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(0)));\n width: 100%;\n max-width: var(--container-4xl) /* 56rem = 896px */;\n}\n\n.omniscribe_tool-calls-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n max-width: 100%;\n flex-wrap: wrap;\n gap: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n}\n.omniscribe_tool-calls-h3 {\n font-weight: var(--font-weight-bold);\n color: var(--color-gray-900) /* oklch(21% 0.034 264.665) = #101828 */;\n word-break: break-all;\n font-size: 14px;\n margin: 0;\n}\n\n.omniscribe_tool-calls-item-args {\n align-items: flex-start;\n flex-wrap: wrap;\n}\n.omniscribe_tool-calls-item-args-text {\n word-break: break-all;\n margin-right: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n padding-block: calc(var(--spacing) * 1) /* 0.25rem = 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n}\n\n.omniscribe_tool-calls-item-args-code {\n background-color: var(--color-gray-50);\n border-radius: 0.25rem /* 4px */;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(\n --tw-leading,\n var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */\n );\n word-break: break-all;\n}\n\n.omniscribe_tool-calls-pre {\n font-size: 12px;\n}\n\n\n/* Source: modules/chat/components/thread/components/messages/ToolResults.css */\n/* ToolResult Component Styles */\n\n.omniscribe_tool-result {\n margin-top: 2px;\n border: 1px solid var(--grey-200);\n border-radius: 0.5rem !important; /* !rounded-lg */\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n overflow: hidden; /* overflow-hidden */\n width: 100%;\n}\n\n.omniscribe_tool-result-header {\n background-color: var(--grey-50); /* bg-gray-50 */\n padding-left: 1rem; /* px-4 */\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n display: flex; /* flex */\n align-items: center; /* items-center */\n justify-content: space-between; /* justify-between */\n}\n\n.omniscribe_tool-result-header--expanded {\n border-bottom: 1px solid var(--grey-200);\n}\n\n.omniscribe_tool-result-header-content {\n display: flex; /* flex */\n align-items: center; /* items-center */\n gap: 0.5rem; /* gap-2 */\n min-width: 0; /* min-w-0 */\n}\n\n.omniscribe_tool-result-title {\n font-weight: 500; /* font-medium */\n color: var(--grey-900);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap; /* truncate */\n margin: 0;\n font-size: 14px;\n}\n\n.omniscribe_expand-button {\n padding: 0.25rem; /* p-1 */\n flex-shrink: 0; /* flex-shrink-0 */\n}\n\n.omniscribe_expand-icon {\n width: 1.25rem; /* w-5 */\n height: 1.25rem; /* h-5 */\n}\n\n.omniscribe_tool-result-content {\n padding: 1rem; /* p-4 */\n background-color: #ffffff; /* bg-white */\n max-height: 24rem; /* max-h-96 */\n overflow-y: auto; /* overflow-y-auto */\n}\n\n.omniscribe_tool-result-content > * + * {\n margin-top: 0.5rem; /* space-y-2 */\n}\n\n/* Scrollbar styles for webkit browsers */\n.omniscribe_tool-result-content::-webkit-scrollbar {\n width: 8px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-track {\n background: #f1f5f9;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb {\n background: #cbd5e1;\n border-radius: 4px;\n}\n\n.omniscribe_tool-result-content::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n.omniscribe_result-card {\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); /* shadow-sm */\n border: 1px solid var(--color-gray-100);\n padding-top: 0.5rem !important; /* !py-2 */\n padding-bottom: 0.5rem !important;\n gap: 0 !important; /* !gap-0 */\n}\n\n.omniscribe_result-card-header {\n padding-top: 0.5rem !important; /* !pt-2 */\n padding-left: 0.5rem !important; /* !px-2 */\n padding-right: 0.5rem !important;\n padding-bottom: 0 !important; /* !pb-0 */\n}\n\n.omniscribe_result-card-title {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n font-weight: 600; /* font-semibold */\n}\n\n.omniscribe_result-link {\n color: var(--blue-600);\n text-decoration: none;\n transition-property: color, text-decoration;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n\n.omniscribe_result-link:hover {\n text-decoration: underline; /* hover:underline */\n color: #1e40af; /* hover:text-blue-800 */\n}\n\n.omniscribe_result-card-content {\n padding: 0.5rem !important; /* !p-2 */\n padding-top: 0 !important; /* !pt-0 */\n}\n\n.omniscribe_result-description {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #374151; /* text-gray-700 */\n line-height: 1.625; /* leading-relaxed */\n word-break: break-all; /* break-all */\n display: -webkit-box;\n -webkit-line-clamp: 2; /* line-clamp-2 */\n -webkit-box-orient: vertical;\n overflow: hidden;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms; /* transition-all duration-150 ease-in-out */\n transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1); /* ease-in-out */\n}\n\n.omniscribe_result-description:hover {\n -webkit-line-clamp: unset; /* hover:line-clamp-none */\n display: block;\n}\n\n.omniscribe_result-source {\n font-size: 0.75rem; /* text-xs */\n line-height: 1rem;\n color: #6b7280; /* text-gray-500 */\n margin-top: 0.25rem; /* mt-1 */\n padding-top: 0.25rem; /* pt-1 */\n border-top: 1px solid var(--color-gray-100);\n}\n\n.omniscribe_string-result {\n font-size: 0.875rem; /* text-sm */\n line-height: 1.25rem;\n white-space: pre-wrap; /* whitespace-pre-wrap */\n background-color: var(--grey-50);\n padding: 0.75rem; /* p-3 */\n border-radius: 0.375rem; /* rounded-md */\n border: 1px solid var(--grey-200);\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Consolas, 'Liberation Mono', Menlo,\n monospace; /* pre tag font */\n}\n\n\n/* Source: modules/chat/components/thread/components/tooltip-icon-button.css */\n.omniscribe_tooltip-icon-button-btn {\n padding: calc(var(--spacing) * 1);\n /* width: calc(var(--spacing) * 6);\n height: calc(var(--spacing) * 6); */\n}\n\n.omniscribe_tooltip-icon-button-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: none;\n}\n\n\n/* Source: modules/configuration/components/chat/Chat.css */\n.omniscribe_chat-config {\n display: flex;\n flex-direction: column;\n gap: 24px;\n min-height: 0; /* Permite que los hijos controlen su altura */\n flex: 1; /* Toma el espacio disponible */\n}\n\n/* Espaciado específico para el separador en el contexto de chat */\n.omniscribe_chat-config .omniscribe_separator {\n margin: 8px 0; /* Margen vertical consistente */\n}\n\n.omniscribe_chat-prompt-container {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-right: 16px;\n}\n\n.omniscribe_chat-prompt-textarea {\n width: 100%;\n height: 74px;\n padding: 8px;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n font-size: 14px;\n font-family: inherit;\n line-height: 1.5;\n color: #374151;\n background-color: white;\n resize: none;\n outline: none;\n transition: border-color 0.15s ease;\n}\n\n.omniscribe_chat-prompt-textarea::placeholder {\n color: #9ca3af;\n font-style: italic;\n}\n\n.omniscribe_chat-character-count {\n font-size: 12px;\n color: #6b7280;\n align-self: flex-start;\n}\n\n\n/* Source: modules/configuration/components/chat/PromptCustomization.css */\n.omniscribe_chat-prompt-title {\n font-size: 14px;\n font-weight: 400;\n color: #252a32;\n line-height: 14.4px;\n margin: 0 0 12px 0;\n}\n\n.omniscribe_chat-prompt-container {\n position: relative;\n}\n\n.omniscribe_chat-prompt-textarea {\n width: 100%;\n min-height: 80px;\n padding: 12px;\n border: 1px solid var(--border-color, #ddd);\n border-radius: 8px;\n font-family: inherit;\n font-size: 14px;\n line-height: 1.4;\n resize: none;\n transition: border-color 0.2s ease;\n}\n\n.omniscribe_chat-prompt-textarea:focus {\n outline: none;\n border-color: var(--primary-color, #007bff);\n box-shadow: 0 0 0 2px var(--primary-color-alpha, rgba(0, 123, 255, 0.1));\n}\n\n.omniscribe_chat-character-count {\n font-size: 12px;\n color: var(--text-secondary, #666);\n margin-top: 6px;\n text-align: right;\n}\n\n\n/* Source: modules/configuration/components/chat/SourceItem.css */\n.omniscribe_source-item {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n}\n\n.omniscribe_source-label {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n}\n\n.omniscribe_source-checkbox {\n width: 16px;\n height: 16px;\n accent-color: #105bdb;\n cursor: pointer;\n}\n\n.omniscribe_source-name {\n flex: 1;\n font-size: 12px;\n color: #374151;\n}\n/* Removed link styles for source name - now handled by icon button only */\n.omniscribe_source-external-icon {\n width: 12px;\n height: 12px;\n stroke: #105bdb;\n cursor: pointer;\n transition: stroke 0.2s;\n flex-shrink: 0;\n}\n\n.omniscribe_source-external-icon:hover {\n stroke: #0d47a1;\n}\n\n.omniscribe_source-checkbox:checked + .omniscribe_source-name {\n font-weight: 500;\n color: #1f2937;\n}\n\n\n/* Source: modules/configuration/components/chat/SourceSelector.css */\n.omniscribe_source-selector {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 24px;\n min-height: 0;\n flex: 1;\n max-width: 100%;\n box-sizing: border-box;\n}\n\n.omniscribe_source-selector-title {\n font-size: 16px;\n font-weight: 500;\n color: #252a32;\n margin: 0;\n}\n\n.omniscribe_source-selector-description {\n font-size: 14px;\n color: #6b7280;\n line-height: 1.5;\n margin: 0;\n}\n\n.omniscribe_source-list {\n width: 100%;\n max-width: 100%;\n min-height: 120px;\n max-height: 300px;\n border-radius: 12px;\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n background: #ffffff;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n overflow-y: auto;\n flex: 1;\n box-sizing: border-box;\n}\n\n.omniscribe_source-list--compact {\n max-height: 120px;\n}\n\n\n/* Source: modules/configuration/section/Configuration.css */\n.omniscribe_config-content {\n width: 650px;\n max-height: 590px;\n opacity: 1;\n background-color: #ffffff;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n.omniscribe_config-list {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n flex: 1;\n}\n\n.omniscribe_config-item {\n width: 100%;\n height: 75px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n opacity: 1;\n padding: 10px 22px 10px 16px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n flex-shrink: 0;\n}\n\n.omniscribe_config-item:hover {\n background-color: #f9fafb;\n}\n\n.omniscribe_config-item:focus {\n outline: none;\n background-color: #f3f4f6;\n}\n\n.omniscribe_config-item:last-child {\n border-bottom: none;\n}\n\n.omniscribe_config-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n}\n\n.omniscribe_config-icon {\n color: #4a5364;\n}\n\n.omniscribe_config-item-content {\n flex: 1;\n margin-left: 16px;\n margin-right: 16px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n gap: 4px;\n}\n\n.omniscribe_config-item-title {\n margin: 0;\n font-weight: 700;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #252a32;\n}\n\n.omniscribe_config-item-description {\n margin: 0;\n font-weight: 500;\n font-size: 14px;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n color: #4a5364;\n}\n\n.omniscribe_config-item-arrow {\n display: flex;\n align-items: center;\n justify-content: center;\n color: #9ca3af;\n flex-shrink: 0;\n}\n\n/* Sub-screen styles */\n.omniscribe_config-subscreen-header {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 16px 12px;\n color: #13161a;\n font-size: 14px;\n font-style: normal;\n font-weight: 700;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-back-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_config-subscreen-title {\n margin: 0;\n font-size: 14px;\n font-weight: 700;\n color: #13161a;\n line-height: 16.8px;\n letter-spacing: 0.05px;\n}\n\n.omniscribe_config-subscreen-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n padding: 16px;\n border-top: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n min-height: 0; /* Permite que los hijos se compriman */\n box-sizing: border-box; /* Incluye padding en el cálculo */\n}\n\n.omniscribe_config-subscreen-content.no-border {\n border-top: none;\n}\n\n.omniscribe_config-subscreen-content-template {\n flex: 1;\n}\n\n.omniscribe_config-section-label {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: #374151;\n line-height: 1.4;\n}\n\n.omniscribe_config-language-section {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_config-language-section-title {\n font-size: 16px;\n font-weight: 600;\n color: #374151;\n margin-bottom: 8px;\n}\n\n.omniscribe_config-subscreen-description {\n margin: 0 0 0 0;\n font-size: 14px;\n line-height: 18px;\n color: #13161a;\n font-weight: 400;\n}\n\n/* Dictionary Options View Styles */\n.omniscribe_config-dictionary-section {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.omniscribe_config-dictionary-add-section {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.omniscribe_config-dictionary-input-row {\n display: flex;\n gap: 12px;\n align-items: flex-start;\n}\n\n.omniscribe_config-dictionary-input {\n height: 32px;\n border: 1px solid #e5e8eb !important;\n border-radius: 8px !important;\n padding: 0 12px !important;\n font-size: 14px !important;\n line-height: 1.4 !important;\n background-color: #ffffff !important;\n transition:\n border-color 0.2s ease,\n box-shadow 0.2s ease !important;\n}\n\n.omniscribe_config-dictionary-input:focus {\n outline: none !important;\n border-color: #4f46e5 !important;\n box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-input::placeholder {\n color: #9ca3af !important;\n font-size: 14px !important;\n}\n\n.omniscribe_config-dictionary-input.error {\n border-color: #dc3545 !important;\n background-color: #fff5f5 !important;\n}\n\n.omniscribe_config-dictionary-input.error:focus {\n border-color: #dc3545 !important;\n box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.1) !important;\n}\n\n.omniscribe_config-dictionary-add-btn {\n width: 32px;\n height: 32px;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--primary);\n border: 1px solid var(--primary);\n border-radius: 8px;\n color: var(--primary-foreground);\n cursor: pointer;\n transition: all 0.2s ease;\n margin-top: 0;\n font-size: 0;\n}\n\n.omniscribe_config-dictionary-add-btn:hover:not(:disabled) {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n border-color: color-mix(in oklab, var(--primary) 90%, transparent);\n}\n\n.omniscribe_config-dictionary-add-btn:disabled {\n background-color: #e5e8eb;\n border-color: #e5e8eb;\n color: #9ca3af;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n}\n\n.omniscribe_config-dictionary-list {\n display: flex;\n padding-top: 16px;\n flex-direction: column;\n gap: 8px;\n max-height: 410px;\n overflow-y: auto;\n margin-top: 4px;\n}\n\n.omniscribe_config-dictionary-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px;\n background-color: #f9fafb;\n border: 1px solid #e5e8eb;\n border-radius: 8px;\n transition: all 0.2s ease;\n}\n\n.omniscribe_config-dictionary-row:hover {\n background-color: #f3f4f6;\n border-color: #d1d5db;\n}\n\n.omniscribe_config-dictionary-cell {\n flex: 1;\n font-size: 14px;\n line-height: 20px;\n color: #374151;\n word-break: break-word;\n font-weight: 500;\n}\n\n.omniscribe_config-dictionary-arrow {\n color: #9ca3af;\n font-size: 16px;\n font-weight: 600;\n flex-shrink: 0;\n margin: 0 4px;\n}\n\n.omniscribe_config-dictionary-delete-btn {\n background: none;\n border: none;\n cursor: pointer;\n padding: 6px;\n border-radius: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.omniscribe_config-dictionary-delete-btn:hover {\n background-color: #fee2e2;\n color: #dc2626;\n transform: scale(1.05);\n}\n\n.omniscribe_config-dictionary-empty {\n padding: 40px 16px;\n margin-top: 16px;\n text-align: center;\n color: #6b7280;\n font-size: 14px;\n line-height: 20px;\n background-color: #f9fafb;\n border: 2px dashed #e5e8eb;\n border-radius: 12px;\n font-style: italic;\n}\n\n/* Template specific styles */\n.omniscribe_template-field {\n background: white;\n border-bottom: 1px solid #e1e8ed;\n margin-bottom: 0;\n}\n\n.omniscribe_template-field:last-child {\n border-bottom: none;\n}\n\n.omniscribe_template-field-header {\n display: flex;\n align-items: center;\n padding: 12px 16px;\n cursor: pointer;\n background: #ffffff;\n transition: background-color 0.2s ease;\n}\n\n.omniscribe_template-field-icon {\n margin-right: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon svg {\n transition: transform 0.2s ease;\n}\n\n.omniscribe_template-field-icon.expanded svg {\n transform: rotate(90deg);\n}\n\n.omniscribe_template-field-label {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n color: #2c3e50;\n}\n\n.omniscribe_template-field-content {\n padding: 16px;\n background: white;\n}\n\n.omniscribe_template-textarea {\n width: 100%;\n min-height: 80px;\n max-height: 300px;\n /* Prevent excessive vertical expansion */\n padding: 12px;\n border: 1px solid #e1e8ed;\n border-radius: 6px;\n font-size: 14px;\n font-family: inherit;\n resize: vertical;\n background: white;\n box-sizing: border-box;\n overflow-y: auto;\n /* Enable scroll when content exceeds max height */\n}\n\n.omniscribe_template-textarea:focus {\n outline: none;\n border-color: #3498db;\n box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.1);\n}\n\n.omniscribe_template-character-count {\n margin-top: 8px;\n font-size: 12px;\n color: #95a5a6;\n display: flex;\n}\n\n.omniscribe_template-actions {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px;\n border-top: 1px solid #e1e8ed;\n background: white;\n margin-top: 18px;\n margin-bottom: 50px;\n}\n\n/* Template fields container */\n.omniscribe_template-fields {\n display: flex;\n flex-direction: column;\n max-height: 370px;\n overflow-y: auto;\n background: white;\n}\n\n/* Improved scrollbar for template fields */\n.omniscribe_template-fields::-webkit-scrollbar {\n width: 6px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-track {\n background: #f1f1f1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb {\n background: #c1c1c1;\n border-radius: 3px;\n}\n\n.omniscribe_template-fields::-webkit-scrollbar-thumb:hover {\n background: #a8a8a8;\n}\n\n.omniscribe_config-version-section {\n background: #f6f7f9;\n color: #4a5364;\n padding: 16px 8px 16px 24px;\n font-weight: 500;\n line-height: 16.8px;\n font-size: 12px;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n\n/* Source: modules/layout/components/MinimizeButton/MinimizeButton.css */\n.omniscribe_minimize-button-container {\n position: absolute;\n top: -1px;\n left: 0;\n transform: translateX(-100%);\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n height: auto;\n max-height: 400px;\n min-height: 180px;\n}\n.omniscribe_minimize-button-subcontainer {\n position: relative;\n background-color: color-mix(in oklab, rgb(15, 15, 15) 65%, transparent);\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n backdrop-filter: sepia(1%);\n cursor: pointer;\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 400ms;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.omniscribe_minimize-button-subcontainer:hover {\n background-color: color-mix(in oklab, rgb(15, 15, 15) 85%, transparent);\n}\n.omniscribe_minimize-button-content {\n display: flex;\n rotate: calc(90deg * -2);\n gap: 10px;\n writing-mode: vertical-rl;\n text-orientation: mixed;\n width: 100%;\n align-items: center;\n justify-content: center;\n position: relative;\n flex-wrap: nowrap;\n padding: 12px;\n min-height: 180px;\n max-height: 400px;\n}\n\n.omniscribe_minimize-button-span {\n font-weight: 400;\n font-size: var(--text-lg) /* 1.125rem = 18px */;\n line-height: var(--text-lg--line-height) /* calc(1.75 / 1.125) ≈ 1.5556 */;\n flex-wrap: nowrap;\n color: var(--white);\n display: flex;\n white-space: nowrap;\n text-align: center;\n}\n\n[dir='ltr'] .omniscribe_minimize-button-container {\n left: 0;\n transform: translateX(-100%);\n}\n\n[dir='ltr'] .omniscribe_minimize-button-subcontainer {\n border-top-left-radius: 10px;\n border-bottom-left-radius: 10px;\n}\n\n[dir='rtl'] .omniscribe_minimize-button-container {\n right: 0;\n left: auto;\n transform: translateX(100%);\n}\n[dir='rtl'] .omniscribe_minimize-button-subcontainer {\n border-top-right-radius: 10px;\n border-bottom-right-radius: 10px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeContainer/OmniscribeContainer.css */\n.omniscribe_container {\n isolation: isolate;\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n z-index: 80;\n}\n\n[dir='ltr'] .omniscribe_container {\n right: 0;\n border-top-left-radius: 30px;\n border-bottom-left-radius: 30px;\n}\n\n[dir='rtl'] .omniscribe_container {\n left: 0;\n right: auto;\n border-top-right-radius: 30px;\n border-bottom-right-radius: 30px;\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n\n\n/* Source: modules/layout/components/OmniscribeLayout/OmniscribeLayout.css */\n.omniscribe_layout {\n position: fixed;\n width: var(--layout-w);\n background: var(--white);\n bottom: calc(var(--spacing) * 5);\n border-bottom-left-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1);\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 500ms;\n transition-property: transform, translate, scale, rotate;\n display: flex;\n flex-direction: column;\n height: var(--layout-h);\n min-width: 500px;\n min-height: 500px;\n right: 0;\n}\n\n[dir='rtl'] .omniscribe_layout {\n left: 0;\n right: auto;\n border-bottom-right-radius: 12px;\n}\n\n[dir='ltr'] .omniscribe_layout {\n right: 0;\n border-bottom-left-radius: 12px;\n}\n\n.omniscribe_layout-open {\n background: var(--white);\n translate: 0;\n}\n\n.omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n[dir='rtl'] .omniscribe_layout-close {\n translate: calc(var(--layout-w) * -1);\n}\n\n[dir='ltr'] .omniscribe_layout-close {\n translate: var(--layout-w);\n}\n\n\n/* Source: modules/utility-section/section/UtilityButtons.css */\n.omniscribe_utility-btns-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n background-color: #ffffff;\n padding: 16px;\n overflow: hidden;\n background: linear-gradient(90deg, #ffffff 0%, #f5f8fe 50%, #e7effd 100%);\n align-self: stretch;\n}\n\n.omniscribe_utility-btns-left,\n.omniscribe_utility-btns-right {\n display: flex;\n flex-direction: row;\n gap: 4px;\n align-items: center;\n}\n\n.omniscribe_utility-btn-right {\n border-radius: var(--Radius-radius-round, 99999px) !important;\n background-color: var(--Greyscale-100, #f6f7f9) !important;\n border: none !important;\n}\n\n.omniscribe_connected-buttons {\n display: flex;\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n overflow: hidden;\n}\n\n.omniscribe_connected-btn-left,\n.omniscribe_connected-btn-right {\n border: none !important;\n border-radius: 0 !important;\n}\n\n.omniscribe_connected-btn-left {\n border-right: 1px solid var(--Stroke-greyscale-Active, #e5e7ec) !important;\n}\n\n.omniscribe_utility-btns {\n cursor: pointer;\n transition-duration: 300ms;\n background-color: color-mix(in oklab, var(--white) 30%, transparent);\n border-radius: var(--Radius-radius-medium, 8px);\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n position: relative;\n padding: 8px;\n display: flex;\n align-items: center;\n\n &:hover {\n background-color: var(--Greyscale-100, #f6f7f9);\n }\n}\n\n.omniscribe_utility-btns-pointer {\n pointer-events: auto;\n}\n\n.omniscribe_utility-btns-no-pointer {\n pointer-events: none;\n background-color: var(--white);\n}\n\n.omniscribe_utility-btns-no-pointer-opacity {\n pointer-events: none;\n opacity: 50%;\n}\n\n.omniscribe_utility-btns-opacity {\n background-color: var(--white);\n opacity: 100%;\n}\n\n.omniscribe_utility-btns-active {\n background-color: var(--Greyscale-100, #f6f7f9);\n border: 1px solid var(--Stroke-greyscale-Active, #105bdb);\n}\n\n.omniscribe_btn-label {\n margin-left: 6px;\n font-size: 14px;\n color: #212529;\n font-weight: 500;\n}\n\n.omniscribe_btn-label-active {\n color: #105bdb;\n}\n\n.omniscribe_icon {\n color: var(--active-black);\n}\n\n.omniscribe_icon-active {\n color: #105bdb;\n}\n\n.omniscribe_config-view {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n\n.omniscribe_config-close-btn {\n background: none;\n border: none;\n font-size: 24px;\n cursor: pointer;\n color: #000000;\n width: 32px;\n height: 32px;\n}\n\n.omniscribe_config-title {\n margin: 0;\n color: #000000;\n font-size: 16px;\n font-weight: 700;\n line-height: 19.2px;\n}\n\n\n/* Source: shared/components/Card.css */\n.omniscribe_card {\n background-color: var(--color-card, #ffffff);\n color: var(--color-card-foreground, #000000);\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n border-radius: 0.75rem;\n border: 1px solid var(--color-border, var(--grey-200));\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n}\n\n.omniscribe_card-header {\n container-type: inline-size;\n container-name: card-header;\n display: grid;\n grid-auto-rows: min-content;\n grid-template-rows: auto auto;\n align-items: start;\n gap: 0.375rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n/* When card-header has card-action, adjust grid layout */\n.omniscribe_card-header:has([data-slot='card-action']) {\n grid-template-columns: 1fr auto;\n}\n\n/* When card-header has border-b class, add padding bottom */\n.omniscribe_card-header.border-b {\n padding-bottom: 1.5rem;\n}\n\n.omniscribe_card-title {\n line-height: 1;\n font-weight: 600;\n}\n\n.omniscribe_card-description {\n color: var(--color-muted-foreground, #6b7280);\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n\n.omniscribe_card-action {\n grid-column-start: 2;\n grid-row: span 2 / span 2;\n grid-row-start: 1;\n align-self: start;\n justify-self: end;\n}\n\n.omniscribe_card-content {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer {\n display: flex;\n align-items: center;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.omniscribe_card-footer.border-t {\n padding-top: 1.5rem;\n}\n\n\n/* Source: shared/components/button.css */\n.omniscribe_button {\n border: none;\n background: transparent;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: calc(var(--spacing) * 2);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &:disabled {\n cursor: not-allowed;\n pointer-events: none;\n opacity: 50%;\n }\n & svg {\n pointer-events: none;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: calc(var(--spacing) * 4) /* 1rem = 16px */;\n height: calc(var(--spacing) * 4) /* 1rem = 16px */;\n }\n &:focus-visible {\n border-color: var(--ring);\n box-shadow: 0 0 0 calc(3px + var(--tw-ring-offset-width))\n color-mix(in oklab, var(--ring) 50%, transparent);\n }\n &[aria-invalid='true'] {\n border-color: var(--destructive);\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n\n.omniscribe_button-variant-default {\n background-color: var(--primary);\n color: var(--primary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--primary) 90%, transparent);\n }\n}\n.omniscribe_button-variant-destructive {\n background-color: var(--destructive);\n color: var(--white);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--destructive) 90%, transparent);\n }\n &:focus-visible {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n }\n}\n.omniscribe_button-variant-outline {\n border: solid 1px var(--input);\n background-color: var(--background);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n }\n}\n.omniscribe_button-variant-icon {\n align-items: center;\n border-radius: 100%;\n padding: 10px;\n & svg {\n pointer-events: auto;\n flex-shrink: 0;\n }\n & svg:not([class*='size-svg']) {\n width: auto;\n height: auto;\n }\n}\n.omniscribe_button-variant-secondadry {\n background-color: var(--secondary);\n color: var(--secondary-foreground);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n &:hover {\n background-color: color-mix(in oklab, var(--secondary) 80%, transparent);\n }\n}\n.omniscribe_button-variant-ghost:hover {\n background-color: var(--accent);\n color: var(--accent-foreground);\n}\n.omniscribe_button-variant-empty {\n cursor: pointer;\n}\n.omniscribe_button-variant-primary {\n cursor: pointer;\n background-color: color-mix(in oklab, var(--primary-button) 80%, transparent);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px !important;\n color: var(--white);\n &:hover {\n background-color: color-mix(\n in oklab,\n var(--primary-button) 60%,\n transparent\n );\n }\n}\n.omniscribe_button-size-default {\n height: calc(var(--spacing) * 9);\n padding-inline: calc(var(--spacing) * 4);\n padding-block: calc(var(--spacing) * 2);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 3) /* 0.75rem = 12px */;\n }\n}\n.omniscribe_button-size-sm {\n height: calc(var(--spacing) * 8);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n gap: calc(var(--spacing) * 1.5) /* 0.375rem = 6px */;\n padding-inline: calc(var(--spacing) * 3);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n}\n\n.omniscribe_button-size-lg {\n height: calc(var(--spacing) * 10);\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n padding-inline: calc(var(--spacing) * 6);\n &:has(> svg) {\n padding-inline: calc(var(--spacing) * 4);\n }\n}\n\n.omniscribe_button-size-icon {\n height: calc(var(--spacing) * 5);\n width: calc(var(--spacing) * 5);\n}\n.omniscribe_button-size-padding {\n padding: calc(var(--spacing) * 2);\n min-width: calc(var(--spacing) * 40);\n}\n\n.omniscribe_button-text {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n}\n.omniscribe_button-whitespace {\n white-space: nowrap;\n}\n.omniscribe_button-rounded {\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n.omniscribe_button-disabled {\n pointer-events: none;\n}\n.omniscribe_button-loading {\n opacity: 50%;\n}\n.omniscribe_button-animate-spin {\n animation: spin 1s linear infinite;\n}\n.omniscribe_button-variant-report {\n cursor: pointer;\n background-color: var(--report);\n box-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05));\n font-size: 16px;\n color: var(--white);\n &:hover {\n background-color: color-mix(in oklab, var(--report) 60%, transparent);\n }\n}\n\n\n/* Source: shared/components/feedback-modal.css */\n.omniscribe_feedback-modal {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-top: 8px;\n min-width: 200px;\n width: 200px;\n transform-origin: top left;\n}\n\n.omniscribe_feedback-input-container {\n position: relative;\n display: flex;\n align-items: flex-end;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n}\n\n.omniscribe_feedback-textarea {\n flex: 1;\n border: transparent;\n border-radius: 8px;\n padding: 12px 12px 12px 12px;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n resize: none;\n min-height: 20px;\n max-height: 200px;\n overflow-y: auto;\n font-family: inherit;\n line-height: 1.4;\n width: 100%;\n box-sizing: border-box;\n}\n.omniscribe_feedback-textarea-padding {\n margin-bottom: 34px;\n padding-bottom: 0px !important;\n}\n\n.omniscribe_feedback-icons {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.omniscribe_feedback-icons:has(.omniscribe_feedback-send) {\n bottom: 8px;\n top: auto;\n transform: none;\n}\n\n.omniscribe_feedback-close {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #6b7280;\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-close:hover {\n background-color: #f3f4f6;\n color: #374151;\n}\n\n.omniscribe_feedback-close svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-send {\n background: none;\n border: none;\n cursor: pointer;\n padding: 4px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--blue-500);\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.omniscribe_feedback-send:hover {\n background-color: #f0f7ff;\n color: #0d47a1;\n}\n\n.omniscribe_feedback-send svg {\n width: 12px;\n height: 12px;\n}\n\n.omniscribe_feedback-confirmation {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-top: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n.omniscribe_feedback-confirmation-icon {\n width: 12px;\n height: 12px;\n flex-shrink: 0;\n}\n\n/* Right-positioned modal styles */\n.omniscribe_feedback-modal-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n margin-left: 8px;\n width: 200px;\n transform-origin: bottom left;\n}\n\n.omniscribe_feedback-sending-center {\n top: 100%;\n left: 0;\n}\n\n.omniscribe_feedback-sending-right {\n bottom: 0;\n left: 40%;\n}\n\n.omniscribe_feedback-sending {\n position: absolute;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n}\n.omniscribe_feedback-confirmation-right {\n position: absolute;\n bottom: 0;\n left: 40%;\n z-index: 10000;\n background: white;\n color: black;\n border: 1px solid #e5e7ec;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n padding: 8px 0px;\n margin-left: 8px;\n min-width: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n font-size: 14px;\n font-weight: 500;\n animation: fadeInOut 3s ease-in-out;\n}\n\n@keyframes fadeInOut {\n 0% {\n opacity: 0;\n transform: translateY(-10px);\n }\n 10% {\n opacity: 1;\n transform: translateY(0);\n }\n 90% {\n opacity: 1;\n transform: translateY(0);\n }\n 100% {\n opacity: 0;\n transform: translateY(-10px);\n }\n}\n\n\n/* Source: shared/components/gradient-box.css */\n.omniscribe_gradient-box {\n border-radius: 8px;\n padding: 1px;\n width: fit-content;\n}\n\n\n/* Source: shared/components/input.css */\n.omniscribe_input {\n height: calc(var(--spacing) * 9);\n width: 100%;\n display: flex;\n border-radius: calc(var(--radius));\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 1);\n font-size: var(--text-base) /* 1rem = 16px */;\n line-height: var(--text-base--line-height);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n outline-style: none;\n &::file-selector-button {\n color: var(--foreground);\n display: inline-flex;\n height: calc(var(--spacing) * 7);\n border: none;\n background-color: transparent;\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n font-weight: var(--font-weight-medium);\n }\n &::placeholder {\n color: var(--muted-foreground);\n }\n &::selection {\n background-color: var(--primary);\n color: var(--primary-foreground);\n }\n &:disabled {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 50%;\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n @media (width >= 48rem /* 768px */) {\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height) /* calc(1.25 / 0.875) ≈ 1.4286 */;\n }\n}\n\n.omniscribe_input-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n\n.omniscribe_input.invalid {\n border-color: #dc3545;\n background-color: #fff5f5;\n box-shadow: 0 0 0 0.125rem rgba(220, 53, 69, 0.25);\n}\n\n.omniscribe_input-error {\n color: #dc3545;\n font-size: 10px;\n margin-block: 0.25rem;\n display: block;\n line-height: 1;\n}\n\n\n/* Source: shared/components/loading-modal.css */\n.omniscribe_loading-modal-container {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n.omniscribe_loading-modal-subcontainer {\n background-color: var(--white);\n padding: calc(var(--spacing) * 8);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n text-align: center;\n max-width: var(--container-md);\n}\n.omniscribe_loading-modal-msg {\n font-size: var(--text-xl) /* 1.25rem = 20px */;\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin-bottom: calc(var(--spacing) * 4);\n}\n.omniscribe_loading-modal-spin {\n display: inline-block;\n width: calc(var(--spacing) * 12);\n height: calc(var(--spacing) * 12);\n border: solid 4px var(--color-gray-200);\n border-top-color: var(--blue-500);\n border-radius: calc(infinity * 1px);\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n\n/* Source: shared/components/modal.css */\n.omniscribe_modal-overlay {\n position: absolute;\n background-color: color-mix(in oklab, var(--black) 50%, transparent);\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 50;\n height: 100vh;\n width: 100vw;\n right: 0;\n bottom: calc(var(--spacing) * -5.2);\n}\n\n.omniscribe_modal-container {\n position: relative;\n background-color: var(--white);\n z-index: 100;\n border-radius: 12px;\n border: solid 1px var(--light-border);\n box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n padding: calc(var(--spacing) * 5);\n transition-duration: 300ms;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n max-width: 90vw;\n max-height: 90vh;\n}\n.omniscribe_modal-container-scroll {\n overflow: auto;\n}\n\n.omniscribe_modal-container-show {\n opacity: 100%;\n}\n\n.omniscribe_modal-container-hide {\n opacity: 0%;\n}\n\n.omniscribe_modal-subcontainer {\n display: flex;\n flex-direction: column;\n}\n\n.omniscribe_modal-title-container {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n margin-bottom: calc(var(--spacing) * 2);\n}\n\n.omniscribe_modal-title {\n font-size: var(--text-3xl); /* 1.875rem = 30px */\n line-height: var(--text-xl--line-height);\n font-weight: var(--font-weight-bold);\n margin: 0;\n}\n\n.omniscribe_modal-button {\n border: none;\n background: transparent;\n line-height: var(--text-2xl--line-height);\n cursor: pointer;\n color: var(--black);\n}\n\n@media (min-width: 768px) {\n .omniscribe_modal-container {\n max-width: 60vw;\n }\n}\n\n/* Large screens: desktop */\n@media (min-width: 1024px) {\n .omniscribe_modal-container {\n max-width: 50vw;\n }\n}\n\n/* Very large screens: large desktop and ultra-wide */\n@media (min-width: 1440px) {\n .omniscribe_modal-container {\n max-width: 40vw;\n }\n}\n\n/* Intermediate breakpoint: large tablets */\n@media (min-width: 640px) and (max-width: 767px) {\n .omniscribe_modal-container {\n max-width: 70vw;\n }\n}\n\n\n/* Source: shared/components/select.css */\n.omniscribe_select-container {\n position: relative;\n width: 100%;\n padding-block: calc(var(--spacing) * 3);\n}\n.omniscribe_select-button {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n padding: calc(var(--spacing) * 3);\n background-color: var(--white);\n border-radius: var(--Radius-radius-medium, 8px);\n border: solid 1px var(--light-border);\n cursor: pointer;\n}\n.omniscribe_select-text {\n display: flex;\n align-items: center;\n gap: calc(var(--spacing) * 2);\n}\n.omniscribe_select-content-container {\n position: absolute;\n width: 100%;\n margin-top: calc(var(--spacing) * 2);\n border: solid 1px var(--light-border);\n background-color: var(--white);\n border-radius: var(--radius);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n bottom: calc(var(--spacing) * 15);\n padding-inline: calc(var(--spacing) * 1);\n padding-block: calc(var(--spacing) * 0.5);\n z-index: 9999;\n}\n.omniscribe_select-content-ul {\n overflow-y: scroll;\n max-height: calc(var(--spacing) * 80);\n padding-inline: 5px;\n}\n.omniscribe_select-content-li {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: calc(var(--spacing) * 3);\n cursor: pointer;\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-100);\n }\n }\n}\n.omniscribe_select-check-icon {\n width: calc(var(--spacing) * 5);\n height: calc(var(--spacing) * 5);\n color: var(--color-slate-500) /* oklch(55.4% 0.046 257.417) = #62748e */;\n}\n.omniscribe_select-content-li-span {\n display: flex;\n align-items: center;\n gap: calc(0.25rem /* 4px */ * 2);\n}\n\n\n/* Source: shared/components/separator.css */\n/* Separator Component Styles */\n.omniscribe_separator {\n border: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n flex-shrink: 0;\n}\n\n.omniscribe_separator--horizontal {\n height: 0;\n width: 100%;\n border-top: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n border-right: none;\n border-bottom: none;\n border-left: none;\n}\n\n.omniscribe_separator--vertical {\n width: 0;\n height: 100%;\n border-left: 1px solid var(--Stroke-greyscale-Active, #e5e7ec);\n border-top: none;\n border-right: none;\n border-bottom: none;\n}\n\n\n/* Source: shared/components/skeleton.css */\n.omniscribe_skeleton {\n background-color: color-mix(in oklab, var(--primary) 10%, transparent);\n animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n}\n\n\n/* Source: shared/components/textarea.css */\n.omniscribe_textarea-default {\n display: flex;\n min-height: calc(var(--spacing) * 16);\n width: -webkit-fill-available;\n border-radius: calc(var(--radius) /* 0.25rem = 4px */ - 2px);\n border: solid 1px var(--input);\n background-color: transparent;\n padding-inline: calc(var(--spacing) * 3);\n padding-block: calc(var(--spacing) * 2);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n transition-property: color, box-shadow;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n &::placeholder {\n color: var(--muted-foreground);\n font-size: var(--text-sm) /* 0.875rem = 14px */;\n line-height: var(--text-sm--line-height);\n }\n &:focus-visible {\n border-color: var(--ring);\n --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);\n box-shadow: var(--tw-ring-inset,) 0 0 0\n calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentColor);\n }\n &[aria-invalid='true'] {\n --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);\n border-color: var(--destructive);\n }\n &:disabled {\n cursor: not-allowed;\n opacity: 50%;\n }\n}\n\n.omniscribe_textarea-secondary {\n padding: calc(var(--spacing) * 3.5);\n padding-bottom: calc(var(--spacing) * 0);\n border-style: none;\n background-color: transparent;\n resize: none;\n &:focus {\n outline-style: none;\n }\n}\n.omniscribe_textarea-general {\n font-family: 'Lato', sans-serif;\n font-size: var(--font-size-100);\n outline: none;\n}\n\n\n/* Source: shared/components/toast.css */\n.omniscribe_toast-container {\n position: fixed;\n bottom: calc(var(--spacing) * 5);\n top: calc(var(--spacing) * -30);\n border-radius: var(--radius);\n padding: calc(var(--spacing) * 4);\n height: fit-content;\n transition-duration: 500ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n width: calc(var(--spacing) * 120);\n}\n\n.omniscribe_toast-container-danger {\n background-color: var(--color-red-500);\n}\n.omniscribe_toast-container-black {\n background-color: var(--black);\n}\n.omniscribe_toast-container-show {\n right: calc(var(--spacing) * 10);\n}\n.omniscribe_toast-container-hide {\n right: -100%;\n}\n.omniscribe_toast-subcontainer {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 100ms;\n display: flex;\n flex-direction: column;\n color: var(--white);\n}\n.omniscribe_toast-title {\n font-size: 18px;\n font-weight: var(--font-weight-bold);\n}\n.omniscribe_toast-msg {\n font-size: 16px;\n}\n\n\n/* Source: shared/components/toggle.css */\n.omniscribe_toggle-container {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 8px;\n flex-direction: column;\n}\n\n.omniscribe_toggle-label {\n font-size: 14px;\n font-weight: 400;\n color: #374151;\n flex: 1;\n}\n\n.omniscribe_toggle-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.omniscribe_toggle-switch {\n position: relative;\n width: 29px;\n height: 16px;\n background-color: #d1d5db;\n border-radius: 8px;\n border: none;\n cursor: pointer;\n transition: background-color 0.2s ease;\n outline: none;\n}\n\n.omniscribe_toggle-switch:focus-visible {\n box-shadow: 0 0 0 2px #132caa;\n}\n\n.omniscribe_toggle-switch-checked {\n background-color: #132caa;\n}\n\n.omniscribe_toggle-switch-disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.omniscribe_toggle-thumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 12px;\n height: 12px;\n background-color: white;\n border-radius: 50%;\n transition: transform 0.2s ease;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.omniscribe_toggle-switch-checked .omniscribe_toggle-thumb {\n transform: translateX(13px);\n}\n\n.omniscribe_toggle-status {\n font-size: 14px;\n font-weight: 500;\n color: #6b7280;\n min-width: 70px;\n}\n\n.omniscribe_toggle-switch-checked + .omniscribe_toggle-status {\n color: #4a5364;\n}\n\n\n/* Source: shared/components/tooltip.css */\n.tooltip-base {\n position: fixed;\n z-index: 9999;\n border-radius: 0.375rem; /* rounded-md */\n background-color: #111827;\n padding: 0.5rem 0.75rem; /* px-3 py-2 */\n font-size: 0.875rem; /* text-sm */\n font-family: 'Lato', sans-serif;\n color: #ffffff; /* text-white */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */\n transition: opacity 0.2s ease-in-out; /* transition-opacity duration-200 */\n pointer-events: none;\n user-select: none;\n word-wrap: break-word;\n line-height: 1.4;\n}\n\n/* Tooltip Arrow Styles */\n.tooltip-arrow {\n position: absolute;\n width: 0.5rem; /* w-2 */\n height: 0.5rem; /* h-2 */\n background-color: #111827;\n transform: rotate(45deg);\n}\n\n/* Arrow positioning for each side */\n.tooltip-arrow-top {\n bottom: -0.25rem; /* bottom-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-bottom {\n top: -0.25rem; /* top-[-4px] */\n left: 50%;\n transform: translateX(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-left {\n right: -0.25rem; /* right-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n.tooltip-arrow-right {\n left: -0.25rem; /* left-[-4px] */\n top: 50%;\n transform: translateY(-50%) rotate(45deg);\n}\n\n/* Width classes based on message length */\n.tooltip-width-auto {\n width: auto;\n white-space: nowrap;\n}\n\n.tooltip-width-200 {\n width: auto;\n max-width: 200px;\n}\n\n.tooltip-width-xs {\n width: auto;\n max-width: 20rem; /* max-w-xs */\n}\n\n.tooltip-width-sm {\n width: auto;\n max-width: 24rem; /* max-w-sm */\n}\n\n.tooltip-width-400 {\n width: auto;\n max-width: 400px;\n}\n\n/* Trigger container styles */\n.tooltip-trigger {\n display: inline-block;\n}\n\n/* Animation classes */\n.tooltip-enter {\n opacity: 0;\n transform: scale(0.95);\n}\n\n.tooltip-enter-active {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 0.2s ease-in-out,\n transform 0.2s ease-in-out;\n}\n\n.tooltip-exit {\n opacity: 1;\n transform: scale(1);\n}\n\n.tooltip-exit-active {\n opacity: 0;\n transform: scale(0.95);\n transition:\n opacity 0.15s ease-in-out,\n transform 0.15s ease-in-out;\n}\n\n/* Dark theme variant */\n.tooltip-dark {\n background-color: #1f2937; /* bg-gray-800 */\n color: var(--grey-50);\n}\n\n.tooltip-dark .tooltip-arrow {\n background-color: #1f2937;\n}\n\n/* Light theme variant */\n.tooltip-light {\n background-color: #ffffff;\n color: #374151; /* text-gray-700 */\n box-shadow:\n 0 10px 15px -3px rgba(0, 0, 0, 0.1),\n 0 4px 6px -2px rgba(0, 0, 0, 0.05),\n 0 0 0 1px rgba(0, 0, 0, 0.05);\n}\n\n.tooltip-light .tooltip-arrow {\n background-color: #ffffff;\n}\n\n/* Responsive breakpoints */\n@media (max-width: 640px) {\n .tooltip-base {\n max-width: calc(100vw - 2rem);\n font-size: 0.8125rem; /* Slightly smaller on mobile */\n }\n\n .tooltip-width-400,\n .tooltip-width-sm,\n .tooltip-width-xs {\n max-width: calc(100vw - 2rem);\n }\n}\n\n/* High contrast mode support */\n@media (prefers-contrast: high) {\n .tooltip-base {\n border: 2px solid #ffffff;\n }\n\n .tooltip-light {\n border: 2px solid #000000;\n }\n}\n\n/* Reduced motion support */\n@media (prefers-reduced-motion: reduce) {\n .tooltip-base,\n .tooltip-enter-active,\n .tooltip-exit-active {\n transition: none;\n }\n}\n";
129693
130214
 
129694
130215
  const injectedCss$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
129695
130216
  __proto__: null,