lula2 0.1.1 → 0.2.1

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.
@@ -17,7 +17,10 @@
17
17
  $: availableFields = fields.filter((f) => fields.includes(f));
18
18
 
19
19
  // Field configuration for tabs
20
- type TabAssignment = 'overview' | 'implementation' | 'custom' | null;
20
+ type TabAssignment = 'overview' | 'implementation' | 'mappings' | 'custom' | null;
21
+
22
+ // Store fields for justification
23
+ let justificationFields: string[] = [];
21
24
  let fieldConfigs = new Map<
22
25
  string,
23
26
  {
@@ -55,6 +58,7 @@
55
58
  controlCount = 0;
56
59
  fieldConfigs.clear();
57
60
  fieldConfigs = new Map(); // Force reactivity
61
+ justificationFields = [];
58
62
 
59
63
  // Reset selections
60
64
  controlIdField = '';
@@ -307,6 +311,17 @@
307
311
  e.preventDefault();
308
312
  if (draggedField && fieldConfigs.has(draggedField)) {
309
313
  const config = fieldConfigs.get(draggedField)!;
314
+
315
+ // If dragging from mappings tab to another tab, remove from justificationFields
316
+ if (config.tab === 'mappings' && tab !== 'mappings') {
317
+ justificationFields = justificationFields.filter((f) => f !== draggedField);
318
+ }
319
+
320
+ // If dragging to mappings tab, add to justificationFields
321
+ if (tab === 'mappings' && !justificationFields.includes(draggedField)) {
322
+ justificationFields = [...justificationFields, draggedField];
323
+ }
324
+
310
325
  config.tab = tab;
311
326
 
312
327
  // If dropping at a specific position, update display orders
@@ -420,6 +435,12 @@
420
435
  }));
421
436
  formData.append('fieldSchema', JSON.stringify(fieldSchema));
422
437
 
438
+ // Add justification fields
439
+ formData.append(
440
+ 'justificationFields',
441
+ JSON.stringify(justificationFields.map((field) => cleanFieldName(field)))
442
+ );
443
+
423
444
  const response = await fetch('/api/import-spreadsheet', {
424
445
  method: 'POST',
425
446
  body: formData
@@ -692,7 +713,7 @@
692
713
  </p>
693
714
 
694
715
  <!-- Column Layout -->
695
- <div class="grid grid-cols-1 lg:grid-cols-4 gap-4">
716
+ <div class="grid grid-cols-1 lg:grid-cols-5 gap-4">
696
717
  <!-- Excluded Fields Column -->
697
718
  <div
698
719
  class="border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800"
@@ -843,6 +864,88 @@
843
864
  </div>
844
865
  </div>
845
866
 
867
+ <!-- Mappings Tab Column -->
868
+ <div
869
+ class="border border-orange-300 dark:border-orange-700 rounded-lg bg-white dark:bg-gray-800"
870
+ >
871
+ <div
872
+ class="p-3 border-b border-orange-200 dark:border-orange-800 bg-orange-50 dark:bg-orange-900/20 rounded-t-lg"
873
+ >
874
+ <h4 class="text-sm font-semibold text-orange-700 dark:text-orange-300">Mappings Tab</h4>
875
+ <p class="text-xs text-orange-600 dark:text-orange-400 mt-1">
876
+ Pre-populate justification for a control mapping
877
+ </p>
878
+ </div>
879
+ <div
880
+ class="p-3 min-h-[400px] max-h-[600px] overflow-y-auto transition-colors
881
+ {dragOverTab === 'mappings' ? 'bg-orange-50 dark:bg-orange-900/10' : ''}"
882
+ on:dragover={(e) => handleTabDragOver(e, 'mappings')}
883
+ on:dragleave={handleTabDragLeave}
884
+ on:drop={(e) => handleTabDrop(e, 'mappings')}
885
+ role="region"
886
+ aria-label="Justifications tab drop zone"
887
+ >
888
+ <!-- Justification Fields -->
889
+ <div class="space-y-2">
890
+ {#if justificationFields.length > 0}
891
+ <!-- Display justification fields -->
892
+ {#each justificationFields as field, index}
893
+ <div
894
+ draggable="true"
895
+ on:dragstart={(e) => handleFieldDragStart(e, field)}
896
+ on:dragend={handleFieldDragEnd}
897
+ on:dragover={(e) => handleFieldDragOver(e, field)}
898
+ on:dragleave={handleFieldDragLeave}
899
+ on:drop={(e) => handleFieldDrop(e, field, 'mappings')}
900
+ role="button"
901
+ aria-label="{field} field in Mappings tab"
902
+ tabindex="0"
903
+ class="flex items-center px-3 py-2 bg-orange-100 dark:bg-orange-900/30 text-orange-800 dark:text-orange-300 rounded text-sm cursor-move hover:bg-orange-200 dark:hover:bg-orange-800/30 transition-colors
904
+ {dragOverField === field && draggedField !== field ? 'border-t-2 border-orange-500' : ''}"
905
+ >
906
+ <Draggable class="w-3 h-3 mr-2 flex-shrink-0" />
907
+ <span class="truncate">{field}</span>
908
+ </div>
909
+ {/each}
910
+ {:else}
911
+ <!-- Drop zone only shown when no fields are present -->
912
+ <div
913
+ role="region"
914
+ aria-label="Justification field drop zone"
915
+ class="p-4 transition-colors
916
+ {dragOverTab === 'mappings' ? 'bg-orange-50 dark:bg-orange-900/10' : ''}"
917
+ on:dragover={(e) => {
918
+ e.preventDefault();
919
+ handleTabDragOver(e, 'mappings');
920
+ }}
921
+ on:dragleave={handleTabDragLeave}
922
+ on:drop={(e) => {
923
+ e.preventDefault();
924
+ if (draggedField && fieldConfigs.has(draggedField)) {
925
+ // Add to justification fields if not already present
926
+ if (!justificationFields.includes(draggedField)) {
927
+ justificationFields = [...justificationFields, draggedField];
928
+ }
929
+
930
+ // Set tab assignment
931
+ const config = fieldConfigs.get(draggedField)!;
932
+ config.tab = 'mappings';
933
+ fieldConfigs.set(draggedField, config);
934
+ fieldConfigs = new Map(fieldConfigs); // Force reactivity
935
+
936
+ dragOverTab = null;
937
+ }
938
+ }}
939
+ >
940
+ <p class="text-xs text-gray-400 dark:text-gray-500 text-center py-4">
941
+ Drop fields here
942
+ </p>
943
+ </div>
944
+ {/if}
945
+ </div>
946
+ </div>
947
+ </div>
948
+
846
949
  <!-- Custom Tab Column -->
847
950
  <div
848
951
  class="border border-purple-300 dark:border-purple-700 rounded-lg bg-white dark:bg-gray-800"
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.1.13 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-font-weight:initial;--tw-tracking:initial;--tw-border-style:solid;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-red-900:oklch(39.6% .141 25.723);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-400:oklch(75% .183 55.934);--color-orange-600:oklch(64.6% .222 41.116);--color-orange-800:oklch(47% .157 37.304);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-400:oklch(82.8% .189 84.429);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-300:oklch(87.1% .15 154.449);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-100:oklch(95% .052 163.051);--color-emerald-300:oklch(84.5% .143 164.978);--color-emerald-800:oklch(43.2% .095 166.913);--color-emerald-900:oklch(37.8% .077 168.94);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-indigo-50:oklch(96.2% .018 272.314);--color-indigo-900:oklch(35.9% .144 278.697);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-100:oklch(94.6% .033 307.174);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-300:oklch(82.7% .119 306.383);--color-purple-400:oklch(71.4% .203 305.504);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-purple-700:oklch(49.6% .265 301.924);--color-purple-800:oklch(43.8% .218 303.724);--color-purple-900:oklch(38.1% .176 304.987);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wider:.05em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{color-scheme:dark;scrollbar-width:thin;scrollbar-color:#9ca3af80 transparent;overflow-y:auto}html::-webkit-scrollbar{z-index:20;width:5px}html::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:4px}html::-webkit-scrollbar-track{background:0 0}html button:not([disabled]),html [role=button]:not([disabled]){cursor:pointer}.tooltip-arrow,.tooltip-arrow:before{background:inherit;width:8px;height:8px;position:absolute}.tooltip-arrow{visibility:hidden}.tooltip-arrow:before{content:"";visibility:visible;transform:rotate(45deg)}[data-tooltip-style^=light]+.tooltip>.tooltip-arrow:before{border-style:solid;border-color:var(--color-gray-200)}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=top]>.tooltip-arrow:before{border-bottom-width:1px;border-right-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=right]>.tooltip-arrow:before{border-bottom-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=bottom]>.tooltip-arrow:before{border-top-width:1px;border-left-width:1px}[data-tooltip-style^=light]+.tooltip[data-popper-placement^=left]>.tooltip-arrow:before{border-top-width:1px;border-right-width:1px}.tooltip[data-popper-placement^=top]>.tooltip-arrow{bottom:-4px}.tooltip[data-popper-placement^=bottom]>.tooltip-arrow{top:-4px}.tooltip[data-popper-placement^=left]>.tooltip-arrow{right:-4px}.tooltip[data-popper-placement^=right]>.tooltip-arrow{left:-4px}.tooltip.invisible>.tooltip-arrow:before{visibility:hidden}[data-popper-arrow],[data-popper-arrow]:before{background:inherit;width:8px;height:8px;position:absolute}[data-popper-arrow]{visibility:hidden}[data-popper-arrow]:before{content:"";visibility:visible;transform:rotate(45deg)}[data-popper-arrow]:after{content:"";visibility:visible;background:inherit;width:9px;height:9px;position:absolute;transform:rotate(45deg)}[role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:var(--color-gray-200)}.dark [role=tooltip]>[data-popper-arrow]:before{border-style:solid;border-color:var(--color-gray-600)}[role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:var(--color-gray-200)}.dark [role=tooltip]>[data-popper-arrow]:after{border-style:solid;border-color:var(--color-gray-600)}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]:after{border-bottom-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]:after{border-bottom-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]:after{border-top-width:1px;border-left-width:1px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:before,[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]:after{border-top-width:1px;border-right-width:1px}[data-popover][role=tooltip][data-popper-placement^=top]>[data-popper-arrow]{bottom:-5px}[data-popover][role=tooltip][data-popper-placement^=bottom]>[data-popper-arrow]{top:-5px}[data-popover][role=tooltip][data-popper-placement^=left]>[data-popper-arrow]{right:-5px}[data-popover][role=tooltip][data-popper-placement^=right]>[data-popper-arrow]{left:-5px}[role=tooltip].invisible>[data-popper-arrow]:before,[role=tooltip].invisible>[data-popper-arrow]:after{visibility:hidden}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{appearance:none;border-color:var(--color-gray-500);--tw-shadow:0 0 #0000;background-color:#fff;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem}:is([type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--color-blue-600);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:var(--color-blue-600);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:var(--color-gray-500);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}input[type=time]::-webkit-calendar-picker-indicator{background:0 0}select:not([size]){-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 10 6'%3e %3cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 1 4 4 4-4'/%3e %3c/svg%3e");background-position:right .75rem center;background-repeat:no-repeat;background-size:.75em .75em;padding-right:2.5rem}[dir=rtl] select:not([size]){background-position:.75rem;padding-left:0;padding-right:.75rem}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;-webkit-print-color-adjust:unset;print-color-adjust:unset;padding-right:.75rem}[type=checkbox],[type=radio]{appearance:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;vertical-align:middle;-webkit-user-select:none;user-select:none;width:1rem;height:1rem;color:var(--color-blue-600);border-color:--color-gray-500;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-width:1px;flex-shrink:0;padding:0;display:inline-block}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:var(--color-blue-600);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked,.dark [type=checkbox]:checked,.dark [type=radio]:checked{background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;background-color:currentColor!important;border-color:#0000!important}[type=checkbox]:checked{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");background-repeat:no-repeat;background-size:.55em .55em}[type=radio]:checked,.dark [type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e");background-size:1em 1em}[type=checkbox]:indeterminate{-webkit-print-color-adjust:exact;print-color-adjust:exact;background-image:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M0.5 6h14'/%3e %3c/svg%3e");background-position:50%;background-repeat:no-repeat;background-size:.55em .55em;background-color:currentColor!important;border-color:#0000!important}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{background-color:currentColor!important;border-color:#0000!important}[type=file]{background:unset;border-color:inherit;font-size:unset;line-height:inherit;border-width:0;border-radius:0;padding:0}[type=file]:focus{outline:1px auto inherit}input[type=file]::file-selector-button{color:#fff;background:var(--color-gray-800);cursor:pointer;border:0;margin-inline:-1rem 1rem;padding:.625rem 1rem .625rem 2rem;font-size:.875rem;font-weight:500}input[type=file]::file-selector-button:hover{background:var(--color-gray-700)}[dir=rtl] input[type=file]::file-selector-button{padding-left:1rem;padding-right:2rem}.dark input[type=file]::file-selector-button{color:#fff;background:var(--color-gray-600)}.dark input[type=file]::file-selector-button:hover{background:var(--color-gray-500)}input[type=range]::-webkit-slider-thumb{background:var(--color-blue-600);appearance:none;cursor:pointer;border:0;border-radius:9999px;width:1.25rem;height:1.25rem}input[type=range]:disabled::-webkit-slider-thumb{background:var(--color-gray-400)}.dark input[type=range]:disabled::-webkit-slider-thumb{background:var(--color-gray-500)}input[type=range]:focus::-webkit-slider-thumb{outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(164 202 254/var(--tw-ring-opacity));outline:2px solid #0000}input[type=range]::-moz-range-thumb{background:var(--color-blue-600);appearance:none;cursor:pointer;border:0;border-radius:9999px;width:1.25rem;height:1.25rem}input[type=range]:disabled::-moz-range-thumb{background:var(--color-gray-400)}.dark input[type=range]:disabled::-moz-range-thumb{background:var(--color-gray-500)}input[type=range]::-moz-range-progress{background:var(--color-blue-500)}input[type=range]::-ms-fill-lower{background:var(--color-blue-500)}input[type=range].range-sm::-webkit-slider-thumb{width:1rem;height:1rem}input[type=range].range-lg::-webkit-slider-thumb{width:1.5rem;height:1.5rem}input[type=range].range-sm::-moz-range-thumb{width:1rem;height:1rem}input[type=range].range-lg::-moz-range-thumb{width:1.5rem;height:1.5rem}.toggle-bg:after{content:"";border-color:var(--color-gray-300);width:1.25rem;height:1.25rem;box-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);background:#fff;border-width:1px;border-radius:9999px;transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;position:absolute;top:.125rem;left:.125rem}input:checked+.toggle-bg:after{border-color:#fff;transform:translate(100%)}input:checked+.toggle-bg{background:var(--color-blue-600);border-color:var(--color-blue-600)}}@layer components{.sticky-header{z-index:40;position:sticky}.btn{cursor:pointer;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-600);padding-inline:calc(var(--spacing)*3);padding-block:calc(var(--spacing)*1.5);text-align:center;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-gray-400);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out);background-color:#0000;align-items:center;display:inline-flex}@media (hover:hover){.btn:hover{background-color:var(--color-gray-700);color:var(--color-white)}}.btn-primary{cursor:pointer;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-blue-600);background-color:var(--color-gray-900);padding-inline:calc(var(--spacing)*5);padding-block:calc(var(--spacing)*2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-blue-500);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.btn-primary:hover{background-color:var(--color-blue-600);color:var(--color-white)}}.btn-primary:focus{--tw-outline-style:none;outline-style:none}.btn-primary:focus-visible{z-index:10;background-color:var(--color-blue-600);color:var(--color-white);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-blue-200)}.btn-primary:disabled{cursor:not-allowed;background-color:var(--color-gray-500);color:var(--color-white);border-color:#0000}.btn-secondary{cursor:pointer;border-radius:var(--radius-lg);border-style:var(--tw-border-style);background-color:var(--color-blue-600);padding-inline:calc(var(--spacing)*5);padding-block:calc(var(--spacing)*2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-white);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));border-width:1px;border-color:#0000}@media (hover:hover){.btn-secondary:hover{background-color:var(--color-blue-700)}}.btn-secondary:focus{--tw-outline-style:none;outline-style:none}.btn-secondary:focus-visible{z-index:10;background-color:var(--color-blue-500);color:var(--color-white);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-blue-200)}.btn-secondary:disabled{cursor:not-allowed;background-color:var(--color-gray-500);color:var(--color-white);border-color:#0000}.btn-alternative{cursor:pointer;border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-600);background-color:var(--color-gray-800);padding-inline:calc(var(--spacing)*5);padding-block:calc(var(--spacing)*2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-gray-400);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.btn-alternative:hover{background-color:var(--color-gray-700);color:var(--color-white)}}.btn-alternative:focus{z-index:10;--tw-outline-style:none;outline-style:none}.btn-alternative:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-gray-700)}.btn-alternative:disabled{cursor:not-allowed;background-color:var(--color-gray-800);color:var(--color-gray-400)}.card{margin-bottom:calc(var(--spacing)*4);border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-800);background-color:var(--color-gray-900);padding:calc(var(--spacing)*4);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.search-input{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-600);background-color:var(--color-gray-800);width:100%;padding:calc(var(--spacing)*2.5);padding-right:calc(var(--spacing)*10);padding-left:calc(var(--spacing)*10);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-gray-100);display:block}.search-input::placeholder{color:var(--color-gray-300)}.search-input:focus{border-color:var(--color-blue-500);color:var(--color-white);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-blue-500);--tw-outline-style:none;outline-style:none}.search-input::-webkit-search-cancel-button{display:none}select{border-radius:var(--radius-lg);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-gray-700);background-color:var(--color-gray-800);width:100%;padding:calc(var(--spacing)*2.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-gray-100);display:block}select::placeholder{color:var(--color-gray-400)}select:focus{border-color:var(--color-blue-500);--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-ring-color:var(--color-blue-500);--tw-outline-style:none;outline-style:none}svg.icon{color:var(--color-gray-400);transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.3s;flex-shrink:0;transition-duration:.3s}.text-link{color:var(--color-blue-400);-webkit-text-decoration-color:var(--color-blue-400);text-decoration-color:var(--color-blue-400)}@media (hover:hover){.text-link:hover{text-decoration-line:underline}}.no-scrollbar{scrollbar-width:none}}@layer utilities{.scrollable-container{scrollbar-width:thin;padding-bottom:1rem;overflow:hidden auto;position:static!important}.scrollable-container:not(.no-fade):after{content:"";pointer-events:none;right:calc(var(--spacing)*0);bottom:calc(var(--spacing)*0);left:calc(var(--spacing)*0);--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab,var(--color-gray-900)0%,transparent);--tw-gradient-to:var(--color-gray-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position));height:28px;position:absolute}.scrollable-container .btn:not(.keep-default-btn-style){--tw-border-style:none;border-style:none}.scrollable-container table{table-layout:fixed;text-align:left;width:100%;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));color:var(--color-gray-400)}.scrollable-container table thead{top:calc(var(--spacing)*0);z-index:10;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));color:var(--color-gray-400);text-transform:uppercase;--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);position:sticky}.scrollable-container table thead tr{background-color:#1018284d}@supports (color:color-mix(in lab,red,red)){.scrollable-container table thead tr{background-color:color-mix(in oklab,var(--color-gray-900)30%,transparent)}}.scrollable-container table thead tr{text-align:left;font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider);color:var(--color-gray-400);text-transform:uppercase}.scrollable-container table thead tr th{background-color:var(--color-gray-800);padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*4);white-space:nowrap}.scrollable-container table thead tr th:first-child{border-top-left-radius:var(--radius-lg)}.scrollable-container table thead tr th:last-child{border-top-right-radius:var(--radius-lg)}.scrollable-container table tbody tr{background-color:var(--color-gray-900)}.scrollable-container table tbody tr.group-boundary{border-top-style:var(--tw-border-style);border-top-width:5px;border-top-color:var(--color-gray-800)}.scrollable-container table tbody tr.expandable-row td{background-color:var(--color-gray-950)}.scrollable-container table tbody tr td{white-space:nowrap;color:var(--color-gray-400)}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.top-12{top:calc(var(--spacing)*12)}.top-\[-4px\]{top:-4px}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-\[-4px\]{right:-4px}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-3{bottom:calc(var(--spacing)*3)}.bottom-\[-4px\]{bottom:-4px}.left-0{left:calc(var(--spacing)*0)}.left-4{left:calc(var(--spacing)*4)}.left-\[-4px\]{left:-4px}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-100{z-index:100}.col-span-1{grid-column:span 1/span 1}.col-span-full{grid-column:1/-1}.container{width:100%}@media (min-width:31rem){.container{max-width:31rem}}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.m-1{margin:calc(var(--spacing)*1)}.m-2{margin:calc(var(--spacing)*2)}.mx-auto{margin-inline:auto}.me-2{margin-inline-end:calc(var(--spacing)*2)}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mr-1{margin-right:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-12{margin-left:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-16{height:calc(var(--spacing)*16)}.h-64{height:calc(var(--spacing)*64)}.h-\[12px\]{height:12px}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[600px\]{max-height:600px}.min-h-\[100px\]{min-height:100px}.min-h-\[120px\]{min-height:120px}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing)*.5)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/2{width:50%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-10{width:calc(var(--spacing)*10)}.w-11{width:calc(var(--spacing)*11)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-\[12px\]{width:12px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-60{min-width:calc(var(--spacing)*60)}.min-w-\[400px\]{min-width:400px}.min-w-\[700px\]{min-width:700px}.min-w-\[800px\]{min-width:800px}.min-w-\[850px\]{min-width:850px}.min-w-\[900px\]{min-width:900px}.min-w-\[1024px\]{min-width:1024px}.min-w-\[1100px\]{min-width:1100px}.min-w-\[1150px\]{min-width:1150px}.min-w-\[1200px\]{min-width:1200px}.min-w-\[1250px\]{min-width:1250px}.min-w-\[1300px\]{min-width:1300px}.min-w-\[1450px\]{min-width:1450px}.min-w-\[1500px\]{min-width:1500px}.min-w-\[1600px\]{min-width:1600px}.min-w-\[1650px\]{min-width:1650px}.min-w-\[1750px\]{min-width:1750px}.min-w-\[1865px\]{min-width:1865px}.min-w-\[2000px\]{min-width:2000px}.min-w-\[2200px\]{min-width:2200px}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.origin-top-right{transform-origin:100% 0}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing)*5);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*10)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*10)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*1)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-8>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*8)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-gray-200>:not(:last-child)){border-color:var(--color-gray-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-l-lg{border-top-left-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.dark .apexcharts-canvas .apexcharts-tooltip{background-color:var(--color-gray-700)!important;color:var(--color-gray-400)!important;border-color:#0000!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-title{background-color:var(--color-gray-600)!important;border-color:var(--color-gray-500)!important;color:var(--color-gray-500)!important}.dark .apexcharts-canvas .apexcharts-xaxistooltip{color:var(--color-gray-400)!important;background-color:var(--color-gray-700)!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-label{color:var(--color-gray-400)!important}.dark .apexcharts-canvas .apexcharts-tooltip .apexcharts-tooltip-text-y-value{color:#fff!important}.dark .apexcharts-canvas .apexcharts-xaxistooltip:after,.dark .apexcharts-canvas .apexcharts-xaxistooltip:before{border-bottom-color:var(--color-gray-700)!important}.dark .apexcharts-canvas .apexcharts-tooltip-series-group.apexcharts-active{background-color:var(--color-gray-700)!important;color:var(--color-gray-400)!important}.dark .apexcharts-canvas .apexcharts-legend-text{color:var(--color-gray-400)!important}.dark .apexcharts-canvas .apexcharts-legend-text:not(.apexcharts-inactive-legend):hover{color:#fff!important}.dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-value{fill:#fff!important}.dark .apexcharts-canvas .apexcharts-datalabels-group .apexcharts-text.apexcharts-datalabel-label{fill:var(--color-gray-400)!important}.dark .apexcharts-gridline,.dark .apexcharts-xcrosshairs,.dark .apexcharts-ycrosshairs{stroke:var(--color-gray-700)!important}.dark .datatable-wrapper .datatable-search .datatable-input,.dark .datatable-wrapper .datatable-input{color:#fff;background-color:var(--color-gray-800);border:1px solid var(--color-gray-700)}.dark .datatable-wrapper thead th .datatable-input{background-color:var(--color-gray-700);border-color:var(--color-gray-600);color:#fff}.dark .datatable-wrapper .datatable-top .datatable-dropdown{color:var(--color-gray-400)}.dark .datatable-wrapper .datatable-top .datatable-dropdown .datatable-selector{background-color:var(--color-gray-800);border:1px solid var(--color-gray-700);color:#fff}.dark .datatable-wrapper .datatable-table{color:var(--color-gray-400)}.dark .datatable-wrapper .datatable-table thead{color:var(--color-gray-400);background-color:var(--color-gray-800)}.dark .datatable-wrapper .datatable-table thead th .datatable-sorter:hover,.dark .datatable-wrapper .datatable-table thead th.datatable-ascending .datatable-sorter,.dark .datatable-wrapper .datatable-table thead th.datatable-descending .datatable-sorter{color:#fff}.dark .datatable-wrapper .datatable-table tbody tr{border-bottom:1px solid var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-info{color:var(--color-gray-400)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link{color:var(--color-gray-400);border-color:var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link,.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link{color:#0000}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m14 8-4 4 4 4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='oklch(70.7%25 0.022 261.325)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:last-of-type .datatable-pagination-list-item-link:hover:after{content:url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m10 16 4-4-4-4'/%3e %3c/svg%3e")}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item:first-of-type .datatable-pagination-list-item-link{border-left:1px solid var(--color-gray-700)}.dark .datatable-wrapper .datatable-bottom .datatable-pagination .datatable-pagination-list-item-link:hover{background-color:var(--color-gray-700);color:#fff}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-600{border-color:var(--color-blue-600)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-700{border-color:var(--color-gray-700)}.border-green-200{border-color:var(--color-green-200)}.border-green-300{border-color:var(--color-green-300)}.border-green-500{border-color:var(--color-green-500)}.border-purple-200{border-color:var(--color-purple-200)}.border-purple-300{border-color:var(--color-purple-300)}.border-purple-500{border-color:var(--color-purple-500)}.border-red-200{border-color:var(--color-red-200)}.border-red-400{border-color:var(--color-red-400)}.border-red-500{border-color:var(--color-red-500)}.border-transparent{border-color:#0000}.datatable-wrapper .datatable-table tbody tr.selected{background-color:var(--color-gray-100)}.dark .datatable-wrapper .datatable-table tbody tr.selected{background-color:var(--color-gray-700)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-emerald-100{background-color:var(--color-emerald-100)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-800{background-color:var(--color-gray-800)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-gray-950{background-color:var(--color-gray-950)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-200{background-color:var(--color-green-200)}.bg-green-500{background-color:var(--color-green-500)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-200{background-color:var(--color-red-200)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-500{background-color:var(--color-yellow-500)}.dark .selectedCell{background-color:var(--color-gray-700)}.\!bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab!important;background-image:linear-gradient(var(--tw-gradient-stops))!important}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from:var(--color-blue-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-gray-50{--tw-gradient-from:var(--color-gray-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-green-50{--tw-gradient-from:var(--color-green-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-50{--tw-gradient-to:var(--color-emerald-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-100{--tw-gradient-to:var(--color-gray-100);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-indigo-50{--tw-gradient-to:var(--color-indigo-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.px-0\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-5{padding-top:calc(var(--spacing)*5)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-3{padding-right:calc(var(--spacing)*3)}.pr-12{padding-right:calc(var(--spacing)*12)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-800{color:var(--color-amber-800)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-emerald-800{color:var(--color-emerald-800)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-green-900{color:var(--color-green-900)}.text-orange-600{color:var(--color-orange-600)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-800{color:var(--color-purple-800)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-red-900{color:var(--color-red-900)}.text-white{color:var(--color-white)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.placeholder-gray-500::placeholder{color:var(--color-gray-500)}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:bg-blue-200:is(:where(.group):hover *){background-color:var(--color-blue-200)}.group-hover\:text-blue-600:is(:where(.group):hover *){color:var(--color-blue-600)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.first\:mt-0:first-child{margin-top:calc(var(--spacing)*0)}@media (hover:hover){.hover\:border-blue-300:hover{border-color:var(--color-blue-300)}.hover\:border-blue-400:hover{border-color:var(--color-blue-400)}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-blue-200:hover{background-color:var(--color-blue-200)}.hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-200:hover{background-color:var(--color-green-200)}.hover\:bg-purple-200:hover{background-color:var(--color-purple-200)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:text-blue-700:hover{color:var(--color-blue-700)}.hover\:text-blue-800:hover{color:var(--color-blue-800)}.hover\:text-gray-600:hover{color:var(--color-gray-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-gray-800:hover{color:var(--color-gray-800)}.hover\:text-gray-900:hover{color:var(--color-gray-900)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:text-red-800:hover{color:var(--color-red-800)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:z-10:focus{z-index:10}.focus\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\:border-red-500:focus{border-color:var(--color-red-500)}.focus\:border-transparent:focus{border-color:#0000}.focus\:bg-gray-700:focus{background-color:var(--color-gray-700)}.focus\:placeholder-gray-400:focus::placeholder{color:var(--color-gray-400)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-blue-300:focus{--tw-ring-color:var(--color-blue-300)}.focus\:ring-blue-500:focus{--tw-ring-color:var(--color-blue-500)}.focus\:ring-blue-600:focus{--tw-ring-color:var(--color-blue-600)}.focus\:ring-gray-500:focus{--tw-ring-color:var(--color-gray-500)}.focus\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-400:disabled{background-color:var(--color-gray-400)}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:py-2{padding-block:calc(var(--spacing)*2)}}@media (min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:px-8{padding-inline:calc(var(--spacing)*8)}}@media (min-width:80rem){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-color-scheme:dark){:where(.dark\:divide-gray-600>:not(:last-child)){border-color:var(--color-gray-600)}:where(.dark\:divide-gray-700>:not(:last-child)){border-color:var(--color-gray-700)}.dark\:border-blue-600{border-color:var(--color-blue-600)}.dark\:border-blue-700{border-color:var(--color-blue-700)}.dark\:border-blue-800{border-color:var(--color-blue-800)}.dark\:border-gray-500{border-color:var(--color-gray-500)}.dark\:border-gray-600{border-color:var(--color-gray-600)}.dark\:border-gray-700{border-color:var(--color-gray-700)}.dark\:border-green-700{border-color:var(--color-green-700)}.dark\:border-green-800{border-color:var(--color-green-800)}.dark\:border-purple-700{border-color:var(--color-purple-700)}.dark\:border-purple-800{border-color:var(--color-purple-800)}.dark\:border-red-800{border-color:var(--color-red-800)}.dark\:bg-amber-900\/30{background-color:#7b33064d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-amber-900\/30{background-color:color-mix(in oklab,var(--color-amber-900)30%,transparent)}}.dark\:bg-blue-600{background-color:var(--color-blue-600)}.dark\:bg-blue-800{background-color:var(--color-blue-800)}.dark\:bg-blue-900{background-color:var(--color-blue-900)}.dark\:bg-blue-900\/10{background-color:#1c398e1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/10{background-color:color-mix(in oklab,var(--color-blue-900)10%,transparent)}}.dark\:bg-blue-900\/20{background-color:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/20{background-color:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:bg-blue-900\/30{background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-blue-900\/30{background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:bg-emerald-900\/30{background-color:#004e3b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/30{background-color:color-mix(in oklab,var(--color-emerald-900)30%,transparent)}}.dark\:bg-gray-600{background-color:var(--color-gray-600)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:bg-gray-800\/50{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-800\/50{background-color:color-mix(in oklab,var(--color-gray-800)50%,transparent)}}.dark\:bg-gray-900{background-color:var(--color-gray-900)}.dark\:bg-gray-900\/20{background-color:#10182833}@supports (color:color-mix(in lab,red,red)){.dark\:bg-gray-900\/20{background-color:color-mix(in oklab,var(--color-gray-900)20%,transparent)}}.dark\:bg-green-800{background-color:var(--color-green-800)}.dark\:bg-green-900{background-color:var(--color-green-900)}.dark\:bg-green-900\/10{background-color:#0d542b1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/10{background-color:color-mix(in oklab,var(--color-green-900)10%,transparent)}}.dark\:bg-green-900\/20{background-color:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/20{background-color:color-mix(in oklab,var(--color-green-900)20%,transparent)}}.dark\:bg-green-900\/30{background-color:#0d542b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-green-900\/30{background-color:color-mix(in oklab,var(--color-green-900)30%,transparent)}}.dark\:bg-orange-800{background-color:var(--color-orange-800)}.dark\:bg-purple-900{background-color:var(--color-purple-900)}.dark\:bg-purple-900\/10{background-color:#59168b1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/10{background-color:color-mix(in oklab,var(--color-purple-900)10%,transparent)}}.dark\:bg-purple-900\/20{background-color:#59168b33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/20{background-color:color-mix(in oklab,var(--color-purple-900)20%,transparent)}}.dark\:bg-purple-900\/30{background-color:#59168b4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-purple-900\/30{background-color:color-mix(in oklab,var(--color-purple-900)30%,transparent)}}.dark\:bg-red-800{background-color:var(--color-red-800)}.dark\:bg-red-900{background-color:var(--color-red-900)}.dark\:bg-red-900\/20{background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/20{background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:bg-red-900\/30{background-color:#82181a4d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-red-900\/30{background-color:color-mix(in oklab,var(--color-red-900)30%,transparent)}}.dark\:bg-yellow-600{background-color:var(--color-yellow-600)}.dark\:from-blue-900\/20{--tw-gradient-from:#1c398e33}@supports (color:color-mix(in lab,red,red)){.dark\:from-blue-900\/20{--tw-gradient-from:color-mix(in oklab,var(--color-blue-900)20%,transparent)}}.dark\:from-blue-900\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-gray-800{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:from-green-900\/20{--tw-gradient-from:#0d542b33}@supports (color:color-mix(in lab,red,red)){.dark\:from-green-900\/20{--tw-gradient-from:color-mix(in oklab,var(--color-green-900)20%,transparent)}}.dark\:from-green-900\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-emerald-900\/20{--tw-gradient-to:#004e3b33}@supports (color:color-mix(in lab,red,red)){.dark\:to-emerald-900\/20{--tw-gradient-to:color-mix(in oklab,var(--color-emerald-900)20%,transparent)}}.dark\:to-emerald-900\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-gray-900{--tw-gradient-to:var(--color-gray-900);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:to-indigo-900\/20{--tw-gradient-to:#312c8533}@supports (color:color-mix(in lab,red,red)){.dark\:to-indigo-900\/20{--tw-gradient-to:color-mix(in oklab,var(--color-indigo-900)20%,transparent)}}.dark\:to-indigo-900\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.dark\:text-amber-300{color:var(--color-amber-300)}.dark\:text-amber-400{color:var(--color-amber-400)}.dark\:text-blue-200{color:var(--color-blue-200)}.dark\:text-blue-300{color:var(--color-blue-300)}.dark\:text-blue-400{color:var(--color-blue-400)}.dark\:text-emerald-300{color:var(--color-emerald-300)}.dark\:text-gray-100{color:var(--color-gray-100)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-500{color:var(--color-gray-500)}.dark\:text-gray-600{color:var(--color-gray-600)}.dark\:text-green-100{color:var(--color-green-100)}.dark\:text-green-200{color:var(--color-green-200)}.dark\:text-green-300{color:var(--color-green-300)}.dark\:text-green-400{color:var(--color-green-400)}.dark\:text-orange-200{color:var(--color-orange-200)}.dark\:text-orange-400{color:var(--color-orange-400)}.dark\:text-purple-200{color:var(--color-purple-200)}.dark\:text-purple-300{color:var(--color-purple-300)}.dark\:text-purple-400{color:var(--color-purple-400)}.dark\:text-red-100{color:var(--color-red-100)}.dark\:text-red-200{color:var(--color-red-200)}.dark\:text-red-300{color:var(--color-red-300)}.dark\:text-red-400{color:var(--color-red-400)}.dark\:text-white{color:var(--color-white)}.dark\:text-yellow-100{color:var(--color-yellow-100)}.dark\:text-yellow-300{color:var(--color-yellow-300)}.dark\:placeholder-gray-400::placeholder{color:var(--color-gray-400)}.dark\:ring-offset-gray-800{--tw-ring-offset-color:var(--color-gray-800)}@media (hover:hover){.dark\:group-hover\:bg-blue-700:is(:where(.group):hover *){background-color:var(--color-blue-700)}.dark\:group-hover\:text-blue-400:is(:where(.group):hover *){color:var(--color-blue-400)}.dark\:hover\:border-blue-500:hover{border-color:var(--color-blue-500)}.dark\:hover\:border-blue-700:hover{border-color:var(--color-blue-700)}.dark\:hover\:bg-blue-700:hover{background-color:var(--color-blue-700)}.dark\:hover\:bg-blue-800:hover{background-color:var(--color-blue-800)}.dark\:hover\:bg-blue-800\/30:hover{background-color:#193cb84d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-blue-800\/30:hover{background-color:color-mix(in oklab,var(--color-blue-800)30%,transparent)}}.dark\:hover\:bg-blue-900\/30:hover{background-color:#1c398e4d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-blue-900\/30:hover{background-color:color-mix(in oklab,var(--color-blue-900)30%,transparent)}}.dark\:hover\:bg-blue-900\/50:hover{background-color:#1c398e80}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-blue-900\/50:hover{background-color:color-mix(in oklab,var(--color-blue-900)50%,transparent)}}.dark\:hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.dark\:hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.dark\:hover\:bg-gray-800:hover{background-color:var(--color-gray-800)}.dark\:hover\:bg-gray-800\/50:hover{background-color:#1e293980}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-gray-800\/50:hover{background-color:color-mix(in oklab,var(--color-gray-800)50%,transparent)}}.dark\:hover\:bg-green-800\/30:hover{background-color:#0166304d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-green-800\/30:hover{background-color:color-mix(in oklab,var(--color-green-800)30%,transparent)}}.dark\:hover\:bg-purple-800\/30:hover{background-color:#6e11b04d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-purple-800\/30:hover{background-color:color-mix(in oklab,var(--color-purple-800)30%,transparent)}}.dark\:hover\:bg-red-900\/20:hover{background-color:#82181a33}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-red-900\/20:hover{background-color:color-mix(in oklab,var(--color-red-900)20%,transparent)}}.dark\:hover\:bg-red-900\/50:hover{background-color:#82181a80}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-red-900\/50:hover{background-color:color-mix(in oklab,var(--color-red-900)50%,transparent)}}.dark\:hover\:text-blue-100:hover{color:var(--color-blue-100)}.dark\:hover\:text-blue-300:hover{color:var(--color-blue-300)}.dark\:hover\:text-gray-100:hover{color:var(--color-gray-100)}.dark\:hover\:text-gray-200:hover{color:var(--color-gray-200)}.dark\:hover\:text-gray-300:hover{color:var(--color-gray-300)}.dark\:hover\:text-red-100:hover{color:var(--color-red-100)}.dark\:hover\:text-white:hover{color:var(--color-white)}}.dark\:focus\:ring-blue-400:focus{--tw-ring-color:var(--color-blue-400)}.dark\:focus\:ring-blue-600:focus{--tw-ring-color:var(--color-blue-600)}.dark\:focus\:ring-blue-800:focus{--tw-ring-color:var(--color-blue-800)}}}:root{--navbar-height:4rem;--sidebar-width:16rem;--table-height:350px}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}
@@ -1,3 +0,0 @@
1
- import{b2 as Ae,o as De,g as L,h as P,d as x,bg as yt,as as Fe}from"./Cby0Z7eP.js";class le{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Se{constructor(t,n){this.status=t,this.location=n}}class Re extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function wt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function vt(e){return e.split("%25").map(decodeURI).join("%25")}function bt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function me({href:e}){return e.split("#")[0]}function kt(e,t,n,r=!1){const a=new URL(e);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(i,o){if(o==="get"||o==="getAll"||o==="has")return f=>(n(f),i[o](f));t();const c=Reflect.get(i,o);return typeof c=="function"?c.bind(i):c}}),enumerable:!0,configurable:!0});const s=["href","pathname","search","toString","toJSON"];r&&s.push("hash");for(const i of s)Object.defineProperty(a,i,{get(){return t(),e[i]},enumerable:!0,configurable:!0});return a}function Et(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;const At=new TextDecoder;function St(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const Rt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&G.delete(Te(e)),Rt(e,t));const G=new Map;function Tt(e,t){const n=Te(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...s}=JSON.parse(r.textContent);const i=r.getAttribute("data-ttl");return i&&G.set(n,{body:a,init:s,ttl:1e3*Number(i)}),r.getAttribute("data-b64")!==null&&(a=St(a)),Promise.resolve(new Response(a,s))}return window.fetch(e,t)}function It(e,t,n){if(G.size>0){const r=Te(e,n),a=G.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);G.delete(r)}}return window.fetch(t,n)}function Te(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${Et(...a)}"]`}return r}const Ut=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Lt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${xt(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const s=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(s)return t.push({name:s[1],matcher:s[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const i=r.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return _e(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return _e(String.fromCharCode(...c.slice(2).split("-").map(w=>parseInt(w,16))));const d=Ut.exec(c),[,h,u,l,p]=d;return t.push({name:l,matcher:p,optional:!!h,rest:!!u,chained:u?f===1&&i[0]==="":!1}),u?"([^]*?)":h?"([^/]*)?":"([^/]+?)"}return _e(c)}).join("")}).join("")}/?$`),params:t}}function Pt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function xt(e){return e.slice(1).split("/").filter(Pt)}function Ct(e,t,n){const r={},a=e.slice(1),s=a.filter(o=>o!==void 0);let i=0;for(let o=0;o<t.length;o+=1){const c=t[o];let f=a[o-i];if(c.chained&&c.rest&&i&&(f=a.slice(o-i,o+1).filter(d=>d).join("/"),i=0),f===void 0){c.rest&&(r[c.name]="");continue}if(!c.matcher||n[c.matcher](f)){r[c.name]=f;const d=t[o+1],h=a[o+1];d&&!d.rest&&d.optional&&h&&c.chained&&(i=0),!d&&!h&&Object.keys(r).length===s.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return r}function _e(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Nt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([o,[c,f,d]])=>{const{pattern:h,params:u}=Lt(o),l={id:o,exec:p=>{const w=h.exec(p);if(w)return Ct(w,u,r)},errors:[1,...d||[]].map(p=>e[p]),layouts:[0,...f||[]].map(i),leaf:s(c)};return l.errors.length=l.layouts.length=Math.max(l.errors.length,l.layouts.length),l});function s(o){const c=o<0;return c&&(o=~o),[c,e[o]]}function i(o){return o===void 0?o:[a.has(o),e[o]]}}function ze(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function qe(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const T=globalThis.__sveltekit_iojf5q?.base??"",Ot=globalThis.__sveltekit_iojf5q?.assets??T,jt="1758050969355",Xe="sveltekit:snapshot",Ze="sveltekit:scroll",Qe="sveltekit:states",$t="sveltekit:pageurl",q="sveltekit:history",W="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Z=location.origin;function Ie(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function fe(){return{x:pageXOffset,y:pageYOffset}}function F(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Be={...j,"":j.hover};function et(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function tt(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=et(e)}}function ve(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const o=location.hash.split("#")[1]||"/";r.hash=`#${o}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,s=!r||!!a||ue(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),i=r?.origin===Z&&e.hasAttribute("download");return{url:r,external:s,target:a,download:i}}function te(e){let t=null,n=null,r=null,a=null,s=null,i=null,o=e;for(;o&&o!==document.documentElement;)r===null&&(r=F(o,"preload-code")),a===null&&(a=F(o,"preload-data")),t===null&&(t=F(o,"keepfocus")),n===null&&(n=F(o,"noscroll")),s===null&&(s=F(o,"reload")),i===null&&(i=F(o,"replacestate")),o=et(o);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Be[r??"off"],preload_data:Be[a??"off"],keepfocus:c(t),noscroll:c(n),reload:c(s),replace_state:c(i)}}function Ve(e){const t=Ae(e);let n=!0;function r(){n=!0,t.update(i=>i)}function a(i){n=!1,t.set(i)}function s(i){let o;return t.subscribe(c=>{(o===void 0||n&&c!==o)&&i(o=c)})}return{notify:r,set:a,subscribe:s}}const nt={v:()=>{}};function Dt(){const{set:e,subscribe:t}=Ae(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Ot}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==jt;return i&&(e(!0),nt.v(),clearTimeout(n)),i}catch{return!1}}return{subscribe:t,check:r}}function ue(e,t,n){return e.origin!==Z||!e.pathname.startsWith(t)?!0:n?!(e.pathname===t+"/"||e.pathname===t+"/index.html"||e.protocol==="file:"&&e.pathname.replace(/\/[^/]+\.html?$/,"")===t):!1}function An(e){}function Ft(e){const t=Bt(e),n=new ArrayBuffer(t.length),r=new DataView(n);for(let a=0;a<n.byteLength;a++)r.setUint8(a,t.charCodeAt(a));return n}const qt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Bt(e){e.length%4===0&&(e=e.replace(/==?$/,""));let t="",n=0,r=0;for(let a=0;a<e.length;a++)n<<=6,n|=qt.indexOf(e[a]),r+=6,r===24&&(t+=String.fromCharCode((n&16711680)>>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=r=0);return r===12?(n>>=4,t+=String.fromCharCode(n)):r===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const Vt=-1,Mt=-2,Gt=-3,Ht=-4,Kt=-5,Yt=-6;function Wt(e,t){if(typeof e=="number")return a(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,r=Array(n.length);function a(s,i=!1){if(s===Vt)return;if(s===Gt)return NaN;if(s===Ht)return 1/0;if(s===Kt)return-1/0;if(s===Yt)return-0;if(i||typeof s!="number")throw new Error("Invalid input");if(s in r)return r[s];const o=n[s];if(!o||typeof o!="object")r[s]=o;else if(Array.isArray(o))if(typeof o[0]=="string"){const c=o[0],f=t?.[c];if(f)return r[s]=f(a(o[1]));switch(c){case"Date":r[s]=new Date(o[1]);break;case"Set":const d=new Set;r[s]=d;for(let l=1;l<o.length;l+=1)d.add(a(o[l]));break;case"Map":const h=new Map;r[s]=h;for(let l=1;l<o.length;l+=2)h.set(a(o[l]),a(o[l+1]));break;case"RegExp":r[s]=new RegExp(o[1],o[2]);break;case"Object":r[s]=Object(o[1]);break;case"BigInt":r[s]=BigInt(o[1]);break;case"null":const u=Object.create(null);r[s]=u;for(let l=1;l<o.length;l+=2)u[o[l]]=a(o[l+1]);break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{const l=globalThis[c],p=new l(a(o[1]));r[s]=o[2]!==void 0?p.subarray(o[2],o[3]):p;break}case"ArrayBuffer":{const l=o[1],p=Ft(l);r[s]=p;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const l=c.slice(9);r[s]=Temporal[l].from(o[1]);break}case"URL":{const l=new URL(o[1]);r[s]=l;break}case"URLSearchParams":{const l=new URLSearchParams(o[1]);r[s]=l;break}default:throw new Error(`Unknown type ${c}`)}}else{const c=new Array(o.length);r[s]=c;for(let f=0;f<o.length;f+=1){const d=o[f];d!==Mt&&(c[f]=a(d))}}else{const c={};r[s]=c;for(const f in o){if(f==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const d=o[f];c[f]=a(d)}}return r[s]}return a(0)}const rt=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...rt];const Jt=new Set([...rt]);[...Jt];function zt(e){return e.filter(t=>t!=null)}const Xt="x-sveltekit-invalidated",Zt="x-sveltekit-trailing-slash";function ne(e){return e instanceof le||e instanceof Re?e.status:500}function Qt(e){return e instanceof Re?e.text:"Internal Error"}let A,J,ye;const en=De.toString().includes("$$")||/function \w+\(\) \{\}/.test(De.toString());en?(A={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},J={current:null},ye={current:!1}):(A=new class{#e=L({});get data(){return P(this.#e)}set data(t){x(this.#e,t)}#t=L(null);get form(){return P(this.#t)}set form(t){x(this.#t,t)}#n=L(null);get error(){return P(this.#n)}set error(t){x(this.#n,t)}#r=L({});get params(){return P(this.#r)}set params(t){x(this.#r,t)}#a=L({id:null});get route(){return P(this.#a)}set route(t){x(this.#a,t)}#o=L({});get state(){return P(this.#o)}set state(t){x(this.#o,t)}#s=L(-1);get status(){return P(this.#s)}set status(t){x(this.#s,t)}#i=L(new URL("https://example.com"));get url(){return P(this.#i)}set url(t){x(this.#i,t)}},J=new class{#e=L(null);get current(){return P(this.#e)}set current(t){x(this.#e,t)}},ye=new class{#e=L(!1);get current(){return P(this.#e)}set current(t){x(this.#e,t)}},nt.v=()=>ye.current=!0);function tn(e){Object.assign(A,e)}const nn="/__data.json",rn=".html__data.json";function an(e){return e.endsWith(".html")?e.replace(/\.html$/,rn):e.replace(/\/$/,"")+nn}const Me={spanContext(){return on},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},on={traceId:"",spanId:"",traceFlags:0},{tick:sn}=yt,cn=new Set(["icon","shortcut icon","apple-touch-icon"]),D=ze(Ze)??{},z=ze(Xe)??{},O={url:Ve({}),page:Ve({}),navigating:Ae(null),updated:Dt()};function Ue(e){D[e]=fe()}function ln(e,t){let n=e+1;for(;D[n];)delete D[n],n+=1;for(n=t+1;z[n];)delete z[n],n+=1}function V(e){return location.href=e.href,new Promise(()=>{})}async function at(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(T||"/");e&&await e.update()}}function Ge(){}let Le,be,re,C,ke,v;globalThis.__sveltekit_iojf5q?.data;const ae=[],oe=[];let N=null;const ee=new Map,ot=new Set,fn=new Set,H=new Set;let y={branch:[],error:null,url:null},Pe=!1,se=!1,He=!0,X=!1,M=!1,st=!1,xe=!1,it,k,R,$;const K=new Set,Ke=new Map;async function In(e,t,n){document.URL!==location.href&&(location.href=location.href),v=e,await e.hooks.init?.(),Le=Nt(e),C=document.documentElement,ke=t,be=e.nodes[0],re=e.nodes[1],be(),re(),k=history.state?.[q],R=history.state?.[W],k||(k=R=Date.now(),history.replaceState({...history.state,[q]:k,[W]:R},""));const r=D[k];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await vn(ke,n)):(await Y({type:"enter",url:Ie(v.hash?kn(new URL(location.href)):location.href),replace_state:!0}),a()),wn()}function un(){ae.length=0,xe=!1}function ct(e){oe.some(t=>t?.snapshot)&&(z[e]=oe.map(t=>t?.snapshot?.capture()))}function lt(e){z[e]?.forEach((t,n)=>{oe[n]?.snapshot?.restore(t)})}function Ye(){Ue(k),qe(Ze,D),ct(R),qe(Xe,z)}async function Ce(e,t,n,r){let a;const s=await Y({type:"goto",url:Ie(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(xe=!0,a=[...Ke.keys()]),t.invalidate&&t.invalidate.forEach(yn)}});return t.invalidateAll&&Fe().then(Fe).then(()=>{Ke.forEach(({resource:i},o)=>{a?.includes(o)&&i.refresh?.()})}),s}async function dn(e){if(e.id!==N?.id){const t={};K.add(t),N={id:e.id,token:t,promise:dt({...e,preload:t}).then(n=>(K.delete(t),n.type==="loaded"&&n.state.error&&(N=null),n))}}return N.promise}async function we(e){const t=(await he(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].map(n=>n?.[1]()))}function ft(e,t,n){y=e.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(A,e.props.page),it=new v.root({target:t,props:{...e.props,stores:O,components:oe},hydrate:n,sync:!1}),lt(R),n){const a={from:null,to:{params:y.params,route:{id:y.route?.id??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};H.forEach(s=>s(a))}se=!0}function ie({url:e,params:t,branch:n,status:r,error:a,route:s,form:i}){let o="never";if(T&&(e.pathname===T||e.pathname===T+"/"))o="always";else for(const l of n)l?.slash!==void 0&&(o=l.slash);e.pathname=wt(e.pathname,o),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:a,route:s},props:{constructors:zt(n).map(l=>l.node.component),page:$e(A)}};i!==void 0&&(c.props.form=i);let f={},d=!A,h=0;for(let l=0;l<Math.max(n.length,y.branch.length);l+=1){const p=n[l],w=y.branch[l];p?.data!==w?.data&&(d=!0),p&&(f={...f,...p.data},d&&(c.props[`data_${h}`]=f),h+=1)}return(!y.url||e.href!==y.url.href||y.error!==a||i!==void 0&&i!==A.form||d)&&(c.props.page={error:a,params:t,route:{id:s?.id??null},state:{},status:r,url:new URL(e),form:i??null,data:d?f:A.data}),c}async function Ne({loader:e,parent:t,url:n,params:r,route:a,server_data_node:s}){let i=null,o=!0;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},f=await e();if(f.universal?.load){let d=function(...u){for(const l of u){const{href:p}=new URL(l,n);c.dependencies.add(p)}};const h={tracing:{enabled:!1,root:Me,current:Me},route:new Proxy(a,{get:(u,l)=>(o&&(c.route=!0),u[l])}),params:new Proxy(r,{get:(u,l)=>(o&&c.params.add(l),u[l])}),data:s?.data??null,url:kt(n,()=>{o&&(c.url=!0)},u=>{o&&c.search_params.add(u)},v.hash),async fetch(u,l){u instanceof Request&&(l={body:u.method==="GET"||u.method==="HEAD"?void 0:await u.blob(),cache:u.cache,credentials:u.credentials,headers:[...u.headers].length>0?u?.headers:void 0,integrity:u.integrity,keepalive:u.keepalive,method:u.method,mode:u.mode,redirect:u.redirect,referrer:u.referrer,referrerPolicy:u.referrerPolicy,signal:u.signal,...l});const{resolved:p,promise:w}=ut(u,l,n);return o&&d(p.href),w},setHeaders:()=>{},depends:d,parent(){return o&&(c.parent=!0),t()},untrack(u){o=!1;try{return u()}finally{o=!0}}};i=await f.universal.load.call(null,h)??null}return{node:f,loader:e,server:s,universal:f.universal?.load?{type:"data",data:i,uses:c}:null,data:i??s?.data??null,slash:f.universal?.trailingSlash??s?.slash}}function ut(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const s=se?It(r,a.href,t):Tt(r,t);return{resolved:a,promise:s}}function We(e,t,n,r,a,s){if(xe)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const i of a.search_params)if(r.has(i))return!0;for(const i of a.params)if(s[i]!==y.params[i])return!0;for(const i of a.dependencies)if(ae.some(o=>o(new URL(i))))return!0;return!1}function Oe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function hn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),s=t.searchParams.getAll(r);a.every(i=>s.includes(i))&&s.every(i=>a.includes(i))&&n.delete(r)}return n}function Je({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:$e(A),constructors:[]}}}async function dt({id:e,invalidating:t,url:n,params:r,route:a,preload:s}){if(N?.id===e)return K.delete(N.token),N.promise;const{errors:i,layouts:o,leaf:c}=a,f=[...o,c];i.forEach(g=>g?.().catch(()=>{})),f.forEach(g=>g?.[1]().catch(()=>{}));let d=null;const h=y.url?e!==ce(y.url):!1,u=y.route?a.id!==y.route.id:!1,l=hn(y.url,n);let p=!1;const w=f.map((g,_)=>{const b=y.branch[_],E=!!g?.[0]&&(b?.loader!==g[1]||We(p,u,h,l,b.server?.uses,r));return E&&(p=!0),E});if(w.some(Boolean)){try{d=await gt(n,w)}catch(g){const _=await B(g,{url:n,params:r,route:{id:e}});return K.has(s)?Je({error:_,url:n,params:r,route:a}):de({status:ne(g),error:_,url:n,route:a})}if(d.type==="redirect")return d}const m=d?.nodes;let S=!1;const U=f.map(async(g,_)=>{if(!g)return;const b=y.branch[_],E=m?.[_];if((!E||E.type==="skip")&&g[1]===b?.loader&&!We(S,u,h,l,b.universal?.uses,r))return b;if(S=!0,E?.type==="error")throw E;return Ne({loader:g[1],url:n,params:r,route:a,parent:async()=>{const pe={};for(let ge=0;ge<_;ge+=1)Object.assign(pe,(await U[ge])?.data);return pe},server_data_node:Oe(E===void 0&&g[0]?{type:"skip"}:E??null,g[0]?b?.server:void 0)})});for(const g of U)g.catch(()=>{});const I=[];for(let g=0;g<f.length;g+=1)if(f[g])try{I.push(await U[g])}catch(_){if(_ instanceof Se)return{type:"redirect",location:_.location};if(K.has(s))return Je({error:await B(_,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let b=ne(_),E;if(m?.includes(_))b=_.status??b,E=_.error;else if(_ instanceof le)E=_.body;else{if(await O.updated.check())return await at(),await V(n);E=await B(_,{params:r,url:n,route:{id:a.id}})}const Q=await pn(g,I,i);return Q?ie({url:n,params:r,branch:I.slice(0,Q.idx).concat(Q.node),status:b,error:E,route:a}):await pt(n,{id:a.id},E,b)}else I.push(void 0);return ie({url:n,params:r,branch:I,status:200,error:null,route:a,form:t?void 0:null})}async function pn(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function de({status:e,error:t,url:n,route:r}){const a={};let s=null;if(v.server_loads[0]===0)try{const o=await gt(n,[!0]);if(o.type!=="data"||o.nodes[0]&&o.nodes[0].type!=="data")throw 0;s=o.nodes[0]??null}catch{(n.origin!==Z||n.pathname!==location.pathname||Pe)&&await V(n)}try{const o=await Ne({loader:be,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Oe(s)}),c={node:await re(),loader:re,universal:null,server:null,data:null};return ie({url:n,params:a,branch:[o,c],status:e,error:t,route:null})}catch(o){if(o instanceof Se)return Ce(new URL(o.location,location.href),{},0);throw o}}async function gn(e){const t=e.href;if(ee.has(t))return ee.get(t);let n;try{const r=(async()=>{let a=await v.hooks.reroute({url:new URL(e),fetch:async(s,i)=>ut(s,i,e).promise})??e;if(typeof a=="string"){const s=new URL(e);v.hash?s.hash=a:s.pathname=a,a=s}return a})();ee.set(t,r),n=await r}catch{ee.delete(t);return}return n}async function he(e,t){if(e&&!ue(e,T,v.hash)){const n=await gn(e);if(!n)return;const r=mn(n);for(const a of Le){const s=a.exec(r);if(s)return{id:ce(e),invalidating:t,route:a,params:bt(s),url:e}}}}function mn(e){return vt(v.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(T.length))||"/"}function ce(e){return(v.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function ht({url:e,type:t,intent:n,delta:r}){let a=!1;const s=je(y,n,e,t);r!==void 0&&(s.navigation.delta=r);const i={...s.navigation,cancel:()=>{a=!0,s.reject(new Error("navigation cancelled"))}};return X||ot.forEach(o=>o(i)),a?null:s}async function Y({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:s,state:i={},redirect_count:o=0,nav_token:c={},accept:f=Ge,block:d=Ge}){const h=$;$=c;const u=await he(t,!1),l=e==="enter"?je(y,u,t,e):ht({url:t,type:e,delta:n?.delta,intent:u});if(!l){d(),$===c&&($=h);return}const p=k,w=R;f(),X=!0,se&&l.navigation.type!=="enter"&&O.navigating.set(J.current=l.navigation);let m=u&&await dt(u);if(!m){if(ue(t,T,v.hash))return await V(t);m=await pt(t,{id:null},await B(new Re(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404)}if(t=u?.url||t,$!==c)return l.reject(new Error("navigation aborted")),!1;if(m.type==="redirect")if(o>=20)m=await de({status:500,error:await B(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}});else return await Ce(new URL(m.location,t).href,{},o+1,c),!1;else m.props.page.status>=400&&await O.updated.check()&&(await at(),await V(t));if(un(),Ue(p),ct(w),m.props.page.url.pathname!==t.pathname&&(t.pathname=m.props.page.url.pathname),i=n?n.state:i,!n){const g=s?0:1,_={[q]:k+=g,[W]:R+=g,[Qe]:i};(s?history.replaceState:history.pushState).call(history,_,"",t),s||ln(k,R)}if(N=null,m.props.page.state=i,se){const g=(await Promise.all(Array.from(fn,_=>_(l.navigation)))).filter(_=>typeof _=="function");if(g.length>0){let _=function(){g.forEach(b=>{H.delete(b)})};g.push(_),g.forEach(b=>{H.add(b)})}y=m.state,m.props.page&&(m.props.page.url=t),it.$set(m.props),tn(m.props.page),st=!0}else ft(m,ke,!1);const{activeElement:S}=document;await sn();const U=n?n.scroll:a?fe():null;if(He){const g=t.hash&&document.getElementById(_t(t));U?scrollTo(U.x,U.y):g?g.scrollIntoView():scrollTo(0,0)}const I=document.activeElement!==S&&document.activeElement!==document.body;!r&&!I&&bn(t),He=!0,m.props.page&&Object.assign(A,m.props.page),X=!1,e==="popstate"&&lt(R),l.fulfil(void 0),H.forEach(g=>g(l.navigation)),O.navigating.set(J.current=null)}async function pt(e,t,n,r){return e.origin===Z&&e.pathname===location.pathname&&!Pe?await de({status:r,error:n,url:e,route:t}):await V(e)}function _n(){let e,t,n;C.addEventListener("mousemove",o=>{const c=o.target;clearTimeout(e),e=setTimeout(()=>{s(c,j.hover)},20)});function r(o){o.defaultPrevented||s(o.composedPath()[0],j.tap)}C.addEventListener("mousedown",r),C.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(o=>{for(const c of o)c.isIntersecting&&(we(new URL(c.target.href)),a.unobserve(c.target))},{threshold:0});async function s(o,c){const f=tt(o,C),d=f===t&&c>=n;if(!f||d)return;const{url:h,external:u,download:l}=ve(f,T,v.hash);if(u||l)return;const p=te(f),w=h&&ce(y.url)===ce(h);if(!(p.reload||w))if(c<=p.preload_data){t=f,n=j.tap;const m=await he(h,!1);if(!m)return;dn(m)}else c<=p.preload_code&&(t=f,n=c,we(h))}function i(){a.disconnect();for(const o of C.querySelectorAll("a")){const{url:c,external:f,download:d}=ve(o,T,v.hash);if(f||d)continue;const h=te(o);h.reload||(h.preload_code===j.viewport&&a.observe(o),h.preload_code===j.eager&&we(c))}}H.add(i),i()}function B(e,t){if(e instanceof le)return e.body;const n=ne(e),r=Qt(e);return v.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Un(e,t={}){return e=new URL(Ie(e)),e.origin!==Z?Promise.reject(new Error("goto: invalid URL")):Ce(e,t,0)}function yn(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function wn(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(Ye(),!X){const r=je(y,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};ot.forEach(s=>s(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ye()}),navigator.connection?.saveData||_n(),C.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=tt(t.composedPath()[0],C);if(!n)return;const{url:r,external:a,target:s,download:i}=ve(n,T,v.hash);if(!r)return;if(s==="_parent"||s==="_top"){if(window.parent!==window)return}else if(s&&s!=="_self")return;const o=te(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||i)return;const[f,d]=(v.hash?r.hash.replace(/^#/,""):r.href).split("#"),h=f===me(location);if(a||o.reload&&(!h||!d)){ht({url:r,type:"link"})?X=!0:t.preventDefault();return}if(d!==void 0&&h){const[,u]=y.url.href.split("#");if(u===d){if(t.preventDefault(),d===""||d==="top"&&n.ownerDocument.getElementById("top")===null)window.scrollTo({top:0});else{const l=n.ownerDocument.getElementById(decodeURIComponent(d));l&&(l.scrollIntoView(),l.focus())}return}if(M=!0,Ue(k),e(r),!o.replace_state)return;M=!1}t.preventDefault(),await new Promise(u=>{requestAnimationFrame(()=>{setTimeout(u,0)}),setTimeout(u,100)}),await Y({type:"link",url:r,keepfocus:o.keepfocus,noscroll:o.noscroll,replace_state:o.replace_state??r.href===location.href})}),C.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const i=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(ue(i,T,!1))return;const o=t.target,c=te(o);if(c.reload)return;t.preventDefault(),t.stopPropagation();const f=new FormData(o),d=r?.getAttribute("name");d&&f.append(d,r?.getAttribute("value")??""),i.search=new URLSearchParams(f).toString(),Y({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href})}),addEventListener("popstate",async t=>{if(!Ee){if(t.state?.[q]){const n=t.state[q];if($={},n===k)return;const r=D[n],a=t.state[Qe]??{},s=new URL(t.state[$t]??location.href),i=t.state[W],o=y.url?me(location)===me(y.url):!1;if(i===R&&(st||o)){a!==A.state&&(A.state=a),e(s),D[k]=fe(),r&&scrollTo(r.x,r.y),k=n;return}const f=n-k;await Y({type:"popstate",url:s,popped:{state:a,scroll:r,delta:f},accept:()=>{k=n,R=i},block:()=>{history.go(-f)},nav_token:$})}else if(!M){const n=new URL(location.href);e(n),v.hash&&location.reload()}}}),addEventListener("hashchange",()=>{M&&(M=!1,history.replaceState({...history.state,[q]:++k,[W]:R},"",location.href))});for(const t of document.querySelectorAll("link"))cn.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&O.navigating.set(J.current=null)});function e(t){y.url=A.url=t,O.page.set($e(A)),O.page.notify()}}async function vn(e,{status:t=200,error:n,node_ids:r,params:a,route:s,server_route:i,data:o,form:c}){Pe=!0;const f=new URL(location.href);let d;({params:a={},route:s={id:null}}=await he(f,!1)||{}),d=Le.find(({id:l})=>l===s.id);let h,u=!0;try{const l=r.map(async(w,m)=>{const S=o[m];return S?.uses&&(S.uses=mt(S.uses)),Ne({loader:v.nodes[w],url:f,params:a,route:s,parent:async()=>{const U={};for(let I=0;I<m;I+=1)Object.assign(U,(await l[I]).data);return U},server_data_node:Oe(S)})}),p=await Promise.all(l);if(d){const w=d.layouts;for(let m=0;m<w.length;m++)w[m]||p.splice(m,0,void 0)}h=ie({url:f,params:a,branch:p,status:t,error:n,form:c,route:d??null})}catch(l){if(l instanceof Se){await V(new URL(l.location,location.href));return}h=await de({status:ne(l),error:await B(l,{url:f,params:a,route:s}),url:f,route:s}),e.textContent="",u=!1}h.props.page&&(h.props.page.state={}),ft(h,e,u)}async function gt(e,t){const n=new URL(e);n.pathname=an(e.pathname),e.pathname.endsWith("/")&&n.searchParams.append(Zt,"1"),n.searchParams.append(Xt,t.map(s=>s?"1":"0").join(""));const r=window.fetch,a=await r(n.href,{});if(!a.ok){let s;throw a.headers.get("content-type")?.includes("application/json")?s=await a.json():a.status===404?s="Not Found":a.status===500&&(s="Internal Error"),new le(a.status,s)}return new Promise(async s=>{const i=new Map,o=a.body.getReader();function c(d){return Wt(d,{...v.decoders,Promise:h=>new Promise((u,l)=>{i.set(h,{fulfil:u,reject:l})})})}let f="";for(;;){const{done:d,value:h}=await o.read();if(d&&!f)break;for(f+=!h&&f?`
2
- `:At.decode(h,{stream:!0});;){const u=f.indexOf(`
3
- `);if(u===-1)break;const l=JSON.parse(f.slice(0,u));if(f=f.slice(u+1),l.type==="redirect")return s(l);if(l.type==="data")l.nodes?.forEach(p=>{p?.type==="data"&&(p.uses=mt(p.uses),p.data=c(p.data))}),s(l);else if(l.type==="chunk"){const{id:p,data:w,error:m}=l,S=i.get(p);i.delete(p),m?S.reject(c(m)):S.fulfil(c(w))}}}})}function mt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Ee=!1;function bn(e){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const n=_t(e);if(n&&document.getElementById(n)){const{x:a,y:s}=fe();setTimeout(()=>{const i=history.state;Ee=!0,location.replace(`#${n}`),v.hash&&location.replace(e.hash),history.replaceState(i,"",e.hash),scrollTo(a,s),Ee=!1})}else{const a=document.body,s=a.getAttribute("tabindex");a.tabIndex=-1,a.focus({preventScroll:!0,focusVisible:!1}),s!==null?a.setAttribute("tabindex",s):a.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const a=[];for(let s=0;s<r.rangeCount;s+=1)a.push(r.getRangeAt(s));setTimeout(()=>{if(r.rangeCount===a.length){for(let s=0;s<r.rangeCount;s+=1){const i=a[s],o=r.getRangeAt(s);if(i.commonAncestorContainer!==o.commonAncestorContainer||i.startContainer!==o.startContainer||i.endContainer!==o.endContainer||i.startOffset!==o.startOffset||i.endOffset!==o.endOffset)return}r.removeAllRanges()}})}}}function je(e,t,n,r){let a,s;const i=new Promise((c,f)=>{a=c,s=f});return i.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n},willUnload:!t,type:r,complete:i},fulfil:a,reject:s}}function $e(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function kn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function _t(e){let t;if(v.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{In as a,Un as g,An as l,A as p,O as s};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/RAfQ0xU4.js";export{o as load_css,r as start};
@@ -1,9 +0,0 @@
1
- import"../chunks/DsnmJJEf.js";import{i as Ye}from"../chunks/C5zWTfmV.js";import{p as We,ae as Me,d as l,T as C,G as te,h as e,af as ar,ag as Ve,c as a,n as _e,r,b as d,e as Xe,J as H,K as P,ah as Vr,f as m,s as n,k as h,ai as b,a as we,aj as xr,ak as Ie,a0 as $e,al as hr,am as rr,an as yr,o as Gr,W as Qr}from"../chunks/Cby0Z7eP.js";import{l as tr,p as Ue,i as z,a as et,s as rt}from"../chunks/DqsOU3kV.js";import{a as Tr,s as de,r as Er,e as pe,i as De,b as qe,c as Ir,d as _r,f as Cr,w as wr}from"../chunks/BtOhWAVU.js";import{g as tt}from"../chunks/RAfQ0xU4.js";var at=Ve("<title> </title>"),ot=Ve('<svg><!><path d="M11 18L12.41 19.41 15 16.83 15 29 17 29 17 16.83 19.59 19.41 21 18 16 13 11 18z"></path><path d="M23.5,22H23V20h.5a4.5,4.5,0,0,0,.36-9L23,11l-.1-.82a7,7,0,0,0-13.88,0L9,11,8.14,11a4.5,4.5,0,0,0,.36,9H9v2H8.5A6.5,6.5,0,0,1,7.2,9.14a9,9,0,0,1,17.6,0A6.5,6.5,0,0,1,23.5,22Z"></path></svg>');function lt(fe,K){const F=tr(K,["children","$$slots","$$events","$$legacy"]),se=tr(F,["size","title"]);We(K,!1);const V=C(),T=C();let N=Ue(K,"size",8,16),x=Ue(K,"title",8,void 0);Me(()=>(te(F),te(x())),()=>{l(V,F["aria-label"]||F["aria-labelledby"]||x())}),Me(()=>(e(V),te(F)),()=>{l(T,{"aria-hidden":e(V)?void 0:!0,role:e(V)?"img":void 0,focusable:Number(F.tabindex)===0?!0:void 0})}),ar(),Ye();var f=ot();Tr(f,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:N(),height:N(),...e(T),...se}));var S=a(f);{var ie=R=>{var c=at(),q=a(c,!0);r(c),H(()=>P(q,x())),d(R,c)};z(S,R=>{x()&&R(ie)})}_e(2),r(f),d(fe,f),Xe()}var st=Ve("<title> </title>"),it=Ve('<svg><!><path d="M10 6H14V10H10zM18 6H22V10H18zM10 14H14V18H10zM18 14H22V18H18zM10 22H14V26H10zM18 22H22V26H18z"></path></svg>');function kr(fe,K){const F=tr(K,["children","$$slots","$$events","$$legacy"]),se=tr(F,["size","title"]);We(K,!1);const V=C(),T=C();let N=Ue(K,"size",8,16),x=Ue(K,"title",8,void 0);Me(()=>(te(F),te(x())),()=>{l(V,F["aria-label"]||F["aria-labelledby"]||x())}),Me(()=>(e(V),te(F)),()=>{l(T,{"aria-hidden":e(V)?void 0:!0,role:e(V)?"img":void 0,focusable:Number(F.tabindex)===0?!0:void 0})}),ar(),Ye();var f=it();Tr(f,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:N(),height:N(),...e(T),...se}));var S=a(f);{var ie=R=>{var c=st(),q=a(c,!0);r(c),H(()=>P(q,x())),d(R,c)};z(S,R=>{x()&&R(ie)})}_e(),r(f),d(fe,f),Xe()}var nt=m('<div class="p-4 text-sm text-blue-800 rounded-lg bg-blue-50 dark:bg-gray-800 dark:text-blue-400"><div class="flex items-center"><svg class="flex-shrink-0 inline w-4 h-4 mr-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"><path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z"></path></svg> <div><span class="font-medium">File loaded:</span> <div class="mt-1"><span class="font-medium">Sheets:</span> <span class="font-medium">Fields:</span> <span class="font-medium">Controls found:</span> </div></div></div></div>'),dt=m('<div class="p-4 text-sm text-red-800 rounded-lg bg-red-50 dark:bg-gray-800 dark:text-red-400"><div class="flex items-center"><svg class="flex-shrink-0 inline w-4 h-4 mr-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"><path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z"></path></svg> <span> </span></div></div>'),vt=m('<div class="p-4 text-sm text-green-800 rounded-lg bg-green-50 dark:bg-gray-800 dark:text-green-400"><div class="flex items-center"><svg class="flex-shrink-0 inline w-4 h-4 mr-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"><path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z"></path></svg> <span> </span></div></div>'),ct=m("<option> </option>"),gt=m("<option> </option>"),pt=m("<option> </option>"),ut=m('<span class="ml-auto text-xs text-blue-600 dark:text-blue-400">ID</span>'),bt=m('<div draggable="true" role="button" tabindex="0" class="flex items-center px-3 py-2 bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400 rounded text-sm cursor-move hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors opacity-75"><svg class="w-3 h-3 mr-2 flex-shrink-0" fill="currentColor" viewBox="0 0 20 20"><path d="M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z"></path></svg> <span class="truncate line-through"> </span> <!></div>'),ft=m('<p class="text-xs text-gray-400 dark:text-gray-500 text-center py-4">No excluded fields</p>'),mt=m('<div draggable="true" role="button" tabindex="0"><!> <span class="truncate"> </span></div>'),xt=m('<p class="text-xs text-gray-400 dark:text-gray-500 text-center py-4">Drop fields here</p>'),ht=m('<div draggable="true" role="button" tabindex="0"><!> <span class="truncate"> </span></div>'),yt=m('<p class="text-xs text-gray-400 dark:text-gray-500 text-center py-4">Drop fields here</p>'),_t=m('<div draggable="true" role="button" tabindex="0"><!> <span class="truncate"> </span></div>'),wt=m('<p class="text-xs text-gray-400 dark:text-gray-500 text-center py-4">Drop fields here</p>'),kt=m('<th class="px-4 py-2"> </th>'),Ct=m('<td class="px-4 py-2"> </td>'),St=m('<tr class="bg-white border-b dark:bg-gray-800 dark:border-gray-700"></tr>'),$t=m('<div class="bg-gradient-to-br from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-900 rounded-lg p-4 border border-gray-200 dark:border-gray-700"><h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">Sample Data Preview</h3> <div class="overflow-x-auto"><table class="w-full text-sm text-left text-gray-500 dark:text-gray-400"><thead class="text-xs text-gray-700 uppercase bg-gray-100 dark:bg-gray-600 dark:text-gray-400"><tr></tr></thead><tbody></tbody></table></div></div>'),Dt=m('<span class="flex items-center"><svg class="animate-spin -ml-1 mr-3 h-5 w-5 text-white" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg> Importing...</span>'),Mt=m(`<div class="bg-gradient-to-br from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-900 rounded-lg p-4 border border-gray-200 dark:border-gray-700"><h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-4">Import Options</h3> <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"><div><label for="controlSetName" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Control Set Name <span class="text-red-500">*</span></label> <input type="text" id="controlSetName" placeholder="e.g., NIST 800-53 Rev 4" class="bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:text-white" required/> <p class="mt-1 text-xs text-gray-500 dark:text-gray-400">This will be used as the display name and folder name</p></div> <div><label for="controlSetDescription" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Description</label> <input type="text" id="controlSetDescription" placeholder="Optional description" class="bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:text-white"/> <p class="mt-1 text-xs text-gray-500 dark:text-gray-400">Brief description of this control set</p></div></div> <div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div><label for="sheet" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Sheet</label> <select id="sheet" class="bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:text-white"></select> <p class="mt-1 text-xs text-gray-500 dark:text-gray-400">Select which worksheet contains your control data</p></div> <div><label for="headerRow" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Select Header Row</label> <select id="headerRow" class="bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:text-white"></select> <p class="mt-1 text-xs text-gray-500 dark:text-gray-400">Select the row containing column headers</p></div> <div><label for="controlIdField" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white">Control ID Field <span class="text-red-500">*</span></label> <select id="controlIdField" required><option disabled>Select Control ID field</option><!></select> <p class="mt-1 text-xs text-gray-500 dark:text-gray-400">Column containing unique control identifiers (e.g., AC-1, SC-7)</p></div></div></div> <div class="bg-gradient-to-br from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-900 rounded-lg p-4 border border-gray-200 dark:border-gray-700"><h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Organize Fields</h3> <p class="text-sm text-gray-600 dark:text-gray-400 mb-4">Drag fields to organize them. <strong>Overview fields</strong> will appear as table columns in
2
- the controls list.</p> <div class="grid grid-cols-1 lg:grid-cols-4 gap-4"><div class="border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800"><div class="p-3 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-700 rounded-t-lg"><h4 class="text-sm font-semibold text-gray-700 dark:text-gray-300">Excluded Fields</h4> <p class="text-xs text-gray-500 dark:text-gray-400 mt-1">Not imported</p></div> <div role="region" aria-label="Excluded fields drop zone"><!> <!></div></div> <div class="border border-blue-300 dark:border-blue-700 rounded-lg bg-white dark:bg-gray-800"><div class="p-3 border-b border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-900/20 rounded-t-lg"><h4 class="text-sm font-semibold text-blue-700 dark:text-blue-300">Overview Tab</h4> <p class="text-xs text-blue-600 dark:text-blue-400 mt-1">Shows in details & table columns</p></div> <div role="region" aria-label="Overview tab drop zone"><!> <!></div></div> <div class="border border-green-300 dark:border-green-700 rounded-lg bg-white dark:bg-gray-800"><div class="p-3 border-b border-green-200 dark:border-green-800 bg-green-50 dark:bg-green-900/20 rounded-t-lg"><h4 class="text-sm font-semibold text-green-700 dark:text-green-300">Implementation Tab</h4> <p class="text-xs text-green-600 dark:text-green-400 mt-1">Status & compliance</p></div> <div role="region" aria-label="Implementation tab drop zone"><!> <!></div></div> <div class="border border-purple-300 dark:border-purple-700 rounded-lg bg-white dark:bg-gray-800"><div class="p-3 border-b border-purple-200 dark:border-purple-800 bg-purple-50 dark:bg-purple-900/20 rounded-t-lg"><h4 class="text-sm font-semibold text-purple-700 dark:text-purple-300">Custom Tab</h4> <p class="text-xs text-purple-600 dark:text-purple-400 mt-1">Additional fields</p></div> <div role="region" aria-label="Custom fields drop zone"><!> <!></div></div></div></div> <!> <div class="flex justify-center"><button class="px-5 py-2.5 text-white bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm disabled:opacity-50 disabled:cursor-not-allowed"><!></button></div>`,1),zt=m('<div class="space-y-6"><div role="button" tabindex="0" class="relative"><label><div class="flex flex-col items-center justify-center pt-5 pb-6"><!> <p class="mb-2 text-sm text-gray-500 dark:text-gray-400"><span class="font-semibold">Click to upload</span> or drag and drop</p> <p class="text-xs text-gray-500 dark:text-gray-400">XLSX, XLS or CSV files</p></div> <input type="file" class="hidden" accept=".xlsx,.xls,.csv"/></label></div> <!> <!> <!> <!></div>');function At(fe,K){We(K,!1);const F=C(),se=Vr();let V=C(null),T=C(""),N=C(""),x=C([]),f=C([]),S=C([]),ie=C(0),R=C([]),c=C(new Map),q=C(1),j=C(""),ue=C(""),U=C(""),Y=C(!1),W=C(""),ve=C(""),ye=C(!1),ae=C(!1),E=C(null),X=C(null),oe=C(null);function ke(){l(f,[]),l(S,[]),l(ie,0),e(c).clear(),l(c,new Map),l(j,""),l(W,""),l(ve,""),l(E,null),l(X,null),l(oe,null)}function p(t){t.preventDefault(),l(ae,!0)}function u(){l(ae,!1)}function $(t){t.preventDefault(),l(ae,!1);const i=t.dataTransfer?.files;i&&i.length>0&&I(i[0])}function L(t){const i=t.target;i.files&&i.files.length>0&&I(i.files[0])}async function I(t){ke(),l(T,t.name),l(V,t),l(W,""),l(Y,!0),l(ue,e(T).replace(/\.[^.]+$/,"").replace(/[-_]/g," ")),l(U,`Imported from ${e(T)}`);try{const i=new FormData;i.append("file",t);const y=await fetch("/api/parse-excel",{method:"POST",body:i});if(!y.ok){const D=await y.json();throw new Error(D.error||"Failed to parse file")}const _=await y.json();l(x,_.sheets||[]),l(N,_.selectedSheet||e(x)[0]),l(R,_.rowPreviews||[]),e(R).length>0&&e(q)===1&&l(q,e(R)[0].row),await B(),l(ye,!0)}catch(i){l(W,"Error reading file: "+i.message)}finally{l(Y,!1)}}async function B(){if(!(!e(V)||!e(N))){l(Y,!0),e(c).clear(),l(c,new Map),l(j,"");try{const t=new FormData;t.append("file",e(V)),t.append("sheetName",e(N)),t.append("headerRow",e(q).toString());const i=await fetch("/api/parse-excel-sheet",{method:"POST",body:t});if(!i.ok){const _=await i.json();throw new Error(_.error||"Failed to parse sheet")}const y=await i.json();if(l(f,y.fields||[]),l(S,y.sampleData||[]),l(ie,y.controlCount||0),e(f).forEach((_,D)=>{const v=_.toLowerCase();let O="custom",Z="text";v.includes("implementation")||v.includes("status")||v.includes("narrative")||v.includes("guidance")?O="implementation":(v.includes("id")||v.includes("title")||v.includes("family")||v.includes("cci")||v.includes("control")||v.includes("acronym"))&&(O="overview"),v.includes("description")||v.includes("narrative")||v.includes("guidance")||v.includes("statement")?Z="textarea":v.includes("status")||v.includes("type")||v.includes("designation")?Z="select":v.includes("date")?Z="date":(v.includes("count")||v.includes("number"))&&(Z="number"),e(c).set(_,{originalName:_,tab:O,displayOrder:D,fieldType:Z,required:v.includes("id")||v.includes("title")})}),l(c,e(c)),e(j)&&!e(f).includes(e(j))&&l(j,""),!e(j)&&e(f).includes("AP Acronym")){const _=!e(S).length||e(S).every(Q=>!Q["AP Acronym"]||String(Q["AP Acronym"]).length<25),D=e(S).map(Q=>Q["AP Acronym"]).filter(Q=>Q!=null&&Q!==""&&String(Q).trim()!==""),v=new Set(D),O=!D.length||v.size===D.length,Z=D.length>0;_&&O&&Z&&l(j,"AP Acronym")}}catch(t){l(W,"Error loading sheet data: "+t.message)}finally{l(Y,!1)}}}function ce(t){if(!t)return t;let i=t.trim().replace(/\r?\n/g," ").replace(/\s+/g," ").trim();return Te(i)}function Te(t){return t.replace(/\W+/g," ").split(/ |\s/).map(i=>i.toLowerCase()).join("-")}function be(t,i){l(E,i),t.dataTransfer&&(t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",i))}function le(){l(E,null),l(X,null),l(oe,null)}function M(t,i){t.preventDefault(),l(X,i),t.dataTransfer&&(t.dataTransfer.dropEffect="move")}function ge(){l(X,null)}function ne(t,i,y){if(t.preventDefault(),e(E)&&e(c).has(e(E))){const _=e(c).get(e(E));if(_.tab=i,y!==void 0&&i!==null){const v=Array.from(e(c).entries()).filter(([O,Z])=>Z.tab===i).sort((O,Z)=>O[1].displayOrder-Z[1].displayOrder).filter(([O])=>O!==e(E));v.splice(y,0,[e(E),_]),v.forEach(([O,Z],Q)=>{Z.displayOrder=Q,e(c).set(O,Z)})}else if(i!==null){const D=Math.max(0,...Array.from(e(c).values()).filter(v=>v.tab===i).map(v=>v.displayOrder));_.displayOrder=D+1}e(c).set(e(E),_),l(c,e(c))}l(E,null),l(X,null)}function ze(t,i){t.preventDefault(),t.stopPropagation(),l(oe,i)}function Ce(){l(oe,null)}function Se(t,i,y){if(t.preventDefault(),t.stopPropagation(),e(E)&&e(E)!==i){const D=Array.from(e(c).entries()).filter(([v,O])=>O.tab===y).sort((v,O)=>v[1].displayOrder-O[1].displayOrder).findIndex(([v])=>v===i);D!==-1&&ne(t,y,D)}l(oe,null)}async function Le(){if(!(!e(V)||!e(T))){if(!e(j)){l(W,"Please select a Control ID field before importing"),l(ve,"");return}if(!e(ue)||e(ue).trim()===""){l(W,"Please enter a Control Set Name before importing"),l(ve,"");return}l(Y,!0),l(W,""),l(ve,"");try{const t=new FormData;t.append("file",e(V),e(T)),t.append("controlIdField",e(j)),t.append("startRow",e(q).toString()),t.append("namingConvention","kebab-case"),t.append("skipEmpty","true"),t.append("skipEmptyRows","true"),t.append("controlSetName",e(ue)||e(T).replace(/\.[^.]+$/,"")),t.append("controlSetDescription",e(U)||`Imported from ${e(T)}`);const i=Array.from(e(c).entries()).filter(([D,v])=>v.tab!==null).map(([D,v])=>({fieldName:ce(D),...v}));t.append("fieldSchema",JSON.stringify(i));const y=await fetch("/api/import-spreadsheet",{method:"POST",body:t});if(!y.ok){const D=await y.json();throw new Error(D.error||"Import failed")}const _=await y.json();l(ve,`Successfully imported ${_.controlCount} controls into ${_.families.length} families`),se("created",{path:_.outputDir})}catch(t){l(W,"Error importing spreadsheet: "+t.message)}finally{l(Y,!1)}}}Me(()=>e(f),()=>{l(F,e(f).filter(t=>e(f).includes(t)))}),ar(),Ye();var Ne=zt(),me=a(Ne),je=a(me),Ae=a(je),or=a(Ae);lt(or,{class:"w-8 h-8 mb-4 text-gray-500 dark:text-gray-400"}),_e(4),r(Ae);var Je=n(Ae,2);r(je),r(me);var Fe=n(me,2);{var lr=t=>{var i=nt(),y=a(i),_=n(a(y),2),D=n(a(_)),v=n(D),O=n(a(v)),Z=n(O,2),Q=n(Z,2);r(v),r(_),r(y),r(i),H(()=>{P(D,` ${e(T)??""} `),P(O,` ${e(x),h(()=>e(x).length)??""} | `),P(Z,` ${e(f),h(()=>e(f).length)??""} | `),P(Q,` ${e(ie)??""}`)}),d(t,i)};z(Fe,t=>{e(T)&&t(lr)})}var Ke=n(Fe,2);{var sr=t=>{var i=dt(),y=a(i),_=n(a(y),2),D=a(_,!0);r(_),r(y),r(i),H(()=>P(D,e(W))),d(t,i)};z(Ke,t=>{e(W)&&t(sr)})}var Be=n(Ke,2);{var ir=t=>{var i=vt(),y=a(i),_=n(a(y),2),D=a(_,!0);r(_),r(y),r(i),H(()=>P(D,e(ve))),d(t,i)};z(Be,t=>{e(ve)&&t(ir)})}var nr=n(Be,2);{var dr=t=>{var i=Mt(),y=we(i),_=n(a(y),2),D=a(_),v=n(a(D),2);Er(v),_e(2),r(D);var O=n(D,2),Z=n(a(O),2);Er(Z),_e(2),r(O),r(_);var Q=n(_,2),vr=a(Q),Ge=n(a(vr),2);H(()=>{e(N),xr(()=>{e(x)})}),pe(Ge,5,()=>e(x),De,(o,s)=>{var w=ct(),k=a(w,!0);r(w);var g={};H(()=>{P(k,e(s)),g!==(g=e(s))&&(w.value=(w.__value=e(s))??"")}),d(o,w)}),r(Ge),_e(2),r(vr);var cr=n(vr,2),Qe=n(a(cr),2);H(()=>{e(q),xr(()=>{e(R)})}),pe(Qe,5,()=>e(R),De,(o,s)=>{var w=gt(),k=a(w);r(w);var g={};H(()=>{P(k,`Row ${e(s),h(()=>e(s).row)??""}: ${e(s),h(()=>e(s).preview)??""}`),g!==(g=(e(s),h(()=>e(s).row)))&&(w.value=(w.__value=(e(s),h(()=>e(s).row)))??"")}),d(o,w)}),r(Qe),_e(2),r(cr);var Sr=n(cr,2),er=n(a(Sr),2);H(()=>{e(j),xr(()=>{e(f),e(S)})});var gr=a(er);gr.value=gr.__value="";var Lr=n(gr);pe(Lr,1,()=>e(f),De,(o,s)=>{const w=$e(()=>(e(S),e(s),h(()=>e(S).length>0&&e(S)[0][e(s)]?String(e(S)[0][e(s)]).slice(0,30):""))),k=$e(()=>(e(S),e(s),h(()=>!e(S).length||e(S).every(re=>!re[e(s)]||String(re[e(s)]).length<25)))),g=$e(()=>(e(S),e(s),h(()=>e(S).map(re=>re[e(s)]).filter(re=>re!=null&&re!==""&&String(re).trim()!=="")))),G=$e(()=>new Set(e(g))),ee=$e(()=>(te(e(g)),te(e(G)),h(()=>!e(g).length||e(G).size===e(g).length))),J=$e(()=>(te(e(g)),h(()=>e(g).length>0)));var A=Ie(),xe=we(A);{var Re=re=>{var he=pt(),mr=a(he);r(he);var Pr={};H(()=>{P(mr,`${e(s)??""}${e(w)?` (e.g., ${e(w)})`:""}`),Pr!==(Pr=e(s))&&(he.value=(he.__value=e(s))??"")}),d(re,he)};z(xe,re=>{e(k)&&e(ee)&&e(J)&&re(Re)})}d(o,A)}),r(er),_e(2),r(Sr),r(Q),r(y);var pr=n(y,2),$r=n(a(pr),4),ur=a($r),Oe=n(a(ur),2),Dr=a(Oe);pe(Dr,1,()=>(e(f),e(c),h(()=>e(f).filter(o=>!e(c).get(o)||e(c).get(o)?.tab===null))),o=>o,(o,s)=>{var w=bt(),k=n(a(w),2),g=a(k,!0);r(k);var G=n(k,2);{var ee=J=>{var A=ut();d(J,A)};z(G,J=>{e(s)===e(j)&&J(ee)})}r(w),H(()=>{qe(w,"aria-label",`Drag ${e(s)??""} field`),P(g,e(s))}),b("dragstart",w,J=>be(J,e(s))),b("dragend",w,le),d(o,w)});var Nr=n(Dr,2);{var jr=o=>{var s=ft();d(o,s)};z(Nr,o=>{e(f),e(c),h(()=>e(f).filter(s=>!e(c).get(s)||e(c).get(s)?.tab===null).length===0)&&o(jr)})}r(Oe),r(ur);var br=n(ur,2),He=n(a(br),2),Mr=a(He);pe(Mr,3,()=>(e(c),h(()=>Array.from(e(c).entries()).filter(([o,s])=>s.tab==="overview").sort((o,s)=>o[1].displayOrder-s[1].displayOrder))),([o,s])=>o,(o,s)=>{var w=hr(()=>yr(e(s),2));let k=()=>e(w)[0];var g=mt(),G=a(g);kr(G,{class:"w-3 h-3 mr-2 flex-shrink-0"});var ee=n(G,2),J=a(ee,!0);r(ee),r(g),H(()=>{qe(g,"aria-label",`${k()??""} field in Overview tab`),de(g,1,`flex items-center px-3 py-2 bg-blue-100 dark:bg-blue-900/30 text-blue-800 dark:text-blue-300 rounded text-sm cursor-move hover:bg-blue-200 dark:hover:bg-blue-800/30 transition-colors
3
- ${e(oe)===k()&&e(E)!==k()?"border-t-2 border-blue-500":""}`),P(J,k())}),b("dragstart",g,A=>be(A,k())),b("dragend",g,le),b("dragover",g,A=>ze(A,k())),b("dragleave",g,Ce),b("drop",g,A=>Se(A,k(),"overview")),d(o,g)});var Br=n(Mr,2);{var Zr=o=>{var s=xt();d(o,s)};z(Br,o=>{e(c),h(()=>Array.from(e(c).entries()).filter(([s,w])=>w.tab==="overview").length===0)&&o(Zr)})}r(He),r(br);var fr=n(br,2),Pe=n(a(fr),2),zr=a(Pe);pe(zr,3,()=>(e(c),h(()=>Array.from(e(c).entries()).filter(([o,s])=>s.tab==="implementation").sort((o,s)=>o[1].displayOrder-s[1].displayOrder))),([o,s])=>o,(o,s)=>{var w=hr(()=>yr(e(s),2));let k=()=>e(w)[0];var g=ht(),G=a(g);kr(G,{class:"w-3 h-3 mr-2 flex-shrink-0"});var ee=n(G,2),J=a(ee,!0);r(ee),r(g),H(()=>{qe(g,"aria-label",`${k()??""} field in Implementation tab`),de(g,1,`flex items-center px-3 py-2 bg-green-100 dark:bg-green-900/30 text-green-800 dark:text-green-300 rounded text-sm cursor-move hover:bg-green-200 dark:hover:bg-green-800/30 transition-colors
4
- ${e(oe)===k()&&e(E)!==k()?"border-t-2 border-green-500":""}`),P(J,k())}),b("dragstart",g,A=>be(A,k())),b("dragend",g,le),b("dragover",g,A=>ze(A,k())),b("dragleave",g,Ce),b("drop",g,A=>Se(A,k(),"implementation")),d(o,g)});var Rr=n(zr,2);{var qr=o=>{var s=yt();d(o,s)};z(Rr,o=>{e(c),h(()=>Array.from(e(c).entries()).filter(([s,w])=>w.tab==="implementation").length===0)&&o(qr)})}r(Pe),r(fr);var Ar=n(fr,2),Ee=n(a(Ar),2),Fr=a(Ee);pe(Fr,3,()=>(e(c),h(()=>Array.from(e(c).entries()).filter(([o,s])=>s.tab==="custom").sort((o,s)=>o[1].displayOrder-s[1].displayOrder))),([o,s])=>o,(o,s)=>{var w=hr(()=>yr(e(s),2));let k=()=>e(w)[0];var g=_t(),G=a(g);kr(G,{class:"w-3 h-3 mr-2 flex-shrink-0"});var ee=n(G,2),J=a(ee,!0);r(ee),r(g),H(()=>{qe(g,"aria-label",`${k()??""} field in Custom tab`),de(g,1,`flex items-center px-3 py-2 bg-purple-100 dark:bg-purple-900/30 text-purple-800 dark:text-purple-300 rounded text-sm cursor-move hover:bg-purple-200 dark:hover:bg-purple-800/30 transition-colors
5
- ${e(oe)===k()&&e(E)!==k()?"border-t-2 border-purple-500":""}`),P(J,k())}),b("dragstart",g,A=>be(A,k())),b("dragend",g,le),b("dragover",g,A=>ze(A,k())),b("dragleave",g,Ce),b("drop",g,A=>Se(A,k(),"custom")),d(o,g)});var Ur=n(Fr,2);{var Yr=o=>{var s=wt();d(o,s)};z(Ur,o=>{e(c),h(()=>Array.from(e(c).entries()).filter(([s,w])=>w.tab==="custom").length===0)&&o(Yr)})}r(Ee),r(Ar),r($r),r(pr);var Or=n(pr,2);{var Wr=o=>{var s=$t(),w=n(a(s),2),k=a(w),g=a(k),G=a(g);pe(G,5,()=>(e(f),h(()=>e(f).slice(0,5))),De,(J,A)=>{var xe=kt(),Re=a(xe,!0);r(xe),H(()=>P(Re,e(A))),d(J,xe)}),r(G),r(g);var ee=n(g);pe(ee,5,()=>e(S),De,(J,A)=>{var xe=St();pe(xe,5,()=>(e(f),h(()=>e(f).slice(0,5))),De,(Re,re)=>{var he=Ct(),mr=a(he,!0);r(he),H(()=>P(mr,(e(A),e(re),h(()=>e(A)[e(re)]||"")))),d(Re,he)}),r(xe),d(J,xe)}),r(ee),r(k),r(w),r(s),d(o,s)};z(Or,o=>{e(S),h(()=>e(S).length>0)&&o(Wr)})}var Hr=n(Or,2),Ze=a(Hr),Xr=a(Ze);{var Jr=o=>{var s=Dt();d(o,s)},Kr=o=>{var s=rr("Import to Control Set");d(o,s)};z(Xr,o=>{e(Y)?o(Jr):o(Kr,!1)})}r(Ze),r(Hr),H(()=>{de(er,1,`bg-white border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-600 dark:border-gray-500 dark:text-white ${e(j)?"":"border-red-500"}`),de(Oe,1,`p-3 min-h-[400px] max-h-[600px] overflow-y-auto space-y-2 transition-colors
6
- ${e(X)===null?"bg-gray-100 dark:bg-gray-800":""}`),de(He,1,`p-3 min-h-[400px] max-h-[600px] overflow-y-auto space-y-2 transition-colors
7
- ${e(X)==="overview"?"bg-blue-50 dark:bg-blue-900/10":""}`),de(Pe,1,`p-3 min-h-[400px] max-h-[600px] overflow-y-auto space-y-2 transition-colors
8
- ${e(X)==="implementation"?"bg-green-50 dark:bg-green-900/10":""}`),de(Ee,1,`p-3 min-h-[400px] max-h-[600px] overflow-y-auto space-y-2 transition-colors
9
- ${e(X)==="custom"?"bg-purple-50 dark:bg-purple-900/10":""}`),Ze.disabled=e(Y)||!e(V)||!e(j),qe(Ze,"title",e(j)?"":"Please select a Control ID field")}),Ir(v,()=>e(ue),o=>l(ue,o)),Ir(Z,()=>e(U),o=>l(U,o)),_r(Ge,()=>e(N),o=>l(N,o)),b("change",Ge,()=>{B()}),_r(Qe,()=>e(q),o=>l(q,o)),b("change",Qe,B),_r(er,()=>e(j),o=>l(j,o)),b("dragover",Oe,o=>M(o,null)),b("dragleave",Oe,ge),b("drop",Oe,o=>ne(o,null)),b("dragover",He,o=>M(o,"overview")),b("dragleave",He,ge),b("drop",He,o=>ne(o,"overview")),b("dragover",Pe,o=>M(o,"implementation")),b("dragleave",Pe,ge),b("drop",Pe,o=>ne(o,"implementation")),b("dragover",Ee,o=>M(o,"custom")),b("dragleave",Ee,ge),b("drop",Ee,o=>ne(o,"custom")),b("click",Ze,Le),d(t,i)};z(nr,t=>{e(ye),e(f),h(()=>e(ye)&&e(f).length>0)&&t(dr)})}r(Ne),H(()=>de(je,1,`flex flex-col items-center justify-center w-full h-64 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-300 ${e(ae)?"border-blue-500 bg-blue-50 dark:bg-blue-900/20":"border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-700 hover:bg-gray-100 dark:hover:bg-gray-600"}`)),b("change",Je,L),b("dragover",me,p),b("dragleave",me,u),b("drop",me,$),d(fe,Ne),Xe()}var Ft=m('<span class="ml-2"> </span>'),Ot=m('<div class="text-sm text-gray-500 dark:text-gray-400"><span class="font-medium"> </span> <!></div>'),Ht=m('<div class="text-center space-y-6"><div class="p-6 bg-gradient-to-br from-green-50 to-emerald-50 dark:from-green-900/20 dark:to-emerald-900/20 rounded-lg border-2 border-green-500"><svg class="w-12 h-12 text-green-600 mx-auto mb-4" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path></svg> <h3 class="text-lg font-semibold text-gray-900 dark:text-white mb-2">Already Using Control Set</h3> <p class="text-gray-600 dark:text-gray-400 mb-4">You are already using the only available control set in this project.</p> <!></div> <div class="flex justify-center gap-4"><a href="/" class="px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors shadow-lg">Continue to Controls</a> <button class="px-6 py-3 bg-gray-200 hover:bg-gray-300 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-900 dark:text-white font-medium rounded-lg transition-colors">Import New Control Set</button></div></div>'),Pt=m('<div class="p-4 text-sm text-yellow-800 rounded-lg bg-yellow-50 dark:bg-gray-800 dark:text-yellow-300"><div class="flex items-center"><svg class="flex-shrink-0 inline w-4 h-4 mr-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"><path d="M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z"></path></svg> <span> </span></div></div>'),Et=m('<p class="text-sm text-gray-600 dark:text-gray-400 mt-1"> </p>'),It=m('<span class="text-xs text-gray-500 dark:text-gray-400"><svg class="inline w-3 h-3 mr-1" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z" clip-rule="evenodd"></path></svg> </span>'),Vt=m('<div class="flex flex-col items-center"><svg class="w-8 h-8 text-green-600" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path></svg> <span class="text-xs text-green-600 font-medium mt-1">Current</span></div>'),Tt=Ve('<svg class="w-8 h-8 text-blue-600" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"></path></svg>'),Lt=Ve('<svg class="w-8 h-8 text-gray-300 dark:text-gray-600" fill="none" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle cx="10" cy="10" r="9" stroke="currentColor" stroke-width="2"></circle></svg>'),Nt=m('<div role="button" tabindex="0"><div class="flex items-center justify-between"><div class="flex-1"><div class="flex items-center gap-3"><h3 class="text-lg font-semibold text-gray-900 dark:text-white"> </h3> <span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200"> </span></div> <!> <div class="flex items-center gap-4 mt-2"><span class="text-xs text-gray-500 dark:text-gray-400"><svg class="inline w-3 h-3 mr-1" fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M2 6a2 2 0 012-2h12a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V6zm2-1a1 1 0 00-1 1v8a1 1 0 001 1h12a1 1 0 001-1V6a1 1 0 00-1-1H4z" clip-rule="evenodd"></path></svg> </span> <!></div></div> <div class="flex items-center ml-4"><!></div></div></div>'),jt=m('<div class="mt-6 flex justify-center"><button class="px-6 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors shadow-lg">Use Selected Control Set</button></div>'),Bt=m('<div class="space-y-3"></div> <!>',1),Zt=m('<div class="space-y-6"><div class="text-center"><h2 class="text-2xl font-bold text-gray-900 dark:text-white mb-2">Select an Existing Control Set</h2> <p class="text-gray-600 dark:text-gray-400">Choose from control sets found in your project directory</p></div> <!></div>');function Rt(fe,K){We(K,!1);const F=()=>et(Cr,"$appState",se),[se,V]=rt(),T=C(),N=Vr();let x=Ue(K,"controlSets",24,()=>[]),f=C(""),S=C(null);function ie(U){c(U)||l(S,U)}function R(){e(S)&&!c(e(S))&&N("selected",{path:e(S).path})}function c(U){const Y=e(T)?.replace(/\/$/,""),W=U.path?.replace(/\/$/,"");return!!(Y&&W&&Y===W)}Me(()=>F(),()=>{l(T,F().currentPath||"")}),Me(()=>te(x()),()=>{if(x())if(x().length===0)l(f,"No existing control sets found. Try importing from a spreadsheet instead.");else{const U=x().filter(Y=>!c(Y));U.length===1?l(S,U[0]):U.length===0&&x().length>0&&l(f,"already-using-only-set")}}),ar(),Ye();var q=Zt(),j=n(a(q),2);{var ue=U=>{var Y=Ie(),W=we(Y);{var ve=ae=>{var E=Ht(),X=a(E),oe=n(a(X),6);{var ke=$=>{var L=Ot(),I=a(L),B=a(I,!0);r(I);var ce=n(I,2);{var Te=be=>{var le=Ft(),M=a(le);r(le),H(()=>P(M,`(${te(x()),h(()=>x()[0].controlCount)??""} controls)`)),d(be,le)};z(ce,be=>{te(x()),h(()=>x()[0].controlCount)&&be(Te)})}r(L),H(()=>P(B,(te(x()),h(()=>x()[0].name)))),d($,L)};z(oe,$=>{te(x()),h(()=>x().length>0)&&$(ke)})}r(X);var p=n(X,2),u=n(a(p),2);r(p),r(E),b("click",u,()=>N("tab-change",{tab:"import"})),d(ae,E)},ye=ae=>{var E=Ie(),X=we(E);{var oe=p=>{var u=Pt(),$=a(u),L=n(a($),2),I=a(L,!0);r(L),r($),r(u),H(()=>P(I,e(f))),d(p,u)},ke=p=>{var u=Ie(),$=we(u);{var L=I=>{var B=Bt(),ce=we(B);pe(ce,5,x,De,(le,M)=>{const ge=$e(()=>(e(M),h(()=>c(e(M)))));var ne=Nt(),ze=a(ne),Ce=a(ze),Se=a(Ce),Le=a(Se),Ne=a(Le,!0);r(Le);var me=n(Le,2),je=a(me);r(me),r(Se);var Ae=n(Se,2);{var or=t=>{var i=Et(),y=a(i,!0);r(i),H(()=>P(y,(e(M),h(()=>e(M).description)))),d(t,i)};z(Ae,t=>{e(M),h(()=>e(M).description)&&t(or)})}var Je=n(Ae,2),Fe=a(Je),lr=n(a(Fe));r(Fe);var Ke=n(Fe,2);{var sr=t=>{var i=It(),y=n(a(i));r(i),H(()=>P(y,` ${e(M),h(()=>e(M).file)??""}`)),d(t,i)};z(Ke,t=>{e(M),h(()=>e(M).file)&&t(sr)})}r(Je),r(Ce);var Be=n(Ce,2),ir=a(Be);{var nr=t=>{var i=Vt();d(t,i)},dr=t=>{var i=Ie(),y=we(i);{var _=v=>{var O=Tt();d(v,O)},D=v=>{var O=Lt();d(v,O)};z(y,v=>{e(S)===e(M)?v(_):v(D,!1)},!0)}d(t,i)};z(ir,t=>{e(ge)?t(nr):t(dr,!1)})}r(Be),r(ze),r(ne),H(()=>{de(ne,1,`p-4 bg-gradient-to-br from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-900 rounded-lg border-2 transition-all duration-200 ${e(ge)?"border-green-500 !bg-gradient-to-br from-green-50 to-emerald-50 dark:from-green-900/20 dark:to-emerald-900/20 cursor-not-allowed opacity-75":e(S)===e(M)?"border-blue-500 !bg-gradient-to-br from-blue-50 to-indigo-50 dark:from-blue-900/20 dark:to-indigo-900/20 shadow-lg cursor-pointer":"border-gray-200 dark:border-gray-700 hover:border-blue-300 dark:hover:border-blue-700 hover:shadow-md cursor-pointer"}`),P(Ne,(e(M),h(()=>e(M).name))),P(je,`${e(M),h(()=>e(M).controlCount||0)??""} controls`),P(lr,` ${e(M),h(()=>e(M).path||"root")??""}`)}),b("click",ne,()=>!e(ge)&&ie(e(M))),b("keydown",ne,t=>t.key==="Enter"&&!e(ge)&&ie(e(M))),d(le,ne)}),r(ce);var Te=n(ce,2);{var be=le=>{var M=jt(),ge=a(M);r(M),b("click",ge,R),d(le,M)};z(Te,le=>{e(S)&&le(be)})}d(I,B)};z($,I=>{te(x()),h(()=>x().length>0)&&I(L)},!0)}d(p,u)};z(X,p=>{e(f)?p(oe):p(ke,!1)},!0)}d(ae,E)};z(W,ae=>{e(f)==="already-using-only-set"?ae(ve):ae(ye,!1)},!0)}d(U,Y)};z(j,U=>{U(ue,!1)})}r(q),d(fe,q),Xe(),V()}var qt=m('<div class="flex justify-center mb-8"><div class="bg-gradient-to-br from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-900 rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 inline-flex"><button data-testid="tab-existing">Select Existing Control Set</button> <button data-testid="tab-import">Import New from Spreadsheet</button></div></div>'),Ut=m('<div data-testid="pane-import"><!></div>'),Yt=m('<div data-testid="pane-existing"><!></div>'),Wt=m('<div data-testid="switch-overlay" class="absolute inset-0 bg-gray-900 bg-opacity-50 flex items-center justify-center rounded-lg"><div class="bg-white dark:bg-gray-700 rounded-lg p-6 text-center"><svg class="animate-spin h-8 w-8 text-blue-600 mx-auto mb-4" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg> <p class="text-gray-900 dark:text-white">Switching control set...</p></div></div>'),Xt=m('<div class=" p-4"><div class="max-w-6xl mx-auto"><div class="text-center py-8"><h1 class="text-4xl font-extrabold text-gray-900 dark:text-white mb-4 flex items-center justify-center gap-3"><img src="/lula.png" class="h-12 w-12" alt="Lula"/> <span id="title">Lula</span></h1> <p id="description" class="text-lg text-gray-600 dark:text-gray-400"><!></p></div> <!> <div class="bg-gradient-to-br from-gray-50 to-gray-100 dark:from-gray-800 dark:to-gray-900 rounded-lg shadow-xl p-6 relative border border-gray-200 dark:border-gray-700"><!> <!></div></div></div>');function ta(fe,K){We(K,!1);let F=C("import"),se=C(""),V=C(!1),T=C(!1),N=C([]);Gr(()=>{wr.connect();const p=Cr.subscribe($=>{$.name&&$.name!=="Unknown Control Set"&&$.id!=="unknown"&&$.id!=="default"&&l(se,$.currentPath||"")}),u=async $=>{const L=$.detail;if(L&&L.controlSets){if(l(N,L.controlSets||[]),l(V,e(N).length>0),e(N).length===1){const I=e(N)[0];if(!(e(se)&&e(se).includes(I.path))&&!e(se)){console.log("Only one control set found and none loaded, auto-loading:",I.path),await x(I.path);return}}e(V)&&l(F,"existing")}};return window.addEventListener("control-sets-list",u),wr.scanControlSets().catch($=>{console.error("Error scanning control sets:",$)}),()=>{p(),window.removeEventListener("control-sets-list",u)}});async function x(p){console.log("Starting control set switch to:",p),l(T,!0);try{await wr.switchControlSet(p),console.log("WebSocket command sent, waiting for state update..."),await new Promise(u=>{let $=0;const L=50,I=setInterval(()=>{$++;const B=Qr(Cr);!B.isSwitchingControlSet&&B.currentPath&&B.currentPath.includes(p)?(clearInterval(I),console.log("Control set switch completed successfully"),u()):$>=L&&(clearInterval(I),console.error("Control set switch timed out"),alert("Control set switch timed out. Please try again."),u())},100)}),l(T,!1),tt("/")}catch(u){console.error("Error switching control set:",u),alert("Failed to switch control set: "+u.message),l(T,!1)}}async function f(p){const{path:u}=p.detail;await x(u)}async function S(p){const{path:u}=p.detail;await x(u)}function ie(p){const{tab:u}=p.detail;u&&l(F,u)}Ye();var R=Xt(),c=a(R),q=a(c),j=n(a(q),2),ue=a(j);{var U=p=>{var u=rr("You have an existing control set. You can continue using it or create a new one.");d(p,u)},Y=p=>{var u=Ie(),$=we(u);{var L=B=>{var ce=rr("Select an existing control set or import a new one from a spreadsheet.");d(B,ce)},I=B=>{var ce=rr("Let's get started by importing a control set from a spreadsheet.");d(B,ce)};z($,B=>{e(V)?B(L):B(I,!1)},!0)}d(p,u)};z(ue,p=>{e(se)?p(U):p(Y,!1)})}r(j),r(q);var W=n(q,2);{var ve=p=>{var u=qt(),$=a(u),L=a($),I=n(L,2);r($),r(u),H(()=>{de(L,1,`px-6 py-3 rounded-l-lg font-medium transition-colors ${e(F)==="existing"?"bg-blue-600 text-white":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`),de(I,1,`px-6 py-3 rounded-r-lg font-medium transition-colors ${e(F)==="import"?"bg-blue-600 text-white":"text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white"}`)}),b("click",L,()=>l(F,"existing")),b("click",I,()=>l(F,"import")),d(p,u)};z(W,p=>{e(V)&&p(ve)})}var ye=n(W,2),ae=a(ye);{var E=p=>{var u=Ut(),$=a(u);At($,{$$events:{created:f}}),r(u),d(p,u)},X=p=>{var u=Yt(),$=a(u);Rt($,{get controlSets(){return e(N)},$$events:{selected:S,"tab-change":ie}}),r(u),d(p,u)};z(ae,p=>{e(F)==="import"?p(E):p(X,!1)})}var oe=n(ae,2);{var ke=p=>{var u=Wt();d(p,u)};z(oe,p=>{e(T)&&p(ke)})}r(ye),r(c),r(R),d(fe,R),Xe()}export{ta as component};