diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 6919ff16f..3c52c973c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -5,21 +5,25 @@ labels: ["type: bug"] body: - type: markdown attributes: - value: "**NOTE:** This form is only for reporting _reproducible bugs_ in a - current NetBox installation. If you're having trouble with installation or just - looking for assistance with using NetBox, please visit our - [discussion forum](https://github.com/netbox-community/netbox/discussions) instead." + value: > + **NOTE:** This form is only for reporting _reproducible bugs_ in a current NetBox + installation. If you're having trouble with installation or just looking for + assistance with using NetBox, please visit our + [discussion forum](https://github.com/netbox-community/netbox/discussions) instead. - type: input attributes: label: NetBox version - description: "What version of NetBox are you currently running?" - placeholder: v2.10.4 + description: > + What version of NetBox are you currently running? (If you don't have access to the most + recent NetBox release, consider testing on our [demo instance](https://demo.netbox.dev/) + before opening a bug report to see if your issue has already been addressed.) + placeholder: v2.11.3 validations: required: true - type: dropdown attributes: label: Python version - description: "What version of Python are you currently running?" + description: What version of Python are you currently running? options: - 3.6 - 3.7 @@ -30,12 +34,13 @@ body: - type: textarea attributes: label: Steps to Reproduce - description: "Describe in detail the exact steps that someone else can take to - reproduce this bug using the current stable release of NetBox. Begin with the - creation of any necessary database objects and call out every operation being - performed explicitly. If reporting a bug in the REST API, be sure to reconstruct - the raw HTTP request(s) being made: Don't rely on a client library such as - pynetbox." + description: > + Describe in detail the exact steps that someone else can take to + reproduce this bug using the current stable release of NetBox. Begin with the + creation of any necessary database objects and call out every operation being + performed explicitly. If reporting a bug in the REST API, be sure to reconstruct + the raw HTTP request(s) being made: Don't rely on a client library such as + pynetbox." placeholder: | 1. Click on "create widget" 2. Set foo to 12 and bar to G @@ -45,14 +50,14 @@ body: - type: textarea attributes: label: Expected Behavior - description: "What did you expect to happen?" - placeholder: "A new widget should have been created with the specified attributes" + description: What did you expect to happen? + placeholder: A new widget should have been created with the specified attributes validations: required: true - type: textarea attributes: label: Observed Behavior - description: "What happened instead?" - placeholder: "A TypeError exception was raised" + description: What happened instead? + placeholder: A TypeError exception was raised validations: required: true diff --git a/.github/ISSUE_TEMPLATE/documentation_change.yaml b/.github/ISSUE_TEMPLATE/documentation_change.yaml index 19d9696ad..0f87115fc 100644 --- a/.github/ISSUE_TEMPLATE/documentation_change.yaml +++ b/.github/ISSUE_TEMPLATE/documentation_change.yaml @@ -30,6 +30,6 @@ body: - type: textarea attributes: label: Proposed Changes - description: "Describe the proposed changes and why they are necessary" + description: Describe the proposed changes and why they are necessary. validations: required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index 7d7bde225..9181f7ce4 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -5,15 +5,16 @@ labels: ["type: feature"] body: - type: markdown attributes: - value: "**NOTE:** This form is only for submitting well-formed proposals to extend or - modify NetBox in some way. If you're trying to solve a problem but can't figure out how, - or if you still need time to work on the details of a proposed new feature, please start - a [discussion](https://github.com/netbox-community/netbox/discussions) instead." + value: > + **NOTE:** This form is only for submitting well-formed proposals to extend or modify + NetBox in some way. If you're trying to solve a problem but can't figure out how, or if + you still need time to work on the details of a proposed new feature, please start a + [discussion](https://github.com/netbox-community/netbox/discussions) instead. - type: input attributes: label: NetBox version - description: "What version of NetBox are you currently running?" - placeholder: v2.10.4 + description: What version of NetBox are you currently running? + placeholder: v2.11.3 validations: required: true - type: dropdown @@ -28,26 +29,29 @@ body: - type: textarea attributes: label: Proposed functionality - description: "Describe in detail the new feature or behavior you'd like to propose. - Include any specific changes to work flows, data models, or the user interface." + description: > + Describe in detail the new feature or behavior you'd like to propose. Include any specific + changes to work flows, data models, or the user interface. validations: required: true - type: textarea attributes: label: Use case - description: "Explain how adding this functionality would benefit NetBox users. What - need does it address?" + description: > + Explain how adding this functionality would benefit NetBox users. What need does it address? validations: required: true - type: textarea attributes: label: Database changes - description: "Note any changes to the database schema necessary to support the new - feature. For example, does the proposal require adding a new model or field? (Not - all new features require database changes.)" + description: > + Note any changes to the database schema necessary to support the new feature. For example, + does the proposal require adding a new model or field? (Not all new features require database + changes.) - type: textarea attributes: label: External dependencies - description: "List any new dependencies on external libraries or services that this - new feature would introduce. For example, does the proposal require the installation - of a new Python package? (Not all new features introduce new dependencies.)" + description: > + List any new dependencies on external libraries or services that this new feature would + introduce. For example, does the proposal require the installation of a new Python package? + (Not all new features introduce new dependencies.) diff --git a/.github/ISSUE_TEMPLATE/housekeeping.yaml b/.github/ISSUE_TEMPLATE/housekeeping.yaml index 5e675583e..777871395 100644 --- a/.github/ISSUE_TEMPLATE/housekeeping.yaml +++ b/.github/ISSUE_TEMPLATE/housekeeping.yaml @@ -5,18 +5,20 @@ labels: ["type: housekeeping"] body: - type: markdown attributes: - value: "**NOTE:** This template is for use by maintainers only. Please do not submit - an issue using this template unless you have been specifically asked to do so." + value: > + **NOTE:** This template is for use by maintainers only. Please do not submit + an issue using this template unless you have been specifically asked to do so. - type: textarea attributes: label: Proposed Changes - description: "Describe in detail the new feature or behavior you'd like to propose. - Include any specific changes to work flows, data models, or the user interface." + description: > + Describe in detail the new feature or behavior you'd like to propose. + Include any specific changes to work flows, data models, or the user interface. validations: required: true - type: textarea attributes: label: Justification - description: "Please provide justification for the proposed change(s)." + description: Please provide justification for the proposed change(s). validations: required: true diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 8fc85ead6..0f617e8aa 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -17,9 +17,10 @@ jobs: necessary. close-pr-message: > This PR has been automatically closed due to lack of activity. - days-before-stale: 45 - days-before-close: 15 + days-before-stale: 60 + days-before-close: 30 exempt-issue-labels: 'status: accepted,status: blocked,status: needs milestone' + operations-per-run: 100 remove-stale-when-updated: false stale-issue-label: 'pending closure' stale-issue-message: > diff --git a/README.md b/README.md index 237673e6b..877d8b515 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -![NetBox](docs/netbox_logo.svg "NetBox logo") +
+ NetBox logo +
NetBox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at @@ -10,7 +12,21 @@ NetBox runs as a web application atop the [Django](https://www.djangoproject.com Python framework with a [PostgreSQL](https://www.postgresql.org/) database. For a complete list of requirements, see `requirements.txt`. The code is available [on GitHub](https://github.com/netbox-community/netbox). -The complete documentation for NetBox can be found at [Read the Docs](https://netbox.readthedocs.io/en/stable/). +The complete documentation for NetBox can be found at [Read the Docs](https://netbox.readthedocs.io/en/stable/). A public demo instance is available at https://demo.netbox.dev. + +| | status | +|-------------|------------| +| **master** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=master) | +| **develop** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=develop) | + +
+

Thank you to our sponsors!

+ + [![NS1](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/ns1.png)](https://ns1.com/) +            + [![Stellar Technologies](https://raw.githubusercontent.com/wiki/netbox-community/netbox/images/sponsors/stellar.png)](https://stellar.tech/) + +
### Discussion @@ -18,37 +34,14 @@ The complete documentation for NetBox can be found at [Read the Docs](https://ne * [Slack](https://slack.netbox.dev/) - Real-time chat hosted by the NetDev Community; best for unstructured discussion or just hanging out * [Google Group](https://groups.google.com/g/netbox-discuss) - Legacy mailing list; slowly being replaced by GitHub discussions -### Build Status - -| | status | -| ----------- | ------------------------------------------------------------------------------------------------- | -| **master** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=master) | -| **develop** | ![Build status](https://github.com/netbox-community/netbox/workflows/CI/badge.svg?branch=develop) | - -### Screenshots - -![Screenshot of Main Page](docs/media/home-light.png "Main Page") - ---- - -![Screenshot of Rack Elevation](docs/media/rack-dark.png "Rack Elevation") - ---- - -![Screenshot of Prefix Hierarchy](docs/media/prefixes-light.png "Prefix Hierarchy") - ---- - -![Screenshot of Cable Tracing](docs/media/cable-dark.png "Cable Tracing") - -## Installation +### Installation Please see [the documentation](https://netbox.readthedocs.io/en/stable/) for instructions on installing NetBox. To upgrade NetBox, please download the [latest release](https://github.com/netbox-community/netbox/releases) and run `upgrade.sh`. -## Providing Feedback +### Providing Feedback The best platform for general feedback, assistance, and other discussion is our [GitHub discussions](https://github.com/netbox-community/netbox/discussions). @@ -58,7 +51,17 @@ the [appropriate template](https://github.com/netbox-community/netbox/issues/new If you are interested in contributing to the development of NetBox, please read our [contributing guide](CONTRIBUTING.md) prior to beginning any work. -## Related projects +### Screenshots + +![Screenshot of Main Page](docs/media/home-light.png "Main Page") + +![Screenshot of Rack Elevation](docs/media/rack-dark.png "Rack Elevation") + +![Screenshot of Prefix Hierarchy](docs/media/prefixes-light.png "Prefix Hierarchy") + +![Screenshot of Cable Tracing](docs/media/cable-dark.png "Cable Tracing") + +### Related projects Please see [our wiki](https://github.com/netbox-community/netbox/wiki/Community-Contributions) for a list of relevant community projects. diff --git a/docs/configuration/optional-settings.md b/docs/configuration/optional-settings.md index 4ed3d946e..927bf9f37 100644 --- a/docs/configuration/optional-settings.md +++ b/docs/configuration/optional-settings.md @@ -515,6 +515,14 @@ The file path to the location where custom scripts will be kept. By default, thi --- +## SESSION_COOKIE_NAME + +Default: `sessionid` + +The name used for the session cookie. See the [Django documentation](https://docs.djangoproject.com/en/stable/ref/settings/#session-cookie-name) for more detail. + +--- + ## SESSION_FILE_PATH Default: None diff --git a/docs/development/release-checklist.md b/docs/development/release-checklist.md index d8cb671f6..91d5ab2ab 100644 --- a/docs/development/release-checklist.md +++ b/docs/development/release-checklist.md @@ -70,7 +70,11 @@ Ensure that continuous integration testing on the `develop` branch is completing ### Update Version and Changelog -Update the `VERSION` constant in `settings.py` to the new release version and annotate the current data in the release notes for the new version. Commit these changes to the `develop` branch. +* Update the `VERSION` constant in `settings.py` to the new release version. +* Update the example version numbers in the feature request and bug report templates under `.github/ISSUE_TEMPLATES/`. +* Replace the "FUTURE" placeholder in the release notes with the current date. + +Commit these changes to the `develop` branch. ### Submit a Pull Request diff --git a/docs/release-notes/version-2.11.md b/docs/release-notes/version-2.11.md index a43e354de..0827d5434 100644 --- a/docs/release-notes/version-2.11.md +++ b/docs/release-notes/version-2.11.md @@ -1,5 +1,32 @@ # NetBox v2.11 +## v2.11.3 (2021-05-07) + +### Enhancements + +* [#6197](https://github.com/netbox-community/netbox/issues/6197) - Introduced `SESSION_COOKIE_NAME` config parameter +* [#6318](https://github.com/netbox-community/netbox/issues/6318) - Add OM5 MMF cable type +* [#6351](https://github.com/netbox-community/netbox/issues/6351) - Add aggregates count to tenant view +* [#6359](https://github.com/netbox-community/netbox/issues/6359) - Enable custom links for organizational and nested group models + +### Bug Fixes + +* [#6240](https://github.com/netbox-community/netbox/issues/6240) - Fix display of available VLAN ranges under VLAN group view +* [#6308](https://github.com/netbox-community/netbox/issues/6308) - Fix linking of available VLANs in VLAN group view +* [#6309](https://github.com/netbox-community/netbox/issues/6309) - Restrict parent VM interface assignment to the parent VM +* [#6312](https://github.com/netbox-community/netbox/issues/6312) - Interface device filter should return all virtual chassis interfaces only if device is master +* [#6313](https://github.com/netbox-community/netbox/issues/6313) - Fix device type instance count under manufacturer view +* [#6321](https://github.com/netbox-community/netbox/issues/6321) - Restore "add an IP" button under prefix IPs view +* [#6333](https://github.com/netbox-community/netbox/issues/6333) - Fix filtering of circuit terminations by primary key +* [#6339](https://github.com/netbox-community/netbox/issues/6339) - Improve ordering of interfaces when viewing virtual chassis master +* [#6350](https://github.com/netbox-community/netbox/issues/6350) - Include first & last IP addresses when allocating available IPv6 addresses via the REST API +* [#6355](https://github.com/netbox-community/netbox/issues/6355) - Fix caching error when swapping A/Z circuit terminations +* [#6357](https://github.com/netbox-community/netbox/issues/6357) - Fix ProviderNetwork nested API serializer +* [#6363](https://github.com/netbox-community/netbox/issues/6363) - Correct pre-population of cluster group when creating a cluster +* [#6369](https://github.com/netbox-community/netbox/issues/6369) - Fix interface assignment for VLANs in non-scoped groups + +--- + ## v2.11.2 (2021-04-27) ### Enhancements diff --git a/docs/release-notes/version-2.12.md b/docs/release-notes/version-2.12.md index 548868a3d..598237e76 100644 --- a/docs/release-notes/version-2.12.md +++ b/docs/release-notes/version-2.12.md @@ -6,3 +6,18 @@ * [#5532](https://github.com/netbox-community/netbox/issues/5532) - Drop support for Python 3.6 * [#5994](https://github.com/netbox-community/netbox/issues/5994) - Drop support for `display_field` argument on ObjectVar + +### REST API Changes + +* dcim.Device + * Removed the `display_name` attribute (use `display` instead) +* dcim.DeviceType + * Removed the `display_name` attribute (use `display` instead) +* dcim.Rack + * Removed the `display_name` attribute (use `display` instead) +* extras.ContentType + * Removed the `display_name` attribute (use `display` instead) +* ipam.VLAN + * Removed the `display_name` attribute (use `display` instead) +* ipam.VRF + * Removed the `display_name` attribute (use `display` instead) diff --git a/netbox/circuits/api/nested_serializers.py b/netbox/circuits/api/nested_serializers.py index fccf4a8b6..6f7cb4f21 100644 --- a/netbox/circuits/api/nested_serializers.py +++ b/netbox/circuits/api/nested_serializers.py @@ -20,7 +20,7 @@ class NestedProviderNetworkSerializer(WritableNestedSerializer): url = serializers.HyperlinkedIdentityField(view_name='circuits-api:providernetwork-detail') class Meta: - model = Provider + model = ProviderNetwork fields = ['id', 'url', 'display', 'name'] diff --git a/netbox/circuits/api/views.py b/netbox/circuits/api/views.py index 0ea8d1973..3bceb2de0 100644 --- a/netbox/circuits/api/views.py +++ b/netbox/circuits/api/views.py @@ -1,6 +1,6 @@ from rest_framework.routers import APIRootView -from circuits import filters +from circuits import filtersets from circuits.models import * from dcim.api.views import PassThroughPortMixin from extras.api.views import CustomFieldModelViewSet @@ -26,7 +26,7 @@ class ProviderViewSet(CustomFieldModelViewSet): circuit_count=count_related(Circuit, 'provider') ) serializer_class = serializers.ProviderSerializer - filterset_class = filters.ProviderFilterSet + filterset_class = filtersets.ProviderFilterSet # @@ -38,7 +38,7 @@ class CircuitTypeViewSet(CustomFieldModelViewSet): circuit_count=count_related(Circuit, 'type') ) serializer_class = serializers.CircuitTypeSerializer - filterset_class = filters.CircuitTypeFilterSet + filterset_class = filtersets.CircuitTypeFilterSet # @@ -50,7 +50,7 @@ class CircuitViewSet(CustomFieldModelViewSet): 'type', 'tenant', 'provider', 'termination_a', 'termination_z' ).prefetch_related('tags') serializer_class = serializers.CircuitSerializer - filterset_class = filters.CircuitFilterSet + filterset_class = filtersets.CircuitFilterSet # @@ -62,7 +62,7 @@ class CircuitTerminationViewSet(PassThroughPortMixin, ModelViewSet): 'circuit', 'site', 'provider_network', 'cable' ) serializer_class = serializers.CircuitTerminationSerializer - filterset_class = filters.CircuitTerminationFilterSet + filterset_class = filtersets.CircuitTerminationFilterSet brief_prefetch_fields = ['circuit'] @@ -73,4 +73,4 @@ class CircuitTerminationViewSet(PassThroughPortMixin, ModelViewSet): class ProviderNetworkViewSet(CustomFieldModelViewSet): queryset = ProviderNetwork.objects.prefetch_related('tags') serializer_class = serializers.ProviderNetworkSerializer - filterset_class = filters.ProviderNetworkFilterSet + filterset_class = filtersets.ProviderNetworkFilterSet diff --git a/netbox/circuits/filters.py b/netbox/circuits/filtersets.py similarity index 89% rename from netbox/circuits/filters.py rename to netbox/circuits/filtersets.py index 034a99ac9..066178685 100644 --- a/netbox/circuits/filters.py +++ b/netbox/circuits/filtersets.py @@ -1,13 +1,12 @@ import django_filters from django.db.models import Q -from dcim.filters import CableTerminationFilterSet +from dcim.filtersets import CableTerminationFilterSet from dcim.models import Region, Site, SiteGroup -from extras.filters import CustomFieldModelFilterSet, CreatedUpdatedFilterSet -from tenancy.filters import TenancyFilterSet -from utilities.filters import ( - BaseFilterSet, NameSlugSearchFilterSet, TagFilter, TreeNodeMultipleChoiceFilter -) +from extras.filters import TagFilter +from netbox.filtersets import ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet +from tenancy.filtersets import TenancyFilterSet +from utilities.filters import TreeNodeMultipleChoiceFilter from .choices import * from .models import * @@ -20,7 +19,7 @@ __all__ = ( ) -class ProviderFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class ProviderFilterSet(PrimaryModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -80,7 +79,7 @@ class ProviderFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdated ) -class ProviderNetworkFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class ProviderNetworkFilterSet(PrimaryModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -110,14 +109,14 @@ class ProviderNetworkFilterSet(BaseFilterSet, CustomFieldModelFilterSet, Created ).distinct() -class CircuitTypeFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class CircuitTypeFilterSet(OrganizationalModelFilterSet): class Meta: model = CircuitType fields = ['id', 'name', 'slug'] -class CircuitFilterSet(BaseFilterSet, CustomFieldModelFilterSet, TenancyFilterSet, CreatedUpdatedFilterSet): +class CircuitFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -207,7 +206,7 @@ class CircuitFilterSet(BaseFilterSet, CustomFieldModelFilterSet, TenancyFilterSe ).distinct() -class CircuitTerminationFilterSet(BaseFilterSet, CreatedUpdatedFilterSet, CableTerminationFilterSet): +class CircuitTerminationFilterSet(ChangeLoggedModelFilterSet, CableTerminationFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -233,7 +232,7 @@ class CircuitTerminationFilterSet(BaseFilterSet, CreatedUpdatedFilterSet, CableT class Meta: model = CircuitTermination - fields = ['term_side', 'port_speed', 'upstream_speed', 'xconnect_id'] + fields = ['id', 'term_side', 'port_speed', 'upstream_speed', 'xconnect_id'] def search(self, queryset, name, value): if not value.strip(): diff --git a/netbox/circuits/models.py b/netbox/circuits/models.py index b2ffb3c09..31d08537e 100644 --- a/netbox/circuits/models.py +++ b/netbox/circuits/models.py @@ -149,7 +149,7 @@ class ProviderNetwork(PrimaryModel): ) -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class CircuitType(OrganizationalModel): """ Circuits can be organized by their functional role. For example, a user might wish to define CircuitTypes named diff --git a/netbox/circuits/signals.py b/netbox/circuits/signals.py index 0a000fb2e..a12cef671 100644 --- a/netbox/circuits/signals.py +++ b/netbox/circuits/signals.py @@ -1,9 +1,8 @@ from django.db.models.signals import post_delete, post_save from django.dispatch import receiver -from django.utils import timezone from dcim.signals import rebuild_paths -from .models import Circuit, CircuitTermination +from .models import CircuitTermination @receiver(post_save, sender=CircuitTermination) @@ -11,11 +10,9 @@ def update_circuit(instance, **kwargs): """ When a CircuitTermination has been modified, update its parent Circuit. """ - fields = { - 'last_updated': timezone.now(), - f'termination_{instance.term_side.lower()}': instance.pk, - } - Circuit.objects.filter(pk=instance.circuit_id).update(**fields) + termination_name = f'termination_{instance.term_side.lower()}' + setattr(instance.circuit, termination_name, instance) + instance.circuit.save() @receiver((post_save, post_delete), sender=CircuitTermination) diff --git a/netbox/circuits/tests/test_filters.py b/netbox/circuits/tests/test_filtersets.py similarity index 95% rename from netbox/circuits/tests/test_filters.py rename to netbox/circuits/tests/test_filtersets.py index 448e42368..4880a8388 100644 --- a/netbox/circuits/tests/test_filters.py +++ b/netbox/circuits/tests/test_filtersets.py @@ -1,13 +1,14 @@ from django.test import TestCase from circuits.choices import * -from circuits.filters import * +from circuits.filtersets import * from circuits.models import * from dcim.models import Cable, Region, Site, SiteGroup from tenancy.models import Tenant, TenantGroup +from utilities.testing import ChangeLoggedFilterSetTests -class ProviderTestCase(TestCase): +class ProviderTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Provider.objects.all() filterset = ProviderFilterSet @@ -61,10 +62,6 @@ class ProviderTestCase(TestCase): CircuitTermination(circuit=circuits[1], site=sites[0], term_side='A'), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Provider 1', 'Provider 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -103,7 +100,7 @@ class ProviderTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class CircuitTypeTestCase(TestCase): +class CircuitTypeTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = CircuitType.objects.all() filterset = CircuitTypeFilterSet @@ -116,10 +113,6 @@ class CircuitTypeTestCase(TestCase): CircuitType(name='Circuit Type 3', slug='circuit-type-3'), )) - def test_id(self): - params = {'id': [self.queryset.first().pk]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) - def test_name(self): params = {'name': ['Circuit Type 1']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) @@ -129,7 +122,7 @@ class CircuitTypeTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class CircuitTestCase(TestCase): +class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Circuit.objects.all() filterset = CircuitFilterSet @@ -213,10 +206,6 @@ class CircuitTestCase(TestCase): )) CircuitTermination.objects.bulk_create(circuit_terminations) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_cid(self): params = {'cid': ['Test Circuit 1', 'Test Circuit 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -288,7 +277,7 @@ class CircuitTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class CircuitTerminationTestCase(TestCase): +class CircuitTerminationTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = CircuitTermination.objects.all() filterset = CircuitTerminationFilterSet @@ -382,7 +371,7 @@ class CircuitTerminationTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class ProviderNetworkTestCase(TestCase): +class ProviderNetworkTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = ProviderNetwork.objects.all() filterset = ProviderNetworkFilterSet @@ -403,10 +392,6 @@ class ProviderNetworkTestCase(TestCase): ) ProviderNetwork.objects.bulk_create(provider_networks) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Provider Network 1', 'Provider Network 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index c05ea4622..b4bb0155e 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -7,7 +7,7 @@ from netbox.views import generic from utilities.forms import ConfirmationForm from utilities.tables import paginate_table from utilities.utils import count_related -from . import filters, forms, tables +from . import filtersets, forms, tables from .choices import CircuitTerminationSideChoices from .models import * @@ -20,7 +20,7 @@ class ProviderListView(generic.ObjectListView): queryset = Provider.objects.annotate( count_circuits=count_related(Circuit, 'provider') ) - filterset = filters.ProviderFilterSet + filterset = filtersets.ProviderFilterSet filterset_form = forms.ProviderFilterForm table = tables.ProviderTable @@ -63,7 +63,7 @@ class ProviderBulkEditView(generic.BulkEditView): queryset = Provider.objects.annotate( count_circuits=count_related(Circuit, 'provider') ) - filterset = filters.ProviderFilterSet + filterset = filtersets.ProviderFilterSet table = tables.ProviderTable form = forms.ProviderBulkEditForm @@ -72,7 +72,7 @@ class ProviderBulkDeleteView(generic.BulkDeleteView): queryset = Provider.objects.annotate( count_circuits=count_related(Circuit, 'provider') ) - filterset = filters.ProviderFilterSet + filterset = filtersets.ProviderFilterSet table = tables.ProviderTable @@ -82,7 +82,7 @@ class ProviderBulkDeleteView(generic.BulkDeleteView): class ProviderNetworkListView(generic.ObjectListView): queryset = ProviderNetwork.objects.all() - filterset = filters.ProviderNetworkFilterSet + filterset = filtersets.ProviderNetworkFilterSet filterset_form = forms.ProviderNetworkFilterForm table = tables.ProviderNetworkTable @@ -125,14 +125,14 @@ class ProviderNetworkBulkImportView(generic.BulkImportView): class ProviderNetworkBulkEditView(generic.BulkEditView): queryset = ProviderNetwork.objects.all() - filterset = filters.ProviderNetworkFilterSet + filterset = filtersets.ProviderNetworkFilterSet table = tables.ProviderNetworkTable form = forms.ProviderNetworkBulkEditForm class ProviderNetworkBulkDeleteView(generic.BulkDeleteView): queryset = ProviderNetwork.objects.all() - filterset = filters.ProviderNetworkFilterSet + filterset = filtersets.ProviderNetworkFilterSet table = tables.ProviderNetworkTable @@ -183,7 +183,7 @@ class CircuitTypeBulkEditView(generic.BulkEditView): queryset = CircuitType.objects.annotate( circuit_count=count_related(Circuit, 'type') ) - filterset = filters.CircuitTypeFilterSet + filterset = filtersets.CircuitTypeFilterSet table = tables.CircuitTypeTable form = forms.CircuitTypeBulkEditForm @@ -203,7 +203,7 @@ class CircuitListView(generic.ObjectListView): queryset = Circuit.objects.prefetch_related( 'provider', 'type', 'tenant', 'termination_a', 'termination_z' ) - filterset = filters.CircuitFilterSet + filterset = filtersets.CircuitFilterSet filterset_form = forms.CircuitFilterForm table = tables.CircuitTable @@ -211,27 +211,6 @@ class CircuitListView(generic.ObjectListView): class CircuitView(generic.ObjectView): queryset = Circuit.objects.all() - def get_extra_context(self, request, instance): - - # A-side termination - termination_a = CircuitTermination.objects.restrict(request.user, 'view').prefetch_related( - 'site__region' - ).filter( - circuit=instance, term_side=CircuitTerminationSideChoices.SIDE_A - ).first() - - # Z-side termination - termination_z = CircuitTermination.objects.restrict(request.user, 'view').prefetch_related( - 'site__region' - ).filter( - circuit=instance, term_side=CircuitTerminationSideChoices.SIDE_Z - ).first() - - return { - 'termination_a': termination_a, - 'termination_z': termination_z, - } - class CircuitEditView(generic.ObjectEditView): queryset = Circuit.objects.all() @@ -252,7 +231,7 @@ class CircuitBulkEditView(generic.BulkEditView): queryset = Circuit.objects.prefetch_related( 'provider', 'type', 'tenant', 'terminations' ) - filterset = filters.CircuitFilterSet + filterset = filtersets.CircuitFilterSet table = tables.CircuitTable form = forms.CircuitBulkEditForm @@ -261,7 +240,7 @@ class CircuitBulkDeleteView(generic.BulkDeleteView): queryset = Circuit.objects.prefetch_related( 'provider', 'type', 'tenant', 'terminations' ) - filterset = filters.CircuitFilterSet + filterset = filtersets.CircuitFilterSet table = tables.CircuitTable @@ -296,16 +275,11 @@ class CircuitSwapTerminations(generic.ObjectEditView): if form.is_valid(): - termination_a = CircuitTermination.objects.filter( - circuit=circuit, term_side=CircuitTerminationSideChoices.SIDE_A - ).first() - termination_z = CircuitTermination.objects.filter( - circuit=circuit, term_side=CircuitTerminationSideChoices.SIDE_Z - ).first() + termination_a = CircuitTermination.objects.filter(pk=circuit.termination_a_id).first() + termination_z = CircuitTermination.objects.filter(pk=circuit.termination_z_id).first() if termination_a and termination_z: # Use a placeholder to avoid an IntegrityError on the (circuit, term_side) unique constraint - print('swapping') with transaction.atomic(): termination_a.term_side = '_' termination_a.save() @@ -316,11 +290,20 @@ class CircuitSwapTerminations(generic.ObjectEditView): elif termination_a: termination_a.term_side = 'Z' termination_a.save() + circuit.refresh_from_db() + circuit.termination_a = None + circuit.save() else: termination_z.term_side = 'A' termination_z.save() + circuit.refresh_from_db() + circuit.termination_z = None + circuit.save() - messages.success(request, "Swapped terminations for circuit {}.".format(circuit)) + print(f'term A: {circuit.termination_a}') + print(f'term Z: {circuit.termination_z}') + + messages.success(request, f"Swapped terminations for circuit {circuit}.") return redirect('circuits:circuit', pk=circuit.pk) return render(request, 'circuits/circuit_terminations_swap.html', { diff --git a/netbox/dcim/api/nested_serializers.py b/netbox/dcim/api/nested_serializers.py index 80e003efc..67ae9b046 100644 --- a/netbox/dcim/api/nested_serializers.py +++ b/netbox/dcim/api/nested_serializers.py @@ -101,7 +101,7 @@ class NestedRackSerializer(WritableNestedSerializer): class Meta: model = models.Rack - fields = ['id', 'url', 'display', 'name', 'display_name', 'device_count'] + fields = ['id', 'url', 'display', 'name', 'device_count'] class NestedRackReservationSerializer(WritableNestedSerializer): @@ -136,7 +136,7 @@ class NestedDeviceTypeSerializer(WritableNestedSerializer): class Meta: model = models.DeviceType - fields = ['id', 'url', 'display', 'manufacturer', 'model', 'slug', 'display_name', 'device_count'] + fields = ['id', 'url', 'display', 'manufacturer', 'model', 'slug', 'device_count'] class NestedConsolePortTemplateSerializer(WritableNestedSerializer): @@ -232,7 +232,7 @@ class NestedDeviceSerializer(WritableNestedSerializer): class Meta: model = models.Device - fields = ['id', 'url', 'display', 'name', 'display_name'] + fields = ['id', 'url', 'display', 'name'] class NestedConsoleServerPortSerializer(WritableNestedSerializer): diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 377449140..d2ecad608 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -172,10 +172,9 @@ class RackSerializer(PrimaryModelSerializer): class Meta: model = Rack fields = [ - 'id', 'url', 'display', 'name', 'facility_id', 'display_name', 'site', 'location', 'tenant', 'status', - 'role', 'serial', 'asset_tag', 'type', 'width', 'u_height', 'desc_units', 'outer_width', 'outer_depth', - 'outer_unit', 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'device_count', - 'powerfeed_count', + 'id', 'url', 'display', 'name', 'facility_id', 'site', 'location', 'tenant', 'status', 'role', 'serial', + 'asset_tag', 'type', 'width', 'u_height', 'desc_units', 'outer_width', 'outer_depth', 'outer_unit', + 'comments', 'tags', 'custom_fields', 'created', 'last_updated', 'device_count', 'powerfeed_count', ] # Omit the UniqueTogetherValidator that would be automatically added to validate (location, facility_id). This # prevents facility_id from being interpreted as a required field. @@ -284,9 +283,9 @@ class DeviceTypeSerializer(PrimaryModelSerializer): class Meta: model = DeviceType fields = [ - 'id', 'url', 'display', 'manufacturer', 'model', 'slug', 'display_name', 'part_number', 'u_height', - 'is_full_depth', 'subdevice_role', 'front_image', 'rear_image', 'comments', 'tags', 'custom_fields', - 'created', 'last_updated', 'device_count', + 'id', 'url', 'display', 'manufacturer', 'model', 'slug', 'part_number', 'u_height', 'is_full_depth', + 'subdevice_role', 'front_image', 'rear_image', 'comments', 'tags', 'custom_fields', 'created', + 'last_updated', 'device_count', ] @@ -465,10 +464,10 @@ class DeviceSerializer(PrimaryModelSerializer): class Meta: model = Device fields = [ - 'id', 'url', 'display', 'name', 'display_name', 'device_type', 'device_role', 'tenant', 'platform', - 'serial', 'asset_tag', 'site', 'location', 'rack', 'position', 'face', 'parent_device', 'status', - 'primary_ip', 'primary_ip4', 'primary_ip6', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', - 'comments', 'local_context_data', 'tags', 'custom_fields', 'created', 'last_updated', + 'id', 'url', 'display', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag', + 'site', 'location', 'rack', 'position', 'face', 'parent_device', 'status', 'primary_ip', 'primary_ip4', + 'primary_ip6', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', 'comments', 'local_context_data', + 'tags', 'custom_fields', 'created', 'last_updated', ] validators = [] @@ -501,10 +500,10 @@ class DeviceWithConfigContextSerializer(DeviceSerializer): class Meta(DeviceSerializer.Meta): fields = [ - 'id', 'url', 'display', 'name', 'display_name', 'device_type', 'device_role', 'tenant', 'platform', - 'serial', 'asset_tag', 'site', 'location', 'rack', 'position', 'face', 'parent_device', 'status', - 'primary_ip', 'primary_ip4', 'primary_ip6', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', - 'comments', 'local_context_data', 'tags', 'custom_fields', 'config_context', 'created', 'last_updated', + 'id', 'url', 'display', 'name', 'device_type', 'device_role', 'tenant', 'platform', 'serial', 'asset_tag', + 'site', 'location', 'rack', 'position', 'face', 'parent_device', 'status', 'primary_ip', 'primary_ip4', + 'primary_ip6', 'cluster', 'virtual_chassis', 'vc_position', 'vc_priority', 'comments', 'local_context_data', + 'tags', 'custom_fields', 'config_context', 'created', 'last_updated', ] @swagger_serializer_method(serializer_or_field=serializers.DictField) diff --git a/netbox/dcim/api/views.py b/netbox/dcim/api/views.py index cb46c1eca..9d402227f 100644 --- a/netbox/dcim/api/views.py +++ b/netbox/dcim/api/views.py @@ -16,7 +16,7 @@ from rest_framework.routers import APIRootView from rest_framework.viewsets import GenericViewSet, ViewSet from circuits.models import Circuit -from dcim import filters +from dcim import filtersets from dcim.models import * from extras.api.views import ConfigContextQuerySetMixin, CustomFieldModelViewSet from ipam.models import Prefix, VLAN @@ -103,7 +103,7 @@ class RegionViewSet(CustomFieldModelViewSet): cumulative=True ) serializer_class = serializers.RegionSerializer - filterset_class = filters.RegionFilterSet + filterset_class = filtersets.RegionFilterSet # @@ -119,7 +119,7 @@ class SiteGroupViewSet(CustomFieldModelViewSet): cumulative=True ) serializer_class = serializers.SiteGroupSerializer - filterset_class = filters.SiteGroupFilterSet + filterset_class = filtersets.SiteGroupFilterSet # @@ -138,7 +138,7 @@ class SiteViewSet(CustomFieldModelViewSet): virtualmachine_count=count_related(VirtualMachine, 'cluster__site') ) serializer_class = serializers.SiteSerializer - filterset_class = filters.SiteFilterSet + filterset_class = filtersets.SiteFilterSet # @@ -160,7 +160,7 @@ class LocationViewSet(CustomFieldModelViewSet): cumulative=True ).prefetch_related('site') serializer_class = serializers.LocationSerializer - filterset_class = filters.LocationFilterSet + filterset_class = filtersets.LocationFilterSet # @@ -172,7 +172,7 @@ class RackRoleViewSet(CustomFieldModelViewSet): rack_count=count_related(Rack, 'role') ) serializer_class = serializers.RackRoleSerializer - filterset_class = filters.RackRoleFilterSet + filterset_class = filtersets.RackRoleFilterSet # @@ -187,7 +187,7 @@ class RackViewSet(CustomFieldModelViewSet): powerfeed_count=count_related(PowerFeed, 'rack') ) serializer_class = serializers.RackSerializer - filterset_class = filters.RackFilterSet + filterset_class = filtersets.RackFilterSet @swagger_auto_schema( responses={200: serializers.RackUnitSerializer(many=True)}, @@ -244,7 +244,7 @@ class RackViewSet(CustomFieldModelViewSet): class RackReservationViewSet(ModelViewSet): queryset = RackReservation.objects.prefetch_related('rack', 'user', 'tenant') serializer_class = serializers.RackReservationSerializer - filterset_class = filters.RackReservationFilterSet + filterset_class = filtersets.RackReservationFilterSet # Assign user from request def perform_create(self, serializer): @@ -262,7 +262,7 @@ class ManufacturerViewSet(CustomFieldModelViewSet): platform_count=count_related(Platform, 'manufacturer') ) serializer_class = serializers.ManufacturerSerializer - filterset_class = filters.ManufacturerFilterSet + filterset_class = filtersets.ManufacturerFilterSet # @@ -274,7 +274,7 @@ class DeviceTypeViewSet(CustomFieldModelViewSet): device_count=count_related(Device, 'device_type') ) serializer_class = serializers.DeviceTypeSerializer - filterset_class = filters.DeviceTypeFilterSet + filterset_class = filtersets.DeviceTypeFilterSet brief_prefetch_fields = ['manufacturer'] @@ -285,49 +285,49 @@ class DeviceTypeViewSet(CustomFieldModelViewSet): class ConsolePortTemplateViewSet(ModelViewSet): queryset = ConsolePortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.ConsolePortTemplateSerializer - filterset_class = filters.ConsolePortTemplateFilterSet + filterset_class = filtersets.ConsolePortTemplateFilterSet class ConsoleServerPortTemplateViewSet(ModelViewSet): queryset = ConsoleServerPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.ConsoleServerPortTemplateSerializer - filterset_class = filters.ConsoleServerPortTemplateFilterSet + filterset_class = filtersets.ConsoleServerPortTemplateFilterSet class PowerPortTemplateViewSet(ModelViewSet): queryset = PowerPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.PowerPortTemplateSerializer - filterset_class = filters.PowerPortTemplateFilterSet + filterset_class = filtersets.PowerPortTemplateFilterSet class PowerOutletTemplateViewSet(ModelViewSet): queryset = PowerOutletTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.PowerOutletTemplateSerializer - filterset_class = filters.PowerOutletTemplateFilterSet + filterset_class = filtersets.PowerOutletTemplateFilterSet class InterfaceTemplateViewSet(ModelViewSet): queryset = InterfaceTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.InterfaceTemplateSerializer - filterset_class = filters.InterfaceTemplateFilterSet + filterset_class = filtersets.InterfaceTemplateFilterSet class FrontPortTemplateViewSet(ModelViewSet): queryset = FrontPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.FrontPortTemplateSerializer - filterset_class = filters.FrontPortTemplateFilterSet + filterset_class = filtersets.FrontPortTemplateFilterSet class RearPortTemplateViewSet(ModelViewSet): queryset = RearPortTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.RearPortTemplateSerializer - filterset_class = filters.RearPortTemplateFilterSet + filterset_class = filtersets.RearPortTemplateFilterSet class DeviceBayTemplateViewSet(ModelViewSet): queryset = DeviceBayTemplate.objects.prefetch_related('device_type__manufacturer') serializer_class = serializers.DeviceBayTemplateSerializer - filterset_class = filters.DeviceBayTemplateFilterSet + filterset_class = filtersets.DeviceBayTemplateFilterSet # @@ -340,7 +340,7 @@ class DeviceRoleViewSet(CustomFieldModelViewSet): virtualmachine_count=count_related(VirtualMachine, 'role') ) serializer_class = serializers.DeviceRoleSerializer - filterset_class = filters.DeviceRoleFilterSet + filterset_class = filtersets.DeviceRoleFilterSet # @@ -353,7 +353,7 @@ class PlatformViewSet(CustomFieldModelViewSet): virtualmachine_count=count_related(VirtualMachine, 'platform') ) serializer_class = serializers.PlatformSerializer - filterset_class = filters.PlatformFilterSet + filterset_class = filtersets.PlatformFilterSet # @@ -365,7 +365,7 @@ class DeviceViewSet(ConfigContextQuerySetMixin, CustomFieldModelViewSet): 'device_type__manufacturer', 'device_role', 'tenant', 'platform', 'site', 'location', 'rack', 'parent_bay', 'virtual_chassis__master', 'primary_ip4__nat_outside', 'primary_ip6__nat_outside', 'tags', ) - filterset_class = filters.DeviceFilterSet + filterset_class = filtersets.DeviceFilterSet def get_serializer_class(self): """ @@ -510,7 +510,7 @@ class DeviceViewSet(ConfigContextQuerySetMixin, CustomFieldModelViewSet): class ConsolePortViewSet(PathEndpointMixin, ModelViewSet): queryset = ConsolePort.objects.prefetch_related('device', '_path__destination', 'cable', '_cable_peer', 'tags') serializer_class = serializers.ConsolePortSerializer - filterset_class = filters.ConsolePortFilterSet + filterset_class = filtersets.ConsolePortFilterSet brief_prefetch_fields = ['device'] @@ -519,21 +519,21 @@ class ConsoleServerPortViewSet(PathEndpointMixin, ModelViewSet): 'device', '_path__destination', 'cable', '_cable_peer', 'tags' ) serializer_class = serializers.ConsoleServerPortSerializer - filterset_class = filters.ConsoleServerPortFilterSet + filterset_class = filtersets.ConsoleServerPortFilterSet brief_prefetch_fields = ['device'] class PowerPortViewSet(PathEndpointMixin, ModelViewSet): queryset = PowerPort.objects.prefetch_related('device', '_path__destination', 'cable', '_cable_peer', 'tags') serializer_class = serializers.PowerPortSerializer - filterset_class = filters.PowerPortFilterSet + filterset_class = filtersets.PowerPortFilterSet brief_prefetch_fields = ['device'] class PowerOutletViewSet(PathEndpointMixin, ModelViewSet): queryset = PowerOutlet.objects.prefetch_related('device', '_path__destination', 'cable', '_cable_peer', 'tags') serializer_class = serializers.PowerOutletSerializer - filterset_class = filters.PowerOutletFilterSet + filterset_class = filtersets.PowerOutletFilterSet brief_prefetch_fields = ['device'] @@ -542,35 +542,35 @@ class InterfaceViewSet(PathEndpointMixin, ModelViewSet): 'device', 'parent', 'lag', '_path__destination', 'cable', '_cable_peer', 'ip_addresses', 'tags' ) serializer_class = serializers.InterfaceSerializer - filterset_class = filters.InterfaceFilterSet + filterset_class = filtersets.InterfaceFilterSet brief_prefetch_fields = ['device'] class FrontPortViewSet(PassThroughPortMixin, ModelViewSet): queryset = FrontPort.objects.prefetch_related('device__device_type__manufacturer', 'rear_port', 'cable', 'tags') serializer_class = serializers.FrontPortSerializer - filterset_class = filters.FrontPortFilterSet + filterset_class = filtersets.FrontPortFilterSet brief_prefetch_fields = ['device'] class RearPortViewSet(PassThroughPortMixin, ModelViewSet): queryset = RearPort.objects.prefetch_related('device__device_type__manufacturer', 'cable', 'tags') serializer_class = serializers.RearPortSerializer - filterset_class = filters.RearPortFilterSet + filterset_class = filtersets.RearPortFilterSet brief_prefetch_fields = ['device'] class DeviceBayViewSet(ModelViewSet): queryset = DeviceBay.objects.prefetch_related('installed_device').prefetch_related('tags') serializer_class = serializers.DeviceBaySerializer - filterset_class = filters.DeviceBayFilterSet + filterset_class = filtersets.DeviceBayFilterSet brief_prefetch_fields = ['device'] class InventoryItemViewSet(ModelViewSet): queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer').prefetch_related('tags') serializer_class = serializers.InventoryItemSerializer - filterset_class = filters.InventoryItemFilterSet + filterset_class = filtersets.InventoryItemFilterSet brief_prefetch_fields = ['device'] @@ -583,7 +583,7 @@ class ConsoleConnectionViewSet(ListModelMixin, GenericViewSet): _path__destination_id__isnull=False ) serializer_class = serializers.ConsolePortSerializer - filterset_class = filters.ConsoleConnectionFilterSet + filterset_class = filtersets.ConsoleConnectionFilterSet class PowerConnectionViewSet(ListModelMixin, GenericViewSet): @@ -591,7 +591,7 @@ class PowerConnectionViewSet(ListModelMixin, GenericViewSet): _path__destination_id__isnull=False ) serializer_class = serializers.PowerPortSerializer - filterset_class = filters.PowerConnectionFilterSet + filterset_class = filtersets.PowerConnectionFilterSet class InterfaceConnectionViewSet(ListModelMixin, GenericViewSet): @@ -603,7 +603,7 @@ class InterfaceConnectionViewSet(ListModelMixin, GenericViewSet): pk__lt=F('_path__destination_id') ) serializer_class = serializers.InterfaceConnectionSerializer - filterset_class = filters.InterfaceConnectionFilterSet + filterset_class = filtersets.InterfaceConnectionFilterSet # @@ -616,7 +616,7 @@ class CableViewSet(ModelViewSet): 'termination_a', 'termination_b' ) serializer_class = serializers.CableSerializer - filterset_class = filters.CableFilterSet + filterset_class = filtersets.CableFilterSet # @@ -628,7 +628,7 @@ class VirtualChassisViewSet(ModelViewSet): member_count=count_related(Device, 'virtual_chassis') ) serializer_class = serializers.VirtualChassisSerializer - filterset_class = filters.VirtualChassisFilterSet + filterset_class = filtersets.VirtualChassisFilterSet brief_prefetch_fields = ['master'] @@ -643,7 +643,7 @@ class PowerPanelViewSet(ModelViewSet): powerfeed_count=count_related(PowerFeed, 'power_panel') ) serializer_class = serializers.PowerPanelSerializer - filterset_class = filters.PowerPanelFilterSet + filterset_class = filtersets.PowerPanelFilterSet # @@ -655,7 +655,7 @@ class PowerFeedViewSet(PathEndpointMixin, CustomFieldModelViewSet): 'power_panel', 'rack', '_path__destination', 'cable', '_cable_peer', 'tags' ) serializer_class = serializers.PowerFeedSerializer - filterset_class = filters.PowerFeedFilterSet + filterset_class = filtersets.PowerFeedFilterSet # diff --git a/netbox/dcim/choices.py b/netbox/dcim/choices.py index 2483c8d12..c5646cf2b 100644 --- a/netbox/dcim/choices.py +++ b/netbox/dcim/choices.py @@ -1001,6 +1001,7 @@ class CableTypeChoices(ChoiceSet): TYPE_MMF_OM2 = 'mmf-om2' TYPE_MMF_OM3 = 'mmf-om3' TYPE_MMF_OM4 = 'mmf-om4' + TYPE_MMF_OM5 = 'mmf-om5' TYPE_SMF = 'smf' TYPE_SMF_OS1 = 'smf-os1' TYPE_SMF_OS2 = 'smf-os2' @@ -1031,6 +1032,7 @@ class CableTypeChoices(ChoiceSet): (TYPE_MMF_OM2, 'Multimode Fiber (OM2)'), (TYPE_MMF_OM3, 'Multimode Fiber (OM3)'), (TYPE_MMF_OM4, 'Multimode Fiber (OM4)'), + (TYPE_MMF_OM5, 'Multimode Fiber (OM5)'), (TYPE_SMF, 'Singlemode Fiber'), (TYPE_SMF_OS1, 'Singlemode Fiber (OS1)'), (TYPE_SMF_OS2, 'Singlemode Fiber (OS2)'), diff --git a/netbox/dcim/elevations.py b/netbox/dcim/elevations.py index 8571c6684..473b9608f 100644 --- a/netbox/dcim/elevations.py +++ b/netbox/dcim/elevations.py @@ -34,10 +34,11 @@ class RackElevationSVG: @staticmethod def _get_device_description(device): - return '{} ({}) — {} ({}U) {} {}'.format( + return '{} ({}) — {} {} ({}U) {} {}'.format( device.name, device.device_role, - device.device_type.display_name, + device.device_type.manufacturer.name, + device.device_type.model, device.device_type.u_height, device.asset_tag or '', device.serial or '' diff --git a/netbox/dcim/filters.py b/netbox/dcim/filtersets.py similarity index 91% rename from netbox/dcim/filters.py rename to netbox/dcim/filtersets.py index 29c4281ba..b04c14ba9 100644 --- a/netbox/dcim/filters.py +++ b/netbox/dcim/filtersets.py @@ -1,13 +1,16 @@ import django_filters from django.contrib.auth.models import User -from extras.filters import CustomFieldModelFilterSet, LocalConfigContextFilterSet, CreatedUpdatedFilterSet -from tenancy.filters import TenancyFilterSet +from extras.filters import TagFilter +from extras.filtersets import LocalConfigContextFilterSet +from netbox.filtersets import ( + BaseFilterSet, ChangeLoggedModelFilterSet, OrganizationalModelFilterSet, PrimaryModelFilterSet, +) +from tenancy.filtersets import TenancyFilterSet from tenancy.models import Tenant from utilities.choices import ColorChoices from utilities.filters import ( - BaseFilterSet, MultiValueCharFilter, MultiValueMACAddressFilter, MultiValueNumberFilter, - NameSlugSearchFilterSet, TagFilter, TreeNodeMultipleChoiceFilter, + MultiValueCharFilter, MultiValueMACAddressFilter, MultiValueNumberFilter, TreeNodeMultipleChoiceFilter, ) from virtualization.models import Cluster from .choices import * @@ -57,7 +60,7 @@ __all__ = ( ) -class RegionFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class RegionFilterSet(OrganizationalModelFilterSet): parent_id = django_filters.ModelMultipleChoiceFilter( queryset=Region.objects.all(), label='Parent region (ID)', @@ -74,7 +77,7 @@ class RegionFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilt fields = ['id', 'name', 'slug', 'description'] -class SiteGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class SiteGroupFilterSet(OrganizationalModelFilterSet): parent_id = django_filters.ModelMultipleChoiceFilter( queryset=SiteGroup.objects.all(), label='Parent site group (ID)', @@ -91,7 +94,7 @@ class SiteGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedF fields = ['id', 'name', 'slug', 'description'] -class SiteFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class SiteFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -154,7 +157,7 @@ class SiteFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, return queryset.filter(qs_filter) -class LocationFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class LocationFilterSet(OrganizationalModelFilterSet): region_id = TreeNodeMultipleChoiceFilter( queryset=Region.objects.all(), field_name='site__region', @@ -218,14 +221,14 @@ class LocationFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFi ) -class RackRoleFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class RackRoleFilterSet(OrganizationalModelFilterSet): class Meta: model = RackRole fields = ['id', 'name', 'slug', 'color'] -class RackFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class RackFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -323,7 +326,7 @@ class RackFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, ) -class RackReservationFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class RackReservationFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -383,14 +386,14 @@ class RackReservationFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModel ) -class ManufacturerFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class ManufacturerFilterSet(OrganizationalModelFilterSet): class Meta: model = Manufacturer fields = ['id', 'name', 'slug', 'description'] -class DeviceTypeFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class DeviceTypeFilterSet(PrimaryModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -476,7 +479,7 @@ class DeviceTypeFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdat return queryset.exclude(devicebaytemplates__isnull=value) -class DeviceTypeComponentFilterSet(NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class DeviceTypeComponentFilterSet(django_filters.FilterSet): devicetype_id = django_filters.ModelMultipleChoiceFilter( queryset=DeviceType.objects.all(), field_name='device_type_id', @@ -484,28 +487,28 @@ class DeviceTypeComponentFilterSet(NameSlugSearchFilterSet, CreatedUpdatedFilter ) -class ConsolePortTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class ConsolePortTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): class Meta: model = ConsolePortTemplate fields = ['id', 'name', 'type'] -class ConsoleServerPortTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class ConsoleServerPortTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): class Meta: model = ConsoleServerPortTemplate fields = ['id', 'name', 'type'] -class PowerPortTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class PowerPortTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): class Meta: model = PowerPortTemplate fields = ['id', 'name', 'type', 'maximum_draw', 'allocated_draw'] -class PowerOutletTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class PowerOutletTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): feed_leg = django_filters.MultipleChoiceFilter( choices=PowerOutletFeedLegChoices, null_value=None @@ -516,7 +519,7 @@ class PowerOutletTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): fields = ['id', 'name', 'type', 'feed_leg'] -class InterfaceTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class InterfaceTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): type = django_filters.MultipleChoiceFilter( choices=InterfaceTypeChoices, null_value=None @@ -527,7 +530,7 @@ class InterfaceTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): fields = ['id', 'name', 'type', 'mgmt_only'] -class FrontPortTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class FrontPortTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): type = django_filters.MultipleChoiceFilter( choices=PortTypeChoices, null_value=None @@ -538,7 +541,7 @@ class FrontPortTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): fields = ['id', 'name', 'type'] -class RearPortTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class RearPortTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): type = django_filters.MultipleChoiceFilter( choices=PortTypeChoices, null_value=None @@ -549,21 +552,21 @@ class RearPortTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): fields = ['id', 'name', 'type', 'positions'] -class DeviceBayTemplateFilterSet(BaseFilterSet, DeviceTypeComponentFilterSet): +class DeviceBayTemplateFilterSet(ChangeLoggedModelFilterSet, DeviceTypeComponentFilterSet): class Meta: model = DeviceBayTemplate fields = ['id', 'name'] -class DeviceRoleFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class DeviceRoleFilterSet(OrganizationalModelFilterSet): class Meta: model = DeviceRole fields = ['id', 'name', 'slug', 'color', 'vm_role'] -class PlatformFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class PlatformFilterSet(OrganizationalModelFilterSet): manufacturer_id = django_filters.ModelMultipleChoiceFilter( field_name='manufacturer', queryset=Manufacturer.objects.all(), @@ -581,13 +584,7 @@ class PlatformFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFi fields = ['id', 'name', 'slug', 'napalm_driver', 'description'] -class DeviceFilterSet( - BaseFilterSet, - TenancyFilterSet, - LocalConfigContextFilterSet, - CustomFieldModelFilterSet, - CreatedUpdatedFilterSet -): +class DeviceFilterSet(PrimaryModelFilterSet, TenancyFilterSet, LocalConfigContextFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -792,7 +789,7 @@ class DeviceFilterSet( return queryset.exclude(devicebays__isnull=value) -class DeviceComponentFilterSet(CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class DeviceComponentFilterSet(django_filters.FilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -876,7 +873,7 @@ class PathEndpointFilterSet(django_filters.FilterSet): return queryset.filter(Q(_path__isnull=True) | Q(_path__is_active=False)) -class ConsolePortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): +class ConsolePortFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): type = django_filters.MultipleChoiceFilter( choices=ConsolePortTypeChoices, null_value=None @@ -887,12 +884,7 @@ class ConsolePortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTermina fields = ['id', 'name', 'label', 'description'] -class ConsoleServerPortFilterSet( - BaseFilterSet, - DeviceComponentFilterSet, - CableTerminationFilterSet, - PathEndpointFilterSet -): +class ConsoleServerPortFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): type = django_filters.MultipleChoiceFilter( choices=ConsolePortTypeChoices, null_value=None @@ -903,7 +895,7 @@ class ConsoleServerPortFilterSet( fields = ['id', 'name', 'label', 'description'] -class PowerPortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): +class PowerPortFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): type = django_filters.MultipleChoiceFilter( choices=PowerPortTypeChoices, null_value=None @@ -914,7 +906,7 @@ class PowerPortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminati fields = ['id', 'name', 'label', 'maximum_draw', 'allocated_draw', 'description'] -class PowerOutletFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): +class PowerOutletFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): type = django_filters.MultipleChoiceFilter( choices=PowerOutletTypeChoices, null_value=None @@ -929,7 +921,7 @@ class PowerOutletFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTermina fields = ['id', 'name', 'label', 'feed_leg', 'description'] -class InterfaceFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): +class InterfaceFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1027,7 +1019,7 @@ class InterfaceFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminati }.get(value, queryset.none()) -class FrontPortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet): +class FrontPortFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet): type = django_filters.MultipleChoiceFilter( choices=PortTypeChoices, null_value=None @@ -1038,7 +1030,7 @@ class FrontPortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminati fields = ['id', 'name', 'label', 'type', 'description'] -class RearPortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet): +class RearPortFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet, CableTerminationFilterSet): type = django_filters.MultipleChoiceFilter( choices=PortTypeChoices, null_value=None @@ -1049,14 +1041,14 @@ class RearPortFilterSet(BaseFilterSet, DeviceComponentFilterSet, CableTerminatio fields = ['id', 'name', 'label', 'type', 'positions', 'description'] -class DeviceBayFilterSet(BaseFilterSet, DeviceComponentFilterSet): +class DeviceBayFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet): class Meta: model = DeviceBay fields = ['id', 'name', 'label', 'description'] -class InventoryItemFilterSet(BaseFilterSet, DeviceComponentFilterSet): +class InventoryItemFilterSet(PrimaryModelFilterSet, DeviceComponentFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1129,7 +1121,7 @@ class InventoryItemFilterSet(BaseFilterSet, DeviceComponentFilterSet): return queryset.filter(qs_filter) -class VirtualChassisFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class VirtualChassisFilterSet(PrimaryModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1209,7 +1201,7 @@ class VirtualChassisFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedU return queryset.filter(qs_filter).distinct() -class CableFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class CableFilterSet(PrimaryModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1273,7 +1265,7 @@ class CableFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFil return queryset -class ConnectionFilterSet: +class ConnectionFilterSet(BaseFilterSet): def filter_site(self, queryset, name, value): if not value.strip(): @@ -1286,7 +1278,7 @@ class ConnectionFilterSet: return queryset.filter(**{f'{name}__in': value}) -class ConsoleConnectionFilterSet(ConnectionFilterSet, BaseFilterSet): +class ConsoleConnectionFilterSet(ConnectionFilterSet): site = django_filters.CharFilter( method='filter_site', label='Site (slug)', @@ -1304,7 +1296,7 @@ class ConsoleConnectionFilterSet(ConnectionFilterSet, BaseFilterSet): fields = ['name'] -class PowerConnectionFilterSet(ConnectionFilterSet, BaseFilterSet): +class PowerConnectionFilterSet(ConnectionFilterSet): site = django_filters.CharFilter( method='filter_site', label='Site (slug)', @@ -1322,7 +1314,7 @@ class PowerConnectionFilterSet(ConnectionFilterSet, BaseFilterSet): fields = ['name'] -class InterfaceConnectionFilterSet(ConnectionFilterSet, BaseFilterSet): +class InterfaceConnectionFilterSet(ConnectionFilterSet): site = django_filters.CharFilter( method='filter_site', label='Site (slug)', @@ -1340,7 +1332,7 @@ class InterfaceConnectionFilterSet(ConnectionFilterSet, BaseFilterSet): fields = [] -class PowerPanelFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class PowerPanelFilterSet(PrimaryModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -1402,13 +1394,7 @@ class PowerPanelFilterSet(BaseFilterSet, CustomFieldModelFilterSet, CreatedUpdat return queryset.filter(qs_filter) -class PowerFeedFilterSet( - BaseFilterSet, - CableTerminationFilterSet, - PathEndpointFilterSet, - CustomFieldModelFilterSet, - CreatedUpdatedFilterSet -): +class PowerFeedFilterSet(PrimaryModelFilterSet, CableTerminationFilterSet, PathEndpointFilterSet): q = django_filters.CharFilter( method='search', label='Search', diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 16e909895..ab8475431 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -2153,7 +2153,7 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): ip_choices = [(None, '---------')] # Gather PKs of all interfaces belonging to this Device or a peer VirtualChassis member - interface_ids = self.instance.vc_interfaces().values_list('pk', flat=True) + interface_ids = self.instance.vc_interfaces(if_master=False).values_list('pk', flat=True) # Collect interface IPs interface_ips = IPAddress.objects.filter( diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 2fe7c28e5..ff3da7ca6 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -36,7 +36,7 @@ __all__ = ( # Device Types # -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class Manufacturer(OrganizationalModel): """ A Manufacturer represents a company which produces hardware devices; for example, Juniper or Dell. @@ -320,10 +320,6 @@ class DeviceType(PrimaryModel): if self.rear_image: self.rear_image.delete(save=False) - @property - def display_name(self): - return f'{self.manufacturer.name} {self.model}' - @property def is_parent_device(self): return self.subdevice_role == SubdeviceRoleChoices.ROLE_PARENT @@ -337,7 +333,7 @@ class DeviceType(PrimaryModel): # Devices # -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class DeviceRole(OrganizationalModel): """ Devices are organized by functional role; for example, "Core Switch" or "File Server". Each DeviceRole is assigned a @@ -388,7 +384,7 @@ class DeviceRole(OrganizationalModel): ) -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class Platform(OrganizationalModel): """ Platform refers to the software or firmware running on a Device. For example, "Cisco IOS-XR" or "Juniper Junos". @@ -622,7 +618,13 @@ class Device(PrimaryModel, ConfigContextModel): ) def __str__(self): - return self.display_name or super().__str__() + if self.name: + return self.name + elif self.virtual_chassis: + return f'{self.virtual_chassis.name}:{self.vc_position} ({self.pk})' + elif self.device_type: + return f'{self.device_type.manufacturer} {self.device_type.model} ({self.pk})' + return super().__str__() def get_absolute_url(self): return reverse('dcim:device', args=[self.pk]) @@ -716,7 +718,7 @@ class Device(PrimaryModel, ConfigContextModel): pass # Validate primary IP addresses - vc_interfaces = self.vc_interfaces() + vc_interfaces = self.vc_interfaces(if_master=False) if self.primary_ip4: if self.primary_ip4.family != 4: raise ValidationError({ @@ -823,17 +825,6 @@ class Device(PrimaryModel, ConfigContextModel): self.comments, ) - @property - def display_name(self): - if self.name: - return self.name - elif self.virtual_chassis: - return f'{self.virtual_chassis.name}:{self.vc_position} ({self.pk})' - elif self.device_type: - return f'{self.device_type.manufacturer} {self.device_type.model} ({self.pk})' - else: - return '' # Device has not yet been created - @property def identifier(self): """ @@ -856,9 +847,7 @@ class Device(PrimaryModel, ConfigContextModel): @property def interfaces_count(self): - if self.virtual_chassis and self.virtual_chassis.master == self: - return self.vc_interfaces().count() - return self.interfaces.count() + return self.vc_interfaces().count() def get_vc_master(self): """ @@ -866,7 +855,7 @@ class Device(PrimaryModel, ConfigContextModel): """ return self.virtual_chassis.master if self.virtual_chassis else None - def vc_interfaces(self, if_master=False): + def vc_interfaces(self, if_master=True): """ Return a QuerySet matching all Interfaces assigned to this Device or, if this Device is a VC master, to another Device belonging to the same VirtualChassis. @@ -874,7 +863,7 @@ class Device(PrimaryModel, ConfigContextModel): :param if_master: If True, return VC member interfaces only if this Device is the VC master. """ filter = Q(device=self) - if self.virtual_chassis and (not if_master or self.virtual_chassis.master == self): + if self.virtual_chassis and (self.virtual_chassis.master == self or not if_master): filter |= Q(device__virtual_chassis=self.virtual_chassis, mgmt_only=False) return Interface.objects.filter(filter) diff --git a/netbox/dcim/models/racks.py b/netbox/dcim/models/racks.py index 2869c4265..3c63c1a3c 100644 --- a/netbox/dcim/models/racks.py +++ b/netbox/dcim/models/racks.py @@ -35,7 +35,7 @@ __all__ = ( # Racks # -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class RackRole(OrganizationalModel): """ Racks can be organized by functional role, similar to Devices. @@ -209,7 +209,9 @@ class Rack(PrimaryModel): ) def __str__(self): - return self.display_name or super().__str__() + if self.facility_id: + return f'{self.name} ({self.facility_id})' + return self.name def get_absolute_url(self): return reverse('dcim:rack', args=[self.pk]) @@ -277,12 +279,6 @@ class Rack(PrimaryModel): else: return reversed(range(1, self.u_height + 1)) - @property - def display_name(self): - if self.facility_id: - return f'{self.name} ({self.facility_id})' - return self.name - def get_status_class(self): return RackStatusChoices.CSS_CLASSES.get(self.status) diff --git a/netbox/dcim/models/sites.py b/netbox/dcim/models/sites.py index 225a8e749..1e5165088 100644 --- a/netbox/dcim/models/sites.py +++ b/netbox/dcim/models/sites.py @@ -26,7 +26,7 @@ __all__ = ( # Regions # -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class Region(NestedGroupModel): """ A region represents a geographic collection of sites. For example, you might create regions representing countries, @@ -78,7 +78,7 @@ class Region(NestedGroupModel): # Site groups # -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class SiteGroup(NestedGroupModel): """ A site group is an arbitrary grouping of sites. For example, you might have corporate sites and customer sites; and @@ -285,7 +285,7 @@ class Site(PrimaryModel): # Locations # -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class Location(NestedGroupModel): """ A Location represents a subgroup of Racks and/or Devices within a Site. A Location may represent a building within a diff --git a/netbox/dcim/tables/devices.py b/netbox/dcim/tables/devices.py index 4f7c05c71..5f275f1eb 100644 --- a/netbox/dcim/tables/devices.py +++ b/netbox/dcim/tables/devices.py @@ -520,6 +520,7 @@ class DeviceInterfaceTable(InterfaceTable): 'description', 'mark_connected', 'cable', 'cable_color', 'cable_peer', 'connection', 'tags', 'ip_addresses', 'untagged_vlan', 'tagged_vlans', 'actions', ) + order_by = ('name',) default_columns = ( 'pk', 'name', 'label', 'enabled', 'type', 'parent', 'lag', 'mtu', 'mode', 'description', 'ip_addresses', 'cable', 'connection', 'actions', diff --git a/netbox/dcim/tests/test_api.py b/netbox/dcim/tests/test_api.py index 24130c649..92ffd1207 100644 --- a/netbox/dcim/tests/test_api.py +++ b/netbox/dcim/tests/test_api.py @@ -251,7 +251,7 @@ class RackRoleTest(APIViewTestCases.APIViewTestCase): class RackTest(APIViewTestCases.APIViewTestCase): model = Rack - brief_fields = ['device_count', 'display', 'display_name', 'id', 'name', 'url'] + brief_fields = ['device_count', 'display', 'id', 'name', 'url'] bulk_update_data = { 'status': 'planned', } @@ -422,7 +422,7 @@ class ManufacturerTest(APIViewTestCases.APIViewTestCase): class DeviceTypeTest(APIViewTestCases.APIViewTestCase): model = DeviceType - brief_fields = ['device_count', 'display', 'display_name', 'id', 'manufacturer', 'model', 'slug', 'url'] + brief_fields = ['device_count', 'display', 'id', 'manufacturer', 'model', 'slug', 'url'] bulk_update_data = { 'part_number': 'ABC123', } @@ -870,7 +870,7 @@ class PlatformTest(APIViewTestCases.APIViewTestCase): class DeviceTest(APIViewTestCases.APIViewTestCase): model = Device - brief_fields = ['display', 'display_name', 'id', 'name', 'url'] + brief_fields = ['display', 'id', 'name', 'url'] bulk_update_data = { 'status': 'failed', } diff --git a/netbox/dcim/tests/test_filters.py b/netbox/dcim/tests/test_filtersets.py similarity index 95% rename from netbox/dcim/tests/test_filters.py rename to netbox/dcim/tests/test_filtersets.py index 632a10c46..154ec0847 100644 --- a/netbox/dcim/tests/test_filters.py +++ b/netbox/dcim/tests/test_filtersets.py @@ -2,14 +2,15 @@ from django.contrib.auth.models import User from django.test import TestCase from dcim.choices import * -from dcim.filters import * +from dcim.filtersets import * from dcim.models import * from ipam.models import IPAddress from tenancy.models import Tenant, TenantGroup +from utilities.testing import ChangeLoggedFilterSetTests from virtualization.models import Cluster, ClusterType -class RegionTestCase(TestCase): +class RegionTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Region.objects.all() filterset = RegionFilterSet @@ -35,10 +36,6 @@ class RegionTestCase(TestCase): for region in child_regions: region.save() - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Region 1', 'Region 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -59,7 +56,7 @@ class RegionTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class SiteGroupTestCase(TestCase): +class SiteGroupTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = SiteGroup.objects.all() filterset = SiteGroupFilterSet @@ -85,10 +82,6 @@ class SiteGroupTestCase(TestCase): for sitegroup in child_sitegroups: sitegroup.save() - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Site Group 1', 'Site Group 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -109,7 +102,7 @@ class SiteGroupTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class SiteTestCase(TestCase): +class SiteTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Site.objects.all() filterset = SiteFilterSet @@ -154,10 +147,6 @@ class SiteTestCase(TestCase): ) Site.objects.bulk_create(sites) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Site 1', 'Site 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -227,7 +216,7 @@ class SiteTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class LocationTestCase(TestCase): +class LocationTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Location.objects.all() filterset = LocationFilterSet @@ -273,10 +262,6 @@ class LocationTestCase(TestCase): for location in locations: location.save() - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Location 1', 'Location 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -318,7 +303,7 @@ class LocationTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class RackRoleTestCase(TestCase): +class RackRoleTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = RackRole.objects.all() filterset = RackRoleFilterSet @@ -332,10 +317,6 @@ class RackRoleTestCase(TestCase): ) RackRole.objects.bulk_create(rack_roles) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Rack Role 1', 'Rack Role 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -349,7 +330,7 @@ class RackRoleTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class RackTestCase(TestCase): +class RackTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Rack.objects.all() filterset = RackFilterSet @@ -416,10 +397,6 @@ class RackTestCase(TestCase): ) Rack.objects.bulk_create(racks) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Rack 1', 'Rack 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -523,7 +500,7 @@ class RackTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class RackReservationTestCase(TestCase): +class RackReservationTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = RackReservation.objects.all() filterset = RackReservationFilterSet @@ -581,10 +558,6 @@ class RackReservationTestCase(TestCase): ) RackReservation.objects.bulk_create(reservations) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_site(self): sites = Site.objects.all()[:2] params = {'site_id': [sites[0].pk, sites[1].pk]} @@ -621,7 +594,7 @@ class RackReservationTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class ManufacturerTestCase(TestCase): +class ManufacturerTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Manufacturer.objects.all() filterset = ManufacturerFilterSet @@ -635,10 +608,6 @@ class ManufacturerTestCase(TestCase): ) Manufacturer.objects.bulk_create(manufacturers) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Manufacturer 1', 'Manufacturer 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -652,7 +621,7 @@ class ManufacturerTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class DeviceTypeTestCase(TestCase): +class DeviceTypeTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = DeviceType.objects.all() filterset = DeviceTypeFilterSet @@ -708,10 +677,6 @@ class DeviceTypeTestCase(TestCase): DeviceBayTemplate(device_type=device_types[1], name='Device Bay 2'), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_model(self): params = {'model': ['Model 1', 'Model 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -788,7 +753,7 @@ class DeviceTypeTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class ConsolePortTemplateTestCase(TestCase): +class ConsolePortTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = ConsolePortTemplate.objects.all() filterset = ConsolePortTemplateFilterSet @@ -810,10 +775,6 @@ class ConsolePortTemplateTestCase(TestCase): ConsolePortTemplate(device_type=device_types[2], name='Console Port 3'), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Console Port 1', 'Console Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -824,7 +785,7 @@ class ConsolePortTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class ConsoleServerPortTemplateTestCase(TestCase): +class ConsoleServerPortTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = ConsoleServerPortTemplate.objects.all() filterset = ConsoleServerPortTemplateFilterSet @@ -846,10 +807,6 @@ class ConsoleServerPortTemplateTestCase(TestCase): ConsoleServerPortTemplate(device_type=device_types[2], name='Console Server Port 3'), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Console Server Port 1', 'Console Server Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -860,7 +817,7 @@ class ConsoleServerPortTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class PowerPortTemplateTestCase(TestCase): +class PowerPortTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = PowerPortTemplate.objects.all() filterset = PowerPortTemplateFilterSet @@ -882,10 +839,6 @@ class PowerPortTemplateTestCase(TestCase): PowerPortTemplate(device_type=device_types[2], name='Power Port 3', maximum_draw=300, allocated_draw=150), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Power Port 1', 'Power Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -904,7 +857,7 @@ class PowerPortTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class PowerOutletTemplateTestCase(TestCase): +class PowerOutletTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = PowerOutletTemplate.objects.all() filterset = PowerOutletTemplateFilterSet @@ -926,10 +879,6 @@ class PowerOutletTemplateTestCase(TestCase): PowerOutletTemplate(device_type=device_types[2], name='Power Outlet 3', feed_leg=PowerOutletFeedLegChoices.FEED_LEG_C), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Power Outlet 1', 'Power Outlet 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -944,7 +893,7 @@ class PowerOutletTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class InterfaceTemplateTestCase(TestCase): +class InterfaceTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = InterfaceTemplate.objects.all() filterset = InterfaceTemplateFilterSet @@ -966,10 +915,6 @@ class InterfaceTemplateTestCase(TestCase): InterfaceTemplate(device_type=device_types[2], name='Interface 3', type=InterfaceTypeChoices.TYPE_1GE_SFP, mgmt_only=False), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Interface 1', 'Interface 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -990,7 +935,7 @@ class InterfaceTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class FrontPortTemplateTestCase(TestCase): +class FrontPortTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = FrontPortTemplate.objects.all() filterset = FrontPortTemplateFilterSet @@ -1019,10 +964,6 @@ class FrontPortTemplateTestCase(TestCase): FrontPortTemplate(device_type=device_types[2], name='Front Port 3', rear_port=rear_ports[2], type=PortTypeChoices.TYPE_BNC), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Front Port 1', 'Front Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1037,7 +978,7 @@ class FrontPortTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class RearPortTemplateTestCase(TestCase): +class RearPortTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = RearPortTemplate.objects.all() filterset = RearPortTemplateFilterSet @@ -1059,10 +1000,6 @@ class RearPortTemplateTestCase(TestCase): RearPortTemplate(device_type=device_types[2], name='Rear Port 3', type=PortTypeChoices.TYPE_BNC, positions=3), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Rear Port 1', 'Rear Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1081,7 +1018,7 @@ class RearPortTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class DeviceBayTemplateTestCase(TestCase): +class DeviceBayTemplateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = DeviceBayTemplate.objects.all() filterset = DeviceBayTemplateFilterSet @@ -1103,10 +1040,6 @@ class DeviceBayTemplateTestCase(TestCase): DeviceBayTemplate(device_type=device_types[2], name='Device Bay 3'), )) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Device Bay 1', 'Device Bay 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1117,7 +1050,7 @@ class DeviceBayTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class DeviceRoleTestCase(TestCase): +class DeviceRoleTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = DeviceRole.objects.all() filterset = DeviceRoleFilterSet @@ -1131,10 +1064,6 @@ class DeviceRoleTestCase(TestCase): ) DeviceRole.objects.bulk_create(device_roles) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Device Role 1', 'Device Role 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1154,7 +1083,7 @@ class DeviceRoleTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class PlatformTestCase(TestCase): +class PlatformTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Platform.objects.all() filterset = PlatformFilterSet @@ -1175,10 +1104,6 @@ class PlatformTestCase(TestCase): ) Platform.objects.bulk_create(platforms) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Platform 1', 'Platform 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1203,7 +1128,7 @@ class PlatformTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class DeviceTestCase(TestCase): +class DeviceTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Device.objects.all() filterset = DeviceFilterSet @@ -1356,10 +1281,6 @@ class DeviceTestCase(TestCase): Device.objects.filter(pk=devices[0].pk).update(virtual_chassis=virtual_chassis, vc_position=1, vc_priority=1) Device.objects.filter(pk=devices[1].pk).update(virtual_chassis=virtual_chassis, vc_position=2, vc_priority=2) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Device 1', 'Device 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1549,7 +1470,7 @@ class DeviceTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class ConsolePortTestCase(TestCase): +class ConsolePortTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = ConsolePort.objects.all() filterset = ConsolePortFilterSet @@ -1608,10 +1529,6 @@ class ConsolePortTestCase(TestCase): Cable(termination_a=console_ports[1], termination_b=console_server_ports[1]).save() # Third port is not connected - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Console Port 1', 'Console Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1665,7 +1582,7 @@ class ConsolePortTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class ConsoleServerPortTestCase(TestCase): +class ConsoleServerPortTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = ConsoleServerPort.objects.all() filterset = ConsoleServerPortFilterSet @@ -1724,10 +1641,6 @@ class ConsoleServerPortTestCase(TestCase): Cable(termination_a=console_server_ports[1], termination_b=console_ports[1]).save() # Third port is not connected - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Console Server Port 1', 'Console Server Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1781,7 +1694,7 @@ class ConsoleServerPortTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class PowerPortTestCase(TestCase): +class PowerPortTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = PowerPort.objects.all() filterset = PowerPortFilterSet @@ -1840,10 +1753,6 @@ class PowerPortTestCase(TestCase): Cable(termination_a=power_ports[1], termination_b=power_outlets[1]).save() # Third port is not connected - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Power Port 1', 'Power Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1905,7 +1814,7 @@ class PowerPortTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class PowerOutletTestCase(TestCase): +class PowerOutletTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = PowerOutlet.objects.all() filterset = PowerOutletFilterSet @@ -1964,10 +1873,6 @@ class PowerOutletTestCase(TestCase): Cable(termination_a=power_outlets[1], termination_b=power_ports[1]).save() # Third port is not connected - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Power Outlet 1', 'Power Outlet 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2025,7 +1930,7 @@ class PowerOutletTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class InterfaceTestCase(TestCase): +class InterfaceTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Interface.objects.all() filterset = InterfaceFilterSet @@ -2081,10 +1986,6 @@ class InterfaceTestCase(TestCase): Cable(termination_a=interfaces[1], termination_b=interfaces[4]).save() # Third pair is not connected - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Interface 1', 'Interface 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2200,7 +2101,7 @@ class InterfaceTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class FrontPortTestCase(TestCase): +class FrontPortTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = FrontPort.objects.all() filterset = FrontPortFilterSet @@ -2266,10 +2167,6 @@ class FrontPortTestCase(TestCase): Cable(termination_a=front_ports[1], termination_b=front_ports[4]).save() # Third port is not connected - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Front Port 1', 'Front Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2321,7 +2218,7 @@ class FrontPortTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class RearPortTestCase(TestCase): +class RearPortTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = RearPort.objects.all() filterset = RearPortFilterSet @@ -2377,10 +2274,6 @@ class RearPortTestCase(TestCase): Cable(termination_a=rear_ports[1], termination_b=rear_ports[4]).save() # Third port is not connected - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Rear Port 1', 'Rear Port 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2436,7 +2329,7 @@ class RearPortTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class DeviceBayTestCase(TestCase): +class DeviceBayTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = DeviceBay.objects.all() filterset = DeviceBayFilterSet @@ -2483,10 +2376,6 @@ class DeviceBayTestCase(TestCase): ) DeviceBay.objects.bulk_create(device_bays) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Device Bay 1', 'Device Bay 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2528,7 +2417,7 @@ class DeviceBayTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class InventoryItemTestCase(TestCase): +class InventoryItemTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = InventoryItem.objects.all() filterset = InventoryItemFilterSet @@ -2591,10 +2480,6 @@ class InventoryItemTestCase(TestCase): for i in child_inventory_items: i.save() - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Inventory Item 1', 'Inventory Item 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2666,7 +2551,7 @@ class InventoryItemTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class VirtualChassisTestCase(TestCase): +class VirtualChassisTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = VirtualChassis.objects.all() filterset = VirtualChassisFilterSet @@ -2721,10 +2606,6 @@ class VirtualChassisTestCase(TestCase): Device.objects.filter(pk=devices[3].pk).update(virtual_chassis=virtual_chassis[1]) Device.objects.filter(pk=devices[5].pk).update(virtual_chassis=virtual_chassis[2]) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_domain(self): params = {'domain': ['Domain 1', 'Domain 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2762,7 +2643,7 @@ class VirtualChassisTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class CableTestCase(TestCase): +class CableTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Cable.objects.all() filterset = CableFilterSet @@ -2827,10 +2708,6 @@ class CableTestCase(TestCase): Cable(termination_a=interfaces[9], termination_b=interfaces[10], label='Cable 5', type=CableTypeChoices.TYPE_CAT6, status=CableStatusChoices.STATUS_PLANNED, color='e91e63', length=10, length_unit=CableLengthUnitChoices.UNIT_METER).save() Cable(termination_a=interfaces[11], termination_b=interfaces[0], label='Cable 6', type=CableTypeChoices.TYPE_CAT6, status=CableStatusChoices.STATUS_PLANNED, color='e91e63', length=20, length_unit=CableLengthUnitChoices.UNIT_METER).save() - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_label(self): params = {'label': ['Cable 1', 'Cable 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2886,7 +2763,7 @@ class CableTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class PowerPanelTestCase(TestCase): +class PowerPanelTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = PowerPanel.objects.all() filterset = PowerPanelFilterSet @@ -2931,10 +2808,6 @@ class PowerPanelTestCase(TestCase): ) PowerPanel.objects.bulk_create(power_panels) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Power Panel 1', 'Power Panel 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -2966,7 +2839,7 @@ class PowerPanelTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class PowerFeedTestCase(TestCase): +class PowerFeedTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = PowerFeed.objects.all() filterset = PowerFeedFilterSet @@ -3029,10 +2902,6 @@ class PowerFeedTestCase(TestCase): Cable(termination_a=power_feeds[0], termination_b=power_ports[0]).save() Cable(termination_a=power_feeds[1], termination_b=power_ports[1]).save() - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Power Feed 1', 'Power Feed 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 75d570df9..7082d9e39 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -27,7 +27,7 @@ from utilities.tables import paginate_table from utilities.utils import csv_format, count_related from utilities.views import GetReturnURLMixin, ObjectPermissionRequiredMixin from virtualization.models import VirtualMachine -from . import filters, forms, tables +from . import filtersets, forms, tables from .choices import DeviceFaceChoices from .constants import NONCONNECTABLE_IFACE_TYPES from .models import ( @@ -110,7 +110,7 @@ class RegionListView(generic.ObjectListView): 'site_count', cumulative=True ) - filterset = filters.RegionFilterSet + filterset = filtersets.RegionFilterSet filterset_form = forms.RegionFilterForm table = tables.RegionTable @@ -166,7 +166,7 @@ class RegionBulkEditView(generic.BulkEditView): 'site_count', cumulative=True ) - filterset = filters.RegionFilterSet + filterset = filtersets.RegionFilterSet table = tables.RegionTable form = forms.RegionBulkEditForm @@ -179,7 +179,7 @@ class RegionBulkDeleteView(generic.BulkDeleteView): 'site_count', cumulative=True ) - filterset = filters.RegionFilterSet + filterset = filtersets.RegionFilterSet table = tables.RegionTable @@ -195,7 +195,7 @@ class SiteGroupListView(generic.ObjectListView): 'site_count', cumulative=True ) - filterset = filters.SiteGroupFilterSet + filterset = filtersets.SiteGroupFilterSet filterset_form = forms.SiteGroupFilterForm table = tables.SiteGroupTable @@ -251,7 +251,7 @@ class SiteGroupBulkEditView(generic.BulkEditView): 'site_count', cumulative=True ) - filterset = filters.SiteGroupFilterSet + filterset = filtersets.SiteGroupFilterSet table = tables.SiteGroupTable form = forms.SiteGroupBulkEditForm @@ -264,7 +264,7 @@ class SiteGroupBulkDeleteView(generic.BulkDeleteView): 'site_count', cumulative=True ) - filterset = filters.SiteGroupFilterSet + filterset = filtersets.SiteGroupFilterSet table = tables.SiteGroupTable @@ -274,7 +274,7 @@ class SiteGroupBulkDeleteView(generic.BulkDeleteView): class SiteListView(generic.ObjectListView): queryset = Site.objects.all() - filterset = filters.SiteFilterSet + filterset = filtersets.SiteFilterSet filterset_form = forms.SiteFilterForm table = tables.SiteTable @@ -329,14 +329,14 @@ class SiteBulkImportView(generic.BulkImportView): class SiteBulkEditView(generic.BulkEditView): queryset = Site.objects.prefetch_related('region', 'tenant') - filterset = filters.SiteFilterSet + filterset = filtersets.SiteFilterSet table = tables.SiteTable form = forms.SiteBulkEditForm class SiteBulkDeleteView(generic.BulkDeleteView): queryset = Site.objects.prefetch_related('region', 'tenant') - filterset = filters.SiteFilterSet + filterset = filtersets.SiteFilterSet table = tables.SiteTable @@ -358,7 +358,7 @@ class LocationListView(generic.ObjectListView): 'rack_count', cumulative=True ) - filterset = filters.LocationFilterSet + filterset = filtersets.LocationFilterSet filterset_form = forms.LocationFilterForm table = tables.LocationTable @@ -417,7 +417,7 @@ class LocationBulkEditView(generic.BulkEditView): 'rack_count', cumulative=True ).prefetch_related('site') - filterset = filters.LocationFilterSet + filterset = filtersets.LocationFilterSet table = tables.LocationTable form = forms.LocationBulkEditForm @@ -430,7 +430,7 @@ class LocationBulkDeleteView(generic.BulkDeleteView): 'rack_count', cumulative=True ).prefetch_related('site') - filterset = filters.LocationFilterSet + filterset = filtersets.LocationFilterSet table = tables.LocationTable @@ -481,7 +481,7 @@ class RackRoleBulkEditView(generic.BulkEditView): queryset = RackRole.objects.annotate( rack_count=count_related(Rack, 'role') ) - filterset = filters.RackRoleFilterSet + filterset = filtersets.RackRoleFilterSet table = tables.RackRoleTable form = forms.RackRoleBulkEditForm @@ -503,7 +503,7 @@ class RackListView(generic.ObjectListView): ).annotate( device_count=count_related(Device, 'rack') ) - filterset = filters.RackFilterSet + filterset = filtersets.RackFilterSet filterset_form = forms.RackFilterForm table = tables.RackDetailTable @@ -516,7 +516,7 @@ class RackElevationListView(generic.ObjectListView): def get(self, request): - racks = filters.RackFilterSet(request.GET, self.queryset).qs + racks = filtersets.RackFilterSet(request.GET, self.queryset).qs total_count = racks.count() # Determine ordering @@ -605,14 +605,14 @@ class RackBulkImportView(generic.BulkImportView): class RackBulkEditView(generic.BulkEditView): queryset = Rack.objects.prefetch_related('site', 'location', 'tenant', 'role') - filterset = filters.RackFilterSet + filterset = filtersets.RackFilterSet table = tables.RackTable form = forms.RackBulkEditForm class RackBulkDeleteView(generic.BulkDeleteView): queryset = Rack.objects.prefetch_related('site', 'location', 'tenant', 'role') - filterset = filters.RackFilterSet + filterset = filtersets.RackFilterSet table = tables.RackTable @@ -622,7 +622,7 @@ class RackBulkDeleteView(generic.BulkDeleteView): class RackReservationListView(generic.ObjectListView): queryset = RackReservation.objects.all() - filterset = filters.RackReservationFilterSet + filterset = filtersets.RackReservationFilterSet filterset_form = forms.RackReservationFilterForm table = tables.RackReservationTable @@ -665,14 +665,14 @@ class RackReservationImportView(generic.BulkImportView): class RackReservationBulkEditView(generic.BulkEditView): queryset = RackReservation.objects.prefetch_related('rack', 'user') - filterset = filters.RackReservationFilterSet + filterset = filtersets.RackReservationFilterSet table = tables.RackReservationTable form = forms.RackReservationBulkEditForm class RackReservationBulkDeleteView(generic.BulkDeleteView): queryset = RackReservation.objects.prefetch_related('rack', 'user') - filterset = filters.RackReservationFilterSet + filterset = filtersets.RackReservationFilterSet table = tables.RackReservationTable @@ -695,6 +695,8 @@ class ManufacturerView(generic.ObjectView): def get_extra_context(self, request, instance): devicetypes = DeviceType.objects.restrict(request.user, 'view').filter( manufacturer=instance + ).annotate( + instance_count=count_related(Device, 'device_type') ) devicetypes_table = tables.DeviceTypeTable(devicetypes) @@ -725,7 +727,7 @@ class ManufacturerBulkEditView(generic.BulkEditView): queryset = Manufacturer.objects.annotate( devicetype_count=count_related(DeviceType, 'manufacturer') ) - filterset = filters.ManufacturerFilterSet + filterset = filtersets.ManufacturerFilterSet table = tables.ManufacturerTable form = forms.ManufacturerBulkEditForm @@ -745,7 +747,7 @@ class DeviceTypeListView(generic.ObjectListView): queryset = DeviceType.objects.prefetch_related('manufacturer').annotate( instance_count=count_related(Device, 'device_type') ) - filterset = filters.DeviceTypeFilterSet + filterset = filtersets.DeviceTypeFilterSet filterset_form = forms.DeviceTypeFilterForm table = tables.DeviceTypeTable @@ -851,7 +853,7 @@ class DeviceTypeBulkEditView(generic.BulkEditView): queryset = DeviceType.objects.prefetch_related('manufacturer').annotate( instance_count=count_related(Device, 'device_type') ) - filterset = filters.DeviceTypeFilterSet + filterset = filtersets.DeviceTypeFilterSet table = tables.DeviceTypeTable form = forms.DeviceTypeBulkEditForm @@ -860,7 +862,7 @@ class DeviceTypeBulkDeleteView(generic.BulkDeleteView): queryset = DeviceType.objects.prefetch_related('manufacturer').annotate( instance_count=count_related(Device, 'device_type') ) - filterset = filters.DeviceTypeFilterSet + filterset = filtersets.DeviceTypeFilterSet table = tables.DeviceTypeTable @@ -1193,7 +1195,7 @@ class DeviceRoleBulkEditView(generic.BulkEditView): device_count=count_related(Device, 'device_role'), vm_count=count_related(VirtualMachine, 'role') ) - filterset = filters.DeviceRoleFilterSet + filterset = filtersets.DeviceRoleFilterSet table = tables.DeviceRoleTable form = forms.DeviceRoleBulkEditForm @@ -1252,7 +1254,7 @@ class PlatformBulkImportView(generic.BulkImportView): class PlatformBulkEditView(generic.BulkEditView): queryset = Platform.objects.all() - filterset = filters.PlatformFilterSet + filterset = filtersets.PlatformFilterSet table = tables.PlatformTable form = forms.PlatformBulkEditForm @@ -1268,7 +1270,7 @@ class PlatformBulkDeleteView(generic.BulkDeleteView): class DeviceListView(generic.ObjectListView): queryset = Device.objects.all() - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet filterset_form = forms.DeviceFilterForm table = tables.DeviceTable template_name = 'dcim/device_list.html' @@ -1408,7 +1410,7 @@ class DeviceInterfacesView(generic.ObjectView): template_name = 'dcim/device/interfaces.html' def get_extra_context(self, request, instance): - interfaces = instance.vc_interfaces(if_master=True).restrict(request.user, 'view').prefetch_related( + interfaces = instance.vc_interfaces().restrict(request.user, 'view').prefetch_related( Prefetch('ip_addresses', queryset=IPAddress.objects.restrict(request.user)), Prefetch('member_interfaces', queryset=Interface.objects.restrict(request.user)), 'lag', 'cable', '_path__destination', 'tags', @@ -1530,7 +1532,7 @@ class DeviceLLDPNeighborsView(generic.ObjectView): template_name = 'dcim/device/lldp_neighbors.html' def get_extra_context(self, request, instance): - interfaces = instance.vc_interfaces(if_master=True).restrict(request.user, 'view').prefetch_related( + interfaces = instance.vc_interfaces().restrict(request.user, 'view').prefetch_related( '_path__destination' ).exclude( type__in=NONCONNECTABLE_IFACE_TYPES @@ -1603,14 +1605,14 @@ class ChildDeviceBulkImportView(generic.BulkImportView): class DeviceBulkEditView(generic.BulkEditView): queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer') - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable form = forms.DeviceBulkEditForm class DeviceBulkDeleteView(generic.BulkDeleteView): queryset = Device.objects.prefetch_related('tenant', 'site', 'rack', 'device_role', 'device_type__manufacturer') - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable @@ -1620,7 +1622,7 @@ class DeviceBulkDeleteView(generic.BulkDeleteView): class ConsolePortListView(generic.ObjectListView): queryset = ConsolePort.objects.all() - filterset = filters.ConsolePortFilterSet + filterset = filtersets.ConsolePortFilterSet filterset_form = forms.ConsolePortFilterForm table = tables.ConsolePortTable action_buttons = ('import', 'export') @@ -1655,7 +1657,7 @@ class ConsolePortBulkImportView(generic.BulkImportView): class ConsolePortBulkEditView(generic.BulkEditView): queryset = ConsolePort.objects.all() - filterset = filters.ConsolePortFilterSet + filterset = filtersets.ConsolePortFilterSet table = tables.ConsolePortTable form = forms.ConsolePortBulkEditForm @@ -1670,7 +1672,7 @@ class ConsolePortBulkDisconnectView(BulkDisconnectView): class ConsolePortBulkDeleteView(generic.BulkDeleteView): queryset = ConsolePort.objects.all() - filterset = filters.ConsolePortFilterSet + filterset = filtersets.ConsolePortFilterSet table = tables.ConsolePortTable @@ -1680,7 +1682,7 @@ class ConsolePortBulkDeleteView(generic.BulkDeleteView): class ConsoleServerPortListView(generic.ObjectListView): queryset = ConsoleServerPort.objects.all() - filterset = filters.ConsoleServerPortFilterSet + filterset = filtersets.ConsoleServerPortFilterSet filterset_form = forms.ConsoleServerPortFilterForm table = tables.ConsoleServerPortTable action_buttons = ('import', 'export') @@ -1715,7 +1717,7 @@ class ConsoleServerPortBulkImportView(generic.BulkImportView): class ConsoleServerPortBulkEditView(generic.BulkEditView): queryset = ConsoleServerPort.objects.all() - filterset = filters.ConsoleServerPortFilterSet + filterset = filtersets.ConsoleServerPortFilterSet table = tables.ConsoleServerPortTable form = forms.ConsoleServerPortBulkEditForm @@ -1730,7 +1732,7 @@ class ConsoleServerPortBulkDisconnectView(BulkDisconnectView): class ConsoleServerPortBulkDeleteView(generic.BulkDeleteView): queryset = ConsoleServerPort.objects.all() - filterset = filters.ConsoleServerPortFilterSet + filterset = filtersets.ConsoleServerPortFilterSet table = tables.ConsoleServerPortTable @@ -1740,7 +1742,7 @@ class ConsoleServerPortBulkDeleteView(generic.BulkDeleteView): class PowerPortListView(generic.ObjectListView): queryset = PowerPort.objects.all() - filterset = filters.PowerPortFilterSet + filterset = filtersets.PowerPortFilterSet filterset_form = forms.PowerPortFilterForm table = tables.PowerPortTable action_buttons = ('import', 'export') @@ -1775,7 +1777,7 @@ class PowerPortBulkImportView(generic.BulkImportView): class PowerPortBulkEditView(generic.BulkEditView): queryset = PowerPort.objects.all() - filterset = filters.PowerPortFilterSet + filterset = filtersets.PowerPortFilterSet table = tables.PowerPortTable form = forms.PowerPortBulkEditForm @@ -1790,7 +1792,7 @@ class PowerPortBulkDisconnectView(BulkDisconnectView): class PowerPortBulkDeleteView(generic.BulkDeleteView): queryset = PowerPort.objects.all() - filterset = filters.PowerPortFilterSet + filterset = filtersets.PowerPortFilterSet table = tables.PowerPortTable @@ -1800,7 +1802,7 @@ class PowerPortBulkDeleteView(generic.BulkDeleteView): class PowerOutletListView(generic.ObjectListView): queryset = PowerOutlet.objects.all() - filterset = filters.PowerOutletFilterSet + filterset = filtersets.PowerOutletFilterSet filterset_form = forms.PowerOutletFilterForm table = tables.PowerOutletTable action_buttons = ('import', 'export') @@ -1835,7 +1837,7 @@ class PowerOutletBulkImportView(generic.BulkImportView): class PowerOutletBulkEditView(generic.BulkEditView): queryset = PowerOutlet.objects.all() - filterset = filters.PowerOutletFilterSet + filterset = filtersets.PowerOutletFilterSet table = tables.PowerOutletTable form = forms.PowerOutletBulkEditForm @@ -1850,7 +1852,7 @@ class PowerOutletBulkDisconnectView(BulkDisconnectView): class PowerOutletBulkDeleteView(generic.BulkDeleteView): queryset = PowerOutlet.objects.all() - filterset = filters.PowerOutletFilterSet + filterset = filtersets.PowerOutletFilterSet table = tables.PowerOutletTable @@ -1860,7 +1862,7 @@ class PowerOutletBulkDeleteView(generic.BulkDeleteView): class InterfaceListView(generic.ObjectListView): queryset = Interface.objects.all() - filterset = filters.InterfaceFilterSet + filterset = filtersets.InterfaceFilterSet filterset_form = forms.InterfaceFilterForm table = tables.InterfaceTable action_buttons = ('import', 'export') @@ -1997,7 +1999,7 @@ class InterfaceBulkImportView(generic.BulkImportView): class InterfaceBulkEditView(generic.BulkEditView): queryset = Interface.objects.all() - filterset = filters.InterfaceFilterSet + filterset = filtersets.InterfaceFilterSet table = tables.InterfaceTable form = forms.InterfaceBulkEditForm @@ -2012,7 +2014,7 @@ class InterfaceBulkDisconnectView(BulkDisconnectView): class InterfaceBulkDeleteView(generic.BulkDeleteView): queryset = Interface.objects.all() - filterset = filters.InterfaceFilterSet + filterset = filtersets.InterfaceFilterSet table = tables.InterfaceTable @@ -2022,7 +2024,7 @@ class InterfaceBulkDeleteView(generic.BulkDeleteView): class FrontPortListView(generic.ObjectListView): queryset = FrontPort.objects.all() - filterset = filters.FrontPortFilterSet + filterset = filtersets.FrontPortFilterSet filterset_form = forms.FrontPortFilterForm table = tables.FrontPortTable action_buttons = ('import', 'export') @@ -2057,7 +2059,7 @@ class FrontPortBulkImportView(generic.BulkImportView): class FrontPortBulkEditView(generic.BulkEditView): queryset = FrontPort.objects.all() - filterset = filters.FrontPortFilterSet + filterset = filtersets.FrontPortFilterSet table = tables.FrontPortTable form = forms.FrontPortBulkEditForm @@ -2072,7 +2074,7 @@ class FrontPortBulkDisconnectView(BulkDisconnectView): class FrontPortBulkDeleteView(generic.BulkDeleteView): queryset = FrontPort.objects.all() - filterset = filters.FrontPortFilterSet + filterset = filtersets.FrontPortFilterSet table = tables.FrontPortTable @@ -2082,7 +2084,7 @@ class FrontPortBulkDeleteView(generic.BulkDeleteView): class RearPortListView(generic.ObjectListView): queryset = RearPort.objects.all() - filterset = filters.RearPortFilterSet + filterset = filtersets.RearPortFilterSet filterset_form = forms.RearPortFilterForm table = tables.RearPortTable action_buttons = ('import', 'export') @@ -2117,7 +2119,7 @@ class RearPortBulkImportView(generic.BulkImportView): class RearPortBulkEditView(generic.BulkEditView): queryset = RearPort.objects.all() - filterset = filters.RearPortFilterSet + filterset = filtersets.RearPortFilterSet table = tables.RearPortTable form = forms.RearPortBulkEditForm @@ -2132,7 +2134,7 @@ class RearPortBulkDisconnectView(BulkDisconnectView): class RearPortBulkDeleteView(generic.BulkDeleteView): queryset = RearPort.objects.all() - filterset = filters.RearPortFilterSet + filterset = filtersets.RearPortFilterSet table = tables.RearPortTable @@ -2142,7 +2144,7 @@ class RearPortBulkDeleteView(generic.BulkDeleteView): class DeviceBayListView(generic.ObjectListView): queryset = DeviceBay.objects.all() - filterset = filters.DeviceBayFilterSet + filterset = filtersets.DeviceBayFilterSet filterset_form = forms.DeviceBayFilterForm table = tables.DeviceBayTable action_buttons = ('import', 'export') @@ -2242,7 +2244,7 @@ class DeviceBayBulkImportView(generic.BulkImportView): class DeviceBayBulkEditView(generic.BulkEditView): queryset = DeviceBay.objects.all() - filterset = filters.DeviceBayFilterSet + filterset = filtersets.DeviceBayFilterSet table = tables.DeviceBayTable form = forms.DeviceBayBulkEditForm @@ -2253,7 +2255,7 @@ class DeviceBayBulkRenameView(generic.BulkRenameView): class DeviceBayBulkDeleteView(generic.BulkDeleteView): queryset = DeviceBay.objects.all() - filterset = filters.DeviceBayFilterSet + filterset = filtersets.DeviceBayFilterSet table = tables.DeviceBayTable @@ -2263,7 +2265,7 @@ class DeviceBayBulkDeleteView(generic.BulkDeleteView): class InventoryItemListView(generic.ObjectListView): queryset = InventoryItem.objects.all() - filterset = filters.InventoryItemFilterSet + filterset = filtersets.InventoryItemFilterSet filterset_form = forms.InventoryItemFilterForm table = tables.InventoryItemTable action_buttons = ('import', 'export') @@ -2297,7 +2299,7 @@ class InventoryItemBulkImportView(generic.BulkImportView): class InventoryItemBulkEditView(generic.BulkEditView): queryset = InventoryItem.objects.prefetch_related('device', 'manufacturer') - filterset = filters.InventoryItemFilterSet + filterset = filtersets.InventoryItemFilterSet table = tables.InventoryItemTable form = forms.InventoryItemBulkEditForm @@ -2322,7 +2324,7 @@ class DeviceBulkAddConsolePortView(generic.BulkComponentCreateView): form = forms.ConsolePortBulkCreateForm queryset = ConsolePort.objects.all() model_form = forms.ConsolePortForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2333,7 +2335,7 @@ class DeviceBulkAddConsoleServerPortView(generic.BulkComponentCreateView): form = forms.ConsoleServerPortBulkCreateForm queryset = ConsoleServerPort.objects.all() model_form = forms.ConsoleServerPortForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2344,7 +2346,7 @@ class DeviceBulkAddPowerPortView(generic.BulkComponentCreateView): form = forms.PowerPortBulkCreateForm queryset = PowerPort.objects.all() model_form = forms.PowerPortForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2355,7 +2357,7 @@ class DeviceBulkAddPowerOutletView(generic.BulkComponentCreateView): form = forms.PowerOutletBulkCreateForm queryset = PowerOutlet.objects.all() model_form = forms.PowerOutletForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2366,7 +2368,7 @@ class DeviceBulkAddInterfaceView(generic.BulkComponentCreateView): form = forms.InterfaceBulkCreateForm queryset = Interface.objects.all() model_form = forms.InterfaceForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2377,7 +2379,7 @@ class DeviceBulkAddInterfaceView(generic.BulkComponentCreateView): # form = forms.FrontPortBulkCreateForm # queryset = FrontPort.objects.all() # model_form = forms.FrontPortForm -# filterset = filters.DeviceFilterSet +# filterset = filtersets.DeviceFilterSet # table = tables.DeviceTable # default_return_url = 'dcim:device_list' @@ -2388,7 +2390,7 @@ class DeviceBulkAddRearPortView(generic.BulkComponentCreateView): form = forms.RearPortBulkCreateForm queryset = RearPort.objects.all() model_form = forms.RearPortForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2399,7 +2401,7 @@ class DeviceBulkAddDeviceBayView(generic.BulkComponentCreateView): form = forms.DeviceBayBulkCreateForm queryset = DeviceBay.objects.all() model_form = forms.DeviceBayForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2410,7 +2412,7 @@ class DeviceBulkAddInventoryItemView(generic.BulkComponentCreateView): form = forms.InventoryItemBulkCreateForm queryset = InventoryItem.objects.all() model_form = forms.InventoryItemForm - filterset = filters.DeviceFilterSet + filterset = filtersets.DeviceFilterSet table = tables.DeviceTable default_return_url = 'dcim:device_list' @@ -2421,7 +2423,7 @@ class DeviceBulkAddInventoryItemView(generic.BulkComponentCreateView): class CableListView(generic.ObjectListView): queryset = Cable.objects.all() - filterset = filters.CableFilterSet + filterset = filtersets.CableFilterSet filterset_form = forms.CableFilterForm table = tables.CableTable action_buttons = ('import', 'export') @@ -2554,14 +2556,14 @@ class CableBulkImportView(generic.BulkImportView): class CableBulkEditView(generic.BulkEditView): queryset = Cable.objects.prefetch_related('termination_a', 'termination_b') - filterset = filters.CableFilterSet + filterset = filtersets.CableFilterSet table = tables.CableTable form = forms.CableBulkEditForm class CableBulkDeleteView(generic.BulkDeleteView): queryset = Cable.objects.prefetch_related('termination_a', 'termination_b') - filterset = filters.CableFilterSet + filterset = filtersets.CableFilterSet table = tables.CableTable @@ -2571,7 +2573,7 @@ class CableBulkDeleteView(generic.BulkDeleteView): class ConsoleConnectionsListView(generic.ObjectListView): queryset = ConsolePort.objects.filter(_path__isnull=False).order_by('device') - filterset = filters.ConsoleConnectionFilterSet + filterset = filtersets.ConsoleConnectionFilterSet filterset_form = forms.ConsoleConnectionFilterForm table = tables.ConsoleConnectionTable template_name = 'dcim/connections_list.html' @@ -2601,7 +2603,7 @@ class ConsoleConnectionsListView(generic.ObjectListView): class PowerConnectionsListView(generic.ObjectListView): queryset = PowerPort.objects.filter(_path__isnull=False).order_by('device') - filterset = filters.PowerConnectionFilterSet + filterset = filtersets.PowerConnectionFilterSet filterset_form = forms.PowerConnectionFilterForm table = tables.PowerConnectionTable template_name = 'dcim/connections_list.html' @@ -2635,7 +2637,7 @@ class InterfaceConnectionsListView(generic.ObjectListView): _path__isnull=False, pk__lt=F('_path__destination_id') ).order_by('device') - filterset = filters.InterfaceConnectionFilterSet + filterset = filtersets.InterfaceConnectionFilterSet filterset_form = forms.InterfaceConnectionFilterForm table = tables.InterfaceConnectionTable template_name = 'dcim/connections_list.html' @@ -2674,7 +2676,7 @@ class VirtualChassisListView(generic.ObjectListView): member_count=count_related(Device, 'virtual_chassis') ) table = tables.VirtualChassisTable - filterset = filters.VirtualChassisFilterSet + filterset = filtersets.VirtualChassisFilterSet filterset_form = forms.VirtualChassisFilterForm @@ -2882,14 +2884,14 @@ class VirtualChassisBulkImportView(generic.BulkImportView): class VirtualChassisBulkEditView(generic.BulkEditView): queryset = VirtualChassis.objects.all() - filterset = filters.VirtualChassisFilterSet + filterset = filtersets.VirtualChassisFilterSet table = tables.VirtualChassisTable form = forms.VirtualChassisBulkEditForm class VirtualChassisBulkDeleteView(generic.BulkDeleteView): queryset = VirtualChassis.objects.all() - filterset = filters.VirtualChassisFilterSet + filterset = filtersets.VirtualChassisFilterSet table = tables.VirtualChassisTable @@ -2903,7 +2905,7 @@ class PowerPanelListView(generic.ObjectListView): ).annotate( powerfeed_count=count_related(PowerFeed, 'power_panel') ) - filterset = filters.PowerPanelFilterSet + filterset = filtersets.PowerPanelFilterSet filterset_form = forms.PowerPanelFilterForm table = tables.PowerPanelTable @@ -2943,7 +2945,7 @@ class PowerPanelBulkImportView(generic.BulkImportView): class PowerPanelBulkEditView(generic.BulkEditView): queryset = PowerPanel.objects.prefetch_related('site', 'location') - filterset = filters.PowerPanelFilterSet + filterset = filtersets.PowerPanelFilterSet table = tables.PowerPanelTable form = forms.PowerPanelBulkEditForm @@ -2954,7 +2956,7 @@ class PowerPanelBulkDeleteView(generic.BulkDeleteView): ).annotate( powerfeed_count=count_related(PowerFeed, 'power_panel') ) - filterset = filters.PowerPanelFilterSet + filterset = filtersets.PowerPanelFilterSet table = tables.PowerPanelTable @@ -2964,7 +2966,7 @@ class PowerPanelBulkDeleteView(generic.BulkDeleteView): class PowerFeedListView(generic.ObjectListView): queryset = PowerFeed.objects.all() - filterset = filters.PowerFeedFilterSet + filterset = filtersets.PowerFeedFilterSet filterset_form = forms.PowerFeedFilterForm table = tables.PowerFeedTable @@ -2990,7 +2992,7 @@ class PowerFeedBulkImportView(generic.BulkImportView): class PowerFeedBulkEditView(generic.BulkEditView): queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') - filterset = filters.PowerFeedFilterSet + filterset = filtersets.PowerFeedFilterSet table = tables.PowerFeedTable form = forms.PowerFeedBulkEditForm @@ -3001,5 +3003,5 @@ class PowerFeedBulkDisconnectView(BulkDisconnectView): class PowerFeedBulkDeleteView(generic.BulkDeleteView): queryset = PowerFeed.objects.prefetch_related('power_panel', 'rack') - filterset = filters.PowerFeedFilterSet + filterset = filtersets.PowerFeedFilterSet table = tables.PowerFeedTable diff --git a/netbox/extras/api/serializers.py b/netbox/extras/api/serializers.py index 66627bfbc..536df1c75 100644 --- a/netbox/extras/api/serializers.py +++ b/netbox/extras/api/serializers.py @@ -453,12 +453,7 @@ class ObjectChangeSerializer(BaseModelSerializer): class ContentTypeSerializer(BaseModelSerializer): url = serializers.HyperlinkedIdentityField(view_name='extras-api:contenttype-detail') - display_name = serializers.SerializerMethodField() class Meta: model = ContentType - fields = ['id', 'url', 'display', 'app_label', 'model', 'display_name'] - - @swagger_serializer_method(serializer_or_field=serializers.CharField) - def get_display_name(self, obj): - return obj.app_labeled_name + fields = ['id', 'url', 'display', 'app_label', 'model'] diff --git a/netbox/extras/api/views.py b/netbox/extras/api/views.py index cee5146a6..7e6c97782 100644 --- a/netbox/extras/api/views.py +++ b/netbox/extras/api/views.py @@ -9,7 +9,7 @@ from rest_framework.routers import APIRootView from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet from rq import Worker -from extras import filters +from extras import filtersets from extras.choices import JobResultStatusChoices from extras.models import * from extras.models import CustomField @@ -61,7 +61,7 @@ class WebhookViewSet(ModelViewSet): metadata_class = ContentTypeMetadata queryset = Webhook.objects.all() serializer_class = serializers.WebhookSerializer - filterset_class = filters.WebhookFilterSet + filterset_class = filtersets.WebhookFilterSet # @@ -72,7 +72,7 @@ class CustomFieldViewSet(ModelViewSet): metadata_class = ContentTypeMetadata queryset = CustomField.objects.all() serializer_class = serializers.CustomFieldSerializer - filterset_class = filters.CustomFieldFilterSet + filterset_class = filtersets.CustomFieldFilterSet class CustomFieldModelViewSet(ModelViewSet): @@ -101,7 +101,7 @@ class CustomLinkViewSet(ModelViewSet): metadata_class = ContentTypeMetadata queryset = CustomLink.objects.all() serializer_class = serializers.CustomLinkSerializer - filterset_class = filters.CustomLinkFilterSet + filterset_class = filtersets.CustomLinkFilterSet # @@ -112,7 +112,7 @@ class ExportTemplateViewSet(ModelViewSet): metadata_class = ContentTypeMetadata queryset = ExportTemplate.objects.all() serializer_class = serializers.ExportTemplateSerializer - filterset_class = filters.ExportTemplateFilterSet + filterset_class = filtersets.ExportTemplateFilterSet # @@ -124,7 +124,7 @@ class TagViewSet(ModelViewSet): tagged_items=count_related(TaggedItem, 'tag') ) serializer_class = serializers.TagSerializer - filterset_class = filters.TagFilterSet + filterset_class = filtersets.TagFilterSet # @@ -135,7 +135,7 @@ class ImageAttachmentViewSet(ModelViewSet): metadata_class = ContentTypeMetadata queryset = ImageAttachment.objects.all() serializer_class = serializers.ImageAttachmentSerializer - filterset_class = filters.ImageAttachmentFilterSet + filterset_class = filtersets.ImageAttachmentFilterSet # @@ -146,7 +146,7 @@ class JournalEntryViewSet(ModelViewSet): metadata_class = ContentTypeMetadata queryset = JournalEntry.objects.all() serializer_class = serializers.JournalEntrySerializer - filterset_class = filters.JournalEntryFilterSet + filterset_class = filtersets.JournalEntryFilterSet # @@ -158,7 +158,7 @@ class ConfigContextViewSet(ModelViewSet): 'regions', 'site_groups', 'sites', 'roles', 'platforms', 'tenant_groups', 'tenants', ) serializer_class = serializers.ConfigContextSerializer - filterset_class = filters.ConfigContextFilterSet + filterset_class = filtersets.ConfigContextFilterSet # @@ -358,7 +358,7 @@ class ObjectChangeViewSet(ReadOnlyModelViewSet): metadata_class = ContentTypeMetadata queryset = ObjectChange.objects.prefetch_related('user') serializer_class = serializers.ObjectChangeSerializer - filterset_class = filters.ObjectChangeFilterSet + filterset_class = filtersets.ObjectChangeFilterSet # @@ -371,7 +371,7 @@ class JobResultViewSet(ReadOnlyModelViewSet): """ queryset = JobResult.objects.prefetch_related('user') serializer_class = serializers.JobResultSerializer - filterset_class = filters.JobResultFilterSet + filterset_class = filtersets.JobResultFilterSet # @@ -384,4 +384,4 @@ class ContentTypeViewSet(ReadOnlyModelViewSet): """ queryset = ContentType.objects.order_by('app_label', 'model') serializer_class = serializers.ContentTypeSerializer - filterset_class = filters.ContentTypeFilterSet + filterset_class = filtersets.ContentTypeFilterSet diff --git a/netbox/extras/filters.py b/netbox/extras/filters.py index aacdbda6b..aef2046fd 100644 --- a/netbox/extras/filters.py +++ b/netbox/extras/filters.py @@ -1,31 +1,12 @@ import django_filters -from django.contrib.auth.models import User -from django.contrib.contenttypes.models import ContentType -from django.db.models import Q from django.forms import DateField, IntegerField, NullBooleanField -from dcim.models import DeviceRole, DeviceType, Platform, Region, Site, SiteGroup -from tenancy.models import Tenant, TenantGroup -from utilities.filters import BaseFilterSet, ContentTypeFilter -from virtualization.models import Cluster, ClusterGroup +from .models import Tag from .choices import * -from .models import * - __all__ = ( - 'ConfigContextFilterSet', - 'ContentTypeFilterSet', - 'CreatedUpdatedFilterSet', 'CustomFieldFilter', - 'CustomLinkFilterSet', - 'CustomFieldModelFilterSet', - 'ExportTemplateFilterSet', - 'ImageAttachmentFilterSet', - 'JournalEntryFilterSet', - 'LocalConfigContextFilterSet', - 'ObjectChangeFilterSet', - 'TagFilterSet', - 'WebhookFilterSet', + 'TagFilter', ) EXACT_FILTER_TYPES = ( @@ -36,41 +17,6 @@ EXACT_FILTER_TYPES = ( ) -class CreatedUpdatedFilterSet(django_filters.FilterSet): - created = django_filters.DateFilter() - created__gte = django_filters.DateFilter( - field_name='created', - lookup_expr='gte' - ) - created__lte = django_filters.DateFilter( - field_name='created', - lookup_expr='lte' - ) - last_updated = django_filters.DateTimeFilter() - last_updated__gte = django_filters.DateTimeFilter( - field_name='last_updated', - lookup_expr='gte' - ) - last_updated__lte = django_filters.DateTimeFilter( - field_name='last_updated', - lookup_expr='lte' - ) - - -class WebhookFilterSet(BaseFilterSet): - content_types = ContentTypeFilter() - http_method = django_filters.MultipleChoiceFilter( - choices=WebhookHttpMethodChoices - ) - - class Meta: - model = Webhook - fields = [ - 'id', 'content_types', 'name', 'type_create', 'type_update', 'type_delete', 'payload_url', 'enabled', - 'http_method', 'http_content_type', 'secret', 'ssl_verification', 'ca_file_path', - ] - - class CustomFieldFilter(django_filters.Filter): """ Filter objects by the presence of a CustomFieldValue. The filter's name is used as the CustomField name. @@ -94,310 +40,16 @@ class CustomFieldFilter(django_filters.Filter): self.lookup_expr = 'icontains' -class CustomFieldModelFilterSet(django_filters.FilterSet): +class TagFilter(django_filters.ModelMultipleChoiceFilter): """ - Dynamically add a Filter for each CustomField applicable to the parent model. + Match on one or more assigned tags. If multiple tags are specified (e.g. ?tag=foo&tag=bar), the queryset is filtered + to objects matching all tags. """ def __init__(self, *args, **kwargs): + + kwargs.setdefault('field_name', 'tags__slug') + kwargs.setdefault('to_field_name', 'slug') + kwargs.setdefault('conjoined', True) + kwargs.setdefault('queryset', Tag.objects.all()) + super().__init__(*args, **kwargs) - - custom_fields = CustomField.objects.filter( - content_types=ContentType.objects.get_for_model(self._meta.model) - ).exclude( - filter_logic=CustomFieldFilterLogicChoices.FILTER_DISABLED - ) - for cf in custom_fields: - self.filters['cf_{}'.format(cf.name)] = CustomFieldFilter(field_name=cf.name, custom_field=cf) - - -class CustomFieldFilterSet(django_filters.FilterSet): - content_types = ContentTypeFilter() - - class Meta: - model = CustomField - fields = ['id', 'content_types', 'name', 'required', 'filter_logic', 'weight'] - - -class CustomLinkFilterSet(BaseFilterSet): - - class Meta: - model = CustomLink - fields = ['id', 'content_type', 'name', 'link_text', 'link_url', 'weight', 'group_name', 'new_window'] - - -class ExportTemplateFilterSet(BaseFilterSet): - - class Meta: - model = ExportTemplate - fields = ['id', 'content_type', 'name'] - - -class ImageAttachmentFilterSet(BaseFilterSet): - content_type = ContentTypeFilter() - - class Meta: - model = ImageAttachment - fields = ['id', 'content_type_id', 'object_id', 'name'] - - -class JournalEntryFilterSet(BaseFilterSet, CreatedUpdatedFilterSet): - q = django_filters.CharFilter( - method='search', - label='Search', - ) - created = django_filters.DateTimeFromToRangeFilter() - assigned_object_type = ContentTypeFilter() - created_by_id = django_filters.ModelMultipleChoiceFilter( - queryset=User.objects.all(), - label='User (ID)', - ) - created_by = django_filters.ModelMultipleChoiceFilter( - field_name='created_by__username', - queryset=User.objects.all(), - to_field_name='username', - label='User (name)', - ) - kind = django_filters.MultipleChoiceFilter( - choices=JournalEntryKindChoices - ) - - class Meta: - model = JournalEntry - fields = ['id', 'assigned_object_type_id', 'assigned_object_id', 'created', 'kind'] - - def search(self, queryset, name, value): - if not value.strip(): - return queryset - return queryset.filter(comments__icontains=value) - - -class TagFilterSet(BaseFilterSet, CreatedUpdatedFilterSet): - q = django_filters.CharFilter( - method='search', - label='Search', - ) - - class Meta: - model = Tag - fields = ['id', 'name', 'slug', 'color'] - - def search(self, queryset, name, value): - if not value.strip(): - return queryset - return queryset.filter( - Q(name__icontains=value) | - Q(slug__icontains=value) - ) - - -class ConfigContextFilterSet(BaseFilterSet, CreatedUpdatedFilterSet): - q = django_filters.CharFilter( - method='search', - label='Search', - ) - region_id = django_filters.ModelMultipleChoiceFilter( - field_name='regions', - queryset=Region.objects.all(), - label='Region', - ) - region = django_filters.ModelMultipleChoiceFilter( - field_name='regions__slug', - queryset=Region.objects.all(), - to_field_name='slug', - label='Region (slug)', - ) - site_group = django_filters.ModelMultipleChoiceFilter( - field_name='site_groups__slug', - queryset=SiteGroup.objects.all(), - to_field_name='slug', - label='Site group (slug)', - ) - site_group_id = django_filters.ModelMultipleChoiceFilter( - field_name='site_groups', - queryset=SiteGroup.objects.all(), - label='Site group', - ) - site_id = django_filters.ModelMultipleChoiceFilter( - field_name='sites', - queryset=Site.objects.all(), - label='Site', - ) - site = django_filters.ModelMultipleChoiceFilter( - field_name='sites__slug', - queryset=Site.objects.all(), - to_field_name='slug', - label='Site (slug)', - ) - device_type_id = django_filters.ModelMultipleChoiceFilter( - field_name='device_types', - queryset=DeviceType.objects.all(), - label='Device type', - ) - role_id = django_filters.ModelMultipleChoiceFilter( - field_name='roles', - queryset=DeviceRole.objects.all(), - label='Role', - ) - role = django_filters.ModelMultipleChoiceFilter( - field_name='roles__slug', - queryset=DeviceRole.objects.all(), - to_field_name='slug', - label='Role (slug)', - ) - platform_id = django_filters.ModelMultipleChoiceFilter( - field_name='platforms', - queryset=Platform.objects.all(), - label='Platform', - ) - platform = django_filters.ModelMultipleChoiceFilter( - field_name='platforms__slug', - queryset=Platform.objects.all(), - to_field_name='slug', - label='Platform (slug)', - ) - cluster_group_id = django_filters.ModelMultipleChoiceFilter( - field_name='cluster_groups', - queryset=ClusterGroup.objects.all(), - label='Cluster group', - ) - cluster_group = django_filters.ModelMultipleChoiceFilter( - field_name='cluster_groups__slug', - queryset=ClusterGroup.objects.all(), - to_field_name='slug', - label='Cluster group (slug)', - ) - cluster_id = django_filters.ModelMultipleChoiceFilter( - field_name='clusters', - queryset=Cluster.objects.all(), - label='Cluster', - ) - tenant_group_id = django_filters.ModelMultipleChoiceFilter( - field_name='tenant_groups', - queryset=TenantGroup.objects.all(), - label='Tenant group', - ) - tenant_group = django_filters.ModelMultipleChoiceFilter( - field_name='tenant_groups__slug', - queryset=TenantGroup.objects.all(), - to_field_name='slug', - label='Tenant group (slug)', - ) - tenant_id = django_filters.ModelMultipleChoiceFilter( - field_name='tenants', - queryset=Tenant.objects.all(), - label='Tenant', - ) - tenant = django_filters.ModelMultipleChoiceFilter( - field_name='tenants__slug', - queryset=Tenant.objects.all(), - to_field_name='slug', - label='Tenant (slug)', - ) - tag = django_filters.ModelMultipleChoiceFilter( - field_name='tags__slug', - queryset=Tag.objects.all(), - to_field_name='slug', - label='Tag (slug)', - ) - - class Meta: - model = ConfigContext - fields = ['id', 'name', 'is_active'] - - def search(self, queryset, name, value): - if not value.strip(): - return queryset - return queryset.filter( - Q(name__icontains=value) | - Q(description__icontains=value) | - Q(data__icontains=value) - ) - - -# -# Filter for Local Config Context Data -# - -class LocalConfigContextFilterSet(django_filters.FilterSet): - local_context_data = django_filters.BooleanFilter( - method='_local_context_data', - label='Has local config context data', - ) - - def _local_context_data(self, queryset, name, value): - return queryset.exclude(local_context_data__isnull=value) - - -class ObjectChangeFilterSet(BaseFilterSet): - q = django_filters.CharFilter( - method='search', - label='Search', - ) - time = django_filters.DateTimeFromToRangeFilter() - changed_object_type = ContentTypeFilter() - user_id = django_filters.ModelMultipleChoiceFilter( - queryset=User.objects.all(), - label='User (ID)', - ) - user = django_filters.ModelMultipleChoiceFilter( - field_name='user__username', - queryset=User.objects.all(), - to_field_name='username', - label='User name', - ) - - class Meta: - model = ObjectChange - fields = [ - 'id', 'user', 'user_name', 'request_id', 'action', 'changed_object_type_id', 'changed_object_id', - 'object_repr', - ] - - def search(self, queryset, name, value): - if not value.strip(): - return queryset - return queryset.filter( - Q(user_name__icontains=value) | - Q(object_repr__icontains=value) - ) - - -# -# Job Results -# - -class JobResultFilterSet(BaseFilterSet): - q = django_filters.CharFilter( - method='search', - label='Search', - ) - created = django_filters.DateTimeFilter() - completed = django_filters.DateTimeFilter() - status = django_filters.MultipleChoiceFilter( - choices=JobResultStatusChoices, - null_value=None - ) - - class Meta: - model = JobResult - fields = [ - 'id', 'created', 'completed', 'status', 'user', 'obj_type', 'name' - ] - - def search(self, queryset, name, value): - if not value.strip(): - return queryset - return queryset.filter( - Q(user__username__icontains=value) - ) - - -# -# ContentTypes -# - -class ContentTypeFilterSet(django_filters.FilterSet): - - class Meta: - model = ContentType - fields = ['id', 'app_label', 'model'] diff --git a/netbox/extras/filtersets.py b/netbox/extras/filtersets.py new file mode 100644 index 000000000..92c0dc9a6 --- /dev/null +++ b/netbox/extras/filtersets.py @@ -0,0 +1,341 @@ +import django_filters +from django.contrib.auth.models import User +from django.contrib.contenttypes.models import ContentType +from django.db.models import Q + +from dcim.models import DeviceRole, DeviceType, Platform, Region, Site, SiteGroup +from netbox.filtersets import BaseFilterSet, ChangeLoggedModelFilterSet +from tenancy.models import Tenant, TenantGroup +from utilities.filters import ContentTypeFilter +from virtualization.models import Cluster, ClusterGroup +from .choices import * +from .models import * + + +__all__ = ( + 'ConfigContextFilterSet', + 'ContentTypeFilterSet', + 'CustomLinkFilterSet', + 'ExportTemplateFilterSet', + 'ImageAttachmentFilterSet', + 'JournalEntryFilterSet', + 'LocalConfigContextFilterSet', + 'ObjectChangeFilterSet', + 'TagFilterSet', + 'WebhookFilterSet', +) + +EXACT_FILTER_TYPES = ( + CustomFieldTypeChoices.TYPE_BOOLEAN, + CustomFieldTypeChoices.TYPE_DATE, + CustomFieldTypeChoices.TYPE_INTEGER, + CustomFieldTypeChoices.TYPE_SELECT, +) + + +class WebhookFilterSet(BaseFilterSet): + content_types = ContentTypeFilter() + http_method = django_filters.MultipleChoiceFilter( + choices=WebhookHttpMethodChoices + ) + + class Meta: + model = Webhook + fields = [ + 'id', 'content_types', 'name', 'type_create', 'type_update', 'type_delete', 'payload_url', 'enabled', + 'http_method', 'http_content_type', 'secret', 'ssl_verification', 'ca_file_path', + ] + + +class CustomFieldFilterSet(django_filters.FilterSet): + content_types = ContentTypeFilter() + + class Meta: + model = CustomField + fields = ['id', 'content_types', 'name', 'required', 'filter_logic', 'weight'] + + +class CustomLinkFilterSet(BaseFilterSet): + + class Meta: + model = CustomLink + fields = ['id', 'content_type', 'name', 'link_text', 'link_url', 'weight', 'group_name', 'new_window'] + + +class ExportTemplateFilterSet(BaseFilterSet): + + class Meta: + model = ExportTemplate + fields = ['id', 'content_type', 'name'] + + +class ImageAttachmentFilterSet(BaseFilterSet): + created = django_filters.DateTimeFilter() + content_type = ContentTypeFilter() + + class Meta: + model = ImageAttachment + fields = ['id', 'content_type_id', 'object_id', 'name'] + + +class JournalEntryFilterSet(ChangeLoggedModelFilterSet): + q = django_filters.CharFilter( + method='search', + label='Search', + ) + created = django_filters.DateTimeFromToRangeFilter() + assigned_object_type = ContentTypeFilter() + created_by_id = django_filters.ModelMultipleChoiceFilter( + queryset=User.objects.all(), + label='User (ID)', + ) + created_by = django_filters.ModelMultipleChoiceFilter( + field_name='created_by__username', + queryset=User.objects.all(), + to_field_name='username', + label='User (name)', + ) + kind = django_filters.MultipleChoiceFilter( + choices=JournalEntryKindChoices + ) + + class Meta: + model = JournalEntry + fields = ['id', 'assigned_object_type_id', 'assigned_object_id', 'created', 'kind'] + + def search(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter(comments__icontains=value) + + +class TagFilterSet(ChangeLoggedModelFilterSet): + q = django_filters.CharFilter( + method='search', + label='Search', + ) + + class Meta: + model = Tag + fields = ['id', 'name', 'slug', 'color'] + + def search(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter( + Q(name__icontains=value) | + Q(slug__icontains=value) + ) + + +class ConfigContextFilterSet(ChangeLoggedModelFilterSet): + q = django_filters.CharFilter( + method='search', + label='Search', + ) + region_id = django_filters.ModelMultipleChoiceFilter( + field_name='regions', + queryset=Region.objects.all(), + label='Region', + ) + region = django_filters.ModelMultipleChoiceFilter( + field_name='regions__slug', + queryset=Region.objects.all(), + to_field_name='slug', + label='Region (slug)', + ) + site_group = django_filters.ModelMultipleChoiceFilter( + field_name='site_groups__slug', + queryset=SiteGroup.objects.all(), + to_field_name='slug', + label='Site group (slug)', + ) + site_group_id = django_filters.ModelMultipleChoiceFilter( + field_name='site_groups', + queryset=SiteGroup.objects.all(), + label='Site group', + ) + site_id = django_filters.ModelMultipleChoiceFilter( + field_name='sites', + queryset=Site.objects.all(), + label='Site', + ) + site = django_filters.ModelMultipleChoiceFilter( + field_name='sites__slug', + queryset=Site.objects.all(), + to_field_name='slug', + label='Site (slug)', + ) + device_type_id = django_filters.ModelMultipleChoiceFilter( + field_name='device_types', + queryset=DeviceType.objects.all(), + label='Device type', + ) + role_id = django_filters.ModelMultipleChoiceFilter( + field_name='roles', + queryset=DeviceRole.objects.all(), + label='Role', + ) + role = django_filters.ModelMultipleChoiceFilter( + field_name='roles__slug', + queryset=DeviceRole.objects.all(), + to_field_name='slug', + label='Role (slug)', + ) + platform_id = django_filters.ModelMultipleChoiceFilter( + field_name='platforms', + queryset=Platform.objects.all(), + label='Platform', + ) + platform = django_filters.ModelMultipleChoiceFilter( + field_name='platforms__slug', + queryset=Platform.objects.all(), + to_field_name='slug', + label='Platform (slug)', + ) + cluster_group_id = django_filters.ModelMultipleChoiceFilter( + field_name='cluster_groups', + queryset=ClusterGroup.objects.all(), + label='Cluster group', + ) + cluster_group = django_filters.ModelMultipleChoiceFilter( + field_name='cluster_groups__slug', + queryset=ClusterGroup.objects.all(), + to_field_name='slug', + label='Cluster group (slug)', + ) + cluster_id = django_filters.ModelMultipleChoiceFilter( + field_name='clusters', + queryset=Cluster.objects.all(), + label='Cluster', + ) + tenant_group_id = django_filters.ModelMultipleChoiceFilter( + field_name='tenant_groups', + queryset=TenantGroup.objects.all(), + label='Tenant group', + ) + tenant_group = django_filters.ModelMultipleChoiceFilter( + field_name='tenant_groups__slug', + queryset=TenantGroup.objects.all(), + to_field_name='slug', + label='Tenant group (slug)', + ) + tenant_id = django_filters.ModelMultipleChoiceFilter( + field_name='tenants', + queryset=Tenant.objects.all(), + label='Tenant', + ) + tenant = django_filters.ModelMultipleChoiceFilter( + field_name='tenants__slug', + queryset=Tenant.objects.all(), + to_field_name='slug', + label='Tenant (slug)', + ) + tag = django_filters.ModelMultipleChoiceFilter( + field_name='tags__slug', + queryset=Tag.objects.all(), + to_field_name='slug', + label='Tag (slug)', + ) + + class Meta: + model = ConfigContext + fields = ['id', 'name', 'is_active'] + + def search(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter( + Q(name__icontains=value) | + Q(description__icontains=value) | + Q(data__icontains=value) + ) + + +# +# Filter for Local Config Context Data +# + +class LocalConfigContextFilterSet(django_filters.FilterSet): + local_context_data = django_filters.BooleanFilter( + method='_local_context_data', + label='Has local config context data', + ) + + def _local_context_data(self, queryset, name, value): + return queryset.exclude(local_context_data__isnull=value) + + +class ObjectChangeFilterSet(BaseFilterSet): + q = django_filters.CharFilter( + method='search', + label='Search', + ) + time = django_filters.DateTimeFromToRangeFilter() + changed_object_type = ContentTypeFilter() + user_id = django_filters.ModelMultipleChoiceFilter( + queryset=User.objects.all(), + label='User (ID)', + ) + user = django_filters.ModelMultipleChoiceFilter( + field_name='user__username', + queryset=User.objects.all(), + to_field_name='username', + label='User name', + ) + + class Meta: + model = ObjectChange + fields = [ + 'id', 'user', 'user_name', 'request_id', 'action', 'changed_object_type_id', 'changed_object_id', + 'object_repr', + ] + + def search(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter( + Q(user_name__icontains=value) | + Q(object_repr__icontains=value) + ) + + +# +# Job Results +# + +class JobResultFilterSet(BaseFilterSet): + q = django_filters.CharFilter( + method='search', + label='Search', + ) + created = django_filters.DateTimeFilter() + completed = django_filters.DateTimeFilter() + status = django_filters.MultipleChoiceFilter( + choices=JobResultStatusChoices, + null_value=None + ) + + class Meta: + model = JobResult + fields = [ + 'id', 'created', 'completed', 'status', 'user', 'obj_type', 'name' + ] + + def search(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter( + Q(user__username__icontains=value) + ) + + +# +# ContentTypes +# + +class ContentTypeFilterSet(django_filters.FilterSet): + + class Meta: + model = ContentType + fields = ['id', 'app_label', 'model'] diff --git a/netbox/extras/tests/test_customfields.py b/netbox/extras/tests/test_customfields.py index d1725ac9d..c14424ba6 100644 --- a/netbox/extras/tests/test_customfields.py +++ b/netbox/extras/tests/test_customfields.py @@ -3,7 +3,7 @@ from django.core.exceptions import ValidationError from django.urls import reverse from rest_framework import status -from dcim.filters import SiteFilterSet +from dcim.filtersets import SiteFilterSet from dcim.forms import SiteCSVForm from dcim.models import Site, Rack from extras.choices import * diff --git a/netbox/extras/tests/test_filters.py b/netbox/extras/tests/test_filtersets.py similarity index 93% rename from netbox/extras/tests/test_filters.py rename to netbox/extras/tests/test_filtersets.py index bb78c4daf..eb08f5930 100644 --- a/netbox/extras/tests/test_filters.py +++ b/netbox/extras/tests/test_filtersets.py @@ -1,4 +1,5 @@ import uuid +from datetime import datetime, timezone from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType @@ -6,14 +7,15 @@ from django.test import TestCase from dcim.models import DeviceRole, DeviceType, Manufacturer, Platform, Rack, Region, Site, SiteGroup from extras.choices import JournalEntryKindChoices, ObjectChangeActionChoices -from extras.filters import * +from extras.filtersets import * from extras.models import * from ipam.models import IPAddress from tenancy.models import Tenant, TenantGroup +from utilities.testing import BaseFilterSetTests, ChangeLoggedFilterSetTests from virtualization.models import Cluster, ClusterGroup, ClusterType -class WebhookTestCase(TestCase): +class WebhookTestCase(TestCase, BaseFilterSetTests): queryset = Webhook.objects.all() filterset = WebhookFilterSet @@ -52,10 +54,6 @@ class WebhookTestCase(TestCase): webhooks[1].content_types.add(content_types[1]) webhooks[2].content_types.add(content_types[2]) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Webhook 1', 'Webhook 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -89,7 +87,7 @@ class WebhookTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class CustomLinkTestCase(TestCase): +class CustomLinkTestCase(TestCase, BaseFilterSetTests): queryset = CustomLink.objects.all() filterset = CustomLinkFilterSet @@ -125,10 +123,6 @@ class CustomLinkTestCase(TestCase): ) CustomLink.objects.bulk_create(custom_links) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Custom Link 1', 'Custom Link 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -148,7 +142,7 @@ class CustomLinkTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class ExportTemplateTestCase(TestCase): +class ExportTemplateTestCase(TestCase, BaseFilterSetTests): queryset = ExportTemplate.objects.all() filterset = ExportTemplateFilterSet @@ -164,10 +158,6 @@ class ExportTemplateTestCase(TestCase): ) ExportTemplate.objects.bulk_create(export_templates) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Export Template 1', 'Export Template 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -177,7 +167,7 @@ class ExportTemplateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class ImageAttachmentTestCase(TestCase): +class ImageAttachmentTestCase(TestCase, BaseFilterSetTests): queryset = ImageAttachment.objects.all() filterset = ImageAttachmentFilterSet @@ -235,10 +225,6 @@ class ImageAttachmentTestCase(TestCase): ) ImageAttachment.objects.bulk_create(image_attachments) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Image Attachment 1', 'Image Attachment 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -254,8 +240,14 @@ class ImageAttachmentTestCase(TestCase): } self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) + def test_created(self): + pk_list = self.queryset.values_list('pk', flat=True)[:2] + self.queryset.filter(pk__in=pk_list).update(created=datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)) + params = {'created': '2021-01-01T00:00:00'} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class JournalEntryTestCase(TestCase): + +class JournalEntryTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = JournalEntry.objects.all() filterset = JournalEntryFilterSet @@ -320,10 +312,6 @@ class JournalEntryTestCase(TestCase): ) JournalEntry.objects.bulk_create(journal_entries) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_created_by(self): users = User.objects.filter(username__in=['Alice', 'Bob']) params = {'created_by': [users[0].username, users[1].username]} @@ -348,8 +336,17 @@ class JournalEntryTestCase(TestCase): params = {'kind': [JournalEntryKindChoices.KIND_INFO, JournalEntryKindChoices.KIND_SUCCESS]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) + def test_created(self): + pk_list = self.queryset.values_list('pk', flat=True)[:2] + self.queryset.filter(pk__in=pk_list).update(created=datetime(2021, 1, 1, 0, 0, 0, tzinfo=timezone.utc)) + params = { + 'created_after': '2020-12-31T00:00:00', + 'created_before': '2021-01-02T00:00:00', + } + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class ConfigContextTestCase(TestCase): + +class ConfigContextTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = ConfigContext.objects.all() filterset = ConfigContextFilterSet @@ -449,10 +446,6 @@ class ConfigContextTestCase(TestCase): c.tenant_groups.set([tenant_groups[i]]) c.tenants.set([tenants[i]]) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Config Context 1', 'Config Context 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -530,7 +523,7 @@ class ConfigContextTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class TagTestCase(TestCase): +class TagTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Tag.objects.all() filterset = TagFilterSet @@ -544,10 +537,6 @@ class TagTestCase(TestCase): ) Tag.objects.bulk_create(tags) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Tag 1', 'Tag 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -561,7 +550,7 @@ class TagTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class ObjectChangeTestCase(TestCase): +class ObjectChangeTestCase(TestCase, BaseFilterSetTests): queryset = ObjectChange.objects.all() filterset = ObjectChangeFilterSet @@ -635,10 +624,6 @@ class ObjectChangeTestCase(TestCase): ) ObjectChange.objects.bulk_create(object_changes) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:3]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) - def test_user(self): params = {'user_id': User.objects.filter(username__in=['user1', 'user2']).values_list('pk', flat=True)} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 4cda84d99..3f86c98d2 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -13,7 +13,7 @@ from utilities.forms import ConfirmationForm from utilities.tables import paginate_table from utilities.utils import copy_safe_request, count_related, shallow_compare_dict from utilities.views import ContentTypePermissionRequiredMixin -from . import filters, forms, tables +from . import filtersets, forms, tables from .choices import JobResultStatusChoices from .models import ConfigContext, ImageAttachment, JournalEntry, ObjectChange, JobResult, Tag, TaggedItem from .reports import get_report, get_reports, run_report @@ -28,7 +28,7 @@ class TagListView(generic.ObjectListView): queryset = Tag.objects.annotate( items=count_related(TaggedItem, 'tag') ) - filterset = filters.TagFilterSet + filterset = filtersets.TagFilterSet filterset_form = forms.TagFilterForm table = tables.TagTable @@ -94,7 +94,7 @@ class TagBulkDeleteView(generic.BulkDeleteView): class ConfigContextListView(generic.ObjectListView): queryset = ConfigContext.objects.all() - filterset = filters.ConfigContextFilterSet + filterset = filtersets.ConfigContextFilterSet filterset_form = forms.ConfigContextFilterForm table = tables.ConfigContextTable action_buttons = ('add',) @@ -127,7 +127,7 @@ class ConfigContextEditView(generic.ObjectEditView): class ConfigContextBulkEditView(generic.BulkEditView): queryset = ConfigContext.objects.all() - filterset = filters.ConfigContextFilterSet + filterset = filtersets.ConfigContextFilterSet table = tables.ConfigContextTable form = forms.ConfigContextBulkEditForm @@ -173,7 +173,7 @@ class ObjectConfigContextView(generic.ObjectView): class ObjectChangeListView(generic.ObjectListView): queryset = ObjectChange.objects.all() - filterset = filters.ObjectChangeFilterSet + filterset = filtersets.ObjectChangeFilterSet filterset_form = forms.ObjectChangeFilterForm table = tables.ObjectChangeTable template_name = 'extras/objectchange_list.html' @@ -300,7 +300,7 @@ class ImageAttachmentDeleteView(generic.ObjectDeleteView): class JournalEntryListView(generic.ObjectListView): queryset = JournalEntry.objects.all() - filterset = filters.JournalEntryFilterSet + filterset = filtersets.JournalEntryFilterSet filterset_form = forms.JournalEntryFilterForm table = tables.JournalEntryTable action_buttons = ('export',) @@ -338,14 +338,14 @@ class JournalEntryDeleteView(generic.ObjectDeleteView): class JournalEntryBulkEditView(generic.BulkEditView): queryset = JournalEntry.objects.prefetch_related('created_by') - filterset = filters.JournalEntryFilterSet + filterset = filtersets.JournalEntryFilterSet table = tables.JournalEntryTable form = forms.JournalEntryBulkEditForm class JournalEntryBulkDeleteView(generic.BulkDeleteView): queryset = JournalEntry.objects.prefetch_related('created_by') - filterset = filters.JournalEntryFilterSet + filterset = filtersets.JournalEntryFilterSet table = tables.JournalEntryTable diff --git a/netbox/ipam/api/nested_serializers.py b/netbox/ipam/api/nested_serializers.py index a5eb63911..f2aa5f19e 100644 --- a/netbox/ipam/api/nested_serializers.py +++ b/netbox/ipam/api/nested_serializers.py @@ -27,7 +27,7 @@ class NestedVRFSerializer(WritableNestedSerializer): class Meta: model = models.VRF - fields = ['id', 'url', 'display', 'name', 'rd', 'display_name', 'prefix_count'] + fields = ['id', 'url', 'display', 'name', 'rd', 'prefix_count'] # @@ -92,7 +92,7 @@ class NestedVLANSerializer(WritableNestedSerializer): class Meta: model = models.VLAN - fields = ['id', 'url', 'display', 'vid', 'name', 'display_name'] + fields = ['id', 'url', 'display', 'vid', 'name'] # diff --git a/netbox/ipam/api/serializers.py b/netbox/ipam/api/serializers.py index 931e2cc47..324c4de03 100644 --- a/netbox/ipam/api/serializers.py +++ b/netbox/ipam/api/serializers.py @@ -44,8 +44,7 @@ class VRFSerializer(PrimaryModelSerializer): model = VRF fields = [ 'id', 'url', 'display', 'name', 'rd', 'tenant', 'enforce_unique', 'description', 'import_targets', - 'export_targets', 'tags', 'display_name', 'custom_fields', 'created', 'last_updated', 'ipaddress_count', - 'prefix_count', + 'export_targets', 'tags', 'custom_fields', 'created', 'last_updated', 'ipaddress_count', 'prefix_count', ] @@ -167,7 +166,7 @@ class VLANSerializer(PrimaryModelSerializer): model = VLAN fields = [ 'id', 'url', 'display', 'site', 'group', 'vid', 'name', 'tenant', 'status', 'role', 'description', 'tags', - 'display_name', 'custom_fields', 'created', 'last_updated', 'prefix_count', + 'custom_fields', 'created', 'last_updated', 'prefix_count', ] validators = [] diff --git a/netbox/ipam/api/views.py b/netbox/ipam/api/views.py index 1e1177772..f3f1335f7 100644 --- a/netbox/ipam/api/views.py +++ b/netbox/ipam/api/views.py @@ -10,7 +10,7 @@ from rest_framework.response import Response from rest_framework.routers import APIRootView from extras.api.views import CustomFieldModelViewSet -from ipam import filters +from ipam import filtersets from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, RouteTarget, Service, VLAN, VLANGroup, VRF from netbox.api.views import ModelViewSet from utilities.constants import ADVISORY_LOCK_KEYS @@ -38,7 +38,7 @@ class VRFViewSet(CustomFieldModelViewSet): prefix_count=count_related(Prefix, 'vrf') ) serializer_class = serializers.VRFSerializer - filterset_class = filters.VRFFilterSet + filterset_class = filtersets.VRFFilterSet # @@ -48,7 +48,7 @@ class VRFViewSet(CustomFieldModelViewSet): class RouteTargetViewSet(CustomFieldModelViewSet): queryset = RouteTarget.objects.prefetch_related('tenant').prefetch_related('tags') serializer_class = serializers.RouteTargetSerializer - filterset_class = filters.RouteTargetFilterSet + filterset_class = filtersets.RouteTargetFilterSet # @@ -60,7 +60,7 @@ class RIRViewSet(CustomFieldModelViewSet): aggregate_count=count_related(Aggregate, 'rir') ) serializer_class = serializers.RIRSerializer - filterset_class = filters.RIRFilterSet + filterset_class = filtersets.RIRFilterSet # @@ -70,7 +70,7 @@ class RIRViewSet(CustomFieldModelViewSet): class AggregateViewSet(CustomFieldModelViewSet): queryset = Aggregate.objects.prefetch_related('rir').prefetch_related('tags') serializer_class = serializers.AggregateSerializer - filterset_class = filters.AggregateFilterSet + filterset_class = filtersets.AggregateFilterSet # @@ -83,7 +83,7 @@ class RoleViewSet(CustomFieldModelViewSet): vlan_count=count_related(VLAN, 'role') ) serializer_class = serializers.RoleSerializer - filterset_class = filters.RoleFilterSet + filterset_class = filtersets.RoleFilterSet # @@ -95,7 +95,7 @@ class PrefixViewSet(CustomFieldModelViewSet): 'site', 'vrf__tenant', 'tenant', 'vlan', 'role', 'tags' ) serializer_class = serializers.PrefixSerializer - filterset_class = filters.PrefixFilterSet + filterset_class = filtersets.PrefixFilterSet def get_serializer_class(self): if self.action == "available_prefixes" and self.request.method == "POST": @@ -275,7 +275,7 @@ class IPAddressViewSet(CustomFieldModelViewSet): 'vrf__tenant', 'tenant', 'nat_inside', 'nat_outside', 'tags', 'assigned_object' ) serializer_class = serializers.IPAddressSerializer - filterset_class = filters.IPAddressFilterSet + filterset_class = filtersets.IPAddressFilterSet # @@ -287,7 +287,7 @@ class VLANGroupViewSet(CustomFieldModelViewSet): vlan_count=count_related(VLAN, 'group') ) serializer_class = serializers.VLANGroupSerializer - filterset_class = filters.VLANGroupFilterSet + filterset_class = filtersets.VLANGroupFilterSet # @@ -301,7 +301,7 @@ class VLANViewSet(CustomFieldModelViewSet): prefix_count=count_related(Prefix, 'vlan') ) serializer_class = serializers.VLANSerializer - filterset_class = filters.VLANFilterSet + filterset_class = filtersets.VLANFilterSet # @@ -313,4 +313,4 @@ class ServiceViewSet(ModelViewSet): 'device', 'virtual_machine', 'tags', 'ipaddresses' ) serializer_class = serializers.ServiceSerializer - filterset_class = filters.ServiceFilterSet + filterset_class = filtersets.ServiceFilterSet diff --git a/netbox/ipam/filters.py b/netbox/ipam/filtersets.py similarity index 94% rename from netbox/ipam/filters.py rename to netbox/ipam/filtersets.py index 8f4030411..5ab4994ea 100644 --- a/netbox/ipam/filters.py +++ b/netbox/ipam/filtersets.py @@ -6,11 +6,11 @@ from django.db.models import Q from netaddr.core import AddrFormatError from dcim.models import Device, Interface, Region, Site, SiteGroup -from extras.filters import CustomFieldModelFilterSet, CreatedUpdatedFilterSet -from tenancy.filters import TenancyFilterSet +from extras.filters import TagFilter +from netbox.filtersets import OrganizationalModelFilterSet, PrimaryModelFilterSet +from tenancy.filtersets import TenancyFilterSet from utilities.filters import ( - BaseFilterSet, ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, NameSlugSearchFilterSet, - NumericArrayFilter, TagFilter, TreeNodeMultipleChoiceFilter, + ContentTypeFilter, MultiValueCharFilter, MultiValueNumberFilter, NumericArrayFilter, TreeNodeMultipleChoiceFilter, ) from virtualization.models import VirtualMachine, VMInterface from .choices import * @@ -31,7 +31,7 @@ __all__ = ( ) -class VRFFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class VRFFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -74,7 +74,7 @@ class VRFFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, C fields = ['id', 'name', 'rd', 'enforce_unique'] -class RouteTargetFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class RouteTargetFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -116,14 +116,14 @@ class RouteTargetFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilt fields = ['id', 'name'] -class RIRFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class RIRFilterSet(OrganizationalModelFilterSet): class Meta: model = RIR fields = ['id', 'name', 'slug', 'is_private', 'description'] -class AggregateFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class AggregateFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -173,7 +173,7 @@ class AggregateFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilter return queryset.none() -class RoleFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class RoleFilterSet(OrganizationalModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -184,7 +184,7 @@ class RoleFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilter fields = ['id', 'name', 'slug'] -class PrefixFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class PrefixFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -369,7 +369,7 @@ class PrefixFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet ) -class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class IPAddressFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -535,7 +535,7 @@ class IPAddressFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilter return queryset.exclude(assigned_object_id__isnull=value) -class VLANGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedFilterSet): +class VLANGroupFilterSet(OrganizationalModelFilterSet): scope_type = ContentTypeFilter() region = django_filters.NumberFilter( method='filter_scope' @@ -570,7 +570,7 @@ class VLANGroupFilterSet(BaseFilterSet, NameSlugSearchFilterSet, CreatedUpdatedF ) -class VLANFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, CreatedUpdatedFilterSet): +class VLANFilterSet(PrimaryModelFilterSet, TenancyFilterSet): q = django_filters.CharFilter( method='search', label='Search', @@ -666,7 +666,7 @@ class VLANFilterSet(BaseFilterSet, TenancyFilterSet, CustomFieldModelFilterSet, return queryset.get_for_virtualmachine(value) -class ServiceFilterSet(BaseFilterSet, CreatedUpdatedFilterSet): +class ServiceFilterSet(PrimaryModelFilterSet): q = django_filters.CharFilter( method='search', label='Search', diff --git a/netbox/ipam/models/ip.py b/netbox/ipam/models/ip.py index b11a88d54..2490a0c5a 100644 --- a/netbox/ipam/models/ip.py +++ b/netbox/ipam/models/ip.py @@ -29,7 +29,7 @@ __all__ = ( ) -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class RIR(OrganizationalModel): """ A Regional Internet Registry (RIR) is responsible for the allocation of a large portion of the global IP address @@ -184,7 +184,7 @@ class Aggregate(PrimaryModel): return int(float(child_prefixes.size) / self.prefix.size * 100) -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class Role(OrganizationalModel): """ A Role represents the functional role of a Prefix or VLAN; for example, "Customer," "Infrastructure," or @@ -426,19 +426,11 @@ class Prefix(PrimaryModel): child_ips = netaddr.IPSet([ip.address.ip for ip in self.get_child_ips()]) available_ips = prefix - child_ips - # All IP addresses within a pool are considered usable - if self.is_pool: + # IPv6, pool, or IPv4 /31 sets are fully usable + if self.family == 6 or self.is_pool or self.prefix.prefixlen == 31: return available_ips - # All IP addresses within a point-to-point prefix (IPv4 /31 or IPv6 /127) are considered usable - if ( - self.prefix.version == 4 and self.prefix.prefixlen == 31 # RFC 3021 - ) or ( - self.prefix.version == 6 and self.prefix.prefixlen == 127 # RFC 6164 - ): - return available_ips - - # Omit first and last IP address from the available set + # For "normal" IPv4 prefixes, omit first and last addresses available_ips -= netaddr.IPSet([ netaddr.IPAddress(self.prefix.first), netaddr.IPAddress(self.prefix.last), diff --git a/netbox/ipam/models/vlans.py b/netbox/ipam/models/vlans.py index d0f5375e2..b4964e761 100644 --- a/netbox/ipam/models/vlans.py +++ b/netbox/ipam/models/vlans.py @@ -21,7 +21,7 @@ __all__ = ( ) -@extras_features('custom_fields', 'export_templates', 'webhooks') +@extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class VLANGroup(OrganizationalModel): """ A VLAN group is an arbitrary collection of VLANs within which VLAN IDs and names must be unique. @@ -172,7 +172,7 @@ class VLAN(PrimaryModel): verbose_name_plural = 'VLANs' def __str__(self): - return self.display_name or super().__str__() + return f'{self.name} ({self.vid})' def get_absolute_url(self): return reverse('ipam:vlan', args=[self.pk]) @@ -199,10 +199,6 @@ class VLAN(PrimaryModel): self.description, ) - @property - def display_name(self): - return f'{self.name} ({self.vid})' - def get_status_class(self): return VLANStatusChoices.CSS_CLASSES.get(self.status) diff --git a/netbox/ipam/models/vrfs.py b/netbox/ipam/models/vrfs.py index 9eb2c6ab6..f674a7f65 100644 --- a/netbox/ipam/models/vrfs.py +++ b/netbox/ipam/models/vrfs.py @@ -71,7 +71,9 @@ class VRF(PrimaryModel): verbose_name_plural = 'VRFs' def __str__(self): - return self.display_name or super().__str__() + if self.rd: + return f'{self.name} ({self.rd})' + return self.name def get_absolute_url(self): return reverse('ipam:vrf', args=[self.pk]) @@ -85,12 +87,6 @@ class VRF(PrimaryModel): self.description, ) - @property - def display_name(self): - if self.rd: - return f'{self.name} ({self.rd})' - return self.name - @extras_features('custom_fields', 'custom_links', 'export_templates', 'webhooks') class RouteTarget(PrimaryModel): diff --git a/netbox/ipam/querysets.py b/netbox/ipam/querysets.py index 1a723421d..784d58342 100644 --- a/netbox/ipam/querysets.py +++ b/netbox/ipam/querysets.py @@ -64,6 +64,7 @@ class VLANQuerySet(RestrictedQuerySet): return self.filter( Q(group__in=VLANGroup.objects.filter(q)) | Q(site=device.site) | + Q(group__scope_id__isnull=True, site__isnull=True) | # Global group VLANs Q(group__isnull=True, site__isnull=True) # Global VLANs ) @@ -104,6 +105,7 @@ class VLANQuerySet(RestrictedQuerySet): # Return all applicable VLANs q = ( Q(group__in=vlan_groups) | + Q(group__scope_id__isnull=True, site__isnull=True) | # Global group VLANs Q(group__isnull=True, site__isnull=True) # Global VLANs ) if vm.cluster.site: diff --git a/netbox/ipam/tests/test_api.py b/netbox/ipam/tests/test_api.py index b2b4b9e8f..0de07b06b 100644 --- a/netbox/ipam/tests/test_api.py +++ b/netbox/ipam/tests/test_api.py @@ -22,7 +22,7 @@ class AppTest(APITestCase): class VRFTest(APIViewTestCases.APIViewTestCase): model = VRF - brief_fields = ['display', 'display_name', 'id', 'name', 'prefix_count', 'rd', 'url'] + brief_fields = ['display', 'id', 'name', 'prefix_count', 'rd', 'url'] create_data = [ { 'name': 'VRF 4', @@ -421,7 +421,7 @@ class VLANGroupTest(APIViewTestCases.APIViewTestCase): class VLANTest(APIViewTestCases.APIViewTestCase): model = VLAN - brief_fields = ['display', 'display_name', 'id', 'name', 'url', 'vid'] + brief_fields = ['display', 'id', 'name', 'url', 'vid'] bulk_update_data = { 'description': 'New description', } diff --git a/netbox/ipam/tests/test_filters.py b/netbox/ipam/tests/test_filtersets.py similarity index 96% rename from netbox/ipam/tests/test_filters.py rename to netbox/ipam/tests/test_filtersets.py index 3ea54209c..f43a44c62 100644 --- a/netbox/ipam/tests/test_filters.py +++ b/netbox/ipam/tests/test_filtersets.py @@ -2,13 +2,14 @@ from django.test import TestCase from dcim.models import Device, DeviceRole, DeviceType, Interface, Location, Manufacturer, Rack, Region, Site, SiteGroup from ipam.choices import * -from ipam.filters import * +from ipam.filtersets import * from ipam.models import Aggregate, IPAddress, Prefix, RIR, Role, RouteTarget, Service, VLAN, VLANGroup, VRF +from utilities.testing import ChangeLoggedFilterSetTests from virtualization.models import Cluster, ClusterGroup, ClusterType, VirtualMachine, VMInterface from tenancy.models import Tenant, TenantGroup -class VRFTestCase(TestCase): +class VRFTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = VRF.objects.all() filterset = VRFFilterSet @@ -53,10 +54,6 @@ class VRFTestCase(TestCase): vrfs[2].import_targets.add(route_targets[2]) vrfs[2].export_targets.add(route_targets[2]) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['VRF 1', 'VRF 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -100,7 +97,7 @@ class VRFTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class RouteTargetTestCase(TestCase): +class RouteTargetTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = RouteTarget.objects.all() filterset = RouteTargetFilterSet @@ -149,10 +146,6 @@ class RouteTargetTestCase(TestCase): vrfs[1].import_targets.add(route_targets[4], route_targets[5]) vrfs[1].export_targets.add(route_targets[6], route_targets[7]) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['65000:1001', '65000:1002', '65000:1003']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) @@ -186,7 +179,7 @@ class RouteTargetTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 8) -class RIRTestCase(TestCase): +class RIRTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = RIR.objects.all() filterset = RIRFilterSet @@ -203,10 +196,6 @@ class RIRTestCase(TestCase): ) RIR.objects.bulk_create(rirs) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['RIR 1', 'RIR 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -226,7 +215,7 @@ class RIRTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) -class AggregateTestCase(TestCase): +class AggregateTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Aggregate.objects.all() filterset = AggregateFilterSet @@ -265,10 +254,6 @@ class AggregateTestCase(TestCase): ) Aggregate.objects.bulk_create(aggregates) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_family(self): params = {'family': '4'} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) @@ -304,7 +289,7 @@ class AggregateTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class RoleTestCase(TestCase): +class RoleTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Role.objects.all() filterset = RoleFilterSet @@ -318,10 +303,6 @@ class RoleTestCase(TestCase): ) Role.objects.bulk_create(roles) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['Role 1', 'Role 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -331,7 +312,7 @@ class RoleTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) -class PrefixTestCase(TestCase): +class PrefixTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Prefix.objects.all() filterset = PrefixFilterSet @@ -421,10 +402,6 @@ class PrefixTestCase(TestCase): ) Prefix.objects.bulk_create(prefixes) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_family(self): params = {'family': '6'} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5) @@ -528,7 +505,7 @@ class PrefixTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class IPAddressTestCase(TestCase): +class IPAddressTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = IPAddress.objects.all() filterset = IPAddressFilterSet @@ -607,10 +584,6 @@ class IPAddressTestCase(TestCase): ) IPAddress.objects.bulk_create(ipaddresses) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_family(self): params = {'family': '6'} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 5) @@ -708,7 +681,7 @@ class IPAddressTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 4) -class VLANGroupTestCase(TestCase): +class VLANGroupTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = VLANGroup.objects.all() filterset = VLANGroupFilterSet @@ -751,10 +724,6 @@ class VLANGroupTestCase(TestCase): ) VLANGroup.objects.bulk_create(vlan_groups) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['VLAN Group 1', 'VLAN Group 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -796,7 +765,7 @@ class VLANGroupTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 1) -class VLANTestCase(TestCase): +class VLANTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = VLAN.objects.all() filterset = VLANFilterSet @@ -965,10 +934,6 @@ class VLANTestCase(TestCase): ) VLAN.objects.bulk_create(vlans) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:2]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) - def test_name(self): params = {'name': ['VLAN 101', 'VLAN 102']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) @@ -1041,7 +1006,7 @@ class VLANTestCase(TestCase): self.assertEqual(self.filterset(params, self.queryset).qs.count(), 6) # 5 scoped + 1 global -class ServiceTestCase(TestCase): +class ServiceTestCase(TestCase, ChangeLoggedFilterSetTests): queryset = Service.objects.all() filterset = ServiceFilterSet @@ -1080,10 +1045,6 @@ class ServiceTestCase(TestCase): ) Service.objects.bulk_create(services) - def test_id(self): - params = {'id': self.queryset.values_list('pk', flat=True)[:3]} - self.assertEqual(self.filterset(params, self.queryset).qs.count(), 3) - def test_name(self): params = {'name': ['Service 1', 'Service 2']} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 0339aff07..168933af7 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -7,7 +7,7 @@ from netbox.views import generic from utilities.tables import paginate_table from utilities.utils import count_related from virtualization.models import VirtualMachine, VMInterface -from . import filters, forms, tables +from . import filtersets, forms, tables from .constants import * from .models import Aggregate, IPAddress, Prefix, RIR, Role, RouteTarget, Service, VLAN, VLANGroup, VRF from .utils import add_available_ipaddresses, add_available_prefixes, add_available_vlans @@ -19,7 +19,7 @@ from .utils import add_available_ipaddresses, add_available_prefixes, add_availa class VRFListView(generic.ObjectListView): queryset = VRF.objects.all() - filterset = filters.VRFFilterSet + filterset = filtersets.VRFFilterSet filterset_form = forms.VRFFilterForm table = tables.VRFTable @@ -65,14 +65,14 @@ class VRFBulkImportView(generic.BulkImportView): class VRFBulkEditView(generic.BulkEditView): queryset = VRF.objects.prefetch_related('tenant') - filterset = filters.VRFFilterSet + filterset = filtersets.VRFFilterSet table = tables.VRFTable form = forms.VRFBulkEditForm class VRFBulkDeleteView(generic.BulkDeleteView): queryset = VRF.objects.prefetch_related('tenant') - filterset = filters.VRFFilterSet + filterset = filtersets.VRFFilterSet table = tables.VRFTable @@ -82,7 +82,7 @@ class VRFBulkDeleteView(generic.BulkDeleteView): class RouteTargetListView(generic.ObjectListView): queryset = RouteTarget.objects.all() - filterset = filters.RouteTargetFilterSet + filterset = filtersets.RouteTargetFilterSet filterset_form = forms.RouteTargetFilterForm table = tables.RouteTargetTable @@ -123,14 +123,14 @@ class RouteTargetBulkImportView(generic.BulkImportView): class RouteTargetBulkEditView(generic.BulkEditView): queryset = RouteTarget.objects.prefetch_related('tenant') - filterset = filters.RouteTargetFilterSet + filterset = filtersets.RouteTargetFilterSet table = tables.RouteTargetTable form = forms.RouteTargetBulkEditForm class RouteTargetBulkDeleteView(generic.BulkDeleteView): queryset = RouteTarget.objects.prefetch_related('tenant') - filterset = filters.RouteTargetFilterSet + filterset = filtersets.RouteTargetFilterSet table = tables.RouteTargetTable @@ -142,7 +142,7 @@ class RIRListView(generic.ObjectListView): queryset = RIR.objects.annotate( aggregate_count=count_related(Aggregate, 'rir') ) - filterset = filters.RIRFilterSet + filterset = filtersets.RIRFilterSet filterset_form = forms.RIRFilterForm table = tables.RIRTable template_name = 'ipam/rir_list.html' @@ -184,7 +184,7 @@ class RIRBulkEditView(generic.BulkEditView): queryset = RIR.objects.annotate( aggregate_count=count_related(Aggregate, 'rir') ) - filterset = filters.RIRFilterSet + filterset = filtersets.RIRFilterSet table = tables.RIRTable form = forms.RIRBulkEditForm @@ -193,7 +193,7 @@ class RIRBulkDeleteView(generic.BulkDeleteView): queryset = RIR.objects.annotate( aggregate_count=count_related(Aggregate, 'rir') ) - filterset = filters.RIRFilterSet + filterset = filtersets.RIRFilterSet table = tables.RIRTable @@ -205,7 +205,7 @@ class AggregateListView(generic.ObjectListView): queryset = Aggregate.objects.annotate( child_count=RawSQL('SELECT COUNT(*) FROM ipam_prefix WHERE ipam_prefix.prefix <<= ipam_aggregate.prefix', ()) ) - filterset = filters.AggregateFilterSet + filterset = filtersets.AggregateFilterSet filterset_form = forms.AggregateFilterForm table = tables.AggregateDetailTable template_name = 'ipam/aggregate_list.html' @@ -280,14 +280,14 @@ class AggregateBulkImportView(generic.BulkImportView): class AggregateBulkEditView(generic.BulkEditView): queryset = Aggregate.objects.prefetch_related('rir') - filterset = filters.AggregateFilterSet + filterset = filtersets.AggregateFilterSet table = tables.AggregateTable form = forms.AggregateBulkEditForm class AggregateBulkDeleteView(generic.BulkDeleteView): queryset = Aggregate.objects.prefetch_related('rir') - filterset = filters.AggregateFilterSet + filterset = filtersets.AggregateFilterSet table = tables.AggregateTable @@ -337,7 +337,7 @@ class RoleBulkImportView(generic.BulkImportView): class RoleBulkEditView(generic.BulkEditView): queryset = Role.objects.all() - filterset = filters.RoleFilterSet + filterset = filtersets.RoleFilterSet table = tables.RoleTable form = forms.RoleBulkEditForm @@ -353,7 +353,7 @@ class RoleBulkDeleteView(generic.BulkDeleteView): class PrefixListView(generic.ObjectListView): queryset = Prefix.objects.annotate_tree() - filterset = filters.PrefixFilterSet + filterset = filtersets.PrefixFilterSet filterset_form = forms.PrefixFilterForm table = tables.PrefixDetailTable template_name = 'ipam/prefix_list.html' @@ -493,14 +493,14 @@ class PrefixBulkImportView(generic.BulkImportView): class PrefixBulkEditView(generic.BulkEditView): queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') - filterset = filters.PrefixFilterSet + filterset = filtersets.PrefixFilterSet table = tables.PrefixTable form = forms.PrefixBulkEditForm class PrefixBulkDeleteView(generic.BulkDeleteView): queryset = Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role') - filterset = filters.PrefixFilterSet + filterset = filtersets.PrefixFilterSet table = tables.PrefixTable @@ -510,7 +510,7 @@ class PrefixBulkDeleteView(generic.BulkDeleteView): class IPAddressListView(generic.ObjectListView): queryset = IPAddress.objects.all() - filterset = filters.IPAddressFilterSet + filterset = filtersets.IPAddressFilterSet filterset_form = forms.IPAddressFilterForm table = tables.IPAddressDetailTable @@ -613,7 +613,7 @@ class IPAddressAssignView(generic.ObjectView): addresses = self.queryset.prefetch_related('vrf', 'tenant') # Limit to 100 results - addresses = filters.IPAddressFilterSet(request.POST, addresses).qs[:100] + addresses = filtersets.IPAddressFilterSet(request.POST, addresses).qs[:100] table = tables.IPAddressAssignTable(addresses) return render(request, 'ipam/ipaddress_assign.html', { @@ -643,14 +643,14 @@ class IPAddressBulkImportView(generic.BulkImportView): class IPAddressBulkEditView(generic.BulkEditView): queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant') - filterset = filters.IPAddressFilterSet + filterset = filtersets.IPAddressFilterSet table = tables.IPAddressTable form = forms.IPAddressBulkEditForm class IPAddressBulkDeleteView(generic.BulkDeleteView): queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant') - filterset = filters.IPAddressFilterSet + filterset = filtersets.IPAddressFilterSet table = tables.IPAddressTable @@ -662,7 +662,7 @@ class VLANGroupListView(generic.ObjectListView): queryset = VLANGroup.objects.annotate( vlan_count=count_related(VLAN, 'group') ) - filterset = filters.VLANGroupFilterSet + filterset = filtersets.VLANGroupFilterSet filterset_form = forms.VLANGroupFilterForm table = tables.VLANGroupTable @@ -673,7 +673,7 @@ class VLANGroupView(generic.ObjectView): def get_extra_context(self, request, instance): vlans = VLAN.objects.restrict(request.user, 'view').filter(group=instance).prefetch_related( Prefetch('prefixes', queryset=Prefix.objects.restrict(request.user)) - ) + ).order_by('vid') vlans_count = vlans.count() vlans = add_available_vlans(instance, vlans) @@ -684,9 +684,17 @@ class VLANGroupView(generic.ObjectView): vlans_table.columns.hide('group') paginate_table(vlans_table, request) + # Compile permissions list for rendering the object table + permissions = { + 'add': request.user.has_perm('ipam.add_vlan'), + 'change': request.user.has_perm('ipam.change_vlan'), + 'delete': request.user.has_perm('ipam.delete_vlan'), + } + return { 'vlans_count': vlans_count, 'vlans_table': vlans_table, + 'permissions': permissions, } @@ -710,7 +718,7 @@ class VLANGroupBulkEditView(generic.BulkEditView): queryset = VLANGroup.objects.annotate( vlan_count=count_related(VLAN, 'group') ) - filterset = filters.VLANGroupFilterSet + filterset = filtersets.VLANGroupFilterSet table = tables.VLANGroupTable form = forms.VLANGroupBulkEditForm @@ -719,7 +727,7 @@ class VLANGroupBulkDeleteView(generic.BulkDeleteView): queryset = VLANGroup.objects.annotate( vlan_count=count_related(VLAN, 'group') ) - filterset = filters.VLANGroupFilterSet + filterset = filtersets.VLANGroupFilterSet table = tables.VLANGroupTable @@ -729,7 +737,7 @@ class VLANGroupBulkDeleteView(generic.BulkDeleteView): class VLANListView(generic.ObjectListView): queryset = VLAN.objects.all() - filterset = filters.VLANFilterSet + filterset = filtersets.VLANFilterSet filterset_form = forms.VLANFilterForm table = tables.VLANDetailTable @@ -797,14 +805,14 @@ class VLANBulkImportView(generic.BulkImportView): class VLANBulkEditView(generic.BulkEditView): queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role') - filterset = filters.VLANFilterSet + filterset = filtersets.VLANFilterSet table = tables.VLANTable form = forms.VLANBulkEditForm class VLANBulkDeleteView(generic.BulkDeleteView): queryset = VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role') - filterset = filters.VLANFilterSet + filterset = filtersets.VLANFilterSet table = tables.VLANTable @@ -814,7 +822,7 @@ class VLANBulkDeleteView(generic.BulkDeleteView): class ServiceListView(generic.ObjectListView): queryset = Service.objects.all() - filterset = filters.ServiceFilterSet + filterset = filtersets.ServiceFilterSet filterset_form = forms.ServiceFilterForm table = tables.ServiceTable action_buttons = ('import', 'export') @@ -855,12 +863,12 @@ class ServiceDeleteView(generic.ObjectDeleteView): class ServiceBulkEditView(generic.BulkEditView): queryset = Service.objects.prefetch_related('device', 'virtual_machine') - filterset = filters.ServiceFilterSet + filterset = filtersets.ServiceFilterSet table = tables.ServiceTable form = forms.ServiceBulkEditForm class ServiceBulkDeleteView(generic.BulkDeleteView): queryset = Service.objects.prefetch_related('device', 'virtual_machine') - filterset = filters.ServiceFilterSet + filterset = filtersets.ServiceFilterSet table = tables.ServiceTable diff --git a/netbox/netbox/configuration.example.py b/netbox/netbox/configuration.example.py index c40e280dd..461d7f4cd 100644 --- a/netbox/netbox/configuration.example.py +++ b/netbox/netbox/configuration.example.py @@ -246,6 +246,9 @@ RQ_DEFAULT_TIMEOUT = 300 # this setting is derived from the installed location. # SCRIPTS_ROOT = '/opt/netbox/netbox/scripts' +# The name to use for the session cookie. +SESSION_COOKIE_NAME = 'sessionid' + # By default, NetBox will store session data in the database. Alternatively, a file path can be specified here to use # local file storage instead. (This can be useful for enabling authentication on a standby instance with read-only # database access.) Note that the user as which NetBox runs must have read and write permissions to this path. diff --git a/netbox/netbox/constants.py b/netbox/netbox/constants.py index 5568f4e70..b6da0b2de 100644 --- a/netbox/netbox/constants.py +++ b/netbox/netbox/constants.py @@ -1,9 +1,9 @@ from collections import OrderedDict -from circuits.filters import CircuitFilterSet, ProviderFilterSet, ProviderNetworkFilterSet +from circuits.filtersets import CircuitFilterSet, ProviderFilterSet, ProviderNetworkFilterSet from circuits.models import Circuit, ProviderNetwork, Provider from circuits.tables import CircuitTable, ProviderNetworkTable, ProviderTable -from dcim.filters import ( +from dcim.filtersets import ( CableFilterSet, DeviceFilterSet, DeviceTypeFilterSet, PowerFeedFilterSet, RackFilterSet, LocationFilterSet, SiteFilterSet, VirtualChassisFilterSet, ) @@ -12,17 +12,17 @@ from dcim.tables import ( CableTable, DeviceTable, DeviceTypeTable, PowerFeedTable, RackTable, LocationTable, SiteTable, VirtualChassisTable, ) -from ipam.filters import AggregateFilterSet, IPAddressFilterSet, PrefixFilterSet, VLANFilterSet, VRFFilterSet +from ipam.filtersets import AggregateFilterSet, IPAddressFilterSet, PrefixFilterSet, VLANFilterSet, VRFFilterSet from ipam.models import Aggregate, IPAddress, Prefix, VLAN, VRF from ipam.tables import AggregateTable, IPAddressTable, PrefixTable, VLANTable, VRFTable -from secrets.filters import SecretFilterSet +from secrets.filtersets import SecretFilterSet from secrets.models import Secret from secrets.tables import SecretTable -from tenancy.filters import TenantFilterSet +from tenancy.filtersets import TenantFilterSet from tenancy.models import Tenant from tenancy.tables import TenantTable from utilities.utils import count_related -from virtualization.filters import ClusterFilterSet, VirtualMachineFilterSet +from virtualization.filtersets import ClusterFilterSet, VirtualMachineFilterSet from virtualization.models import Cluster, VirtualMachine from virtualization.tables import ClusterTable, VirtualMachineDetailTable diff --git a/netbox/netbox/filtersets.py b/netbox/netbox/filtersets.py new file mode 100644 index 000000000..aa9e15385 --- /dev/null +++ b/netbox/netbox/filtersets.py @@ -0,0 +1,238 @@ +import django_filters +from copy import deepcopy +from django.contrib.contenttypes.models import ContentType +from django.db import models +from django_filters.utils import get_model_field, resolve_field + +from dcim.forms import MACAddressField +from extras.choices import CustomFieldFilterLogicChoices +from extras.filters import CustomFieldFilter, TagFilter +from extras.models import CustomField +from utilities.constants import ( + FILTER_CHAR_BASED_LOOKUP_MAP, FILTER_NEGATION_LOOKUP_MAP, FILTER_TREENODE_NEGATION_LOOKUP_MAP, + FILTER_NUMERIC_BASED_LOOKUP_MAP +) +from utilities import filters + + +__all__ = ( + 'BaseFilterSet', + 'ChangeLoggedModelFilterSet', + 'OrganizationalModelFilterSet', + 'PrimaryModelFilterSet', +) + + +# +# FilterSets +# + +class BaseFilterSet(django_filters.FilterSet): + """ + A base FilterSet which provides common functionality to all NetBox FilterSets + """ + FILTER_DEFAULTS = deepcopy(django_filters.filterset.FILTER_FOR_DBFIELD_DEFAULTS) + FILTER_DEFAULTS.update({ + models.AutoField: { + 'filter_class': filters.MultiValueNumberFilter + }, + models.CharField: { + 'filter_class': filters.MultiValueCharFilter + }, + models.DateField: { + 'filter_class': filters.MultiValueDateFilter + }, + models.DateTimeField: { + 'filter_class': filters.MultiValueDateTimeFilter + }, + models.DecimalField: { + 'filter_class': filters.MultiValueNumberFilter + }, + models.EmailField: { + 'filter_class': filters.MultiValueCharFilter + }, + models.FloatField: { + 'filter_class': filters.MultiValueNumberFilter + }, + models.IntegerField: { + 'filter_class': filters.MultiValueNumberFilter + }, + models.PositiveIntegerField: { + 'filter_class': filters.MultiValueNumberFilter + }, + models.PositiveSmallIntegerField: { + 'filter_class': filters.MultiValueNumberFilter + }, + models.SlugField: { + 'filter_class': filters.MultiValueCharFilter + }, + models.SmallIntegerField: { + 'filter_class': filters.MultiValueNumberFilter + }, + models.TimeField: { + 'filter_class': filters.MultiValueTimeFilter + }, + models.URLField: { + 'filter_class': filters.MultiValueCharFilter + }, + MACAddressField: { + 'filter_class': filters.MultiValueMACAddressFilter + }, + }) + + @staticmethod + def _get_filter_lookup_dict(existing_filter): + # Choose the lookup expression map based on the filter type + if isinstance(existing_filter, ( + filters.MultiValueDateFilter, + filters.MultiValueDateTimeFilter, + filters.MultiValueNumberFilter, + filters.MultiValueTimeFilter + )): + lookup_map = FILTER_NUMERIC_BASED_LOOKUP_MAP + + elif isinstance(existing_filter, ( + filters.TreeNodeMultipleChoiceFilter, + )): + # TreeNodeMultipleChoiceFilter only support negation but must maintain the `in` lookup expression + lookup_map = FILTER_TREENODE_NEGATION_LOOKUP_MAP + + elif isinstance(existing_filter, ( + django_filters.ModelChoiceFilter, + django_filters.ModelMultipleChoiceFilter, + TagFilter + )) or existing_filter.extra.get('choices'): + # These filter types support only negation + lookup_map = FILTER_NEGATION_LOOKUP_MAP + + elif isinstance(existing_filter, ( + django_filters.filters.CharFilter, + django_filters.MultipleChoiceFilter, + filters.MultiValueCharFilter, + filters.MultiValueMACAddressFilter + )): + lookup_map = FILTER_CHAR_BASED_LOOKUP_MAP + + else: + lookup_map = None + + return lookup_map + + @classmethod + def get_filters(cls): + """ + Override filter generation to support dynamic lookup expressions for certain filter types. + + For specific filter types, new filters are created based on defined lookup expressions in + the form `__` + """ + filters = super().get_filters() + + new_filters = {} + for existing_filter_name, existing_filter in filters.items(): + # Loop over existing filters to extract metadata by which to create new filters + + # If the filter makes use of a custom filter method or lookup expression skip it + # as we cannot sanely handle these cases in a generic mannor + if existing_filter.method is not None or existing_filter.lookup_expr not in ['exact', 'in']: + continue + + # Choose the lookup expression map based on the filter type + lookup_map = cls._get_filter_lookup_dict(existing_filter) + if lookup_map is None: + # Do not augment this filter type with more lookup expressions + continue + + # Get properties of the existing filter for later use + field_name = existing_filter.field_name + field = get_model_field(cls._meta.model, field_name) + + # Create new filters for each lookup expression in the map + for lookup_name, lookup_expr in lookup_map.items(): + new_filter_name = '{}__{}'.format(existing_filter_name, lookup_name) + + try: + if existing_filter_name in cls.declared_filters: + # The filter field has been explicity defined on the filterset class so we must manually + # create the new filter with the same type because there is no guarantee the defined type + # is the same as the default type for the field + resolve_field(field, lookup_expr) # Will raise FieldLookupError if the lookup is invalid + new_filter = type(existing_filter)( + field_name=field_name, + lookup_expr=lookup_expr, + label=existing_filter.label, + exclude=existing_filter.exclude, + distinct=existing_filter.distinct, + **existing_filter.extra + ) + else: + # The filter field is listed in Meta.fields so we can safely rely on default behaviour + # Will raise FieldLookupError if the lookup is invalid + new_filter = cls.filter_for_field(field, field_name, lookup_expr) + except django_filters.exceptions.FieldLookupError: + # The filter could not be created because the lookup expression is not supported on the field + continue + + if lookup_name.startswith('n'): + # This is a negation filter which requires a queryset.exclude() clause + # Of course setting the negation of the existing filter's exclude attribute handles both cases + new_filter.exclude = not existing_filter.exclude + + new_filters[new_filter_name] = new_filter + + filters.update(new_filters) + return filters + + +class ChangeLoggedModelFilterSet(BaseFilterSet): + created = django_filters.DateFilter() + created__gte = django_filters.DateFilter( + field_name='created', + lookup_expr='gte' + ) + created__lte = django_filters.DateFilter( + field_name='created', + lookup_expr='lte' + ) + last_updated = django_filters.DateTimeFilter() + last_updated__gte = django_filters.DateTimeFilter( + field_name='last_updated', + lookup_expr='gte' + ) + last_updated__lte = django_filters.DateTimeFilter( + field_name='last_updated', + lookup_expr='lte' + ) + + +class PrimaryModelFilterSet(ChangeLoggedModelFilterSet): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Dynamically add a Filter for each CustomField applicable to the parent model + custom_fields = CustomField.objects.filter( + content_types=ContentType.objects.get_for_model(self._meta.model) + ).exclude( + filter_logic=CustomFieldFilterLogicChoices.FILTER_DISABLED + ) + for cf in custom_fields: + self.filters['cf_{}'.format(cf.name)] = CustomFieldFilter(field_name=cf.name, custom_field=cf) + + +class OrganizationalModelFilterSet(PrimaryModelFilterSet): + """ + A base class for adding the search method to models which only expose the `name` and `slug` fields + """ + q = django_filters.CharFilter( + method='search', + label='Search', + ) + + def search(self, queryset, name, value): + if not value.strip(): + return queryset + return queryset.filter( + models.Q(name__icontains=value) | + models.Q(slug__icontains=value) + ) diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py index 7d4fb91da..71edae573 100644 --- a/netbox/netbox/settings.py +++ b/netbox/netbox/settings.py @@ -114,6 +114,7 @@ REPORTS_ROOT = getattr(configuration, 'REPORTS_ROOT', os.path.join(BASE_DIR, 're RQ_DEFAULT_TIMEOUT = getattr(configuration, 'RQ_DEFAULT_TIMEOUT', 300) SCRIPTS_ROOT = getattr(configuration, 'SCRIPTS_ROOT', os.path.join(BASE_DIR, 'scripts')).rstrip('/') SESSION_FILE_PATH = getattr(configuration, 'SESSION_FILE_PATH', None) +SESSION_COOKIE_NAME = getattr(configuration, 'SESSION_COOKIE_NAME', 'sessionid') SHORT_DATE_FORMAT = getattr(configuration, 'SHORT_DATE_FORMAT', 'Y-m-d') SHORT_DATETIME_FORMAT = getattr(configuration, 'SHORT_DATETIME_FORMAT', 'Y-m-d H:i') SHORT_TIME_FORMAT = getattr(configuration, 'SHORT_TIME_FORMAT', 'H:i:s') diff --git a/netbox/netbox/views/__init__.py b/netbox/netbox/views/__init__.py index bc1a68569..66f66cf52 100644 --- a/netbox/netbox/views/__init__.py +++ b/netbox/netbox/views/__init__.py @@ -109,12 +109,13 @@ class HomeView(View): for section_label, section_items in sections: stat = {"label": section_label, "items": []} for perm, item_label, description, get_count in section_items: + app, scope = perm.split(".") + url = ":".join((app, scope.replace("view_", "") + "_list")) + item = {"label": item_label, "description": description, "count": None, "url": url, "disabled": True} if perm in perms: - app, scope = perm.split(".") - url = ":".join((app, scope.replace("view_", "") + "_list")) - stat["items"].append( - {"label": item_label, "description": description, "count": get_count(), "url": url} - ) + item["count"] = get_count() + item["disabled"] = False + stat["items"].append(item) stats.append(stat) return stats diff --git a/netbox/project-static/_dark.scss b/netbox/project-static/_dark.scss new file mode 100644 index 000000000..9de45c1e7 --- /dev/null +++ b/netbox/project-static/_dark.scss @@ -0,0 +1,10 @@ +// Entry for netbox-dark.css stylesheet. + +body[data-netbox-color-mode='dark'] { + // Imports are scoped under the body when its data-netbox-color-mode attribute is set to 'dark'. + @import './theme-dark.scss'; + @import './bootstrap.scss'; + @import './select.scss'; + @import './flatpickr-dark.scss'; + @import './netbox.scss'; +} diff --git a/netbox/project-static/rack_elevation.scss b/netbox/project-static/_elevations.scss similarity index 97% rename from netbox/project-static/rack_elevation.scss rename to netbox/project-static/_elevations.scss index 6962e7763..859142a4c 100644 --- a/netbox/project-static/rack_elevation.scss +++ b/netbox/project-static/_elevations.scss @@ -1,4 +1,5 @@ -// Stylesheet for rendering SVG rack elevations +// Entry for rack_elevation.css stylesheet. + @import './theme-light.scss'; * { diff --git a/netbox/project-static/_external.scss b/netbox/project-static/_external.scss new file mode 100644 index 000000000..ae37789c0 --- /dev/null +++ b/netbox/project-static/_external.scss @@ -0,0 +1,4 @@ +// Entry for all 3rd party library imports that do not rely on Bootstrap or NetBox styles. + +@import '@mdi/font/css/materialdesignicons.min.css'; +@import 'flatpickr/dist/flatpickr.css'; diff --git a/netbox/project-static/_light.scss b/netbox/project-static/_light.scss new file mode 100644 index 000000000..af0bbaab8 --- /dev/null +++ b/netbox/project-static/_light.scss @@ -0,0 +1,6 @@ +// Entry for netbox-light.css stylesheet. + +@import './theme-light.scss'; +@import './bootstrap.scss'; +@import './select.scss'; +@import './netbox.scss'; diff --git a/netbox/project-static/bundle.js b/netbox/project-static/bundle.js index e60a8fdfd..b12cb4261 100644 --- a/netbox/project-static/bundle.js +++ b/netbox/project-static/bundle.js @@ -27,8 +27,10 @@ if (args.includes('--no-cache')) { // Style (SCSS) bundle jobs. Generally, everything should be bundled into netbox.css from main.scss // unless there is a specific reason to do otherwise. const styles = [ - ['main.scss', 'netbox.css'], - ['rack_elevation.scss', 'rack_elevation.css'], + ['_external.scss', 'netbox-external.css'], + ['_light.scss', 'netbox-light.css'], + ['_dark.scss', 'netbox-dark.css'], + ['_elevations.scss', 'rack_elevation.css'], ]; // Script (JavaScript) bundle jobs. Generally, everything should be bundled into netbox.js from diff --git a/netbox/project-static/dist/netbox-dark.css b/netbox/project-static/dist/netbox-dark.css new file mode 100644 index 000000000..b5e7e841b --- /dev/null +++ b/netbox/project-static/dist/netbox-dark.css @@ -0,0 +1,2 @@ +@charset "UTF-8";body[data-netbox-color-mode=dark] :root{--bs-blue:#3b82f6;--bs-indigo:#6610f2;--bs-purple:#8b5cf6;--bs-pink:#ec4899;--bs-red:#ef4444;--bs-orange:#fd7e14;--bs-yellow:#f59e0b;--bs-green:#10b981;--bs-teal:#20c997;--bs-cyan:#06b6d4;--bs-white:#fff;--bs-gray:#4b5563;--bs-gray-dark:#1f2937;--bs-primary:#93c5fd;--bs-secondary:#9ca3af;--bs-success:#6ee7b7;--bs-info:#67e8f9;--bs-warning:#fcd34d;--bs-danger:#fca5a5;--bs-light:#d1d5db;--bs-dark:#9ca3af;--bs-alt:#13293d;--bs-gray:#9ca3af;--bs-darker:#010101;--bs-gray-50:#f9fafb;--bs-gray-100:#f3f4f6;--bs-gray-200:#e5e7eb;--bs-gray-300:#d1d5db;--bs-gray-400:#9ca3af;--bs-gray-500:#6b7280;--bs-gray-600:#4b5563;--bs-gray-700:#374151;--bs-gray-800:#1f2937;--bs-gray-900:#111827;--bs-red-50:#fef2f2;--bs-red-100:#fee2e2;--bs-red-200:#fecaca;--bs-red-300:#fca5a5;--bs-red-400:#f87171;--bs-red-500:#ef4444;--bs-red-600:#dc2626;--bs-red-700:#b91c1c;--bs-red-800:#991b1b;--bs-red-900:#7f1d1d;--bs-yellow-50:#fffbeb;--bs-yellow-100:#fef3c7;--bs-yellow-200:#fde68a;--bs-yellow-300:#fcd34d;--bs-yellow-400:#fbbf24;--bs-yellow-500:#f59e0b;--bs-yellow-600:#d97706;--bs-yellow-700:#b45309;--bs-yellow-800:#92400e;--bs-yellow-900:#78350f;--bs-green-50:#ecfdf5;--bs-green-100:#d1fae5;--bs-green-200:#a7f3d0;--bs-green-300:#6ee7b7;--bs-green-400:#34d399;--bs-green-500:#10b981;--bs-green-600:#059669;--bs-green-700:#047857;--bs-green-800:#065f46;--bs-green-900:#064e3b;--bs-blue-50:#eff6ff;--bs-blue-100:#dbeafe;--bs-blue-200:#bfdbfe;--bs-blue-300:#93c5fd;--bs-blue-400:#60a5fa;--bs-blue-500:#3b82f6;--bs-blue-600:#2563eb;--bs-blue-700:#1d4ed8;--bs-blue-800:#1e40af;--bs-blue-900:#1e3a8a;--bs-cyan-50:#ecfeff;--bs-cyan-100:#cffafe;--bs-cyan-200:#a5f3fc;--bs-cyan-300:#67e8f9;--bs-cyan-400:#22d3ee;--bs-cyan-500:#06b6d4;--bs-cyan-600:#0891b2;--bs-cyan-700:#0e7490;--bs-cyan-800:#155e75;--bs-cyan-900:#164e63;--bs-indigo-50:#eef2ff;--bs-indigo-100:#e0e7ff;--bs-indigo-200:#c7d2fe;--bs-indigo-300:#a5b4fc;--bs-indigo-400:#818cf8;--bs-indigo-500:#6366f1;--bs-indigo-600:#4f46e5;--bs-indigo-700:#4338ca;--bs-indigo-800:#3730a3;--bs-indigo-900:#312e81;--bs-purple-50:#f5f3ff;--bs-purple-100:#ede9fe;--bs-purple-200:#ddd6fe;--bs-purple-300:#c4b5fd;--bs-purple-400:#a78bfa;--bs-purple-500:#8b5cf6;--bs-purple-600:#7c3aed;--bs-purple-700:#6d28d9;--bs-purple-800:#5b21b6;--bs-purple-900:#4c1d95;--bs-pink-50:#fdf2f8;--bs-pink-100:#fce7f3;--bs-pink-200:#fbcfe8;--bs-pink-300:#f9a8d4;--bs-pink-400:#f472b6;--bs-pink-500:#ec4899;--bs-pink-600:#db2777;--bs-pink-700:#be185d;--bs-pink-800:#9d174d;--bs-pink-900:#831843;--bs-font-sans-serif:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg,hsla(0,0%,100%,0.15),hsla(0,0%,100%,0))}body[data-netbox-color-mode=dark] *,body[data-netbox-color-mode=dark] :after,body[data-netbox-color-mode=dark] :before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){body[data-netbox-color-mode=dark] :root{scroll-behavior:smooth}}body[data-netbox-color-mode=dark] body{margin:0;font-family:var(--bs-font-sans-serif);font-size:1rem;font-weight:400;line-height:1.5;color:#fff;background-color:#111827;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body[data-netbox-color-mode=dark] hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}body[data-netbox-color-mode=dark] hr:not([size]){height:1px}body[data-netbox-color-mode=dark] .h1,body[data-netbox-color-mode=dark] .h2,body[data-netbox-color-mode=dark] .h3,body[data-netbox-color-mode=dark] .h4,body[data-netbox-color-mode=dark] .h5,body[data-netbox-color-mode=dark] .h6,body[data-netbox-color-mode=dark] h1,body[data-netbox-color-mode=dark] h2,body[data-netbox-color-mode=dark] h3,body[data-netbox-color-mode=dark] h4,body[data-netbox-color-mode=dark] h5,body[data-netbox-color-mode=dark] h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}body[data-netbox-color-mode=dark] .h1,body[data-netbox-color-mode=dark] h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){body[data-netbox-color-mode=dark] .h1,body[data-netbox-color-mode=dark] h1{font-size:2.5rem}}body[data-netbox-color-mode=dark] .h2,body[data-netbox-color-mode=dark] h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){body[data-netbox-color-mode=dark] .h2,body[data-netbox-color-mode=dark] h2{font-size:2rem}}body[data-netbox-color-mode=dark] .h3,body[data-netbox-color-mode=dark] h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){body[data-netbox-color-mode=dark] .h3,body[data-netbox-color-mode=dark] h3{font-size:1.75rem}}body[data-netbox-color-mode=dark] .h4,body[data-netbox-color-mode=dark] h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){body[data-netbox-color-mode=dark] .h4,body[data-netbox-color-mode=dark] h4{font-size:1.5rem}}body[data-netbox-color-mode=dark] .h5,body[data-netbox-color-mode=dark] h5{font-size:1.25rem}body[data-netbox-color-mode=dark] .h6,body[data-netbox-color-mode=dark] h6{font-size:1rem}body[data-netbox-color-mode=dark] p{margin-top:0;margin-bottom:1rem}body[data-netbox-color-mode=dark] abbr[data-bs-original-title],body[data-netbox-color-mode=dark] abbr[title]{text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}body[data-netbox-color-mode=dark] address{margin-bottom:1rem;font-style:normal;line-height:inherit}body[data-netbox-color-mode=dark] ol,body[data-netbox-color-mode=dark] ul{padding-left:2rem}body[data-netbox-color-mode=dark] dl,body[data-netbox-color-mode=dark] ol,body[data-netbox-color-mode=dark] ul{margin-top:0;margin-bottom:1rem}body[data-netbox-color-mode=dark] ol ol,body[data-netbox-color-mode=dark] ol ul,body[data-netbox-color-mode=dark] ul ol,body[data-netbox-color-mode=dark] ul ul{margin-bottom:0}body[data-netbox-color-mode=dark] dt{font-weight:700}body[data-netbox-color-mode=dark] dd{margin-bottom:.5rem;margin-left:0}body[data-netbox-color-mode=dark] blockquote{margin:0 0 1rem}body[data-netbox-color-mode=dark] b,body[data-netbox-color-mode=dark] strong{font-weight:800}body[data-netbox-color-mode=dark] .small,body[data-netbox-color-mode=dark] small{font-size:.875em}body[data-netbox-color-mode=dark] .mark,body[data-netbox-color-mode=dark] mark{padding:.2em;background-color:#fcf8e3}body[data-netbox-color-mode=dark] sub,body[data-netbox-color-mode=dark] sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}body[data-netbox-color-mode=dark] sub{bottom:-.25em}body[data-netbox-color-mode=dark] sup{top:-.5em}body[data-netbox-color-mode=dark] a{color:#93c5fd;text-decoration:underline}body[data-netbox-color-mode=dark] a:hover{color:#bfdbfe}body[data-netbox-color-mode=dark] a:not([href]):not([class]),body[data-netbox-color-mode=dark] a:not([href]):not([class]):hover{color:inherit;text-decoration:none}body[data-netbox-color-mode=dark] code,body[data-netbox-color-mode=dark] kbd,body[data-netbox-color-mode=dark] pre,body[data-netbox-color-mode=dark] samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}body[data-netbox-color-mode=dark] pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}body[data-netbox-color-mode=dark] pre code{font-size:inherit;color:inherit;word-break:normal}body[data-netbox-color-mode=dark] code{font-size:.875em;color:#e5e7eb;word-wrap:break-word}a>body[data-netbox-color-mode=dark] code{color:inherit}body[data-netbox-color-mode=dark] kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#d1d5db;border-radius:.5rem}body[data-netbox-color-mode=dark] kbd kbd{padding:0;font-size:1em;font-weight:700}body[data-netbox-color-mode=dark] figure{margin:0 0 1rem}body[data-netbox-color-mode=dark] img,body[data-netbox-color-mode=dark] svg{vertical-align:middle}body[data-netbox-color-mode=dark] table{caption-side:bottom;border-collapse:collapse}body[data-netbox-color-mode=dark] caption{padding-top:.5rem;padding-bottom:.5rem;color:#4b5563;text-align:left}body[data-netbox-color-mode=dark] th{text-align:inherit;text-align:-webkit-match-parent}body[data-netbox-color-mode=dark] tbody,body[data-netbox-color-mode=dark] td,body[data-netbox-color-mode=dark] tfoot,body[data-netbox-color-mode=dark] th,body[data-netbox-color-mode=dark] thead,body[data-netbox-color-mode=dark] tr{border:0 solid;border-color:inherit}body[data-netbox-color-mode=dark] label{display:inline-block}body[data-netbox-color-mode=dark] button{border-radius:0}body[data-netbox-color-mode=dark] button:focus:not(:focus-visible){outline:0}body[data-netbox-color-mode=dark] button,body[data-netbox-color-mode=dark] input,body[data-netbox-color-mode=dark] optgroup,body[data-netbox-color-mode=dark] select,body[data-netbox-color-mode=dark] textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}body[data-netbox-color-mode=dark] button,body[data-netbox-color-mode=dark] select{text-transform:none}body[data-netbox-color-mode=dark] [role=button]{cursor:pointer}body[data-netbox-color-mode=dark] select{word-wrap:normal}body[data-netbox-color-mode=dark] select:disabled{opacity:1}body[data-netbox-color-mode=dark] [list]::-webkit-calendar-picker-indicator{display:none}body[data-netbox-color-mode=dark] [type=button],body[data-netbox-color-mode=dark] [type=reset],body[data-netbox-color-mode=dark] [type=submit],body[data-netbox-color-mode=dark] button{-webkit-appearance:button}body[data-netbox-color-mode=dark] [type=button]:not(:disabled),body[data-netbox-color-mode=dark] [type=reset]:not(:disabled),body[data-netbox-color-mode=dark] [type=submit]:not(:disabled),body[data-netbox-color-mode=dark] button:not(:disabled){cursor:pointer}body[data-netbox-color-mode=dark] ::-moz-focus-inner{padding:0;border-style:none}body[data-netbox-color-mode=dark] textarea{resize:vertical}body[data-netbox-color-mode=dark] fieldset{min-width:0;padding:0;margin:0;border:0}body[data-netbox-color-mode=dark] legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){body[data-netbox-color-mode=dark] legend{font-size:1.5rem}}body[data-netbox-color-mode=dark] legend+*{clear:left}body[data-netbox-color-mode=dark] ::-webkit-datetime-edit-day-field,body[data-netbox-color-mode=dark] ::-webkit-datetime-edit-fields-wrapper,body[data-netbox-color-mode=dark] ::-webkit-datetime-edit-hour-field,body[data-netbox-color-mode=dark] ::-webkit-datetime-edit-minute,body[data-netbox-color-mode=dark] ::-webkit-datetime-edit-month-field,body[data-netbox-color-mode=dark] ::-webkit-datetime-edit-text,body[data-netbox-color-mode=dark] ::-webkit-datetime-edit-year-field{padding:0}body[data-netbox-color-mode=dark] ::-webkit-inner-spin-button{height:auto}body[data-netbox-color-mode=dark] [type=search]{outline-offset:-2px;-webkit-appearance:textfield}body[data-netbox-color-mode=dark] ::-webkit-search-decoration{-webkit-appearance:none}body[data-netbox-color-mode=dark] ::-webkit-color-swatch-wrapper{padding:0}body[data-netbox-color-mode=dark] ::file-selector-button{font:inherit}body[data-netbox-color-mode=dark] ::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}body[data-netbox-color-mode=dark] output{display:inline-block}body[data-netbox-color-mode=dark] iframe{border:0}body[data-netbox-color-mode=dark] summary{display:list-item;cursor:pointer}body[data-netbox-color-mode=dark] progress{vertical-align:baseline}body[data-netbox-color-mode=dark] [hidden]{display:none!important}body[data-netbox-color-mode=dark] .lead{font-size:1.25rem;font-weight:300}body[data-netbox-color-mode=dark] .display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){body[data-netbox-color-mode=dark] .display-1{font-size:5rem}}body[data-netbox-color-mode=dark] .display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){body[data-netbox-color-mode=dark] .display-2{font-size:4.5rem}}body[data-netbox-color-mode=dark] .display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){body[data-netbox-color-mode=dark] .display-3{font-size:4rem}}body[data-netbox-color-mode=dark] .display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){body[data-netbox-color-mode=dark] .display-4{font-size:3.5rem}}body[data-netbox-color-mode=dark] .display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){body[data-netbox-color-mode=dark] .display-5{font-size:3rem}}body[data-netbox-color-mode=dark] .display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){body[data-netbox-color-mode=dark] .display-6{font-size:2.5rem}}body[data-netbox-color-mode=dark] .list-inline,body[data-netbox-color-mode=dark] .list-unstyled{padding-left:0;list-style:none}body[data-netbox-color-mode=dark] .list-inline-item{display:inline-block}body[data-netbox-color-mode=dark] .list-inline-item:not(:last-child){margin-right:.5rem}body[data-netbox-color-mode=dark] .initialism{font-size:.875em;text-transform:uppercase}body[data-netbox-color-mode=dark] .blockquote{margin-bottom:1rem;font-size:1.25rem}body[data-netbox-color-mode=dark] .blockquote>:last-child{margin-bottom:0}body[data-netbox-color-mode=dark] .blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#4b5563}body[data-netbox-color-mode=dark] .blockquote-footer:before{content:"— "}body[data-netbox-color-mode=dark] .img-fluid{max-width:100%;height:auto}body[data-netbox-color-mode=dark] .img-thumbnail{padding:.25rem;background-color:#111827;border:1px solid #d1d5db;border-radius:.5rem;max-width:100%;height:auto}body[data-netbox-color-mode=dark] .figure{display:inline-block}body[data-netbox-color-mode=dark] .figure-img{margin-bottom:.5rem;line-height:1}body[data-netbox-color-mode=dark] .figure-caption{font-size:.875em;color:#4b5563}body[data-netbox-color-mode=dark] .container,body[data-netbox-color-mode=dark] .container-fluid,body[data-netbox-color-mode=dark] .container-lg,body[data-netbox-color-mode=dark] .container-md,body[data-netbox-color-mode=dark] .container-sm,body[data-netbox-color-mode=dark] .container-xl,body[data-netbox-color-mode=dark] .container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){body[data-netbox-color-mode=dark] .container,body[data-netbox-color-mode=dark] .container-sm{max-width:540px}}@media (min-width:768px){body[data-netbox-color-mode=dark] .container,body[data-netbox-color-mode=dark] .container-md,body[data-netbox-color-mode=dark] .container-sm{max-width:720px}}@media (min-width:992px){body[data-netbox-color-mode=dark] .container,body[data-netbox-color-mode=dark] .container-lg,body[data-netbox-color-mode=dark] .container-md,body[data-netbox-color-mode=dark] .container-sm{max-width:960px}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .container,body[data-netbox-color-mode=dark] .container-lg,body[data-netbox-color-mode=dark] .container-md,body[data-netbox-color-mode=dark] .container-sm,body[data-netbox-color-mode=dark] .container-xl{max-width:1140px}}@media (min-width:1400px){body[data-netbox-color-mode=dark] .container,body[data-netbox-color-mode=dark] .container-lg,body[data-netbox-color-mode=dark] .container-md,body[data-netbox-color-mode=dark] .container-sm,body[data-netbox-color-mode=dark] .container-xl,body[data-netbox-color-mode=dark] .container-xxl{max-width:1320px}}body[data-netbox-color-mode=dark] .row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y)*-1);margin-right:calc(var(--bs-gutter-x)/-2);margin-left:calc(var(--bs-gutter-x)/-2)}body[data-netbox-color-mode=dark] .row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x)/2);padding-left:calc(var(--bs-gutter-x)/2);margin-top:var(--bs-gutter-y)}body[data-netbox-color-mode=dark] .col{flex:1 0 0%}body[data-netbox-color-mode=dark] .row-cols-auto>*{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .row-cols-1>*{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .row-cols-2>*{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .row-cols-3>*{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .row-cols-4>*{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .row-cols-5>*{flex:0 0 auto;width:20%}body[data-netbox-color-mode=dark] .row-cols-6>*{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-auto{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .col-1{flex:0 0 auto;width:8.3333333333%}body[data-netbox-color-mode=dark] .col-2{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-3{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .col-4{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .col-5{flex:0 0 auto;width:41.6666666667%}body[data-netbox-color-mode=dark] .col-6{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .col-7{flex:0 0 auto;width:58.3333333333%}body[data-netbox-color-mode=dark] .col-8{flex:0 0 auto;width:66.6666666667%}body[data-netbox-color-mode=dark] .col-9{flex:0 0 auto;width:75%}body[data-netbox-color-mode=dark] .col-10{flex:0 0 auto;width:83.3333333333%}body[data-netbox-color-mode=dark] .col-11{flex:0 0 auto;width:91.6666666667%}body[data-netbox-color-mode=dark] .col-12{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .offset-1{margin-left:8.3333333333%}body[data-netbox-color-mode=dark] .offset-2{margin-left:16.6666666667%}body[data-netbox-color-mode=dark] .offset-3{margin-left:25%}body[data-netbox-color-mode=dark] .offset-4{margin-left:33.3333333333%}body[data-netbox-color-mode=dark] .offset-5{margin-left:41.6666666667%}body[data-netbox-color-mode=dark] .offset-6{margin-left:50%}body[data-netbox-color-mode=dark] .offset-7{margin-left:58.3333333333%}body[data-netbox-color-mode=dark] .offset-8{margin-left:66.6666666667%}body[data-netbox-color-mode=dark] .offset-9{margin-left:75%}body[data-netbox-color-mode=dark] .offset-10{margin-left:83.3333333333%}body[data-netbox-color-mode=dark] .offset-11{margin-left:91.6666666667%}body[data-netbox-color-mode=dark] .g-0,body[data-netbox-color-mode=dark] .gx-0{--bs-gutter-x:0}body[data-netbox-color-mode=dark] .g-0,body[data-netbox-color-mode=dark] .gy-0{--bs-gutter-y:0}body[data-netbox-color-mode=dark] .g-1,body[data-netbox-color-mode=dark] .gx-1{--bs-gutter-x:0.25rem}body[data-netbox-color-mode=dark] .g-1,body[data-netbox-color-mode=dark] .gy-1{--bs-gutter-y:0.25rem}body[data-netbox-color-mode=dark] .g-2,body[data-netbox-color-mode=dark] .gx-2{--bs-gutter-x:0.5rem}body[data-netbox-color-mode=dark] .g-2,body[data-netbox-color-mode=dark] .gy-2{--bs-gutter-y:0.5rem}body[data-netbox-color-mode=dark] .g-3,body[data-netbox-color-mode=dark] .gx-3{--bs-gutter-x:1rem}body[data-netbox-color-mode=dark] .g-3,body[data-netbox-color-mode=dark] .gy-3{--bs-gutter-y:1rem}body[data-netbox-color-mode=dark] .g-4,body[data-netbox-color-mode=dark] .gx-4{--bs-gutter-x:1.5rem}body[data-netbox-color-mode=dark] .g-4,body[data-netbox-color-mode=dark] .gy-4{--bs-gutter-y:1.5rem}body[data-netbox-color-mode=dark] .g-5,body[data-netbox-color-mode=dark] .gx-5{--bs-gutter-x:3rem}body[data-netbox-color-mode=dark] .g-5,body[data-netbox-color-mode=dark] .gy-5{--bs-gutter-y:3rem}@media (min-width:576px){body[data-netbox-color-mode=dark] .col-sm{flex:1 0 0%}body[data-netbox-color-mode=dark] .row-cols-sm-auto>*{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .row-cols-sm-1>*{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .row-cols-sm-2>*{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .row-cols-sm-4>*{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .row-cols-sm-5>*{flex:0 0 auto;width:20%}body[data-netbox-color-mode=dark] .row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-sm-auto{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .col-sm-1{flex:0 0 auto;width:8.3333333333%}body[data-netbox-color-mode=dark] .col-sm-2{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-sm-3{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .col-sm-4{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .col-sm-5{flex:0 0 auto;width:41.6666666667%}body[data-netbox-color-mode=dark] .col-sm-6{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .col-sm-7{flex:0 0 auto;width:58.3333333333%}body[data-netbox-color-mode=dark] .col-sm-8{flex:0 0 auto;width:66.6666666667%}body[data-netbox-color-mode=dark] .col-sm-9{flex:0 0 auto;width:75%}body[data-netbox-color-mode=dark] .col-sm-10{flex:0 0 auto;width:83.3333333333%}body[data-netbox-color-mode=dark] .col-sm-11{flex:0 0 auto;width:91.6666666667%}body[data-netbox-color-mode=dark] .col-sm-12{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .offset-sm-0{margin-left:0}body[data-netbox-color-mode=dark] .offset-sm-1{margin-left:8.3333333333%}body[data-netbox-color-mode=dark] .offset-sm-2{margin-left:16.6666666667%}body[data-netbox-color-mode=dark] .offset-sm-3{margin-left:25%}body[data-netbox-color-mode=dark] .offset-sm-4{margin-left:33.3333333333%}body[data-netbox-color-mode=dark] .offset-sm-5{margin-left:41.6666666667%}body[data-netbox-color-mode=dark] .offset-sm-6{margin-left:50%}body[data-netbox-color-mode=dark] .offset-sm-7{margin-left:58.3333333333%}body[data-netbox-color-mode=dark] .offset-sm-8{margin-left:66.6666666667%}body[data-netbox-color-mode=dark] .offset-sm-9{margin-left:75%}body[data-netbox-color-mode=dark] .offset-sm-10{margin-left:83.3333333333%}body[data-netbox-color-mode=dark] .offset-sm-11{margin-left:91.6666666667%}body[data-netbox-color-mode=dark] .g-sm-0,body[data-netbox-color-mode=dark] .gx-sm-0{--bs-gutter-x:0}body[data-netbox-color-mode=dark] .g-sm-0,body[data-netbox-color-mode=dark] .gy-sm-0{--bs-gutter-y:0}body[data-netbox-color-mode=dark] .g-sm-1,body[data-netbox-color-mode=dark] .gx-sm-1{--bs-gutter-x:0.25rem}body[data-netbox-color-mode=dark] .g-sm-1,body[data-netbox-color-mode=dark] .gy-sm-1{--bs-gutter-y:0.25rem}body[data-netbox-color-mode=dark] .g-sm-2,body[data-netbox-color-mode=dark] .gx-sm-2{--bs-gutter-x:0.5rem}body[data-netbox-color-mode=dark] .g-sm-2,body[data-netbox-color-mode=dark] .gy-sm-2{--bs-gutter-y:0.5rem}body[data-netbox-color-mode=dark] .g-sm-3,body[data-netbox-color-mode=dark] .gx-sm-3{--bs-gutter-x:1rem}body[data-netbox-color-mode=dark] .g-sm-3,body[data-netbox-color-mode=dark] .gy-sm-3{--bs-gutter-y:1rem}body[data-netbox-color-mode=dark] .g-sm-4,body[data-netbox-color-mode=dark] .gx-sm-4{--bs-gutter-x:1.5rem}body[data-netbox-color-mode=dark] .g-sm-4,body[data-netbox-color-mode=dark] .gy-sm-4{--bs-gutter-y:1.5rem}body[data-netbox-color-mode=dark] .g-sm-5,body[data-netbox-color-mode=dark] .gx-sm-5{--bs-gutter-x:3rem}body[data-netbox-color-mode=dark] .g-sm-5,body[data-netbox-color-mode=dark] .gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){body[data-netbox-color-mode=dark] .col-md{flex:1 0 0%}body[data-netbox-color-mode=dark] .row-cols-md-auto>*{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .row-cols-md-1>*{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .row-cols-md-2>*{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .row-cols-md-4>*{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .row-cols-md-5>*{flex:0 0 auto;width:20%}body[data-netbox-color-mode=dark] .row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-md-auto{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .col-md-1{flex:0 0 auto;width:8.3333333333%}body[data-netbox-color-mode=dark] .col-md-2{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-md-3{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .col-md-4{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .col-md-5{flex:0 0 auto;width:41.6666666667%}body[data-netbox-color-mode=dark] .col-md-6{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .col-md-7{flex:0 0 auto;width:58.3333333333%}body[data-netbox-color-mode=dark] .col-md-8{flex:0 0 auto;width:66.6666666667%}body[data-netbox-color-mode=dark] .col-md-9{flex:0 0 auto;width:75%}body[data-netbox-color-mode=dark] .col-md-10{flex:0 0 auto;width:83.3333333333%}body[data-netbox-color-mode=dark] .col-md-11{flex:0 0 auto;width:91.6666666667%}body[data-netbox-color-mode=dark] .col-md-12{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .offset-md-0{margin-left:0}body[data-netbox-color-mode=dark] .offset-md-1{margin-left:8.3333333333%}body[data-netbox-color-mode=dark] .offset-md-2{margin-left:16.6666666667%}body[data-netbox-color-mode=dark] .offset-md-3{margin-left:25%}body[data-netbox-color-mode=dark] .offset-md-4{margin-left:33.3333333333%}body[data-netbox-color-mode=dark] .offset-md-5{margin-left:41.6666666667%}body[data-netbox-color-mode=dark] .offset-md-6{margin-left:50%}body[data-netbox-color-mode=dark] .offset-md-7{margin-left:58.3333333333%}body[data-netbox-color-mode=dark] .offset-md-8{margin-left:66.6666666667%}body[data-netbox-color-mode=dark] .offset-md-9{margin-left:75%}body[data-netbox-color-mode=dark] .offset-md-10{margin-left:83.3333333333%}body[data-netbox-color-mode=dark] .offset-md-11{margin-left:91.6666666667%}body[data-netbox-color-mode=dark] .g-md-0,body[data-netbox-color-mode=dark] .gx-md-0{--bs-gutter-x:0}body[data-netbox-color-mode=dark] .g-md-0,body[data-netbox-color-mode=dark] .gy-md-0{--bs-gutter-y:0}body[data-netbox-color-mode=dark] .g-md-1,body[data-netbox-color-mode=dark] .gx-md-1{--bs-gutter-x:0.25rem}body[data-netbox-color-mode=dark] .g-md-1,body[data-netbox-color-mode=dark] .gy-md-1{--bs-gutter-y:0.25rem}body[data-netbox-color-mode=dark] .g-md-2,body[data-netbox-color-mode=dark] .gx-md-2{--bs-gutter-x:0.5rem}body[data-netbox-color-mode=dark] .g-md-2,body[data-netbox-color-mode=dark] .gy-md-2{--bs-gutter-y:0.5rem}body[data-netbox-color-mode=dark] .g-md-3,body[data-netbox-color-mode=dark] .gx-md-3{--bs-gutter-x:1rem}body[data-netbox-color-mode=dark] .g-md-3,body[data-netbox-color-mode=dark] .gy-md-3{--bs-gutter-y:1rem}body[data-netbox-color-mode=dark] .g-md-4,body[data-netbox-color-mode=dark] .gx-md-4{--bs-gutter-x:1.5rem}body[data-netbox-color-mode=dark] .g-md-4,body[data-netbox-color-mode=dark] .gy-md-4{--bs-gutter-y:1.5rem}body[data-netbox-color-mode=dark] .g-md-5,body[data-netbox-color-mode=dark] .gx-md-5{--bs-gutter-x:3rem}body[data-netbox-color-mode=dark] .g-md-5,body[data-netbox-color-mode=dark] .gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){body[data-netbox-color-mode=dark] .col-lg{flex:1 0 0%}body[data-netbox-color-mode=dark] .row-cols-lg-auto>*{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .row-cols-lg-1>*{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .row-cols-lg-2>*{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .row-cols-lg-4>*{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .row-cols-lg-5>*{flex:0 0 auto;width:20%}body[data-netbox-color-mode=dark] .row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-lg-auto{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .col-lg-1{flex:0 0 auto;width:8.3333333333%}body[data-netbox-color-mode=dark] .col-lg-2{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-lg-3{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .col-lg-4{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .col-lg-5{flex:0 0 auto;width:41.6666666667%}body[data-netbox-color-mode=dark] .col-lg-6{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .col-lg-7{flex:0 0 auto;width:58.3333333333%}body[data-netbox-color-mode=dark] .col-lg-8{flex:0 0 auto;width:66.6666666667%}body[data-netbox-color-mode=dark] .col-lg-9{flex:0 0 auto;width:75%}body[data-netbox-color-mode=dark] .col-lg-10{flex:0 0 auto;width:83.3333333333%}body[data-netbox-color-mode=dark] .col-lg-11{flex:0 0 auto;width:91.6666666667%}body[data-netbox-color-mode=dark] .col-lg-12{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .offset-lg-0{margin-left:0}body[data-netbox-color-mode=dark] .offset-lg-1{margin-left:8.3333333333%}body[data-netbox-color-mode=dark] .offset-lg-2{margin-left:16.6666666667%}body[data-netbox-color-mode=dark] .offset-lg-3{margin-left:25%}body[data-netbox-color-mode=dark] .offset-lg-4{margin-left:33.3333333333%}body[data-netbox-color-mode=dark] .offset-lg-5{margin-left:41.6666666667%}body[data-netbox-color-mode=dark] .offset-lg-6{margin-left:50%}body[data-netbox-color-mode=dark] .offset-lg-7{margin-left:58.3333333333%}body[data-netbox-color-mode=dark] .offset-lg-8{margin-left:66.6666666667%}body[data-netbox-color-mode=dark] .offset-lg-9{margin-left:75%}body[data-netbox-color-mode=dark] .offset-lg-10{margin-left:83.3333333333%}body[data-netbox-color-mode=dark] .offset-lg-11{margin-left:91.6666666667%}body[data-netbox-color-mode=dark] .g-lg-0,body[data-netbox-color-mode=dark] .gx-lg-0{--bs-gutter-x:0}body[data-netbox-color-mode=dark] .g-lg-0,body[data-netbox-color-mode=dark] .gy-lg-0{--bs-gutter-y:0}body[data-netbox-color-mode=dark] .g-lg-1,body[data-netbox-color-mode=dark] .gx-lg-1{--bs-gutter-x:0.25rem}body[data-netbox-color-mode=dark] .g-lg-1,body[data-netbox-color-mode=dark] .gy-lg-1{--bs-gutter-y:0.25rem}body[data-netbox-color-mode=dark] .g-lg-2,body[data-netbox-color-mode=dark] .gx-lg-2{--bs-gutter-x:0.5rem}body[data-netbox-color-mode=dark] .g-lg-2,body[data-netbox-color-mode=dark] .gy-lg-2{--bs-gutter-y:0.5rem}body[data-netbox-color-mode=dark] .g-lg-3,body[data-netbox-color-mode=dark] .gx-lg-3{--bs-gutter-x:1rem}body[data-netbox-color-mode=dark] .g-lg-3,body[data-netbox-color-mode=dark] .gy-lg-3{--bs-gutter-y:1rem}body[data-netbox-color-mode=dark] .g-lg-4,body[data-netbox-color-mode=dark] .gx-lg-4{--bs-gutter-x:1.5rem}body[data-netbox-color-mode=dark] .g-lg-4,body[data-netbox-color-mode=dark] .gy-lg-4{--bs-gutter-y:1.5rem}body[data-netbox-color-mode=dark] .g-lg-5,body[data-netbox-color-mode=dark] .gx-lg-5{--bs-gutter-x:3rem}body[data-netbox-color-mode=dark] .g-lg-5,body[data-netbox-color-mode=dark] .gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .col-xl{flex:1 0 0%}body[data-netbox-color-mode=dark] .row-cols-xl-auto>*{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .row-cols-xl-1>*{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .row-cols-xl-2>*{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .row-cols-xl-4>*{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .row-cols-xl-5>*{flex:0 0 auto;width:20%}body[data-netbox-color-mode=dark] .row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-xl-auto{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .col-xl-1{flex:0 0 auto;width:8.3333333333%}body[data-netbox-color-mode=dark] .col-xl-2{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-xl-3{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .col-xl-4{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .col-xl-5{flex:0 0 auto;width:41.6666666667%}body[data-netbox-color-mode=dark] .col-xl-6{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .col-xl-7{flex:0 0 auto;width:58.3333333333%}body[data-netbox-color-mode=dark] .col-xl-8{flex:0 0 auto;width:66.6666666667%}body[data-netbox-color-mode=dark] .col-xl-9{flex:0 0 auto;width:75%}body[data-netbox-color-mode=dark] .col-xl-10{flex:0 0 auto;width:83.3333333333%}body[data-netbox-color-mode=dark] .col-xl-11{flex:0 0 auto;width:91.6666666667%}body[data-netbox-color-mode=dark] .col-xl-12{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .offset-xl-0{margin-left:0}body[data-netbox-color-mode=dark] .offset-xl-1{margin-left:8.3333333333%}body[data-netbox-color-mode=dark] .offset-xl-2{margin-left:16.6666666667%}body[data-netbox-color-mode=dark] .offset-xl-3{margin-left:25%}body[data-netbox-color-mode=dark] .offset-xl-4{margin-left:33.3333333333%}body[data-netbox-color-mode=dark] .offset-xl-5{margin-left:41.6666666667%}body[data-netbox-color-mode=dark] .offset-xl-6{margin-left:50%}body[data-netbox-color-mode=dark] .offset-xl-7{margin-left:58.3333333333%}body[data-netbox-color-mode=dark] .offset-xl-8{margin-left:66.6666666667%}body[data-netbox-color-mode=dark] .offset-xl-9{margin-left:75%}body[data-netbox-color-mode=dark] .offset-xl-10{margin-left:83.3333333333%}body[data-netbox-color-mode=dark] .offset-xl-11{margin-left:91.6666666667%}body[data-netbox-color-mode=dark] .g-xl-0,body[data-netbox-color-mode=dark] .gx-xl-0{--bs-gutter-x:0}body[data-netbox-color-mode=dark] .g-xl-0,body[data-netbox-color-mode=dark] .gy-xl-0{--bs-gutter-y:0}body[data-netbox-color-mode=dark] .g-xl-1,body[data-netbox-color-mode=dark] .gx-xl-1{--bs-gutter-x:0.25rem}body[data-netbox-color-mode=dark] .g-xl-1,body[data-netbox-color-mode=dark] .gy-xl-1{--bs-gutter-y:0.25rem}body[data-netbox-color-mode=dark] .g-xl-2,body[data-netbox-color-mode=dark] .gx-xl-2{--bs-gutter-x:0.5rem}body[data-netbox-color-mode=dark] .g-xl-2,body[data-netbox-color-mode=dark] .gy-xl-2{--bs-gutter-y:0.5rem}body[data-netbox-color-mode=dark] .g-xl-3,body[data-netbox-color-mode=dark] .gx-xl-3{--bs-gutter-x:1rem}body[data-netbox-color-mode=dark] .g-xl-3,body[data-netbox-color-mode=dark] .gy-xl-3{--bs-gutter-y:1rem}body[data-netbox-color-mode=dark] .g-xl-4,body[data-netbox-color-mode=dark] .gx-xl-4{--bs-gutter-x:1.5rem}body[data-netbox-color-mode=dark] .g-xl-4,body[data-netbox-color-mode=dark] .gy-xl-4{--bs-gutter-y:1.5rem}body[data-netbox-color-mode=dark] .g-xl-5,body[data-netbox-color-mode=dark] .gx-xl-5{--bs-gutter-x:3rem}body[data-netbox-color-mode=dark] .g-xl-5,body[data-netbox-color-mode=dark] .gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){body[data-netbox-color-mode=dark] .col-xxl{flex:1 0 0%}body[data-netbox-color-mode=dark] .row-cols-xxl-auto>*{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .row-cols-xxl-1>*{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .row-cols-xxl-2>*{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .row-cols-xxl-4>*{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .row-cols-xxl-5>*{flex:0 0 auto;width:20%}body[data-netbox-color-mode=dark] .row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-xxl-auto{flex:0 0 auto;width:auto}body[data-netbox-color-mode=dark] .col-xxl-1{flex:0 0 auto;width:8.3333333333%}body[data-netbox-color-mode=dark] .col-xxl-2{flex:0 0 auto;width:16.6666666667%}body[data-netbox-color-mode=dark] .col-xxl-3{flex:0 0 auto;width:25%}body[data-netbox-color-mode=dark] .col-xxl-4{flex:0 0 auto;width:33.3333333333%}body[data-netbox-color-mode=dark] .col-xxl-5{flex:0 0 auto;width:41.6666666667%}body[data-netbox-color-mode=dark] .col-xxl-6{flex:0 0 auto;width:50%}body[data-netbox-color-mode=dark] .col-xxl-7{flex:0 0 auto;width:58.3333333333%}body[data-netbox-color-mode=dark] .col-xxl-8{flex:0 0 auto;width:66.6666666667%}body[data-netbox-color-mode=dark] .col-xxl-9{flex:0 0 auto;width:75%}body[data-netbox-color-mode=dark] .col-xxl-10{flex:0 0 auto;width:83.3333333333%}body[data-netbox-color-mode=dark] .col-xxl-11{flex:0 0 auto;width:91.6666666667%}body[data-netbox-color-mode=dark] .col-xxl-12{flex:0 0 auto;width:100%}body[data-netbox-color-mode=dark] .offset-xxl-0{margin-left:0}body[data-netbox-color-mode=dark] .offset-xxl-1{margin-left:8.3333333333%}body[data-netbox-color-mode=dark] .offset-xxl-2{margin-left:16.6666666667%}body[data-netbox-color-mode=dark] .offset-xxl-3{margin-left:25%}body[data-netbox-color-mode=dark] .offset-xxl-4{margin-left:33.3333333333%}body[data-netbox-color-mode=dark] .offset-xxl-5{margin-left:41.6666666667%}body[data-netbox-color-mode=dark] .offset-xxl-6{margin-left:50%}body[data-netbox-color-mode=dark] .offset-xxl-7{margin-left:58.3333333333%}body[data-netbox-color-mode=dark] .offset-xxl-8{margin-left:66.6666666667%}body[data-netbox-color-mode=dark] .offset-xxl-9{margin-left:75%}body[data-netbox-color-mode=dark] .offset-xxl-10{margin-left:83.3333333333%}body[data-netbox-color-mode=dark] .offset-xxl-11{margin-left:91.6666666667%}body[data-netbox-color-mode=dark] .g-xxl-0,body[data-netbox-color-mode=dark] .gx-xxl-0{--bs-gutter-x:0}body[data-netbox-color-mode=dark] .g-xxl-0,body[data-netbox-color-mode=dark] .gy-xxl-0{--bs-gutter-y:0}body[data-netbox-color-mode=dark] .g-xxl-1,body[data-netbox-color-mode=dark] .gx-xxl-1{--bs-gutter-x:0.25rem}body[data-netbox-color-mode=dark] .g-xxl-1,body[data-netbox-color-mode=dark] .gy-xxl-1{--bs-gutter-y:0.25rem}body[data-netbox-color-mode=dark] .g-xxl-2,body[data-netbox-color-mode=dark] .gx-xxl-2{--bs-gutter-x:0.5rem}body[data-netbox-color-mode=dark] .g-xxl-2,body[data-netbox-color-mode=dark] .gy-xxl-2{--bs-gutter-y:0.5rem}body[data-netbox-color-mode=dark] .g-xxl-3,body[data-netbox-color-mode=dark] .gx-xxl-3{--bs-gutter-x:1rem}body[data-netbox-color-mode=dark] .g-xxl-3,body[data-netbox-color-mode=dark] .gy-xxl-3{--bs-gutter-y:1rem}body[data-netbox-color-mode=dark] .g-xxl-4,body[data-netbox-color-mode=dark] .gx-xxl-4{--bs-gutter-x:1.5rem}body[data-netbox-color-mode=dark] .g-xxl-4,body[data-netbox-color-mode=dark] .gy-xxl-4{--bs-gutter-y:1.5rem}body[data-netbox-color-mode=dark] .g-xxl-5,body[data-netbox-color-mode=dark] .gx-xxl-5{--bs-gutter-x:3rem}body[data-netbox-color-mode=dark] .g-xxl-5,body[data-netbox-color-mode=dark] .gy-xxl-5{--bs-gutter-y:3rem}}body[data-netbox-color-mode=dark] .table{--bs-table-bg:transparent;--bs-table-striped-color:#f3f4f6;--bs-table-striped-bg:hsla(0,0%,100%,0.05);--bs-table-active-color:#f3f4f6;--bs-table-active-bg:hsla(0,0%,100%,0.1);--bs-table-hover-color:#f3f4f6;--bs-table-hover-bg:hsla(0,0%,100%,0.075);width:100%;margin-bottom:1rem;color:#f3f4f6;vertical-align:top;border-color:#374151}body[data-netbox-color-mode=dark] .table>:not(caption)>*>*{padding:.5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}body[data-netbox-color-mode=dark] .table>tbody{vertical-align:inherit}body[data-netbox-color-mode=dark] .table>thead{vertical-align:bottom}body[data-netbox-color-mode=dark] .table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}body[data-netbox-color-mode=dark] .caption-top{caption-side:top}body[data-netbox-color-mode=dark] .table-sm>:not(caption)>*>*{padding:.25rem}body[data-netbox-color-mode=dark] .table-bordered>:not(caption)>*{border-width:1px 0}body[data-netbox-color-mode=dark] .table-bordered>:not(caption)>*>*{border-width:0 1px}body[data-netbox-color-mode=dark] .table-borderless>:not(caption)>*>*{border-bottom-width:0}body[data-netbox-color-mode=dark] .table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}body[data-netbox-color-mode=dark] .table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}body[data-netbox-color-mode=dark] .table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}body[data-netbox-color-mode=dark] .table-primary{--bs-table-bg:#e9f3ff;--bs-table-striped-bg:#dde7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#d2dbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#d8e1ec;--bs-table-hover-color:#000;color:#000;border-color:#d2dbe6}body[data-netbox-color-mode=dark] .table-secondary{--bs-table-bg:#ebedef;--bs-table-striped-bg:#dfe1e3;--bs-table-striped-color:#000;--bs-table-active-bg:#d4d5d7;--bs-table-active-color:#000;--bs-table-hover-bg:#d9dbdd;--bs-table-hover-color:#000;color:#000;border-color:#d4d5d7}body[data-netbox-color-mode=dark] .table-success{--bs-table-bg:#e2faf1;--bs-table-striped-bg:#d7eee5;--bs-table-striped-color:#000;--bs-table-active-bg:#cbe1d9;--bs-table-active-color:#000;--bs-table-hover-bg:#d1e7df;--bs-table-hover-color:#000;color:#000;border-color:#cbe1d9}body[data-netbox-color-mode=dark] .table-info{--bs-table-bg:#e1fafe;--bs-table-striped-bg:#d6eef1;--bs-table-striped-color:#000;--bs-table-active-bg:#cbe1e5;--bs-table-active-color:#000;--bs-table-hover-bg:#d0e7eb;--bs-table-hover-color:#000;color:#000;border-color:#cbe1e5}body[data-netbox-color-mode=dark] .table-warning{--bs-table-bg:#fef6db;--bs-table-striped-bg:#f1ead0;--bs-table-striped-color:#000;--bs-table-active-bg:#e5ddc5;--bs-table-active-color:#000;--bs-table-hover-bg:#ebe4cb;--bs-table-hover-color:#000;color:#000;border-color:#e5ddc5}body[data-netbox-color-mode=dark] .table-danger{--bs-table-bg:#feeded;--bs-table-striped-bg:#f1e1e1;--bs-table-striped-color:#000;--bs-table-active-bg:#e5d5d5;--bs-table-active-color:#000;--bs-table-hover-bg:#ebdbdb;--bs-table-hover-color:#000;color:#000;border-color:#e5d5d5}body[data-netbox-color-mode=dark] .table-light{--bs-table-bg:#d1d5db;--bs-table-striped-bg:#c7cad0;--bs-table-striped-color:#000;--bs-table-active-bg:#bcc0c5;--bs-table-active-color:#000;--bs-table-hover-bg:#c1c5cb;--bs-table-hover-color:#000;color:#000;border-color:#bcc0c5}body[data-netbox-color-mode=dark] .table-dark{--bs-table-bg:#9ca3af;--bs-table-striped-bg:#949ba6;--bs-table-striped-color:#000;--bs-table-active-bg:#8c939e;--bs-table-active-color:#000;--bs-table-hover-bg:#9097a2;--bs-table-hover-color:#000;color:#000;border-color:#8c939e}body[data-netbox-color-mode=dark] .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){body[data-netbox-color-mode=dark] .table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){body[data-netbox-color-mode=dark] .table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){body[data-netbox-color-mode=dark] .table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){body[data-netbox-color-mode=dark] .table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){body[data-netbox-color-mode=dark] .table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}body[data-netbox-color-mode=dark] .form-label{margin-bottom:.5rem}body[data-netbox-color-mode=dark] .col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}body[data-netbox-color-mode=dark] .col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}body[data-netbox-color-mode=dark] .col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}body[data-netbox-color-mode=dark] .form-text{margin-top:.25rem;font-size:.875em;color:#9ca3af}body[data-netbox-color-mode=dark] .form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#f3f4f6;background-color:#1f2937;background-clip:padding-box;border:1px solid #374151;appearance:none;border-radius:.5rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-control{transition:none}}body[data-netbox-color-mode=dark] .form-control[type=file]{overflow:hidden}body[data-netbox-color-mode=dark] .form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}body[data-netbox-color-mode=dark] .form-control:focus{color:#f3f4f6;background-color:#1f2937;border-color:#9ecbfd;outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .form-control::-webkit-date-and-time-value{height:1.5em}body[data-netbox-color-mode=dark] .form-control::placeholder{color:#d1d5db;opacity:1}body[data-netbox-color-mode=dark] .form-control:disabled,body[data-netbox-color-mode=dark] .form-control[readonly]{background-color:#374151;opacity:1}body[data-netbox-color-mode=dark] .form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:#f3f4f6;background-color:#374151;pointer-events:none;border:0 solid;border-color:inherit;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-control::file-selector-button{transition:none}}body[data-netbox-color-mode=dark] .form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#343e4d}body[data-netbox-color-mode=dark] .form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;margin-inline-end:.75rem;color:#f3f4f6;background-color:#374151;pointer-events:none;border:0 solid;border-color:inherit;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-control::-webkit-file-upload-button{transition:none}}body[data-netbox-color-mode=dark] .form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#343e4d}body[data-netbox-color-mode=dark] .form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#fff;background-color:transparent;border:solid transparent;border-width:1px 0}body[data-netbox-color-mode=dark] .form-control-plaintext.form-control-lg,body[data-netbox-color-mode=dark] .form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}body[data-netbox-color-mode=dark] .form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.5rem}body[data-netbox-color-mode=dark] .form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}body[data-netbox-color-mode=dark] .form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;margin-inline-end:.5rem}body[data-netbox-color-mode=dark] .form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.75rem}body[data-netbox-color-mode=dark] .form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}body[data-netbox-color-mode=dark] .form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;margin-inline-end:1rem}body[data-netbox-color-mode=dark] textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}body[data-netbox-color-mode=dark] textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}body[data-netbox-color-mode=dark] textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}body[data-netbox-color-mode=dark] .form-control-color{max-width:3rem;height:auto;padding:.375rem}body[data-netbox-color-mode=dark] .form-control-color:not(:disabled):not([readonly]){cursor:pointer}body[data-netbox-color-mode=dark] .form-control-color::-moz-color-swatch{height:1.5em;border-radius:.5rem}body[data-netbox-color-mode=dark] .form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.5rem}body[data-netbox-color-mode=dark] .form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#f3f4f6;background-color:#1f2937;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231f2937' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #374151;border-radius:.5rem;appearance:none}body[data-netbox-color-mode=dark] .form-select:focus{border-color:#c9e2fe;outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .form-select[multiple],body[data-netbox-color-mode=dark] .form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}body[data-netbox-color-mode=dark] .form-select:disabled{color:#9ca3af;background-color:#374151}body[data-netbox-color-mode=dark] .form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #f3f4f6}body[data-netbox-color-mode=dark] .form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}body[data-netbox-color-mode=dark] .form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}body[data-netbox-color-mode=dark] .form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}body[data-netbox-color-mode=dark] .form-check .form-check-input{float:left;margin-left:-1.5em}body[data-netbox-color-mode=dark] .form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#1f2937;background-repeat:no-repeat;background-position:50%;background-size:contain;border:1px solid hsla(0,0%,100%,.25);appearance:none;color-adjust:exact}body[data-netbox-color-mode=dark] .form-check-input[type=checkbox]{border-radius:.25em}body[data-netbox-color-mode=dark] .form-check-input[type=radio]{border-radius:50%}body[data-netbox-color-mode=dark] .form-check-input:active{filter:brightness(90%)}body[data-netbox-color-mode=dark] .form-check-input:focus{border-color:#c9e2fe;outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .form-check-input:checked{background-color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='2' fill='%23fff'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .form-check-input[type=checkbox]:indeterminate{background-color:#93c5fd;border-color:#93c5fd;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}body[data-netbox-color-mode=dark] .form-check-input:disabled~.form-check-label,body[data-netbox-color-mode=dark] .form-check-input[disabled]~.form-check-label{opacity:.5}body[data-netbox-color-mode=dark] .form-switch{padding-left:2.5em}body[data-netbox-color-mode=dark] .form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(0, 0, 0, 0.25)'/%3E%3C/svg%3E");background-position:0;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-switch .form-check-input{transition:none}}body[data-netbox-color-mode=dark] .form-switch .form-check-input:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23c9e2fe'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .form-switch .form-check-input:checked{background-position:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .form-check-inline{display:inline-block;margin-right:1rem}body[data-netbox-color-mode=dark] .btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}body[data-netbox-color-mode=dark] .btn-check:disabled+.btn,body[data-netbox-color-mode=dark] .btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}body[data-netbox-color-mode=dark] .form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;appearance:none}body[data-netbox-color-mode=dark] .form-range:focus{outline:0}body[data-netbox-color-mode=dark] .form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #111827,0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #111827,0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .form-range::-moz-focus-outer{border:0}body[data-netbox-color-mode=dark] .form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#93c5fd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-range::-webkit-slider-thumb{transition:none}}body[data-netbox-color-mode=dark] .form-range::-webkit-slider-thumb:active{background-color:#dfeefe}body[data-netbox-color-mode=dark] .form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#d1d5db;border-color:transparent;border-radius:1rem}body[data-netbox-color-mode=dark] .form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#93c5fd;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-range::-moz-range-thumb{transition:none}}body[data-netbox-color-mode=dark] .form-range::-moz-range-thumb:active{background-color:#dfeefe}body[data-netbox-color-mode=dark] .form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#d1d5db;border-color:transparent;border-radius:1rem}body[data-netbox-color-mode=dark] .form-range:disabled{pointer-events:none}body[data-netbox-color-mode=dark] .form-range:disabled::-webkit-slider-thumb{background-color:#6b7280}body[data-netbox-color-mode=dark] .form-range:disabled::-moz-range-thumb{background-color:#6b7280}body[data-netbox-color-mode=dark] .form-floating>.form-control,body[data-netbox-color-mode=dark] .form-floating>.form-select{height:calc(3.5rem + 2px);padding:1rem .75rem}body[data-netbox-color-mode=dark] .form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-floating>label{transition:none}}body[data-netbox-color-mode=dark] .form-floating>.form-control::placeholder{color:transparent}body[data-netbox-color-mode=dark] .form-floating>.form-control:focus,body[data-netbox-color-mode=dark] .form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}body[data-netbox-color-mode=dark] .form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}body[data-netbox-color-mode=dark] .form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}body[data-netbox-color-mode=dark] .form-floating>.form-control:focus~label,body[data-netbox-color-mode=dark] .form-floating>.form-control:not(:placeholder-shown)~label,body[data-netbox-color-mode=dark] .form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}body[data-netbox-color-mode=dark] .form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}body[data-netbox-color-mode=dark] .input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}body[data-netbox-color-mode=dark] .input-group>.form-control,body[data-netbox-color-mode=dark] .input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}body[data-netbox-color-mode=dark] .input-group>.form-control:focus,body[data-netbox-color-mode=dark] .input-group>.form-select:focus{z-index:3}body[data-netbox-color-mode=dark] .input-group .btn{position:relative;z-index:2}body[data-netbox-color-mode=dark] .input-group .btn:focus{z-index:3}body[data-netbox-color-mode=dark] .input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#f3f4f6;text-align:center;white-space:nowrap;background-color:#374151;border:1px solid #374151;border-radius:.5rem}body[data-netbox-color-mode=dark] .input-group-lg>.btn,body[data-netbox-color-mode=dark] .input-group-lg>.form-control,body[data-netbox-color-mode=dark] .input-group-lg>.form-select,body[data-netbox-color-mode=dark] .input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.75rem}body[data-netbox-color-mode=dark] .input-group-sm>.btn,body[data-netbox-color-mode=dark] .input-group-sm>.form-control,body[data-netbox-color-mode=dark] .input-group-sm>.form-select,body[data-netbox-color-mode=dark] .input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.5rem}body[data-netbox-color-mode=dark] .input-group-lg>.form-select,body[data-netbox-color-mode=dark] .input-group-sm>.form-select{padding-right:3rem}body[data-netbox-color-mode=dark] .input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),body[data-netbox-color-mode=dark] .input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),body[data-netbox-color-mode=dark] .input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),body[data-netbox-color-mode=dark] .input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}body[data-netbox-color-mode=dark] .input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#6ee7b7}body[data-netbox-color-mode=dark] .valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#000;background-color:rgba(110,231,183,.9);border-radius:.5rem}.was-validated body[data-netbox-color-mode=dark]:valid~.valid-feedback,.was-validated body[data-netbox-color-mode=dark]:valid~.valid-tooltip,body[data-netbox-color-mode=dark].is-valid~.valid-feedback,body[data-netbox-color-mode=dark].is-valid~.valid-tooltip{display:block}.was-validated body[data-netbox-color-mode=dark] .form-control:valid,body[data-netbox-color-mode=dark] .form-control.is-valid{border-color:#6ee7b7;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236ee7b7' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated body[data-netbox-color-mode=dark] .form-control:valid:focus,body[data-netbox-color-mode=dark] .form-control.is-valid:focus{border-color:#6ee7b7;box-shadow:0 0 0 .25rem rgba(110,231,183,.25)}.was-validated body[data-netbox-color-mode=dark] textarea.form-control:valid,body[data-netbox-color-mode=dark] textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated body[data-netbox-color-mode=dark] .form-select:valid,body[data-netbox-color-mode=dark] .form-select.is-valid{border-color:#6ee7b7;padding-right:4.125rem;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231f2937' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E"),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%236ee7b7' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated body[data-netbox-color-mode=dark] .form-select:valid:focus,body[data-netbox-color-mode=dark] .form-select.is-valid:focus{border-color:#6ee7b7;box-shadow:0 0 0 .25rem rgba(110,231,183,.25)}.was-validated body[data-netbox-color-mode=dark] .form-check-input:valid,body[data-netbox-color-mode=dark] .form-check-input.is-valid{border-color:#6ee7b7}.was-validated body[data-netbox-color-mode=dark] .form-check-input:valid:checked,body[data-netbox-color-mode=dark] .form-check-input.is-valid:checked{background-color:#6ee7b7}.was-validated body[data-netbox-color-mode=dark] .form-check-input:valid:focus,body[data-netbox-color-mode=dark] .form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(110,231,183,.25)}.was-validated body[data-netbox-color-mode=dark] .form-check-input:valid~.form-check-label,body[data-netbox-color-mode=dark] .form-check-input.is-valid~.form-check-label{color:#6ee7b7}body[data-netbox-color-mode=dark] .form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated body[data-netbox-color-mode=dark] .input-group .form-control:valid,.was-validated body[data-netbox-color-mode=dark] .input-group .form-select:valid,body[data-netbox-color-mode=dark] .input-group .form-control.is-valid,body[data-netbox-color-mode=dark] .input-group .form-select.is-valid{z-index:3}body[data-netbox-color-mode=dark] .invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#fca5a5}body[data-netbox-color-mode=dark] .invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#000;background-color:rgba(252,165,165,.9);border-radius:.5rem}.was-validated body[data-netbox-color-mode=dark]:invalid~.invalid-feedback,.was-validated body[data-netbox-color-mode=dark]:invalid~.invalid-tooltip,body[data-netbox-color-mode=dark].is-invalid~.invalid-feedback,body[data-netbox-color-mode=dark].is-invalid~.invalid-tooltip{display:block}.was-validated body[data-netbox-color-mode=dark] .form-control:invalid,body[data-netbox-color-mode=dark] .form-control.is-invalid{border-color:#fca5a5;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23fca5a5'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23fca5a5' stroke='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated body[data-netbox-color-mode=dark] .form-control:invalid:focus,body[data-netbox-color-mode=dark] .form-control.is-invalid:focus{border-color:#fca5a5;box-shadow:0 0 0 .25rem rgba(252,165,165,.25)}.was-validated body[data-netbox-color-mode=dark] textarea.form-control:invalid,body[data-netbox-color-mode=dark] textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated body[data-netbox-color-mode=dark] .form-select:invalid,body[data-netbox-color-mode=dark] .form-select.is-invalid{border-color:#fca5a5;padding-right:4.125rem;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231f2937' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E"),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23fca5a5'%3E%3Ccircle cx='6' cy='6' r='4.5'/%3E%3Cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3E%3Ccircle cx='6' cy='8.2' r='.6' fill='%23fca5a5' stroke='none'/%3E%3C/svg%3E");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated body[data-netbox-color-mode=dark] .form-select:invalid:focus,body[data-netbox-color-mode=dark] .form-select.is-invalid:focus{border-color:#fca5a5;box-shadow:0 0 0 .25rem rgba(252,165,165,.25)}.was-validated body[data-netbox-color-mode=dark] .form-check-input:invalid,body[data-netbox-color-mode=dark] .form-check-input.is-invalid{border-color:#fca5a5}.was-validated body[data-netbox-color-mode=dark] .form-check-input:invalid:checked,body[data-netbox-color-mode=dark] .form-check-input.is-invalid:checked{background-color:#fca5a5}.was-validated body[data-netbox-color-mode=dark] .form-check-input:invalid:focus,body[data-netbox-color-mode=dark] .form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(252,165,165,.25)}.was-validated body[data-netbox-color-mode=dark] .form-check-input:invalid~.form-check-label,body[data-netbox-color-mode=dark] .form-check-input.is-invalid~.form-check-label{color:#fca5a5}body[data-netbox-color-mode=dark] .form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated body[data-netbox-color-mode=dark] .input-group .form-control:invalid,.was-validated body[data-netbox-color-mode=dark] .input-group .form-select:invalid,body[data-netbox-color-mode=dark] .input-group .form-control.is-invalid,body[data-netbox-color-mode=dark] .input-group .form-select.is-invalid{z-index:3}body[data-netbox-color-mode=dark] .btn{display:inline-block;font-weight:400;line-height:1.5;color:#fff;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.5rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .btn{transition:none}}body[data-netbox-color-mode=dark] .btn:hover{color:#fff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn,body[data-netbox-color-mode=dark] .btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .btn.disabled,body[data-netbox-color-mode=dark] .btn:disabled,fieldset:disabled body[data-netbox-color-mode=dark] .btn{pointer-events:none;opacity:.65}body[data-netbox-color-mode=dark] .btn-primary{color:#000;background-color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .btn-primary:hover{color:#000;background-color:#a3cefd;border-color:#9ecbfd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-primary,body[data-netbox-color-mode=dark] .btn-primary:focus{color:#000;background-color:#a3cefd;border-color:#9ecbfd;box-shadow:0 0 0 .25rem rgba(125,167,215,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-primary,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-primary,.show>body[data-netbox-color-mode=dark] .btn-primary.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-primary.active,body[data-netbox-color-mode=dark] .btn-primary:active{color:#000;background-color:#a9d1fd;border-color:#9ecbfd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-primary:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-primary:focus,.show>body[data-netbox-color-mode=dark] .btn-primary.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-primary.active:focus,body[data-netbox-color-mode=dark] .btn-primary:active:focus{box-shadow:0 0 0 .25rem rgba(125,167,215,.5)}body[data-netbox-color-mode=dark] .btn-primary.disabled,body[data-netbox-color-mode=dark] .btn-primary:disabled{color:#000;background-color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .btn-secondary{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-secondary:hover{color:#000;background-color:#abb1bb;border-color:#a6acb7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-secondary,body[data-netbox-color-mode=dark] .btn-secondary:focus{color:#000;background-color:#abb1bb;border-color:#a6acb7;box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-secondary,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-secondary,.show>body[data-netbox-color-mode=dark] .btn-secondary.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-secondary.active,body[data-netbox-color-mode=dark] .btn-secondary:active{color:#000;background-color:#b0b5bf;border-color:#a6acb7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-secondary:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-secondary:focus,.show>body[data-netbox-color-mode=dark] .btn-secondary.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-secondary.active:focus,body[data-netbox-color-mode=dark] .btn-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}body[data-netbox-color-mode=dark] .btn-secondary.disabled,body[data-netbox-color-mode=dark] .btn-secondary:disabled{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-success{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}body[data-netbox-color-mode=dark] .btn-success:hover{color:#000;background-color:#84ebc2;border-color:#7de9be}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-success,body[data-netbox-color-mode=dark] .btn-success:focus{color:#000;background-color:#84ebc2;border-color:#7de9be;box-shadow:0 0 0 .25rem rgba(94,196,156,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-success,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-success,.show>body[data-netbox-color-mode=dark] .btn-success.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-success.active,body[data-netbox-color-mode=dark] .btn-success:active{color:#000;background-color:#8becc5;border-color:#7de9be}.btn-check:active+body[data-netbox-color-mode=dark] .btn-success:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-success:focus,.show>body[data-netbox-color-mode=dark] .btn-success.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-success.active:focus,body[data-netbox-color-mode=dark] .btn-success:active:focus{box-shadow:0 0 0 .25rem rgba(94,196,156,.5)}body[data-netbox-color-mode=dark] .btn-success.disabled,body[data-netbox-color-mode=dark] .btn-success:disabled{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}body[data-netbox-color-mode=dark] .btn-info{color:#000;background-color:#67e8f9;border-color:#67e8f9}body[data-netbox-color-mode=dark] .btn-info:hover{color:#000;background-color:#7eebfa;border-color:#76eafa}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-info,body[data-netbox-color-mode=dark] .btn-info:focus{color:#000;background-color:#7eebfa;border-color:#76eafa;box-shadow:0 0 0 .25rem rgba(88,197,212,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-info,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-info,.show>body[data-netbox-color-mode=dark] .btn-info.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-info.active,body[data-netbox-color-mode=dark] .btn-info:active{color:#000;background-color:#85edfa;border-color:#76eafa}.btn-check:active+body[data-netbox-color-mode=dark] .btn-info:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-info:focus,.show>body[data-netbox-color-mode=dark] .btn-info.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-info.active:focus,body[data-netbox-color-mode=dark] .btn-info:active:focus{box-shadow:0 0 0 .25rem rgba(88,197,212,.5)}body[data-netbox-color-mode=dark] .btn-info.disabled,body[data-netbox-color-mode=dark] .btn-info:disabled{color:#000;background-color:#67e8f9;border-color:#67e8f9}body[data-netbox-color-mode=dark] .btn-warning{color:#000;background-color:#fcd34d;border-color:#fcd34d}body[data-netbox-color-mode=dark] .btn-warning:hover{color:#000;background-color:#fcda68;border-color:#fcd75f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-warning,body[data-netbox-color-mode=dark] .btn-warning:focus{color:#000;background-color:#fcda68;border-color:#fcd75f;box-shadow:0 0 0 .25rem rgba(214,179,65,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-warning,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-warning,.show>body[data-netbox-color-mode=dark] .btn-warning.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-warning.active,body[data-netbox-color-mode=dark] .btn-warning:active{color:#000;background-color:#fddc71;border-color:#fcd75f}.btn-check:active+body[data-netbox-color-mode=dark] .btn-warning:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-warning:focus,.show>body[data-netbox-color-mode=dark] .btn-warning.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-warning.active:focus,body[data-netbox-color-mode=dark] .btn-warning:active:focus{box-shadow:0 0 0 .25rem rgba(214,179,65,.5)}body[data-netbox-color-mode=dark] .btn-warning.disabled,body[data-netbox-color-mode=dark] .btn-warning:disabled{color:#000;background-color:#fcd34d;border-color:#fcd34d}body[data-netbox-color-mode=dark] .btn-danger{color:#000;background-color:#fca5a5;border-color:#fca5a5}body[data-netbox-color-mode=dark] .btn-danger:hover{color:#000;background-color:#fcb3b3;border-color:#fcaeae}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-danger,body[data-netbox-color-mode=dark] .btn-danger:focus{color:#000;background-color:#fcb3b3;border-color:#fcaeae;box-shadow:0 0 0 .25rem rgba(214,140,140,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-danger,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-danger,.show>body[data-netbox-color-mode=dark] .btn-danger.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-danger.active,body[data-netbox-color-mode=dark] .btn-danger:active{color:#000;background-color:#fdb7b7;border-color:#fcaeae}.btn-check:active+body[data-netbox-color-mode=dark] .btn-danger:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-danger:focus,.show>body[data-netbox-color-mode=dark] .btn-danger.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-danger.active:focus,body[data-netbox-color-mode=dark] .btn-danger:active:focus{box-shadow:0 0 0 .25rem rgba(214,140,140,.5)}body[data-netbox-color-mode=dark] .btn-danger.disabled,body[data-netbox-color-mode=dark] .btn-danger:disabled{color:#000;background-color:#fca5a5;border-color:#fca5a5}body[data-netbox-color-mode=dark] .btn-light{color:#000;background-color:#d1d5db;border-color:#d1d5db}body[data-netbox-color-mode=dark] .btn-light:hover{color:#000;background-color:#d8dbe0;border-color:#d6d9df}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-light,body[data-netbox-color-mode=dark] .btn-light:focus{color:#000;background-color:#d8dbe0;border-color:#d6d9df;box-shadow:0 0 0 .25rem rgba(178,181,186,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-light,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-light,.show>body[data-netbox-color-mode=dark] .btn-light.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-light.active,body[data-netbox-color-mode=dark] .btn-light:active{color:#000;background-color:#dadde2;border-color:#d6d9df}.btn-check:active+body[data-netbox-color-mode=dark] .btn-light:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-light:focus,.show>body[data-netbox-color-mode=dark] .btn-light.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-light.active:focus,body[data-netbox-color-mode=dark] .btn-light:active:focus{box-shadow:0 0 0 .25rem rgba(178,181,186,.5)}body[data-netbox-color-mode=dark] .btn-light.disabled,body[data-netbox-color-mode=dark] .btn-light:disabled{color:#000;background-color:#d1d5db;border-color:#d1d5db}body[data-netbox-color-mode=dark] .btn-dark{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-dark:hover{color:#000;background-color:#abb1bb;border-color:#a6acb7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-dark,body[data-netbox-color-mode=dark] .btn-dark:focus{color:#000;background-color:#abb1bb;border-color:#a6acb7;box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-dark,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-dark,.show>body[data-netbox-color-mode=dark] .btn-dark.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-dark.active,body[data-netbox-color-mode=dark] .btn-dark:active{color:#000;background-color:#b0b5bf;border-color:#a6acb7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-dark:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-dark:focus,.show>body[data-netbox-color-mode=dark] .btn-dark.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-dark.active:focus,body[data-netbox-color-mode=dark] .btn-dark:active:focus{box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}body[data-netbox-color-mode=dark] .btn-dark.disabled,body[data-netbox-color-mode=dark] .btn-dark:disabled{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-alt{color:#fff;background-color:#13293d;border-color:#13293d}body[data-netbox-color-mode=dark] .btn-alt:hover{color:#fff;background-color:#102334;border-color:#0f2131}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-alt,body[data-netbox-color-mode=dark] .btn-alt:focus{color:#fff;background-color:#102334;border-color:#0f2131;box-shadow:0 0 0 .25rem rgba(54,73,90,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-alt,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-alt,.show>body[data-netbox-color-mode=dark] .btn-alt.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-alt.active,body[data-netbox-color-mode=dark] .btn-alt:active{color:#fff;background-color:#0f2131;border-color:#0e1f2e}.btn-check:active+body[data-netbox-color-mode=dark] .btn-alt:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-alt:focus,.show>body[data-netbox-color-mode=dark] .btn-alt.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-alt.active:focus,body[data-netbox-color-mode=dark] .btn-alt:active:focus{box-shadow:0 0 0 .25rem rgba(54,73,90,.5)}body[data-netbox-color-mode=dark] .btn-alt.disabled,body[data-netbox-color-mode=dark] .btn-alt:disabled{color:#fff;background-color:#13293d;border-color:#13293d}body[data-netbox-color-mode=dark] .btn-gray{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-gray:hover{color:#000;background-color:#abb1bb;border-color:#a6acb7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray,body[data-netbox-color-mode=dark] .btn-gray:focus{color:#000;background-color:#abb1bb;border-color:#a6acb7;box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray,.show>body[data-netbox-color-mode=dark] .btn-gray.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray.active,body[data-netbox-color-mode=dark] .btn-gray:active{color:#000;background-color:#b0b5bf;border-color:#a6acb7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray:focus,.show>body[data-netbox-color-mode=dark] .btn-gray.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray.active:focus,body[data-netbox-color-mode=dark] .btn-gray:active:focus{box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}body[data-netbox-color-mode=dark] .btn-gray.disabled,body[data-netbox-color-mode=dark] .btn-gray:disabled{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-darker,body[data-netbox-color-mode=dark] .btn-darker:hover{color:#fff;background-color:#010101;border-color:#010101}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-darker,body[data-netbox-color-mode=dark] .btn-darker:focus{color:#fff;background-color:#010101;border-color:#010101;box-shadow:0 0 0 .25rem rgba(39,39,39,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-darker,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-darker,.show>body[data-netbox-color-mode=dark] .btn-darker.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-darker.active,body[data-netbox-color-mode=dark] .btn-darker:active{color:#fff;background-color:#010101;border-color:#010101}.btn-check:active+body[data-netbox-color-mode=dark] .btn-darker:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-darker:focus,.show>body[data-netbox-color-mode=dark] .btn-darker.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-darker.active:focus,body[data-netbox-color-mode=dark] .btn-darker:active:focus{box-shadow:0 0 0 .25rem rgba(39,39,39,.5)}body[data-netbox-color-mode=dark] .btn-darker.disabled,body[data-netbox-color-mode=dark] .btn-darker:disabled{color:#fff;background-color:#010101;border-color:#010101}body[data-netbox-color-mode=dark] .btn-gray-50{color:#000;background-color:#f9fafb;border-color:#f9fafb}body[data-netbox-color-mode=dark] .btn-gray-50:hover{color:#000;background-color:#fafbfc;border-color:#fafbfb}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-50,body[data-netbox-color-mode=dark] .btn-gray-50:focus{color:#000;background-color:#fafbfc;border-color:#fafbfb;box-shadow:0 0 0 .25rem rgba(212,213,213,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-50,.show>body[data-netbox-color-mode=dark] .btn-gray-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-50.active,body[data-netbox-color-mode=dark] .btn-gray-50:active{color:#000;background-color:#fafbfc;border-color:#fafbfb}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-50:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-50.active:focus,body[data-netbox-color-mode=dark] .btn-gray-50:active:focus{box-shadow:0 0 0 .25rem rgba(212,213,213,.5)}body[data-netbox-color-mode=dark] .btn-gray-50.disabled,body[data-netbox-color-mode=dark] .btn-gray-50:disabled{color:#000;background-color:#f9fafb;border-color:#f9fafb}body[data-netbox-color-mode=dark] .btn-gray-100{color:#000;background-color:#f3f4f6;border-color:#f3f4f6}body[data-netbox-color-mode=dark] .btn-gray-100:hover{color:#000;background-color:#f5f6f7;border-color:#f4f5f7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-100,body[data-netbox-color-mode=dark] .btn-gray-100:focus{color:#000;background-color:#f5f6f7;border-color:#f4f5f7;box-shadow:0 0 0 .25rem rgba(207,207,209,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-100,.show>body[data-netbox-color-mode=dark] .btn-gray-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-100.active,body[data-netbox-color-mode=dark] .btn-gray-100:active{color:#000;background-color:#f5f6f8;border-color:#f4f5f7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-100:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-100.active:focus,body[data-netbox-color-mode=dark] .btn-gray-100:active:focus{box-shadow:0 0 0 .25rem rgba(207,207,209,.5)}body[data-netbox-color-mode=dark] .btn-gray-100.disabled,body[data-netbox-color-mode=dark] .btn-gray-100:disabled{color:#000;background-color:#f3f4f6;border-color:#f3f4f6}body[data-netbox-color-mode=dark] .btn-gray-200{color:#000;background-color:#e5e7eb;border-color:#e5e7eb}body[data-netbox-color-mode=dark] .btn-gray-200:hover{color:#000;background-color:#e9ebee;border-color:#e8e9ed}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-200,body[data-netbox-color-mode=dark] .btn-gray-200:focus{color:#000;background-color:#e9ebee;border-color:#e8e9ed;box-shadow:0 0 0 .25rem rgba(195,196,200,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-200,.show>body[data-netbox-color-mode=dark] .btn-gray-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-200.active,body[data-netbox-color-mode=dark] .btn-gray-200:active{color:#000;background-color:#eaecef;border-color:#e8e9ed}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-200:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-200.active:focus,body[data-netbox-color-mode=dark] .btn-gray-200:active:focus{box-shadow:0 0 0 .25rem rgba(195,196,200,.5)}body[data-netbox-color-mode=dark] .btn-gray-200.disabled,body[data-netbox-color-mode=dark] .btn-gray-200:disabled{color:#000;background-color:#e5e7eb;border-color:#e5e7eb}body[data-netbox-color-mode=dark] .btn-gray-300{color:#000;background-color:#d1d5db;border-color:#d1d5db}body[data-netbox-color-mode=dark] .btn-gray-300:hover{color:#000;background-color:#d8dbe0;border-color:#d6d9df}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-300,body[data-netbox-color-mode=dark] .btn-gray-300:focus{color:#000;background-color:#d8dbe0;border-color:#d6d9df;box-shadow:0 0 0 .25rem rgba(178,181,186,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-300,.show>body[data-netbox-color-mode=dark] .btn-gray-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-300.active,body[data-netbox-color-mode=dark] .btn-gray-300:active{color:#000;background-color:#dadde2;border-color:#d6d9df}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-300:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-300.active:focus,body[data-netbox-color-mode=dark] .btn-gray-300:active:focus{box-shadow:0 0 0 .25rem rgba(178,181,186,.5)}body[data-netbox-color-mode=dark] .btn-gray-300.disabled,body[data-netbox-color-mode=dark] .btn-gray-300:disabled{color:#000;background-color:#d1d5db;border-color:#d1d5db}body[data-netbox-color-mode=dark] .btn-gray-400{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-gray-400:hover{color:#000;background-color:#abb1bb;border-color:#a6acb7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-400,body[data-netbox-color-mode=dark] .btn-gray-400:focus{color:#000;background-color:#abb1bb;border-color:#a6acb7;box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-400,.show>body[data-netbox-color-mode=dark] .btn-gray-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-400.active,body[data-netbox-color-mode=dark] .btn-gray-400:active{color:#000;background-color:#b0b5bf;border-color:#a6acb7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-400:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-400.active:focus,body[data-netbox-color-mode=dark] .btn-gray-400:active:focus{box-shadow:0 0 0 .25rem rgba(133,139,149,.5)}body[data-netbox-color-mode=dark] .btn-gray-400.disabled,body[data-netbox-color-mode=dark] .btn-gray-400:disabled{color:#000;background-color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-gray-500{color:#fff;background-color:#6b7280;border-color:#6b7280}body[data-netbox-color-mode=dark] .btn-gray-500:hover{color:#fff;background-color:#5b616d;border-color:#565b66}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-500,body[data-netbox-color-mode=dark] .btn-gray-500:focus{color:#fff;background-color:#5b616d;border-color:#565b66;box-shadow:0 0 0 .25rem rgba(129,135,147,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-500,.show>body[data-netbox-color-mode=dark] .btn-gray-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-500.active,body[data-netbox-color-mode=dark] .btn-gray-500:active{color:#fff;background-color:#565b66;border-color:#505660}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-500:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-500.active:focus,body[data-netbox-color-mode=dark] .btn-gray-500:active:focus{box-shadow:0 0 0 .25rem rgba(129,135,147,.5)}body[data-netbox-color-mode=dark] .btn-gray-500.disabled,body[data-netbox-color-mode=dark] .btn-gray-500:disabled{color:#fff;background-color:#6b7280;border-color:#6b7280}body[data-netbox-color-mode=dark] .btn-gray-600{color:#fff;background-color:#4b5563;border-color:#4b5563}body[data-netbox-color-mode=dark] .btn-gray-600:hover{color:#fff;background-color:#404854;border-color:#3c444f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-600,body[data-netbox-color-mode=dark] .btn-gray-600:focus{color:#fff;background-color:#404854;border-color:#3c444f;box-shadow:0 0 0 .25rem rgba(102,111,122,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-600,.show>body[data-netbox-color-mode=dark] .btn-gray-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-600.active,body[data-netbox-color-mode=dark] .btn-gray-600:active{color:#fff;background-color:#3c444f;border-color:#38404a}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-600:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-600.active:focus,body[data-netbox-color-mode=dark] .btn-gray-600:active:focus{box-shadow:0 0 0 .25rem rgba(102,111,122,.5)}body[data-netbox-color-mode=dark] .btn-gray-600.disabled,body[data-netbox-color-mode=dark] .btn-gray-600:disabled{color:#fff;background-color:#4b5563;border-color:#4b5563}body[data-netbox-color-mode=dark] .btn-gray-700{color:#fff;background-color:#374151;border-color:#374151}body[data-netbox-color-mode=dark] .btn-gray-700:hover{color:#fff;background-color:#2f3745;border-color:#2c3441}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-700,body[data-netbox-color-mode=dark] .btn-gray-700:focus{color:#fff;background-color:#2f3745;border-color:#2c3441;box-shadow:0 0 0 .25rem rgba(85,94,107,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-700,.show>body[data-netbox-color-mode=dark] .btn-gray-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-700.active,body[data-netbox-color-mode=dark] .btn-gray-700:active{color:#fff;background-color:#2c3441;border-color:#29313d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-700:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-700.active:focus,body[data-netbox-color-mode=dark] .btn-gray-700:active:focus{box-shadow:0 0 0 .25rem rgba(85,94,107,.5)}body[data-netbox-color-mode=dark] .btn-gray-700.disabled,body[data-netbox-color-mode=dark] .btn-gray-700:disabled{color:#fff;background-color:#374151;border-color:#374151}body[data-netbox-color-mode=dark] .btn-gray-800{color:#fff;background-color:#1f2937;border-color:#1f2937}body[data-netbox-color-mode=dark] .btn-gray-800:hover{color:#fff;background-color:#1a232f;border-color:#19212c}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-800,body[data-netbox-color-mode=dark] .btn-gray-800:focus{color:#fff;background-color:#1a232f;border-color:#19212c;box-shadow:0 0 0 .25rem rgba(65,73,85,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-800,.show>body[data-netbox-color-mode=dark] .btn-gray-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-800.active,body[data-netbox-color-mode=dark] .btn-gray-800:active{color:#fff;background-color:#19212c;border-color:#171f29}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-800:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-800.active:focus,body[data-netbox-color-mode=dark] .btn-gray-800:active:focus{box-shadow:0 0 0 .25rem rgba(65,73,85,.5)}body[data-netbox-color-mode=dark] .btn-gray-800.disabled,body[data-netbox-color-mode=dark] .btn-gray-800:disabled{color:#fff;background-color:#1f2937;border-color:#1f2937}body[data-netbox-color-mode=dark] .btn-gray-900{color:#fff;background-color:#111827;border-color:#111827}body[data-netbox-color-mode=dark] .btn-gray-900:hover{color:#fff;background-color:#0e1421;border-color:#0e131f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-gray-900,body[data-netbox-color-mode=dark] .btn-gray-900:focus{color:#fff;background-color:#0e1421;border-color:#0e131f;box-shadow:0 0 0 .25rem rgba(53,59,71,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-900,.show>body[data-netbox-color-mode=dark] .btn-gray-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-gray-900.active,body[data-netbox-color-mode=dark] .btn-gray-900:active{color:#fff;background-color:#0e131f;border-color:#0d121d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-gray-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-gray-900:focus,.show>body[data-netbox-color-mode=dark] .btn-gray-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-gray-900.active:focus,body[data-netbox-color-mode=dark] .btn-gray-900:active:focus{box-shadow:0 0 0 .25rem rgba(53,59,71,.5)}body[data-netbox-color-mode=dark] .btn-gray-900.disabled,body[data-netbox-color-mode=dark] .btn-gray-900:disabled{color:#fff;background-color:#111827;border-color:#111827}body[data-netbox-color-mode=dark] .btn-red-50{color:#000;background-color:#fef2f2;border-color:#fef2f2}body[data-netbox-color-mode=dark] .btn-red-50:hover{color:#000;background-color:#fef4f4;border-color:#fef3f3}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-50,body[data-netbox-color-mode=dark] .btn-red-50:focus{color:#000;background-color:#fef4f4;border-color:#fef3f3;box-shadow:0 0 0 .25rem rgba(216,206,206,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-50,.show>body[data-netbox-color-mode=dark] .btn-red-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-50.active,body[data-netbox-color-mode=dark] .btn-red-50:active{color:#000;background-color:#fef5f5;border-color:#fef3f3}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-50:focus,.show>body[data-netbox-color-mode=dark] .btn-red-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-50.active:focus,body[data-netbox-color-mode=dark] .btn-red-50:active:focus{box-shadow:0 0 0 .25rem rgba(216,206,206,.5)}body[data-netbox-color-mode=dark] .btn-red-50.disabled,body[data-netbox-color-mode=dark] .btn-red-50:disabled{color:#000;background-color:#fef2f2;border-color:#fef2f2}body[data-netbox-color-mode=dark] .btn-red-100{color:#000;background-color:#fee2e2;border-color:#fee2e2}body[data-netbox-color-mode=dark] .btn-red-100:hover{color:#000;background-color:#fee6e6;border-color:#fee5e5}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-100,body[data-netbox-color-mode=dark] .btn-red-100:focus{color:#000;background-color:#fee6e6;border-color:#fee5e5;box-shadow:0 0 0 .25rem rgba(216,192,192,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-100,.show>body[data-netbox-color-mode=dark] .btn-red-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-100.active,body[data-netbox-color-mode=dark] .btn-red-100:active{color:#000;background-color:#fee8e8;border-color:#fee5e5}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-100:focus,.show>body[data-netbox-color-mode=dark] .btn-red-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-100.active:focus,body[data-netbox-color-mode=dark] .btn-red-100:active:focus{box-shadow:0 0 0 .25rem rgba(216,192,192,.5)}body[data-netbox-color-mode=dark] .btn-red-100.disabled,body[data-netbox-color-mode=dark] .btn-red-100:disabled{color:#000;background-color:#fee2e2;border-color:#fee2e2}body[data-netbox-color-mode=dark] .btn-red-200{color:#000;background-color:#fecaca;border-color:#fecaca}body[data-netbox-color-mode=dark] .btn-red-200:hover{color:#000;background-color:#fed2d2;border-color:#fecfcf}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-200,body[data-netbox-color-mode=dark] .btn-red-200:focus{color:#000;background-color:#fed2d2;border-color:#fecfcf;box-shadow:0 0 0 .25rem rgba(216,172,172,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-200,.show>body[data-netbox-color-mode=dark] .btn-red-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-200.active,body[data-netbox-color-mode=dark] .btn-red-200:active{color:#000;background-color:#fed5d5;border-color:#fecfcf}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-200:focus,.show>body[data-netbox-color-mode=dark] .btn-red-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-200.active:focus,body[data-netbox-color-mode=dark] .btn-red-200:active:focus{box-shadow:0 0 0 .25rem rgba(216,172,172,.5)}body[data-netbox-color-mode=dark] .btn-red-200.disabled,body[data-netbox-color-mode=dark] .btn-red-200:disabled{color:#000;background-color:#fecaca;border-color:#fecaca}body[data-netbox-color-mode=dark] .btn-red-300{color:#000;background-color:#fca5a5;border-color:#fca5a5}body[data-netbox-color-mode=dark] .btn-red-300:hover{color:#000;background-color:#fcb3b3;border-color:#fcaeae}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-300,body[data-netbox-color-mode=dark] .btn-red-300:focus{color:#000;background-color:#fcb3b3;border-color:#fcaeae;box-shadow:0 0 0 .25rem rgba(214,140,140,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-300,.show>body[data-netbox-color-mode=dark] .btn-red-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-300.active,body[data-netbox-color-mode=dark] .btn-red-300:active{color:#000;background-color:#fdb7b7;border-color:#fcaeae}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-300:focus,.show>body[data-netbox-color-mode=dark] .btn-red-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-300.active:focus,body[data-netbox-color-mode=dark] .btn-red-300:active:focus{box-shadow:0 0 0 .25rem rgba(214,140,140,.5)}body[data-netbox-color-mode=dark] .btn-red-300.disabled,body[data-netbox-color-mode=dark] .btn-red-300:disabled{color:#000;background-color:#fca5a5;border-color:#fca5a5}body[data-netbox-color-mode=dark] .btn-red-400{color:#000;background-color:#f87171;border-color:#f87171}body[data-netbox-color-mode=dark] .btn-red-400:hover{color:#000;background-color:#f98686;border-color:#f97f7f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-400,body[data-netbox-color-mode=dark] .btn-red-400:focus{color:#000;background-color:#f98686;border-color:#f97f7f;box-shadow:0 0 0 .25rem rgba(211,96,96,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-400,.show>body[data-netbox-color-mode=dark] .btn-red-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-400.active,body[data-netbox-color-mode=dark] .btn-red-400:active{color:#000;background-color:#f98d8d;border-color:#f97f7f}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-400:focus,.show>body[data-netbox-color-mode=dark] .btn-red-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-400.active:focus,body[data-netbox-color-mode=dark] .btn-red-400:active:focus{box-shadow:0 0 0 .25rem rgba(211,96,96,.5)}body[data-netbox-color-mode=dark] .btn-red-400.disabled,body[data-netbox-color-mode=dark] .btn-red-400:disabled{color:#000;background-color:#f87171;border-color:#f87171}body[data-netbox-color-mode=dark] .btn-red-500{color:#000;background-color:#ef4444;border-color:#ef4444}body[data-netbox-color-mode=dark] .btn-red-500:hover{color:#000;background-color:#f16060;border-color:#f15757}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-500,body[data-netbox-color-mode=dark] .btn-red-500:focus{color:#000;background-color:#f16060;border-color:#f15757;box-shadow:0 0 0 .25rem rgba(203,58,58,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-500,.show>body[data-netbox-color-mode=dark] .btn-red-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-500.active,body[data-netbox-color-mode=dark] .btn-red-500:active{color:#000;background-color:#f26969;border-color:#f15757}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-500:focus,.show>body[data-netbox-color-mode=dark] .btn-red-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-500.active:focus,body[data-netbox-color-mode=dark] .btn-red-500:active:focus{box-shadow:0 0 0 .25rem rgba(203,58,58,.5)}body[data-netbox-color-mode=dark] .btn-red-500.disabled,body[data-netbox-color-mode=dark] .btn-red-500:disabled{color:#000;background-color:#ef4444;border-color:#ef4444}body[data-netbox-color-mode=dark] .btn-red-600{color:#fff;background-color:#dc2626;border-color:#dc2626}body[data-netbox-color-mode=dark] .btn-red-600:hover{color:#fff;background-color:#bb2020;border-color:#b01e1e}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-600,body[data-netbox-color-mode=dark] .btn-red-600:focus{color:#fff;background-color:#bb2020;border-color:#b01e1e;box-shadow:0 0 0 .25rem rgba(225,71,71,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-600,.show>body[data-netbox-color-mode=dark] .btn-red-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-600.active,body[data-netbox-color-mode=dark] .btn-red-600:active{color:#fff;background-color:#b01e1e;border-color:#a51d1d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-600:focus,.show>body[data-netbox-color-mode=dark] .btn-red-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-600.active:focus,body[data-netbox-color-mode=dark] .btn-red-600:active:focus{box-shadow:0 0 0 .25rem rgba(225,71,71,.5)}body[data-netbox-color-mode=dark] .btn-red-600.disabled,body[data-netbox-color-mode=dark] .btn-red-600:disabled{color:#fff;background-color:#dc2626;border-color:#dc2626}body[data-netbox-color-mode=dark] .btn-red-700{color:#fff;background-color:#b91c1c;border-color:#b91c1c}body[data-netbox-color-mode=dark] .btn-red-700:hover{color:#fff;background-color:#9d1818;border-color:#941616}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-700,body[data-netbox-color-mode=dark] .btn-red-700:focus{color:#fff;background-color:#9d1818;border-color:#941616;box-shadow:0 0 0 .25rem rgba(196,62,62,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-700,.show>body[data-netbox-color-mode=dark] .btn-red-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-700.active,body[data-netbox-color-mode=dark] .btn-red-700:active{color:#fff;background-color:#941616;border-color:#8b1515}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-700:focus,.show>body[data-netbox-color-mode=dark] .btn-red-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-700.active:focus,body[data-netbox-color-mode=dark] .btn-red-700:active:focus{box-shadow:0 0 0 .25rem rgba(196,62,62,.5)}body[data-netbox-color-mode=dark] .btn-red-700.disabled,body[data-netbox-color-mode=dark] .btn-red-700:disabled{color:#fff;background-color:#b91c1c;border-color:#b91c1c}body[data-netbox-color-mode=dark] .btn-red-800{color:#fff;background-color:#991b1b;border-color:#991b1b}body[data-netbox-color-mode=dark] .btn-red-800:hover{color:#fff;background-color:#821717;border-color:#7a1616}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-800,body[data-netbox-color-mode=dark] .btn-red-800:focus{color:#fff;background-color:#821717;border-color:#7a1616;box-shadow:0 0 0 .25rem rgba(168,61,61,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-800,.show>body[data-netbox-color-mode=dark] .btn-red-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-800.active,body[data-netbox-color-mode=dark] .btn-red-800:active{color:#fff;background-color:#7a1616;border-color:#731414}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-800:focus,.show>body[data-netbox-color-mode=dark] .btn-red-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-800.active:focus,body[data-netbox-color-mode=dark] .btn-red-800:active:focus{box-shadow:0 0 0 .25rem rgba(168,61,61,.5)}body[data-netbox-color-mode=dark] .btn-red-800.disabled,body[data-netbox-color-mode=dark] .btn-red-800:disabled{color:#fff;background-color:#991b1b;border-color:#991b1b}body[data-netbox-color-mode=dark] .btn-red-900{color:#fff;background-color:#7f1d1d;border-color:#7f1d1d}body[data-netbox-color-mode=dark] .btn-red-900:hover{color:#fff;background-color:#6c1919;border-color:#661717}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-red-900,body[data-netbox-color-mode=dark] .btn-red-900:focus{color:#fff;background-color:#6c1919;border-color:#661717;box-shadow:0 0 0 .25rem rgba(146,63,63,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-900,.show>body[data-netbox-color-mode=dark] .btn-red-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-red-900.active,body[data-netbox-color-mode=dark] .btn-red-900:active{color:#fff;background-color:#661717;border-color:#5f1616}.btn-check:active+body[data-netbox-color-mode=dark] .btn-red-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-red-900:focus,.show>body[data-netbox-color-mode=dark] .btn-red-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-red-900.active:focus,body[data-netbox-color-mode=dark] .btn-red-900:active:focus{box-shadow:0 0 0 .25rem rgba(146,63,63,.5)}body[data-netbox-color-mode=dark] .btn-red-900.disabled,body[data-netbox-color-mode=dark] .btn-red-900:disabled{color:#fff;background-color:#7f1d1d;border-color:#7f1d1d}body[data-netbox-color-mode=dark] .btn-yellow-50{color:#000;background-color:#fffbeb;border-color:#fffbeb}body[data-netbox-color-mode=dark] .btn-yellow-50:hover{color:#000;background-color:#fffcee;border-color:#fffbed}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-50,body[data-netbox-color-mode=dark] .btn-yellow-50:focus{color:#000;background-color:#fffcee;border-color:#fffbed;box-shadow:0 0 0 .25rem rgba(217,213,200,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-50,.show>body[data-netbox-color-mode=dark] .btn-yellow-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-50.active,body[data-netbox-color-mode=dark] .btn-yellow-50:active{color:#000;background-color:#fffcef;border-color:#fffbed}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-50:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-50.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-50:active:focus{box-shadow:0 0 0 .25rem rgba(217,213,200,.5)}body[data-netbox-color-mode=dark] .btn-yellow-50.disabled,body[data-netbox-color-mode=dark] .btn-yellow-50:disabled{color:#000;background-color:#fffbeb;border-color:#fffbeb}body[data-netbox-color-mode=dark] .btn-yellow-100{color:#000;background-color:#fef3c7;border-color:#fef3c7}body[data-netbox-color-mode=dark] .btn-yellow-100:hover{color:#000;background-color:#fef5cf;border-color:#fef4cd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-100,body[data-netbox-color-mode=dark] .btn-yellow-100:focus{color:#000;background-color:#fef5cf;border-color:#fef4cd;box-shadow:0 0 0 .25rem rgba(216,207,169,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-100,.show>body[data-netbox-color-mode=dark] .btn-yellow-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-100.active,body[data-netbox-color-mode=dark] .btn-yellow-100:active{color:#000;background-color:#fef5d2;border-color:#fef4cd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-100:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-100.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-100:active:focus{box-shadow:0 0 0 .25rem rgba(216,207,169,.5)}body[data-netbox-color-mode=dark] .btn-yellow-100.disabled,body[data-netbox-color-mode=dark] .btn-yellow-100:disabled{color:#000;background-color:#fef3c7;border-color:#fef3c7}body[data-netbox-color-mode=dark] .btn-yellow-200{color:#000;background-color:#fde68a;border-color:#fde68a}body[data-netbox-color-mode=dark] .btn-yellow-200:hover{color:#000;background-color:#fdea9c;border-color:#fde996}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-200,body[data-netbox-color-mode=dark] .btn-yellow-200:focus{color:#000;background-color:#fdea9c;border-color:#fde996;box-shadow:0 0 0 .25rem rgba(215,196,117,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-200,.show>body[data-netbox-color-mode=dark] .btn-yellow-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-200.active,body[data-netbox-color-mode=dark] .btn-yellow-200:active{color:#000;background-color:#fdeba1;border-color:#fde996}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-200:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-200.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-200:active:focus{box-shadow:0 0 0 .25rem rgba(215,196,117,.5)}body[data-netbox-color-mode=dark] .btn-yellow-200.disabled,body[data-netbox-color-mode=dark] .btn-yellow-200:disabled{color:#000;background-color:#fde68a;border-color:#fde68a}body[data-netbox-color-mode=dark] .btn-yellow-300{color:#000;background-color:#fcd34d;border-color:#fcd34d}body[data-netbox-color-mode=dark] .btn-yellow-300:hover{color:#000;background-color:#fcda68;border-color:#fcd75f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-300,body[data-netbox-color-mode=dark] .btn-yellow-300:focus{color:#000;background-color:#fcda68;border-color:#fcd75f;box-shadow:0 0 0 .25rem rgba(214,179,65,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-300,.show>body[data-netbox-color-mode=dark] .btn-yellow-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-300.active,body[data-netbox-color-mode=dark] .btn-yellow-300:active{color:#000;background-color:#fddc71;border-color:#fcd75f}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-300:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-300.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-300:active:focus{box-shadow:0 0 0 .25rem rgba(214,179,65,.5)}body[data-netbox-color-mode=dark] .btn-yellow-300.disabled,body[data-netbox-color-mode=dark] .btn-yellow-300:disabled{color:#000;background-color:#fcd34d;border-color:#fcd34d}body[data-netbox-color-mode=dark] .btn-yellow-400{color:#000;background-color:#fbbf24;border-color:#fbbf24}body[data-netbox-color-mode=dark] .btn-yellow-400:hover{color:#000;background-color:#fcc945;border-color:#fbc53a}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-400,body[data-netbox-color-mode=dark] .btn-yellow-400:focus{color:#000;background-color:#fcc945;border-color:#fbc53a;box-shadow:0 0 0 .25rem rgba(213,162,31,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-400,.show>body[data-netbox-color-mode=dark] .btn-yellow-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-400.active,body[data-netbox-color-mode=dark] .btn-yellow-400:active{color:#000;background-color:#fccc50;border-color:#fbc53a}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-400:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-400.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-400:active:focus{box-shadow:0 0 0 .25rem rgba(213,162,31,.5)}body[data-netbox-color-mode=dark] .btn-yellow-400.disabled,body[data-netbox-color-mode=dark] .btn-yellow-400:disabled{color:#000;background-color:#fbbf24;border-color:#fbbf24}body[data-netbox-color-mode=dark] .btn-yellow-500{color:#000;background-color:#f59e0b;border-color:#f59e0b}body[data-netbox-color-mode=dark] .btn-yellow-500:hover{color:#000;background-color:#f7ad30;border-color:#f6a823}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-500,body[data-netbox-color-mode=dark] .btn-yellow-500:focus{color:#000;background-color:#f7ad30;border-color:#f6a823;box-shadow:0 0 0 .25rem rgba(208,134,9,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-500,.show>body[data-netbox-color-mode=dark] .btn-yellow-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-500.active,body[data-netbox-color-mode=dark] .btn-yellow-500:active{color:#000;background-color:#f7b13c;border-color:#f6a823}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-500:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-500.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-500:active:focus{box-shadow:0 0 0 .25rem rgba(208,134,9,.5)}body[data-netbox-color-mode=dark] .btn-yellow-500.disabled,body[data-netbox-color-mode=dark] .btn-yellow-500:disabled{color:#000;background-color:#f59e0b;border-color:#f59e0b}body[data-netbox-color-mode=dark] .btn-yellow-600{color:#000;background-color:#d97706;border-color:#d97706}body[data-netbox-color-mode=dark] .btn-yellow-600:hover{color:#000;background-color:#df8b2b;border-color:#dd851f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-600,body[data-netbox-color-mode=dark] .btn-yellow-600:focus{color:#000;background-color:#df8b2b;border-color:#dd851f;box-shadow:0 0 0 .25rem rgba(184,101,5,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-600,.show>body[data-netbox-color-mode=dark] .btn-yellow-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-600.active,body[data-netbox-color-mode=dark] .btn-yellow-600:active{color:#000;background-color:#e19238;border-color:#dd851f}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-600:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-600.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-600:active:focus{box-shadow:0 0 0 .25rem rgba(184,101,5,.5)}body[data-netbox-color-mode=dark] .btn-yellow-600.disabled,body[data-netbox-color-mode=dark] .btn-yellow-600:disabled{color:#000;background-color:#d97706;border-color:#d97706}body[data-netbox-color-mode=dark] .btn-yellow-700{color:#fff;background-color:#b45309;border-color:#b45309}body[data-netbox-color-mode=dark] .btn-yellow-700:hover{color:#fff;background-color:#994708;border-color:#904207}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-700,body[data-netbox-color-mode=dark] .btn-yellow-700:focus{color:#fff;background-color:#994708;border-color:#904207;box-shadow:0 0 0 .25rem rgba(191,109,46,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-700,.show>body[data-netbox-color-mode=dark] .btn-yellow-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-700.active,body[data-netbox-color-mode=dark] .btn-yellow-700:active{color:#fff;background-color:#904207;border-color:#873e07}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-700:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-700.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-700:active:focus{box-shadow:0 0 0 .25rem rgba(191,109,46,.5)}body[data-netbox-color-mode=dark] .btn-yellow-700.disabled,body[data-netbox-color-mode=dark] .btn-yellow-700:disabled{color:#fff;background-color:#b45309;border-color:#b45309}body[data-netbox-color-mode=dark] .btn-yellow-800{color:#fff;background-color:#92400e;border-color:#92400e}body[data-netbox-color-mode=dark] .btn-yellow-800:hover{color:#fff;background-color:#7c360c;border-color:#75330b}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-800,body[data-netbox-color-mode=dark] .btn-yellow-800:focus{color:#fff;background-color:#7c360c;border-color:#75330b;box-shadow:0 0 0 .25rem rgba(162,93,50,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-800,.show>body[data-netbox-color-mode=dark] .btn-yellow-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-800.active,body[data-netbox-color-mode=dark] .btn-yellow-800:active{color:#fff;background-color:#75330b;border-color:#6e300b}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-800:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-800.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-800:active:focus{box-shadow:0 0 0 .25rem rgba(162,93,50,.5)}body[data-netbox-color-mode=dark] .btn-yellow-800.disabled,body[data-netbox-color-mode=dark] .btn-yellow-800:disabled{color:#fff;background-color:#92400e;border-color:#92400e}body[data-netbox-color-mode=dark] .btn-yellow-900{color:#fff;background-color:#78350f;border-color:#78350f}body[data-netbox-color-mode=dark] .btn-yellow-900:hover{color:#fff;background-color:#662d0d;border-color:#602a0c}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-yellow-900,body[data-netbox-color-mode=dark] .btn-yellow-900:focus{color:#fff;background-color:#662d0d;border-color:#602a0c;box-shadow:0 0 0 .25rem rgba(140,83,51,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-900,.show>body[data-netbox-color-mode=dark] .btn-yellow-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-yellow-900.active,body[data-netbox-color-mode=dark] .btn-yellow-900:active{color:#fff;background-color:#602a0c;border-color:#5a280b}.btn-check:active+body[data-netbox-color-mode=dark] .btn-yellow-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-yellow-900:focus,.show>body[data-netbox-color-mode=dark] .btn-yellow-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-yellow-900.active:focus,body[data-netbox-color-mode=dark] .btn-yellow-900:active:focus{box-shadow:0 0 0 .25rem rgba(140,83,51,.5)}body[data-netbox-color-mode=dark] .btn-yellow-900.disabled,body[data-netbox-color-mode=dark] .btn-yellow-900:disabled{color:#fff;background-color:#78350f;border-color:#78350f}body[data-netbox-color-mode=dark] .btn-green-50{color:#000;background-color:#ecfdf5;border-color:#ecfdf5}body[data-netbox-color-mode=dark] .btn-green-50:hover{color:#000;background-color:#effdf7;border-color:#eefdf6}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-50,body[data-netbox-color-mode=dark] .btn-green-50:focus{color:#000;background-color:#effdf7;border-color:#eefdf6;box-shadow:0 0 0 .25rem rgba(201,215,208,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-50,.show>body[data-netbox-color-mode=dark] .btn-green-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-50.active,body[data-netbox-color-mode=dark] .btn-green-50:active{color:#000;background-color:#f0fdf7;border-color:#eefdf6}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-50:focus,.show>body[data-netbox-color-mode=dark] .btn-green-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-50.active:focus,body[data-netbox-color-mode=dark] .btn-green-50:active:focus{box-shadow:0 0 0 .25rem rgba(201,215,208,.5)}body[data-netbox-color-mode=dark] .btn-green-50.disabled,body[data-netbox-color-mode=dark] .btn-green-50:disabled{color:#000;background-color:#ecfdf5;border-color:#ecfdf5}body[data-netbox-color-mode=dark] .btn-green-100{color:#000;background-color:#d1fae5;border-color:#d1fae5}body[data-netbox-color-mode=dark] .btn-green-100:hover{color:#000;background-color:#d8fbe9;border-color:#d6fbe8}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-100,body[data-netbox-color-mode=dark] .btn-green-100:focus{color:#000;background-color:#d8fbe9;border-color:#d6fbe8;box-shadow:0 0 0 .25rem rgba(178,213,195,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-100,.show>body[data-netbox-color-mode=dark] .btn-green-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-100.active,body[data-netbox-color-mode=dark] .btn-green-100:active{color:#000;background-color:#dafbea;border-color:#d6fbe8}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-100:focus,.show>body[data-netbox-color-mode=dark] .btn-green-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-100.active:focus,body[data-netbox-color-mode=dark] .btn-green-100:active:focus{box-shadow:0 0 0 .25rem rgba(178,213,195,.5)}body[data-netbox-color-mode=dark] .btn-green-100.disabled,body[data-netbox-color-mode=dark] .btn-green-100:disabled{color:#000;background-color:#d1fae5;border-color:#d1fae5}body[data-netbox-color-mode=dark] .btn-green-200{color:#000;background-color:#a7f3d0;border-color:#a7f3d0}body[data-netbox-color-mode=dark] .btn-green-200:hover{color:#000;background-color:#b4f5d7;border-color:#b0f4d5}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-200,body[data-netbox-color-mode=dark] .btn-green-200:focus{color:#000;background-color:#b4f5d7;border-color:#b0f4d5;box-shadow:0 0 0 .25rem rgba(142,207,177,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-200,.show>body[data-netbox-color-mode=dark] .btn-green-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-200.active,body[data-netbox-color-mode=dark] .btn-green-200:active{color:#000;background-color:#b9f5d9;border-color:#b0f4d5}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-200:focus,.show>body[data-netbox-color-mode=dark] .btn-green-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-200.active:focus,body[data-netbox-color-mode=dark] .btn-green-200:active:focus{box-shadow:0 0 0 .25rem rgba(142,207,177,.5)}body[data-netbox-color-mode=dark] .btn-green-200.disabled,body[data-netbox-color-mode=dark] .btn-green-200:disabled{color:#000;background-color:#a7f3d0;border-color:#a7f3d0}body[data-netbox-color-mode=dark] .btn-green-300{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}body[data-netbox-color-mode=dark] .btn-green-300:hover{color:#000;background-color:#84ebc2;border-color:#7de9be}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-300,body[data-netbox-color-mode=dark] .btn-green-300:focus{color:#000;background-color:#84ebc2;border-color:#7de9be;box-shadow:0 0 0 .25rem rgba(94,196,156,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-300,.show>body[data-netbox-color-mode=dark] .btn-green-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-300.active,body[data-netbox-color-mode=dark] .btn-green-300:active{color:#000;background-color:#8becc5;border-color:#7de9be}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-300:focus,.show>body[data-netbox-color-mode=dark] .btn-green-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-300.active:focus,body[data-netbox-color-mode=dark] .btn-green-300:active:focus{box-shadow:0 0 0 .25rem rgba(94,196,156,.5)}body[data-netbox-color-mode=dark] .btn-green-300.disabled,body[data-netbox-color-mode=dark] .btn-green-300:disabled{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}body[data-netbox-color-mode=dark] .btn-green-400{color:#000;background-color:#34d399;border-color:#34d399}body[data-netbox-color-mode=dark] .btn-green-400:hover{color:#000;background-color:#52daa8;border-color:#48d7a3}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-400,body[data-netbox-color-mode=dark] .btn-green-400:focus{color:#000;background-color:#52daa8;border-color:#48d7a3;box-shadow:0 0 0 .25rem rgba(44,179,130,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-400,.show>body[data-netbox-color-mode=dark] .btn-green-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-400.active,body[data-netbox-color-mode=dark] .btn-green-400:active{color:#000;background-color:#5ddcad;border-color:#48d7a3}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-400:focus,.show>body[data-netbox-color-mode=dark] .btn-green-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-400.active:focus,body[data-netbox-color-mode=dark] .btn-green-400:active:focus{box-shadow:0 0 0 .25rem rgba(44,179,130,.5)}body[data-netbox-color-mode=dark] .btn-green-400.disabled,body[data-netbox-color-mode=dark] .btn-green-400:disabled{color:#000;background-color:#34d399;border-color:#34d399}body[data-netbox-color-mode=dark] .btn-green-500{color:#000;background-color:#10b981;border-color:#10b981}body[data-netbox-color-mode=dark] .btn-green-500:hover{color:#000;background-color:#34c494;border-color:#28c08e}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-500,body[data-netbox-color-mode=dark] .btn-green-500:focus{color:#000;background-color:#34c494;border-color:#28c08e;box-shadow:0 0 0 .25rem rgba(14,157,110,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-500,.show>body[data-netbox-color-mode=dark] .btn-green-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-500.active,body[data-netbox-color-mode=dark] .btn-green-500:active{color:#000;background-color:#40c79a;border-color:#28c08e}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-500:focus,.show>body[data-netbox-color-mode=dark] .btn-green-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-500.active:focus,body[data-netbox-color-mode=dark] .btn-green-500:active:focus{box-shadow:0 0 0 .25rem rgba(14,157,110,.5)}body[data-netbox-color-mode=dark] .btn-green-500.disabled,body[data-netbox-color-mode=dark] .btn-green-500:disabled{color:#000;background-color:#10b981;border-color:#10b981}body[data-netbox-color-mode=dark] .btn-green-600{color:#000;background-color:#059669;border-color:#059669}body[data-netbox-color-mode=dark] .btn-green-600:hover{color:#000;background-color:#2ba680;border-color:#1ea178}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-600,body[data-netbox-color-mode=dark] .btn-green-600:focus{color:#000;background-color:#2ba680;border-color:#1ea178;box-shadow:0 0 0 .25rem rgba(4,128,89,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-600,.show>body[data-netbox-color-mode=dark] .btn-green-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-600.active,body[data-netbox-color-mode=dark] .btn-green-600:active{color:#000;background-color:#37ab87;border-color:#1ea178}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-600:focus,.show>body[data-netbox-color-mode=dark] .btn-green-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-600.active:focus,body[data-netbox-color-mode=dark] .btn-green-600:active:focus{box-shadow:0 0 0 .25rem rgba(4,128,89,.5)}body[data-netbox-color-mode=dark] .btn-green-600.disabled,body[data-netbox-color-mode=dark] .btn-green-600:disabled{color:#000;background-color:#059669;border-color:#059669}body[data-netbox-color-mode=dark] .btn-green-700{color:#fff;background-color:#047857;border-color:#047857}body[data-netbox-color-mode=dark] .btn-green-700:hover{color:#fff;background-color:#03664a;border-color:#036046}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-700,body[data-netbox-color-mode=dark] .btn-green-700:focus{color:#fff;background-color:#03664a;border-color:#036046;box-shadow:0 0 0 .25rem rgba(42,140,112,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-700,.show>body[data-netbox-color-mode=dark] .btn-green-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-700.active,body[data-netbox-color-mode=dark] .btn-green-700:active{color:#fff;background-color:#036046;border-color:#035a41}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-700:focus,.show>body[data-netbox-color-mode=dark] .btn-green-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-700.active:focus,body[data-netbox-color-mode=dark] .btn-green-700:active:focus{box-shadow:0 0 0 .25rem rgba(42,140,112,.5)}body[data-netbox-color-mode=dark] .btn-green-700.disabled,body[data-netbox-color-mode=dark] .btn-green-700:disabled{color:#fff;background-color:#047857;border-color:#047857}body[data-netbox-color-mode=dark] .btn-green-800{color:#fff;background-color:#065f46;border-color:#065f46}body[data-netbox-color-mode=dark] .btn-green-800:hover{color:#fff;background-color:#05513c;border-color:#054c38}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-800,body[data-netbox-color-mode=dark] .btn-green-800:focus{color:#fff;background-color:#05513c;border-color:#054c38;box-shadow:0 0 0 .25rem rgba(43,119,98,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-800,.show>body[data-netbox-color-mode=dark] .btn-green-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-800.active,body[data-netbox-color-mode=dark] .btn-green-800:active{color:#fff;background-color:#054c38;border-color:#054735}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-800:focus,.show>body[data-netbox-color-mode=dark] .btn-green-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-800.active:focus,body[data-netbox-color-mode=dark] .btn-green-800:active:focus{box-shadow:0 0 0 .25rem rgba(43,119,98,.5)}body[data-netbox-color-mode=dark] .btn-green-800.disabled,body[data-netbox-color-mode=dark] .btn-green-800:disabled{color:#fff;background-color:#065f46;border-color:#065f46}body[data-netbox-color-mode=dark] .btn-green-900{color:#fff;background-color:#064e3b;border-color:#064e3b}body[data-netbox-color-mode=dark] .btn-green-900:hover{color:#fff;background-color:#054232;border-color:#053e2f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-green-900,body[data-netbox-color-mode=dark] .btn-green-900:focus{color:#fff;background-color:#054232;border-color:#053e2f;box-shadow:0 0 0 .25rem rgba(43,105,88,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-900,.show>body[data-netbox-color-mode=dark] .btn-green-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-green-900.active,body[data-netbox-color-mode=dark] .btn-green-900:active{color:#fff;background-color:#053e2f;border-color:#053b2c}.btn-check:active+body[data-netbox-color-mode=dark] .btn-green-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-green-900:focus,.show>body[data-netbox-color-mode=dark] .btn-green-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-green-900.active:focus,body[data-netbox-color-mode=dark] .btn-green-900:active:focus{box-shadow:0 0 0 .25rem rgba(43,105,88,.5)}body[data-netbox-color-mode=dark] .btn-green-900.disabled,body[data-netbox-color-mode=dark] .btn-green-900:disabled{color:#fff;background-color:#064e3b;border-color:#064e3b}body[data-netbox-color-mode=dark] .btn-blue-50{color:#000;background-color:#eff6ff;border-color:#eff6ff}body[data-netbox-color-mode=dark] .btn-blue-50:hover{color:#000;background-color:#f1f7ff;border-color:#f1f7ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-50,body[data-netbox-color-mode=dark] .btn-blue-50:focus{color:#000;background-color:#f1f7ff;border-color:#f1f7ff;box-shadow:0 0 0 .25rem rgba(203,209,217,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-50,.show>body[data-netbox-color-mode=dark] .btn-blue-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-50.active,body[data-netbox-color-mode=dark] .btn-blue-50:active{color:#000;background-color:#f2f8ff;border-color:#f1f7ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-50:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-50.active:focus,body[data-netbox-color-mode=dark] .btn-blue-50:active:focus{box-shadow:0 0 0 .25rem rgba(203,209,217,.5)}body[data-netbox-color-mode=dark] .btn-blue-50.disabled,body[data-netbox-color-mode=dark] .btn-blue-50:disabled{color:#000;background-color:#eff6ff;border-color:#eff6ff}body[data-netbox-color-mode=dark] .btn-blue-100{color:#000;background-color:#dbeafe;border-color:#dbeafe}body[data-netbox-color-mode=dark] .btn-blue-100:hover{color:#000;background-color:#e0edfe;border-color:#dfecfe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-100,body[data-netbox-color-mode=dark] .btn-blue-100:focus{color:#000;background-color:#e0edfe;border-color:#dfecfe;box-shadow:0 0 0 .25rem rgba(186,199,216,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-100,.show>body[data-netbox-color-mode=dark] .btn-blue-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-100.active,body[data-netbox-color-mode=dark] .btn-blue-100:active{color:#000;background-color:#e2eefe;border-color:#dfecfe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-100:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-100.active:focus,body[data-netbox-color-mode=dark] .btn-blue-100:active:focus{box-shadow:0 0 0 .25rem rgba(186,199,216,.5)}body[data-netbox-color-mode=dark] .btn-blue-100.disabled,body[data-netbox-color-mode=dark] .btn-blue-100:disabled{color:#000;background-color:#dbeafe;border-color:#dbeafe}body[data-netbox-color-mode=dark] .btn-blue-200{color:#000;background-color:#bfdbfe;border-color:#bfdbfe}body[data-netbox-color-mode=dark] .btn-blue-200:hover{color:#000;background-color:#c9e0fe;border-color:#c5dffe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-200,body[data-netbox-color-mode=dark] .btn-blue-200:focus{color:#000;background-color:#c9e0fe;border-color:#c5dffe;box-shadow:0 0 0 .25rem rgba(162,186,216,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-200,.show>body[data-netbox-color-mode=dark] .btn-blue-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-200.active,body[data-netbox-color-mode=dark] .btn-blue-200:active{color:#000;background-color:#cce2fe;border-color:#c5dffe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-200:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-200.active:focus,body[data-netbox-color-mode=dark] .btn-blue-200:active:focus{box-shadow:0 0 0 .25rem rgba(162,186,216,.5)}body[data-netbox-color-mode=dark] .btn-blue-200.disabled,body[data-netbox-color-mode=dark] .btn-blue-200:disabled{color:#000;background-color:#bfdbfe;border-color:#bfdbfe}body[data-netbox-color-mode=dark] .btn-blue-300{color:#000;background-color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .btn-blue-300:hover{color:#000;background-color:#a3cefd;border-color:#9ecbfd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-300,body[data-netbox-color-mode=dark] .btn-blue-300:focus{color:#000;background-color:#a3cefd;border-color:#9ecbfd;box-shadow:0 0 0 .25rem rgba(125,167,215,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-300,.show>body[data-netbox-color-mode=dark] .btn-blue-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-300.active,body[data-netbox-color-mode=dark] .btn-blue-300:active{color:#000;background-color:#a9d1fd;border-color:#9ecbfd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-300:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-300.active:focus,body[data-netbox-color-mode=dark] .btn-blue-300:active:focus{box-shadow:0 0 0 .25rem rgba(125,167,215,.5)}body[data-netbox-color-mode=dark] .btn-blue-300.disabled,body[data-netbox-color-mode=dark] .btn-blue-300:disabled{color:#000;background-color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .btn-blue-400{color:#000;background-color:#60a5fa;border-color:#60a5fa}body[data-netbox-color-mode=dark] .btn-blue-400:hover{color:#000;background-color:#78b3fb;border-color:#70aefb}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-400,body[data-netbox-color-mode=dark] .btn-blue-400:focus{color:#000;background-color:#78b3fb;border-color:#70aefb;box-shadow:0 0 0 .25rem rgba(82,140,213,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-400,.show>body[data-netbox-color-mode=dark] .btn-blue-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-400.active,body[data-netbox-color-mode=dark] .btn-blue-400:active{color:#000;background-color:#80b7fb;border-color:#70aefb}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-400:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-400.active:focus,body[data-netbox-color-mode=dark] .btn-blue-400:active:focus{box-shadow:0 0 0 .25rem rgba(82,140,213,.5)}body[data-netbox-color-mode=dark] .btn-blue-400.disabled,body[data-netbox-color-mode=dark] .btn-blue-400:disabled{color:#000;background-color:#60a5fa;border-color:#60a5fa}body[data-netbox-color-mode=dark] .btn-blue-500{color:#000;background-color:#3b82f6;border-color:#3b82f6}body[data-netbox-color-mode=dark] .btn-blue-500:hover{color:#000;background-color:#5895f7;border-color:#4f8ff7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-500,body[data-netbox-color-mode=dark] .btn-blue-500:focus{color:#000;background-color:#5895f7;border-color:#4f8ff7;box-shadow:0 0 0 .25rem rgba(50,111,209,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-500,.show>body[data-netbox-color-mode=dark] .btn-blue-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-500.active,body[data-netbox-color-mode=dark] .btn-blue-500:active{color:#000;background-color:#629bf8;border-color:#4f8ff7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-500:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-500.active:focus,body[data-netbox-color-mode=dark] .btn-blue-500:active:focus{box-shadow:0 0 0 .25rem rgba(50,111,209,.5)}body[data-netbox-color-mode=dark] .btn-blue-500.disabled,body[data-netbox-color-mode=dark] .btn-blue-500:disabled{color:#000;background-color:#3b82f6;border-color:#3b82f6}body[data-netbox-color-mode=dark] .btn-blue-600{color:#fff;background-color:#2563eb;border-color:#2563eb}body[data-netbox-color-mode=dark] .btn-blue-600:hover{color:#fff;background-color:#1f54c8;border-color:#1e4fbc}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-600,body[data-netbox-color-mode=dark] .btn-blue-600:focus{color:#fff;background-color:#1f54c8;border-color:#1e4fbc;box-shadow:0 0 0 .25rem rgba(70,122,238,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-600,.show>body[data-netbox-color-mode=dark] .btn-blue-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-600.active,body[data-netbox-color-mode=dark] .btn-blue-600:active{color:#fff;background-color:#1e4fbc;border-color:#1c4ab0}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-600:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-600.active:focus,body[data-netbox-color-mode=dark] .btn-blue-600:active:focus{box-shadow:0 0 0 .25rem rgba(70,122,238,.5)}body[data-netbox-color-mode=dark] .btn-blue-600.disabled,body[data-netbox-color-mode=dark] .btn-blue-600:disabled{color:#fff;background-color:#2563eb;border-color:#2563eb}body[data-netbox-color-mode=dark] .btn-blue-700{color:#fff;background-color:#1d4ed8;border-color:#1d4ed8}body[data-netbox-color-mode=dark] .btn-blue-700:hover{color:#fff;background-color:#1942b8;border-color:#173ead}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-700,body[data-netbox-color-mode=dark] .btn-blue-700:focus{color:#fff;background-color:#1942b8;border-color:#173ead;box-shadow:0 0 0 .25rem rgba(63,105,222,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-700,.show>body[data-netbox-color-mode=dark] .btn-blue-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-700.active,body[data-netbox-color-mode=dark] .btn-blue-700:active{color:#fff;background-color:#173ead;border-color:#163ba2}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-700:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-700.active:focus,body[data-netbox-color-mode=dark] .btn-blue-700:active:focus{box-shadow:0 0 0 .25rem rgba(63,105,222,.5)}body[data-netbox-color-mode=dark] .btn-blue-700.disabled,body[data-netbox-color-mode=dark] .btn-blue-700:disabled{color:#fff;background-color:#1d4ed8;border-color:#1d4ed8}body[data-netbox-color-mode=dark] .btn-blue-800{color:#fff;background-color:#1e40af;border-color:#1e40af}body[data-netbox-color-mode=dark] .btn-blue-800:hover{color:#fff;background-color:#1a3695;border-color:#18338c}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-800,body[data-netbox-color-mode=dark] .btn-blue-800:focus{color:#fff;background-color:#1a3695;border-color:#18338c;box-shadow:0 0 0 .25rem rgba(64,93,187,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-800,.show>body[data-netbox-color-mode=dark] .btn-blue-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-800.active,body[data-netbox-color-mode=dark] .btn-blue-800:active{color:#fff;background-color:#18338c;border-color:#173083}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-800:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-800.active:focus,body[data-netbox-color-mode=dark] .btn-blue-800:active:focus{box-shadow:0 0 0 .25rem rgba(64,93,187,.5)}body[data-netbox-color-mode=dark] .btn-blue-800.disabled,body[data-netbox-color-mode=dark] .btn-blue-800:disabled{color:#fff;background-color:#1e40af;border-color:#1e40af}body[data-netbox-color-mode=dark] .btn-blue-900{color:#fff;background-color:#1e3a8a;border-color:#1e3a8a}body[data-netbox-color-mode=dark] .btn-blue-900:hover{color:#fff;background-color:#1a3175;border-color:#182e6e}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-blue-900,body[data-netbox-color-mode=dark] .btn-blue-900:focus{color:#fff;background-color:#1a3175;border-color:#182e6e;box-shadow:0 0 0 .25rem rgba(64,88,156,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-900,.show>body[data-netbox-color-mode=dark] .btn-blue-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-blue-900.active,body[data-netbox-color-mode=dark] .btn-blue-900:active{color:#fff;background-color:#182e6e;border-color:#172c68}.btn-check:active+body[data-netbox-color-mode=dark] .btn-blue-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-blue-900:focus,.show>body[data-netbox-color-mode=dark] .btn-blue-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-blue-900.active:focus,body[data-netbox-color-mode=dark] .btn-blue-900:active:focus{box-shadow:0 0 0 .25rem rgba(64,88,156,.5)}body[data-netbox-color-mode=dark] .btn-blue-900.disabled,body[data-netbox-color-mode=dark] .btn-blue-900:disabled{color:#fff;background-color:#1e3a8a;border-color:#1e3a8a}body[data-netbox-color-mode=dark] .btn-cyan-50{color:#000;background-color:#ecfeff;border-color:#ecfeff}body[data-netbox-color-mode=dark] .btn-cyan-50:hover{color:#000;background-color:#effeff;border-color:#eefeff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-50,body[data-netbox-color-mode=dark] .btn-cyan-50:focus{color:#000;background-color:#effeff;border-color:#eefeff;box-shadow:0 0 0 .25rem rgba(201,216,217,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-50,.show>body[data-netbox-color-mode=dark] .btn-cyan-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-50.active,body[data-netbox-color-mode=dark] .btn-cyan-50:active{color:#000;background-color:#f0feff;border-color:#eefeff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-50:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-50.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-50:active:focus{box-shadow:0 0 0 .25rem rgba(201,216,217,.5)}body[data-netbox-color-mode=dark] .btn-cyan-50.disabled,body[data-netbox-color-mode=dark] .btn-cyan-50:disabled{color:#000;background-color:#ecfeff;border-color:#ecfeff}body[data-netbox-color-mode=dark] .btn-cyan-100{color:#000;background-color:#cffafe;border-color:#cffafe}body[data-netbox-color-mode=dark] .btn-cyan-100:hover{color:#000;background-color:#d6fbfe;border-color:#d4fbfe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-100,body[data-netbox-color-mode=dark] .btn-cyan-100:focus{color:#000;background-color:#d6fbfe;border-color:#d4fbfe;box-shadow:0 0 0 .25rem rgba(176,213,216,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-100,.show>body[data-netbox-color-mode=dark] .btn-cyan-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-100.active,body[data-netbox-color-mode=dark] .btn-cyan-100:active{color:#000;background-color:#d9fbfe;border-color:#d4fbfe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-100:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-100.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-100:active:focus{box-shadow:0 0 0 .25rem rgba(176,213,216,.5)}body[data-netbox-color-mode=dark] .btn-cyan-100.disabled,body[data-netbox-color-mode=dark] .btn-cyan-100:disabled{color:#000;background-color:#cffafe;border-color:#cffafe}body[data-netbox-color-mode=dark] .btn-cyan-200{color:#000;background-color:#a5f3fc;border-color:#a5f3fc}body[data-netbox-color-mode=dark] .btn-cyan-200:hover{color:#000;background-color:#b3f5fc;border-color:#aef4fc}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-200,body[data-netbox-color-mode=dark] .btn-cyan-200:focus{color:#000;background-color:#b3f5fc;border-color:#aef4fc;box-shadow:0 0 0 .25rem rgba(140,207,214,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-200,.show>body[data-netbox-color-mode=dark] .btn-cyan-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-200.active,body[data-netbox-color-mode=dark] .btn-cyan-200:active{color:#000;background-color:#b7f5fd;border-color:#aef4fc}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-200:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-200.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-200:active:focus{box-shadow:0 0 0 .25rem rgba(140,207,214,.5)}body[data-netbox-color-mode=dark] .btn-cyan-200.disabled,body[data-netbox-color-mode=dark] .btn-cyan-200:disabled{color:#000;background-color:#a5f3fc;border-color:#a5f3fc}body[data-netbox-color-mode=dark] .btn-cyan-300{color:#000;background-color:#67e8f9;border-color:#67e8f9}body[data-netbox-color-mode=dark] .btn-cyan-300:hover{color:#000;background-color:#7eebfa;border-color:#76eafa}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-300,body[data-netbox-color-mode=dark] .btn-cyan-300:focus{color:#000;background-color:#7eebfa;border-color:#76eafa;box-shadow:0 0 0 .25rem rgba(88,197,212,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-300,.show>body[data-netbox-color-mode=dark] .btn-cyan-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-300.active,body[data-netbox-color-mode=dark] .btn-cyan-300:active{color:#000;background-color:#85edfa;border-color:#76eafa}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-300:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-300.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-300:active:focus{box-shadow:0 0 0 .25rem rgba(88,197,212,.5)}body[data-netbox-color-mode=dark] .btn-cyan-300.disabled,body[data-netbox-color-mode=dark] .btn-cyan-300:disabled{color:#000;background-color:#67e8f9;border-color:#67e8f9}body[data-netbox-color-mode=dark] .btn-cyan-400{color:#000;background-color:#22d3ee;border-color:#22d3ee}body[data-netbox-color-mode=dark] .btn-cyan-400:hover{color:#000;background-color:#43daf1;border-color:#38d7f0}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-400,body[data-netbox-color-mode=dark] .btn-cyan-400:focus{color:#000;background-color:#43daf1;border-color:#38d7f0;box-shadow:0 0 0 .25rem rgba(29,179,202,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-400,.show>body[data-netbox-color-mode=dark] .btn-cyan-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-400.active,body[data-netbox-color-mode=dark] .btn-cyan-400:active{color:#000;background-color:#4edcf1;border-color:#38d7f0}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-400:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-400.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-400:active:focus{box-shadow:0 0 0 .25rem rgba(29,179,202,.5)}body[data-netbox-color-mode=dark] .btn-cyan-400.disabled,body[data-netbox-color-mode=dark] .btn-cyan-400:disabled{color:#000;background-color:#22d3ee;border-color:#22d3ee}body[data-netbox-color-mode=dark] .btn-cyan-500{color:#000;background-color:#06b6d4;border-color:#06b6d4}body[data-netbox-color-mode=dark] .btn-cyan-500:hover{color:#000;background-color:#2bc1da;border-color:#1fbdd8}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-500,body[data-netbox-color-mode=dark] .btn-cyan-500:focus{color:#000;background-color:#2bc1da;border-color:#1fbdd8;box-shadow:0 0 0 .25rem rgba(5,155,180,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-500,.show>body[data-netbox-color-mode=dark] .btn-cyan-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-500.active,body[data-netbox-color-mode=dark] .btn-cyan-500:active{color:#000;background-color:#38c5dd;border-color:#1fbdd8}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-500:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-500.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-500:active:focus{box-shadow:0 0 0 .25rem rgba(5,155,180,.5)}body[data-netbox-color-mode=dark] .btn-cyan-500.disabled,body[data-netbox-color-mode=dark] .btn-cyan-500:disabled{color:#000;background-color:#06b6d4;border-color:#06b6d4}body[data-netbox-color-mode=dark] .btn-cyan-600{color:#000;background-color:#0891b2;border-color:#0891b2}body[data-netbox-color-mode=dark] .btn-cyan-600:hover{color:#000;background-color:#2da2be;border-color:#219cba}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-600,body[data-netbox-color-mode=dark] .btn-cyan-600:focus{color:#000;background-color:#2da2be;border-color:#219cba;box-shadow:0 0 0 .25rem rgba(7,123,151,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-600,.show>body[data-netbox-color-mode=dark] .btn-cyan-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-600.active,body[data-netbox-color-mode=dark] .btn-cyan-600:active{color:#000;background-color:#39a7c1;border-color:#219cba}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-600:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-600.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-600:active:focus{box-shadow:0 0 0 .25rem rgba(7,123,151,.5)}body[data-netbox-color-mode=dark] .btn-cyan-600.disabled,body[data-netbox-color-mode=dark] .btn-cyan-600:disabled{color:#000;background-color:#0891b2;border-color:#0891b2}body[data-netbox-color-mode=dark] .btn-cyan-700{color:#fff;background-color:#0e7490;border-color:#0e7490}body[data-netbox-color-mode=dark] .btn-cyan-700:hover{color:#fff;background-color:#0c637a;border-color:#0b5d73}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-700,body[data-netbox-color-mode=dark] .btn-cyan-700:focus{color:#fff;background-color:#0c637a;border-color:#0b5d73;box-shadow:0 0 0 .25rem rgba(50,137,161,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-700,.show>body[data-netbox-color-mode=dark] .btn-cyan-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-700.active,body[data-netbox-color-mode=dark] .btn-cyan-700:active{color:#fff;background-color:#0b5d73;border-color:#0b576c}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-700:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-700.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-700:active:focus{box-shadow:0 0 0 .25rem rgba(50,137,161,.5)}body[data-netbox-color-mode=dark] .btn-cyan-700.disabled,body[data-netbox-color-mode=dark] .btn-cyan-700:disabled{color:#fff;background-color:#0e7490;border-color:#0e7490}body[data-netbox-color-mode=dark] .btn-cyan-800{color:#fff;background-color:#155e75;border-color:#155e75}body[data-netbox-color-mode=dark] .btn-cyan-800:hover{color:#fff;background-color:#125063;border-color:#114b5e}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-800,body[data-netbox-color-mode=dark] .btn-cyan-800:focus{color:#fff;background-color:#125063;border-color:#114b5e;box-shadow:0 0 0 .25rem rgba(56,118,138,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-800,.show>body[data-netbox-color-mode=dark] .btn-cyan-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-800.active,body[data-netbox-color-mode=dark] .btn-cyan-800:active{color:#fff;background-color:#114b5e;border-color:#104758}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-800:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-800.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-800:active:focus{box-shadow:0 0 0 .25rem rgba(56,118,138,.5)}body[data-netbox-color-mode=dark] .btn-cyan-800.disabled,body[data-netbox-color-mode=dark] .btn-cyan-800:disabled{color:#fff;background-color:#155e75;border-color:#155e75}body[data-netbox-color-mode=dark] .btn-cyan-900{color:#fff;background-color:#164e63;border-color:#164e63}body[data-netbox-color-mode=dark] .btn-cyan-900:hover{color:#fff;background-color:#134254;border-color:#123e4f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-cyan-900,body[data-netbox-color-mode=dark] .btn-cyan-900:focus{color:#fff;background-color:#134254;border-color:#123e4f;box-shadow:0 0 0 .25rem rgba(57,105,122,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-900,.show>body[data-netbox-color-mode=dark] .btn-cyan-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-cyan-900.active,body[data-netbox-color-mode=dark] .btn-cyan-900:active{color:#fff;background-color:#123e4f;border-color:#113b4a}.btn-check:active+body[data-netbox-color-mode=dark] .btn-cyan-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-cyan-900:focus,.show>body[data-netbox-color-mode=dark] .btn-cyan-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-cyan-900.active:focus,body[data-netbox-color-mode=dark] .btn-cyan-900:active:focus{box-shadow:0 0 0 .25rem rgba(57,105,122,.5)}body[data-netbox-color-mode=dark] .btn-cyan-900.disabled,body[data-netbox-color-mode=dark] .btn-cyan-900:disabled{color:#fff;background-color:#164e63;border-color:#164e63}body[data-netbox-color-mode=dark] .btn-indigo-50{color:#000;background-color:#eef2ff;border-color:#eef2ff}body[data-netbox-color-mode=dark] .btn-indigo-50:hover{color:#000;background-color:#f1f4ff;border-color:#f0f3ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-50,body[data-netbox-color-mode=dark] .btn-indigo-50:focus{color:#000;background-color:#f1f4ff;border-color:#f0f3ff;box-shadow:0 0 0 .25rem rgba(202,206,217,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-50,.show>body[data-netbox-color-mode=dark] .btn-indigo-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-50.active,body[data-netbox-color-mode=dark] .btn-indigo-50:active{color:#000;background-color:#f1f5ff;border-color:#f0f3ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-50:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-50.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-50:active:focus{box-shadow:0 0 0 .25rem rgba(202,206,217,.5)}body[data-netbox-color-mode=dark] .btn-indigo-50.disabled,body[data-netbox-color-mode=dark] .btn-indigo-50:disabled{color:#000;background-color:#eef2ff;border-color:#eef2ff}body[data-netbox-color-mode=dark] .btn-indigo-100{color:#000;background-color:#e0e7ff;border-color:#e0e7ff}body[data-netbox-color-mode=dark] .btn-indigo-100:hover{color:#000;background-color:#e5ebff;border-color:#e3e9ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-100,body[data-netbox-color-mode=dark] .btn-indigo-100:focus{color:#000;background-color:#e5ebff;border-color:#e3e9ff;box-shadow:0 0 0 .25rem rgba(190,196,217,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-100,.show>body[data-netbox-color-mode=dark] .btn-indigo-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-100.active,body[data-netbox-color-mode=dark] .btn-indigo-100:active{color:#000;background-color:#e6ecff;border-color:#e3e9ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-100:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-100.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-100:active:focus{box-shadow:0 0 0 .25rem rgba(190,196,217,.5)}body[data-netbox-color-mode=dark] .btn-indigo-100.disabled,body[data-netbox-color-mode=dark] .btn-indigo-100:disabled{color:#000;background-color:#e0e7ff;border-color:#e0e7ff}body[data-netbox-color-mode=dark] .btn-indigo-200{color:#000;background-color:#c7d2fe;border-color:#c7d2fe}body[data-netbox-color-mode=dark] .btn-indigo-200:hover{color:#000;background-color:#cfd9fe;border-color:#cdd7fe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-200,body[data-netbox-color-mode=dark] .btn-indigo-200:focus{color:#000;background-color:#cfd9fe;border-color:#cdd7fe;box-shadow:0 0 0 .25rem rgba(169,179,216,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-200,.show>body[data-netbox-color-mode=dark] .btn-indigo-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-200.active,body[data-netbox-color-mode=dark] .btn-indigo-200:active{color:#000;background-color:#d2dbfe;border-color:#cdd7fe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-200:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-200.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-200:active:focus{box-shadow:0 0 0 .25rem rgba(169,179,216,.5)}body[data-netbox-color-mode=dark] .btn-indigo-200.disabled,body[data-netbox-color-mode=dark] .btn-indigo-200:disabled{color:#000;background-color:#c7d2fe;border-color:#c7d2fe}body[data-netbox-color-mode=dark] .btn-indigo-300{color:#000;background-color:#a5b4fc;border-color:#a5b4fc}body[data-netbox-color-mode=dark] .btn-indigo-300:hover{color:#000;background-color:#b3bffc;border-color:#aebcfc}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-300,body[data-netbox-color-mode=dark] .btn-indigo-300:focus{color:#000;background-color:#b3bffc;border-color:#aebcfc;box-shadow:0 0 0 .25rem rgba(140,153,214,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-300,.show>body[data-netbox-color-mode=dark] .btn-indigo-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-300.active,body[data-netbox-color-mode=dark] .btn-indigo-300:active{color:#000;background-color:#b7c3fd;border-color:#aebcfc}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-300:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-300.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-300:active:focus{box-shadow:0 0 0 .25rem rgba(140,153,214,.5)}body[data-netbox-color-mode=dark] .btn-indigo-300.disabled,body[data-netbox-color-mode=dark] .btn-indigo-300:disabled{color:#000;background-color:#a5b4fc;border-color:#a5b4fc}body[data-netbox-color-mode=dark] .btn-indigo-400{color:#000;background-color:#818cf8;border-color:#818cf8}body[data-netbox-color-mode=dark] .btn-indigo-400:hover{color:#000;background-color:#949df9;border-color:#8e98f9}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-400,body[data-netbox-color-mode=dark] .btn-indigo-400:focus{color:#000;background-color:#949df9;border-color:#8e98f9;box-shadow:0 0 0 .25rem rgba(110,119,211,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-400,.show>body[data-netbox-color-mode=dark] .btn-indigo-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-400.active,body[data-netbox-color-mode=dark] .btn-indigo-400:active{color:#000;background-color:#9aa3f9;border-color:#8e98f9}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-400:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-400.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-400:active:focus{box-shadow:0 0 0 .25rem rgba(110,119,211,.5)}body[data-netbox-color-mode=dark] .btn-indigo-400.disabled,body[data-netbox-color-mode=dark] .btn-indigo-400:disabled{color:#000;background-color:#818cf8;border-color:#818cf8}body[data-netbox-color-mode=dark] .btn-indigo-500{color:#000;background-color:#6366f1;border-color:#6366f1}body[data-netbox-color-mode=dark] .btn-indigo-500:hover{color:#000;background-color:#7a7df3;border-color:#7375f2}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-500,body[data-netbox-color-mode=dark] .btn-indigo-500:focus{color:#000;background-color:#7a7df3;border-color:#7375f2;box-shadow:0 0 0 .25rem rgba(84,87,205,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-500,.show>body[data-netbox-color-mode=dark] .btn-indigo-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-500.active,body[data-netbox-color-mode=dark] .btn-indigo-500:active{color:#000;background-color:#8285f4;border-color:#7375f2}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-500:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-500.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-500:active:focus{box-shadow:0 0 0 .25rem rgba(84,87,205,.5)}body[data-netbox-color-mode=dark] .btn-indigo-500.disabled,body[data-netbox-color-mode=dark] .btn-indigo-500:disabled{color:#000;background-color:#6366f1;border-color:#6366f1}body[data-netbox-color-mode=dark] .btn-indigo-600{color:#fff;background-color:#4f46e5;border-color:#4f46e5}body[data-netbox-color-mode=dark] .btn-indigo-600:hover{color:#fff;background-color:#433cc3;border-color:#3f38b7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-600,body[data-netbox-color-mode=dark] .btn-indigo-600:focus{color:#fff;background-color:#433cc3;border-color:#3f38b7;box-shadow:0 0 0 .25rem rgba(105,98,233,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-600,.show>body[data-netbox-color-mode=dark] .btn-indigo-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-600.active,body[data-netbox-color-mode=dark] .btn-indigo-600:active{color:#fff;background-color:#3f38b7;border-color:#3b35ac}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-600:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-600.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-600:active:focus{box-shadow:0 0 0 .25rem rgba(105,98,233,.5)}body[data-netbox-color-mode=dark] .btn-indigo-600.disabled,body[data-netbox-color-mode=dark] .btn-indigo-600:disabled{color:#fff;background-color:#4f46e5;border-color:#4f46e5}body[data-netbox-color-mode=dark] .btn-indigo-700{color:#fff;background-color:#4338ca;border-color:#4338ca}body[data-netbox-color-mode=dark] .btn-indigo-700:hover{color:#fff;background-color:#3930ac;border-color:#362da2}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-700,body[data-netbox-color-mode=dark] .btn-indigo-700:focus{color:#fff;background-color:#3930ac;border-color:#362da2;box-shadow:0 0 0 .25rem rgba(95,86,210,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-700,.show>body[data-netbox-color-mode=dark] .btn-indigo-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-700.active,body[data-netbox-color-mode=dark] .btn-indigo-700:active{color:#fff;background-color:#362da2;border-color:#322a98}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-700:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-700.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-700:active:focus{box-shadow:0 0 0 .25rem rgba(95,86,210,.5)}body[data-netbox-color-mode=dark] .btn-indigo-700.disabled,body[data-netbox-color-mode=dark] .btn-indigo-700:disabled{color:#fff;background-color:#4338ca;border-color:#4338ca}body[data-netbox-color-mode=dark] .btn-indigo-800{color:#fff;background-color:#3730a3;border-color:#3730a3}body[data-netbox-color-mode=dark] .btn-indigo-800:hover{color:#fff;background-color:#2f298b;border-color:#2c2682}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-800,body[data-netbox-color-mode=dark] .btn-indigo-800:focus{color:#fff;background-color:#2f298b;border-color:#2c2682;box-shadow:0 0 0 .25rem rgba(85,79,177,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-800,.show>body[data-netbox-color-mode=dark] .btn-indigo-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-800.active,body[data-netbox-color-mode=dark] .btn-indigo-800:active{color:#fff;background-color:#2c2682;border-color:#29247a}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-800:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-800.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-800:active:focus{box-shadow:0 0 0 .25rem rgba(85,79,177,.5)}body[data-netbox-color-mode=dark] .btn-indigo-800.disabled,body[data-netbox-color-mode=dark] .btn-indigo-800:disabled{color:#fff;background-color:#3730a3;border-color:#3730a3}body[data-netbox-color-mode=dark] .btn-indigo-900{color:#fff;background-color:#312e81;border-color:#312e81}body[data-netbox-color-mode=dark] .btn-indigo-900:hover{color:#fff;background-color:#2a276e;border-color:#272567}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-indigo-900,body[data-netbox-color-mode=dark] .btn-indigo-900:focus{color:#fff;background-color:#2a276e;border-color:#272567;box-shadow:0 0 0 .25rem rgba(80,77,148,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-900,.show>body[data-netbox-color-mode=dark] .btn-indigo-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-indigo-900.active,body[data-netbox-color-mode=dark] .btn-indigo-900:active{color:#fff;background-color:#272567;border-color:#252361}.btn-check:active+body[data-netbox-color-mode=dark] .btn-indigo-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-indigo-900:focus,.show>body[data-netbox-color-mode=dark] .btn-indigo-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-indigo-900.active:focus,body[data-netbox-color-mode=dark] .btn-indigo-900:active:focus{box-shadow:0 0 0 .25rem rgba(80,77,148,.5)}body[data-netbox-color-mode=dark] .btn-indigo-900.disabled,body[data-netbox-color-mode=dark] .btn-indigo-900:disabled{color:#fff;background-color:#312e81;border-color:#312e81}body[data-netbox-color-mode=dark] .btn-purple-50{color:#000;background-color:#f5f3ff;border-color:#f5f3ff}body[data-netbox-color-mode=dark] .btn-purple-50:hover{color:#000;background-color:#f7f5ff;border-color:#f6f4ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-50,body[data-netbox-color-mode=dark] .btn-purple-50:focus{color:#000;background-color:#f7f5ff;border-color:#f6f4ff;box-shadow:0 0 0 .25rem rgba(208,207,217,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-50,.show>body[data-netbox-color-mode=dark] .btn-purple-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-50.active,body[data-netbox-color-mode=dark] .btn-purple-50:active{color:#000;background-color:#f7f5ff;border-color:#f6f4ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-50:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-50.active:focus,body[data-netbox-color-mode=dark] .btn-purple-50:active:focus{box-shadow:0 0 0 .25rem rgba(208,207,217,.5)}body[data-netbox-color-mode=dark] .btn-purple-50.disabled,body[data-netbox-color-mode=dark] .btn-purple-50:disabled{color:#000;background-color:#f5f3ff;border-color:#f5f3ff}body[data-netbox-color-mode=dark] .btn-purple-100{color:#000;background-color:#ede9fe;border-color:#ede9fe}body[data-netbox-color-mode=dark] .btn-purple-100:hover{color:#000;background-color:#f0ecfe;border-color:#efebfe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-100,body[data-netbox-color-mode=dark] .btn-purple-100:focus{color:#000;background-color:#f0ecfe;border-color:#efebfe;box-shadow:0 0 0 .25rem rgba(201,198,216,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-100,.show>body[data-netbox-color-mode=dark] .btn-purple-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-100.active,body[data-netbox-color-mode=dark] .btn-purple-100:active{color:#000;background-color:#f1edfe;border-color:#efebfe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-100:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-100.active:focus,body[data-netbox-color-mode=dark] .btn-purple-100:active:focus{box-shadow:0 0 0 .25rem rgba(201,198,216,.5)}body[data-netbox-color-mode=dark] .btn-purple-100.disabled,body[data-netbox-color-mode=dark] .btn-purple-100:disabled{color:#000;background-color:#ede9fe;border-color:#ede9fe}body[data-netbox-color-mode=dark] .btn-purple-200{color:#000;background-color:#ddd6fe;border-color:#ddd6fe}body[data-netbox-color-mode=dark] .btn-purple-200:hover{color:#000;background-color:#e2dcfe;border-color:#e0dafe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-200,body[data-netbox-color-mode=dark] .btn-purple-200:focus{color:#000;background-color:#e2dcfe;border-color:#e0dafe;box-shadow:0 0 0 .25rem rgba(188,182,216,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-200,.show>body[data-netbox-color-mode=dark] .btn-purple-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-200.active,body[data-netbox-color-mode=dark] .btn-purple-200:active{color:#000;background-color:#e4defe;border-color:#e0dafe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-200:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-200.active:focus,body[data-netbox-color-mode=dark] .btn-purple-200:active:focus{box-shadow:0 0 0 .25rem rgba(188,182,216,.5)}body[data-netbox-color-mode=dark] .btn-purple-200.disabled,body[data-netbox-color-mode=dark] .btn-purple-200:disabled{color:#000;background-color:#ddd6fe;border-color:#ddd6fe}body[data-netbox-color-mode=dark] .btn-purple-300{color:#000;background-color:#c4b5fd;border-color:#c4b5fd}body[data-netbox-color-mode=dark] .btn-purple-300:hover{color:#000;background-color:#cdc0fd;border-color:#cabcfd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-300,body[data-netbox-color-mode=dark] .btn-purple-300:focus{color:#000;background-color:#cdc0fd;border-color:#cabcfd;box-shadow:0 0 0 .25rem rgba(167,154,215,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-300,.show>body[data-netbox-color-mode=dark] .btn-purple-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-300.active,body[data-netbox-color-mode=dark] .btn-purple-300:active{color:#000;background-color:#d0c4fd;border-color:#cabcfd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-300:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-300.active:focus,body[data-netbox-color-mode=dark] .btn-purple-300:active:focus{box-shadow:0 0 0 .25rem rgba(167,154,215,.5)}body[data-netbox-color-mode=dark] .btn-purple-300.disabled,body[data-netbox-color-mode=dark] .btn-purple-300:disabled{color:#000;background-color:#c4b5fd;border-color:#c4b5fd}body[data-netbox-color-mode=dark] .btn-purple-400{color:#000;background-color:#a78bfa;border-color:#a78bfa}body[data-netbox-color-mode=dark] .btn-purple-400:hover{color:#000;background-color:#b49cfb;border-color:#b097fb}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-400,body[data-netbox-color-mode=dark] .btn-purple-400:focus{color:#000;background-color:#b49cfb;border-color:#b097fb;box-shadow:0 0 0 .25rem rgba(142,118,213,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-400,.show>body[data-netbox-color-mode=dark] .btn-purple-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-400.active,body[data-netbox-color-mode=dark] .btn-purple-400:active{color:#000;background-color:#b9a2fb;border-color:#b097fb}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-400:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-400.active:focus,body[data-netbox-color-mode=dark] .btn-purple-400:active:focus{box-shadow:0 0 0 .25rem rgba(142,118,213,.5)}body[data-netbox-color-mode=dark] .btn-purple-400.disabled,body[data-netbox-color-mode=dark] .btn-purple-400:disabled{color:#000;background-color:#a78bfa;border-color:#a78bfa}body[data-netbox-color-mode=dark] .btn-purple-500{color:#000;background-color:#8b5cf6;border-color:#8b5cf6}body[data-netbox-color-mode=dark] .btn-purple-500:hover{color:#000;background-color:#9c74f7;border-color:#976cf7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-500,body[data-netbox-color-mode=dark] .btn-purple-500:focus{color:#000;background-color:#9c74f7;border-color:#976cf7;box-shadow:0 0 0 .25rem rgba(118,78,209,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-500,.show>body[data-netbox-color-mode=dark] .btn-purple-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-500.active,body[data-netbox-color-mode=dark] .btn-purple-500:active{color:#000;background-color:#a27df8;border-color:#976cf7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-500:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-500.active:focus,body[data-netbox-color-mode=dark] .btn-purple-500:active:focus{box-shadow:0 0 0 .25rem rgba(118,78,209,.5)}body[data-netbox-color-mode=dark] .btn-purple-500.disabled,body[data-netbox-color-mode=dark] .btn-purple-500:disabled{color:#000;background-color:#8b5cf6;border-color:#8b5cf6}body[data-netbox-color-mode=dark] .btn-purple-600{color:#fff;background-color:#7c3aed;border-color:#7c3aed}body[data-netbox-color-mode=dark] .btn-purple-600:hover{color:#fff;background-color:#6931c9;border-color:#632ebe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-600,body[data-netbox-color-mode=dark] .btn-purple-600:focus{color:#fff;background-color:#6931c9;border-color:#632ebe;box-shadow:0 0 0 .25rem rgba(144,88,240,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-600,.show>body[data-netbox-color-mode=dark] .btn-purple-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-600.active,body[data-netbox-color-mode=dark] .btn-purple-600:active{color:#fff;background-color:#632ebe;border-color:#5d2cb2}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-600:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-600.active:focus,body[data-netbox-color-mode=dark] .btn-purple-600:active:focus{box-shadow:0 0 0 .25rem rgba(144,88,240,.5)}body[data-netbox-color-mode=dark] .btn-purple-600.disabled,body[data-netbox-color-mode=dark] .btn-purple-600:disabled{color:#fff;background-color:#7c3aed;border-color:#7c3aed}body[data-netbox-color-mode=dark] .btn-purple-700{color:#fff;background-color:#6d28d9;border-color:#6d28d9}body[data-netbox-color-mode=dark] .btn-purple-700:hover{color:#fff;background-color:#5d22b8;border-color:#5720ae}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-700,body[data-netbox-color-mode=dark] .btn-purple-700:focus{color:#fff;background-color:#5d22b8;border-color:#5720ae;box-shadow:0 0 0 .25rem rgba(131,72,223,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-700,.show>body[data-netbox-color-mode=dark] .btn-purple-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-700.active,body[data-netbox-color-mode=dark] .btn-purple-700:active{color:#fff;background-color:#5720ae;border-color:#521ea3}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-700:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-700.active:focus,body[data-netbox-color-mode=dark] .btn-purple-700:active:focus{box-shadow:0 0 0 .25rem rgba(131,72,223,.5)}body[data-netbox-color-mode=dark] .btn-purple-700.disabled,body[data-netbox-color-mode=dark] .btn-purple-700:disabled{color:#fff;background-color:#6d28d9;border-color:#6d28d9}body[data-netbox-color-mode=dark] .btn-purple-800{color:#fff;background-color:#5b21b6;border-color:#5b21b6}body[data-netbox-color-mode=dark] .btn-purple-800:hover{color:#fff;background-color:#4d1c9b;border-color:#491a92}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-800,body[data-netbox-color-mode=dark] .btn-purple-800:focus{color:#fff;background-color:#4d1c9b;border-color:#491a92;box-shadow:0 0 0 .25rem rgba(116,66,193,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-800,.show>body[data-netbox-color-mode=dark] .btn-purple-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-800.active,body[data-netbox-color-mode=dark] .btn-purple-800:active{color:#fff;background-color:#491a92;border-color:#441989}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-800:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-800.active:focus,body[data-netbox-color-mode=dark] .btn-purple-800:active:focus{box-shadow:0 0 0 .25rem rgba(116,66,193,.5)}body[data-netbox-color-mode=dark] .btn-purple-800.disabled,body[data-netbox-color-mode=dark] .btn-purple-800:disabled{color:#fff;background-color:#5b21b6;border-color:#5b21b6}body[data-netbox-color-mode=dark] .btn-purple-900{color:#fff;background-color:#4c1d95;border-color:#4c1d95}body[data-netbox-color-mode=dark] .btn-purple-900:hover{color:#fff;background-color:#41197f;border-color:#3d1777}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-purple-900,body[data-netbox-color-mode=dark] .btn-purple-900:focus{color:#fff;background-color:#41197f;border-color:#3d1777;box-shadow:0 0 0 .25rem rgba(103,63,165,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-900,.show>body[data-netbox-color-mode=dark] .btn-purple-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-purple-900.active,body[data-netbox-color-mode=dark] .btn-purple-900:active{color:#fff;background-color:#3d1777;border-color:#391670}.btn-check:active+body[data-netbox-color-mode=dark] .btn-purple-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-purple-900:focus,.show>body[data-netbox-color-mode=dark] .btn-purple-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-purple-900.active:focus,body[data-netbox-color-mode=dark] .btn-purple-900:active:focus{box-shadow:0 0 0 .25rem rgba(103,63,165,.5)}body[data-netbox-color-mode=dark] .btn-purple-900.disabled,body[data-netbox-color-mode=dark] .btn-purple-900:disabled{color:#fff;background-color:#4c1d95;border-color:#4c1d95}body[data-netbox-color-mode=dark] .btn-pink-50{color:#000;background-color:#fdf2f8;border-color:#fdf2f8}body[data-netbox-color-mode=dark] .btn-pink-50:hover{color:#000;background-color:#fdf4f9;border-color:#fdf3f9}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-50,body[data-netbox-color-mode=dark] .btn-pink-50:focus{color:#000;background-color:#fdf4f9;border-color:#fdf3f9;box-shadow:0 0 0 .25rem rgba(215,206,211,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-50,.show>body[data-netbox-color-mode=dark] .btn-pink-50.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-50.active,body[data-netbox-color-mode=dark] .btn-pink-50:active{color:#000;background-color:#fdf5f9;border-color:#fdf3f9}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-50:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-50.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-50.active:focus,body[data-netbox-color-mode=dark] .btn-pink-50:active:focus{box-shadow:0 0 0 .25rem rgba(215,206,211,.5)}body[data-netbox-color-mode=dark] .btn-pink-50.disabled,body[data-netbox-color-mode=dark] .btn-pink-50:disabled{color:#000;background-color:#fdf2f8;border-color:#fdf2f8}body[data-netbox-color-mode=dark] .btn-pink-100{color:#000;background-color:#fce7f3;border-color:#fce7f3}body[data-netbox-color-mode=dark] .btn-pink-100:hover{color:#000;background-color:#fcebf5;border-color:#fce9f4}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-100,body[data-netbox-color-mode=dark] .btn-pink-100:focus{color:#000;background-color:#fcebf5;border-color:#fce9f4;box-shadow:0 0 0 .25rem rgba(214,196,207,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-100,.show>body[data-netbox-color-mode=dark] .btn-pink-100.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-100.active,body[data-netbox-color-mode=dark] .btn-pink-100:active{color:#000;background-color:#fdecf5;border-color:#fce9f4}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-100:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-100.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-100.active:focus,body[data-netbox-color-mode=dark] .btn-pink-100:active:focus{box-shadow:0 0 0 .25rem rgba(214,196,207,.5)}body[data-netbox-color-mode=dark] .btn-pink-100.disabled,body[data-netbox-color-mode=dark] .btn-pink-100:disabled{color:#000;background-color:#fce7f3;border-color:#fce7f3}body[data-netbox-color-mode=dark] .btn-pink-200{color:#000;background-color:#fbcfe8;border-color:#fbcfe8}body[data-netbox-color-mode=dark] .btn-pink-200:hover{color:#000;background-color:#fcd6eb;border-color:#fbd4ea}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-200,body[data-netbox-color-mode=dark] .btn-pink-200:focus{color:#000;background-color:#fcd6eb;border-color:#fbd4ea;box-shadow:0 0 0 .25rem rgba(213,176,197,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-200,.show>body[data-netbox-color-mode=dark] .btn-pink-200.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-200.active,body[data-netbox-color-mode=dark] .btn-pink-200:active{color:#000;background-color:#fcd9ed;border-color:#fbd4ea}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-200:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-200.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-200.active:focus,body[data-netbox-color-mode=dark] .btn-pink-200:active:focus{box-shadow:0 0 0 .25rem rgba(213,176,197,.5)}body[data-netbox-color-mode=dark] .btn-pink-200.disabled,body[data-netbox-color-mode=dark] .btn-pink-200:disabled{color:#000;background-color:#fbcfe8;border-color:#fbcfe8}body[data-netbox-color-mode=dark] .btn-pink-300{color:#000;background-color:#f9a8d4;border-color:#f9a8d4}body[data-netbox-color-mode=dark] .btn-pink-300:hover{color:#000;background-color:#fab5da;border-color:#fab1d8}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-300,body[data-netbox-color-mode=dark] .btn-pink-300:focus{color:#000;background-color:#fab5da;border-color:#fab1d8;box-shadow:0 0 0 .25rem rgba(212,143,180,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-300,.show>body[data-netbox-color-mode=dark] .btn-pink-300.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-300.active,body[data-netbox-color-mode=dark] .btn-pink-300:active{color:#000;background-color:#fab9dd;border-color:#fab1d8}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-300:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-300.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-300.active:focus,body[data-netbox-color-mode=dark] .btn-pink-300:active:focus{box-shadow:0 0 0 .25rem rgba(212,143,180,.5)}body[data-netbox-color-mode=dark] .btn-pink-300.disabled,body[data-netbox-color-mode=dark] .btn-pink-300:disabled{color:#000;background-color:#f9a8d4;border-color:#f9a8d4}body[data-netbox-color-mode=dark] .btn-pink-400{color:#000;background-color:#f472b6;border-color:#f472b6}body[data-netbox-color-mode=dark] .btn-pink-400:hover{color:#000;background-color:#f687c1;border-color:#f580bd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-400,body[data-netbox-color-mode=dark] .btn-pink-400:focus{color:#000;background-color:#f687c1;border-color:#f580bd;box-shadow:0 0 0 .25rem rgba(207,97,155,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-400,.show>body[data-netbox-color-mode=dark] .btn-pink-400.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-400.active,body[data-netbox-color-mode=dark] .btn-pink-400:active{color:#000;background-color:#f68ec5;border-color:#f580bd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-400:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-400.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-400.active:focus,body[data-netbox-color-mode=dark] .btn-pink-400:active:focus{box-shadow:0 0 0 .25rem rgba(207,97,155,.5)}body[data-netbox-color-mode=dark] .btn-pink-400.disabled,body[data-netbox-color-mode=dark] .btn-pink-400:disabled{color:#000;background-color:#f472b6;border-color:#f472b6}body[data-netbox-color-mode=dark] .btn-pink-500{color:#000;background-color:#ec4899;border-color:#ec4899}body[data-netbox-color-mode=dark] .btn-pink-500:hover{color:#000;background-color:#ef63a8;border-color:#ee5aa3}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-500,body[data-netbox-color-mode=dark] .btn-pink-500:focus{color:#000;background-color:#ef63a8;border-color:#ee5aa3;box-shadow:0 0 0 .25rem rgba(201,61,130,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-500,.show>body[data-netbox-color-mode=dark] .btn-pink-500.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-500.active,body[data-netbox-color-mode=dark] .btn-pink-500:active{color:#000;background-color:#f06dad;border-color:#ee5aa3}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-500:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-500.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-500.active:focus,body[data-netbox-color-mode=dark] .btn-pink-500:active:focus{box-shadow:0 0 0 .25rem rgba(201,61,130,.5)}body[data-netbox-color-mode=dark] .btn-pink-500.disabled,body[data-netbox-color-mode=dark] .btn-pink-500:disabled{color:#000;background-color:#ec4899;border-color:#ec4899}body[data-netbox-color-mode=dark] .btn-pink-600{color:#fff;background-color:#db2777;border-color:#db2777}body[data-netbox-color-mode=dark] .btn-pink-600:hover{color:#fff;background-color:#ba2165;border-color:#af1f5f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-600,body[data-netbox-color-mode=dark] .btn-pink-600:focus{color:#fff;background-color:#ba2165;border-color:#af1f5f;box-shadow:0 0 0 .25rem rgba(224,71,139,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-600,.show>body[data-netbox-color-mode=dark] .btn-pink-600.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-600.active,body[data-netbox-color-mode=dark] .btn-pink-600:active{color:#fff;background-color:#af1f5f;border-color:#a41d59}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-600:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-600.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-600.active:focus,body[data-netbox-color-mode=dark] .btn-pink-600:active:focus{box-shadow:0 0 0 .25rem rgba(224,71,139,.5)}body[data-netbox-color-mode=dark] .btn-pink-600.disabled,body[data-netbox-color-mode=dark] .btn-pink-600:disabled{color:#fff;background-color:#db2777;border-color:#db2777}body[data-netbox-color-mode=dark] .btn-pink-700{color:#fff;background-color:#be185d;border-color:#be185d}body[data-netbox-color-mode=dark] .btn-pink-700:hover{color:#fff;background-color:#a2144f;border-color:#98134a}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-700,body[data-netbox-color-mode=dark] .btn-pink-700:focus{color:#fff;background-color:#a2144f;border-color:#98134a;box-shadow:0 0 0 .25rem rgba(200,59,117,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-700,.show>body[data-netbox-color-mode=dark] .btn-pink-700.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-700.active,body[data-netbox-color-mode=dark] .btn-pink-700:active{color:#fff;background-color:#98134a;border-color:#8f1246}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-700:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-700.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-700.active:focus,body[data-netbox-color-mode=dark] .btn-pink-700:active:focus{box-shadow:0 0 0 .25rem rgba(200,59,117,.5)}body[data-netbox-color-mode=dark] .btn-pink-700.disabled,body[data-netbox-color-mode=dark] .btn-pink-700:disabled{color:#fff;background-color:#be185d;border-color:#be185d}body[data-netbox-color-mode=dark] .btn-pink-800{color:#fff;background-color:#9d174d;border-color:#9d174d}body[data-netbox-color-mode=dark] .btn-pink-800:hover{color:#fff;background-color:#851441;border-color:#7e123e}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-800,body[data-netbox-color-mode=dark] .btn-pink-800:focus{color:#fff;background-color:#851441;border-color:#7e123e;box-shadow:0 0 0 .25rem rgba(172,58,104,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-800,.show>body[data-netbox-color-mode=dark] .btn-pink-800.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-800.active,body[data-netbox-color-mode=dark] .btn-pink-800:active{color:#fff;background-color:#7e123e;border-color:#76113a}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-800:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-800.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-800.active:focus,body[data-netbox-color-mode=dark] .btn-pink-800:active:focus{box-shadow:0 0 0 .25rem rgba(172,58,104,.5)}body[data-netbox-color-mode=dark] .btn-pink-800.disabled,body[data-netbox-color-mode=dark] .btn-pink-800:disabled{color:#fff;background-color:#9d174d;border-color:#9d174d}body[data-netbox-color-mode=dark] .btn-pink-900{color:#fff;background-color:#831843;border-color:#831843}body[data-netbox-color-mode=dark] .btn-pink-900:hover{color:#fff;background-color:#6f1439;border-color:#691336}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-pink-900,body[data-netbox-color-mode=dark] .btn-pink-900:focus{color:#fff;background-color:#6f1439;border-color:#691336;box-shadow:0 0 0 .25rem rgba(150,59,95,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-900,.show>body[data-netbox-color-mode=dark] .btn-pink-900.dropdown-toggle,body[data-netbox-color-mode=dark] .btn-pink-900.active,body[data-netbox-color-mode=dark] .btn-pink-900:active{color:#fff;background-color:#691336;border-color:#621232}.btn-check:active+body[data-netbox-color-mode=dark] .btn-pink-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-pink-900:focus,.show>body[data-netbox-color-mode=dark] .btn-pink-900.dropdown-toggle:focus,body[data-netbox-color-mode=dark] .btn-pink-900.active:focus,body[data-netbox-color-mode=dark] .btn-pink-900:active:focus{box-shadow:0 0 0 .25rem rgba(150,59,95,.5)}body[data-netbox-color-mode=dark] .btn-pink-900.disabled,body[data-netbox-color-mode=dark] .btn-pink-900:disabled{color:#fff;background-color:#831843;border-color:#831843}body[data-netbox-color-mode=dark] .btn-outline-primary{color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .btn-outline-primary:hover{color:#000;background-color:#93c5fd;border-color:#93c5fd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-primary,body[data-netbox-color-mode=dark] .btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(147,197,253,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-primary,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-primary,body[data-netbox-color-mode=dark] .btn-outline-primary.active,body[data-netbox-color-mode=dark] .btn-outline-primary.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-primary:active{color:#000;background-color:#93c5fd;border-color:#93c5fd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-primary:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-primary:focus,body[data-netbox-color-mode=dark] .btn-outline-primary.active:focus,body[data-netbox-color-mode=dark] .btn-outline-primary.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(147,197,253,.5)}body[data-netbox-color-mode=dark] .btn-outline-primary.disabled,body[data-netbox-color-mode=dark] .btn-outline-primary:disabled{color:#93c5fd;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-secondary{color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-outline-secondary:hover{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-secondary,body[data-netbox-color-mode=dark] .btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-secondary,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-secondary,body[data-netbox-color-mode=dark] .btn-outline-secondary.active,body[data-netbox-color-mode=dark] .btn-outline-secondary.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-secondary:active{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-secondary:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-secondary:focus,body[data-netbox-color-mode=dark] .btn-outline-secondary.active:focus,body[data-netbox-color-mode=dark] .btn-outline-secondary.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}body[data-netbox-color-mode=dark] .btn-outline-secondary.disabled,body[data-netbox-color-mode=dark] .btn-outline-secondary:disabled{color:#9ca3af;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-success{color:#6ee7b7;border-color:#6ee7b7}body[data-netbox-color-mode=dark] .btn-outline-success:hover{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-success,body[data-netbox-color-mode=dark] .btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(110,231,183,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-success,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-success,body[data-netbox-color-mode=dark] .btn-outline-success.active,body[data-netbox-color-mode=dark] .btn-outline-success.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-success:active{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-success:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-success:focus,body[data-netbox-color-mode=dark] .btn-outline-success.active:focus,body[data-netbox-color-mode=dark] .btn-outline-success.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(110,231,183,.5)}body[data-netbox-color-mode=dark] .btn-outline-success.disabled,body[data-netbox-color-mode=dark] .btn-outline-success:disabled{color:#6ee7b7;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-info{color:#67e8f9;border-color:#67e8f9}body[data-netbox-color-mode=dark] .btn-outline-info:hover{color:#000;background-color:#67e8f9;border-color:#67e8f9}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-info,body[data-netbox-color-mode=dark] .btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(103,232,249,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-info,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-info,body[data-netbox-color-mode=dark] .btn-outline-info.active,body[data-netbox-color-mode=dark] .btn-outline-info.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-info:active{color:#000;background-color:#67e8f9;border-color:#67e8f9}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-info:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-info:focus,body[data-netbox-color-mode=dark] .btn-outline-info.active:focus,body[data-netbox-color-mode=dark] .btn-outline-info.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(103,232,249,.5)}body[data-netbox-color-mode=dark] .btn-outline-info.disabled,body[data-netbox-color-mode=dark] .btn-outline-info:disabled{color:#67e8f9;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-warning{color:#fcd34d;border-color:#fcd34d}body[data-netbox-color-mode=dark] .btn-outline-warning:hover{color:#000;background-color:#fcd34d;border-color:#fcd34d}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-warning,body[data-netbox-color-mode=dark] .btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(252,211,77,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-warning,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-warning,body[data-netbox-color-mode=dark] .btn-outline-warning.active,body[data-netbox-color-mode=dark] .btn-outline-warning.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-warning:active{color:#000;background-color:#fcd34d;border-color:#fcd34d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-warning:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-warning:focus,body[data-netbox-color-mode=dark] .btn-outline-warning.active:focus,body[data-netbox-color-mode=dark] .btn-outline-warning.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(252,211,77,.5)}body[data-netbox-color-mode=dark] .btn-outline-warning.disabled,body[data-netbox-color-mode=dark] .btn-outline-warning:disabled{color:#fcd34d;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-danger{color:#fca5a5;border-color:#fca5a5}body[data-netbox-color-mode=dark] .btn-outline-danger:hover{color:#000;background-color:#fca5a5;border-color:#fca5a5}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-danger,body[data-netbox-color-mode=dark] .btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(252,165,165,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-danger,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-danger,body[data-netbox-color-mode=dark] .btn-outline-danger.active,body[data-netbox-color-mode=dark] .btn-outline-danger.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-danger:active{color:#000;background-color:#fca5a5;border-color:#fca5a5}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-danger:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-danger:focus,body[data-netbox-color-mode=dark] .btn-outline-danger.active:focus,body[data-netbox-color-mode=dark] .btn-outline-danger.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(252,165,165,.5)}body[data-netbox-color-mode=dark] .btn-outline-danger.disabled,body[data-netbox-color-mode=dark] .btn-outline-danger:disabled{color:#fca5a5;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-light{color:#d1d5db;border-color:#d1d5db}body[data-netbox-color-mode=dark] .btn-outline-light:hover{color:#000;background-color:#d1d5db;border-color:#d1d5db}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-light,body[data-netbox-color-mode=dark] .btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(209,213,219,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-light,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-light,body[data-netbox-color-mode=dark] .btn-outline-light.active,body[data-netbox-color-mode=dark] .btn-outline-light.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-light:active{color:#000;background-color:#d1d5db;border-color:#d1d5db}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-light:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-light:focus,body[data-netbox-color-mode=dark] .btn-outline-light.active:focus,body[data-netbox-color-mode=dark] .btn-outline-light.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(209,213,219,.5)}body[data-netbox-color-mode=dark] .btn-outline-light.disabled,body[data-netbox-color-mode=dark] .btn-outline-light:disabled{color:#d1d5db;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-dark{color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-outline-dark:hover{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-dark,body[data-netbox-color-mode=dark] .btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-dark,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-dark,body[data-netbox-color-mode=dark] .btn-outline-dark.active,body[data-netbox-color-mode=dark] .btn-outline-dark.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-dark:active{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-dark:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-dark:focus,body[data-netbox-color-mode=dark] .btn-outline-dark.active:focus,body[data-netbox-color-mode=dark] .btn-outline-dark.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}body[data-netbox-color-mode=dark] .btn-outline-dark.disabled,body[data-netbox-color-mode=dark] .btn-outline-dark:disabled{color:#9ca3af;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-alt{color:#13293d;border-color:#13293d}body[data-netbox-color-mode=dark] .btn-outline-alt:hover{color:#fff;background-color:#13293d;border-color:#13293d}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-alt,body[data-netbox-color-mode=dark] .btn-outline-alt:focus{box-shadow:0 0 0 .25rem rgba(19,41,61,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-alt,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-alt,body[data-netbox-color-mode=dark] .btn-outline-alt.active,body[data-netbox-color-mode=dark] .btn-outline-alt.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-alt:active{color:#fff;background-color:#13293d;border-color:#13293d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-alt:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-alt:focus,body[data-netbox-color-mode=dark] .btn-outline-alt.active:focus,body[data-netbox-color-mode=dark] .btn-outline-alt.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-alt:active:focus{box-shadow:0 0 0 .25rem rgba(19,41,61,.5)}body[data-netbox-color-mode=dark] .btn-outline-alt.disabled,body[data-netbox-color-mode=dark] .btn-outline-alt:disabled{color:#13293d;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray{color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-outline-gray:hover{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray,body[data-netbox-color-mode=dark] .btn-outline-gray:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray,body[data-netbox-color-mode=dark] .btn-outline-gray.active,body[data-netbox-color-mode=dark] .btn-outline-gray.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray:active{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray:focus,body[data-netbox-color-mode=dark] .btn-outline-gray.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray:active:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray:disabled{color:#9ca3af;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-darker{color:#010101;border-color:#010101}body[data-netbox-color-mode=dark] .btn-outline-darker:hover{color:#fff;background-color:#010101;border-color:#010101}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-darker,body[data-netbox-color-mode=dark] .btn-outline-darker:focus{box-shadow:0 0 0 .25rem rgba(1,1,1,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-darker,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-darker,body[data-netbox-color-mode=dark] .btn-outline-darker.active,body[data-netbox-color-mode=dark] .btn-outline-darker.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-darker:active{color:#fff;background-color:#010101;border-color:#010101}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-darker:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-darker:focus,body[data-netbox-color-mode=dark] .btn-outline-darker.active:focus,body[data-netbox-color-mode=dark] .btn-outline-darker.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-darker:active:focus{box-shadow:0 0 0 .25rem rgba(1,1,1,.5)}body[data-netbox-color-mode=dark] .btn-outline-darker.disabled,body[data-netbox-color-mode=dark] .btn-outline-darker:disabled{color:#010101;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-50{color:#f9fafb;border-color:#f9fafb}body[data-netbox-color-mode=dark] .btn-outline-gray-50:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-50,body[data-netbox-color-mode=dark] .btn-outline-gray-50:focus{box-shadow:0 0 0 .25rem rgba(249,250,251,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-50,body[data-netbox-color-mode=dark] .btn-outline-gray-50.active,body[data-netbox-color-mode=dark] .btn-outline-gray-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-50:active{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-50:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-50:active:focus{box-shadow:0 0 0 .25rem rgba(249,250,251,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-50:disabled{color:#f9fafb;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-100{color:#f3f4f6;border-color:#f3f4f6}body[data-netbox-color-mode=dark] .btn-outline-gray-100:hover{color:#000;background-color:#f3f4f6;border-color:#f3f4f6}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-100,body[data-netbox-color-mode=dark] .btn-outline-gray-100:focus{box-shadow:0 0 0 .25rem rgba(243,244,246,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-100,body[data-netbox-color-mode=dark] .btn-outline-gray-100.active,body[data-netbox-color-mode=dark] .btn-outline-gray-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-100:active{color:#000;background-color:#f3f4f6;border-color:#f3f4f6}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-100:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-100:active:focus{box-shadow:0 0 0 .25rem rgba(243,244,246,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-100:disabled{color:#f3f4f6;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-200{color:#e5e7eb;border-color:#e5e7eb}body[data-netbox-color-mode=dark] .btn-outline-gray-200:hover{color:#000;background-color:#e5e7eb;border-color:#e5e7eb}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-200,body[data-netbox-color-mode=dark] .btn-outline-gray-200:focus{box-shadow:0 0 0 .25rem rgba(229,231,235,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-200,body[data-netbox-color-mode=dark] .btn-outline-gray-200.active,body[data-netbox-color-mode=dark] .btn-outline-gray-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-200:active{color:#000;background-color:#e5e7eb;border-color:#e5e7eb}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-200:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-200:active:focus{box-shadow:0 0 0 .25rem rgba(229,231,235,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-200:disabled{color:#e5e7eb;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-300{color:#d1d5db;border-color:#d1d5db}body[data-netbox-color-mode=dark] .btn-outline-gray-300:hover{color:#000;background-color:#d1d5db;border-color:#d1d5db}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-300,body[data-netbox-color-mode=dark] .btn-outline-gray-300:focus{box-shadow:0 0 0 .25rem rgba(209,213,219,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-300,body[data-netbox-color-mode=dark] .btn-outline-gray-300.active,body[data-netbox-color-mode=dark] .btn-outline-gray-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-300:active{color:#000;background-color:#d1d5db;border-color:#d1d5db}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-300:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-300:active:focus{box-shadow:0 0 0 .25rem rgba(209,213,219,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-300:disabled{color:#d1d5db;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-400{color:#9ca3af;border-color:#9ca3af}body[data-netbox-color-mode=dark] .btn-outline-gray-400:hover{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-400,body[data-netbox-color-mode=dark] .btn-outline-gray-400:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-400,body[data-netbox-color-mode=dark] .btn-outline-gray-400.active,body[data-netbox-color-mode=dark] .btn-outline-gray-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-400:active{color:#000;background-color:#9ca3af;border-color:#9ca3af}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-400:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-400:active:focus{box-shadow:0 0 0 .25rem rgba(156,163,175,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-400:disabled{color:#9ca3af;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-500{color:#6b7280;border-color:#6b7280}body[data-netbox-color-mode=dark] .btn-outline-gray-500:hover{color:#fff;background-color:#6b7280;border-color:#6b7280}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-500,body[data-netbox-color-mode=dark] .btn-outline-gray-500:focus{box-shadow:0 0 0 .25rem rgba(107,114,128,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-500,body[data-netbox-color-mode=dark] .btn-outline-gray-500.active,body[data-netbox-color-mode=dark] .btn-outline-gray-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-500:active{color:#fff;background-color:#6b7280;border-color:#6b7280}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-500:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-500:active:focus{box-shadow:0 0 0 .25rem rgba(107,114,128,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-500:disabled{color:#6b7280;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-600{color:#4b5563;border-color:#4b5563}body[data-netbox-color-mode=dark] .btn-outline-gray-600:hover{color:#fff;background-color:#4b5563;border-color:#4b5563}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-600,body[data-netbox-color-mode=dark] .btn-outline-gray-600:focus{box-shadow:0 0 0 .25rem rgba(75,85,99,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-600,body[data-netbox-color-mode=dark] .btn-outline-gray-600.active,body[data-netbox-color-mode=dark] .btn-outline-gray-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-600:active{color:#fff;background-color:#4b5563;border-color:#4b5563}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-600:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-600:active:focus{box-shadow:0 0 0 .25rem rgba(75,85,99,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-600:disabled{color:#4b5563;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-700{color:#374151;border-color:#374151}body[data-netbox-color-mode=dark] .btn-outline-gray-700:hover{color:#fff;background-color:#374151;border-color:#374151}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-700,body[data-netbox-color-mode=dark] .btn-outline-gray-700:focus{box-shadow:0 0 0 .25rem rgba(55,65,81,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-700,body[data-netbox-color-mode=dark] .btn-outline-gray-700.active,body[data-netbox-color-mode=dark] .btn-outline-gray-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-700:active{color:#fff;background-color:#374151;border-color:#374151}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-700:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-700:active:focus{box-shadow:0 0 0 .25rem rgba(55,65,81,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-700:disabled{color:#374151;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-800{color:#1f2937;border-color:#1f2937}body[data-netbox-color-mode=dark] .btn-outline-gray-800:hover{color:#fff;background-color:#1f2937;border-color:#1f2937}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-800,body[data-netbox-color-mode=dark] .btn-outline-gray-800:focus{box-shadow:0 0 0 .25rem rgba(31,41,55,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-800,body[data-netbox-color-mode=dark] .btn-outline-gray-800.active,body[data-netbox-color-mode=dark] .btn-outline-gray-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-800:active{color:#fff;background-color:#1f2937;border-color:#1f2937}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-800:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-800:active:focus{box-shadow:0 0 0 .25rem rgba(31,41,55,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-800:disabled{color:#1f2937;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-gray-900{color:#111827;border-color:#111827}body[data-netbox-color-mode=dark] .btn-outline-gray-900:hover{color:#fff;background-color:#111827;border-color:#111827}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-gray-900,body[data-netbox-color-mode=dark] .btn-outline-gray-900:focus{box-shadow:0 0 0 .25rem rgba(17,24,39,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-900,body[data-netbox-color-mode=dark] .btn-outline-gray-900.active,body[data-netbox-color-mode=dark] .btn-outline-gray-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-gray-900:active{color:#fff;background-color:#111827;border-color:#111827}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-gray-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-gray-900:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-gray-900:active:focus{box-shadow:0 0 0 .25rem rgba(17,24,39,.5)}body[data-netbox-color-mode=dark] .btn-outline-gray-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-gray-900:disabled{color:#111827;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-50{color:#fef2f2;border-color:#fef2f2}body[data-netbox-color-mode=dark] .btn-outline-red-50:hover{color:#000;background-color:#fef2f2;border-color:#fef2f2}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-50,body[data-netbox-color-mode=dark] .btn-outline-red-50:focus{box-shadow:0 0 0 .25rem rgba(254,242,242,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-50,body[data-netbox-color-mode=dark] .btn-outline-red-50.active,body[data-netbox-color-mode=dark] .btn-outline-red-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-50:active{color:#000;background-color:#fef2f2;border-color:#fef2f2}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-50:focus,body[data-netbox-color-mode=dark] .btn-outline-red-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-50:active:focus{box-shadow:0 0 0 .25rem rgba(254,242,242,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-50:disabled{color:#fef2f2;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-100{color:#fee2e2;border-color:#fee2e2}body[data-netbox-color-mode=dark] .btn-outline-red-100:hover{color:#000;background-color:#fee2e2;border-color:#fee2e2}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-100,body[data-netbox-color-mode=dark] .btn-outline-red-100:focus{box-shadow:0 0 0 .25rem rgba(254,226,226,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-100,body[data-netbox-color-mode=dark] .btn-outline-red-100.active,body[data-netbox-color-mode=dark] .btn-outline-red-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-100:active{color:#000;background-color:#fee2e2;border-color:#fee2e2}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-100:focus,body[data-netbox-color-mode=dark] .btn-outline-red-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-100:active:focus{box-shadow:0 0 0 .25rem rgba(254,226,226,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-100:disabled{color:#fee2e2;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-200{color:#fecaca;border-color:#fecaca}body[data-netbox-color-mode=dark] .btn-outline-red-200:hover{color:#000;background-color:#fecaca;border-color:#fecaca}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-200,body[data-netbox-color-mode=dark] .btn-outline-red-200:focus{box-shadow:0 0 0 .25rem rgba(254,202,202,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-200,body[data-netbox-color-mode=dark] .btn-outline-red-200.active,body[data-netbox-color-mode=dark] .btn-outline-red-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-200:active{color:#000;background-color:#fecaca;border-color:#fecaca}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-200:focus,body[data-netbox-color-mode=dark] .btn-outline-red-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-200:active:focus{box-shadow:0 0 0 .25rem rgba(254,202,202,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-200:disabled{color:#fecaca;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-300{color:#fca5a5;border-color:#fca5a5}body[data-netbox-color-mode=dark] .btn-outline-red-300:hover{color:#000;background-color:#fca5a5;border-color:#fca5a5}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-300,body[data-netbox-color-mode=dark] .btn-outline-red-300:focus{box-shadow:0 0 0 .25rem rgba(252,165,165,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-300,body[data-netbox-color-mode=dark] .btn-outline-red-300.active,body[data-netbox-color-mode=dark] .btn-outline-red-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-300:active{color:#000;background-color:#fca5a5;border-color:#fca5a5}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-300:focus,body[data-netbox-color-mode=dark] .btn-outline-red-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-300:active:focus{box-shadow:0 0 0 .25rem rgba(252,165,165,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-300:disabled{color:#fca5a5;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-400{color:#f87171;border-color:#f87171}body[data-netbox-color-mode=dark] .btn-outline-red-400:hover{color:#000;background-color:#f87171;border-color:#f87171}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-400,body[data-netbox-color-mode=dark] .btn-outline-red-400:focus{box-shadow:0 0 0 .25rem rgba(248,113,113,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-400,body[data-netbox-color-mode=dark] .btn-outline-red-400.active,body[data-netbox-color-mode=dark] .btn-outline-red-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-400:active{color:#000;background-color:#f87171;border-color:#f87171}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-400:focus,body[data-netbox-color-mode=dark] .btn-outline-red-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-400:active:focus{box-shadow:0 0 0 .25rem rgba(248,113,113,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-400:disabled{color:#f87171;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-500{color:#ef4444;border-color:#ef4444}body[data-netbox-color-mode=dark] .btn-outline-red-500:hover{color:#000;background-color:#ef4444;border-color:#ef4444}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-500,body[data-netbox-color-mode=dark] .btn-outline-red-500:focus{box-shadow:0 0 0 .25rem rgba(239,68,68,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-500,body[data-netbox-color-mode=dark] .btn-outline-red-500.active,body[data-netbox-color-mode=dark] .btn-outline-red-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-500:active{color:#000;background-color:#ef4444;border-color:#ef4444}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-500:focus,body[data-netbox-color-mode=dark] .btn-outline-red-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-500:active:focus{box-shadow:0 0 0 .25rem rgba(239,68,68,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-500:disabled{color:#ef4444;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-600{color:#dc2626;border-color:#dc2626}body[data-netbox-color-mode=dark] .btn-outline-red-600:hover{color:#fff;background-color:#dc2626;border-color:#dc2626}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-600,body[data-netbox-color-mode=dark] .btn-outline-red-600:focus{box-shadow:0 0 0 .25rem rgba(220,38,38,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-600,body[data-netbox-color-mode=dark] .btn-outline-red-600.active,body[data-netbox-color-mode=dark] .btn-outline-red-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-600:active{color:#fff;background-color:#dc2626;border-color:#dc2626}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-600:focus,body[data-netbox-color-mode=dark] .btn-outline-red-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-600:active:focus{box-shadow:0 0 0 .25rem rgba(220,38,38,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-600:disabled{color:#dc2626;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-700{color:#b91c1c;border-color:#b91c1c}body[data-netbox-color-mode=dark] .btn-outline-red-700:hover{color:#fff;background-color:#b91c1c;border-color:#b91c1c}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-700,body[data-netbox-color-mode=dark] .btn-outline-red-700:focus{box-shadow:0 0 0 .25rem rgba(185,28,28,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-700,body[data-netbox-color-mode=dark] .btn-outline-red-700.active,body[data-netbox-color-mode=dark] .btn-outline-red-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-700:active{color:#fff;background-color:#b91c1c;border-color:#b91c1c}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-700:focus,body[data-netbox-color-mode=dark] .btn-outline-red-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-700:active:focus{box-shadow:0 0 0 .25rem rgba(185,28,28,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-700:disabled{color:#b91c1c;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-800{color:#991b1b;border-color:#991b1b}body[data-netbox-color-mode=dark] .btn-outline-red-800:hover{color:#fff;background-color:#991b1b;border-color:#991b1b}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-800,body[data-netbox-color-mode=dark] .btn-outline-red-800:focus{box-shadow:0 0 0 .25rem rgba(153,27,27,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-800,body[data-netbox-color-mode=dark] .btn-outline-red-800.active,body[data-netbox-color-mode=dark] .btn-outline-red-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-800:active{color:#fff;background-color:#991b1b;border-color:#991b1b}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-800:focus,body[data-netbox-color-mode=dark] .btn-outline-red-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-800:active:focus{box-shadow:0 0 0 .25rem rgba(153,27,27,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-800:disabled{color:#991b1b;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-red-900{color:#7f1d1d;border-color:#7f1d1d}body[data-netbox-color-mode=dark] .btn-outline-red-900:hover{color:#fff;background-color:#7f1d1d;border-color:#7f1d1d}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-red-900,body[data-netbox-color-mode=dark] .btn-outline-red-900:focus{box-shadow:0 0 0 .25rem rgba(127,29,29,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-900,body[data-netbox-color-mode=dark] .btn-outline-red-900.active,body[data-netbox-color-mode=dark] .btn-outline-red-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-red-900:active{color:#fff;background-color:#7f1d1d;border-color:#7f1d1d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-red-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-red-900:focus,body[data-netbox-color-mode=dark] .btn-outline-red-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-red-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-red-900:active:focus{box-shadow:0 0 0 .25rem rgba(127,29,29,.5)}body[data-netbox-color-mode=dark] .btn-outline-red-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-red-900:disabled{color:#7f1d1d;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-50{color:#fffbeb;border-color:#fffbeb}body[data-netbox-color-mode=dark] .btn-outline-yellow-50:hover{color:#000;background-color:#fffbeb;border-color:#fffbeb}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-50,body[data-netbox-color-mode=dark] .btn-outline-yellow-50:focus{box-shadow:0 0 0 .25rem rgba(255,251,235,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-50,body[data-netbox-color-mode=dark] .btn-outline-yellow-50.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-50:active{color:#000;background-color:#fffbeb;border-color:#fffbeb}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-50:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-50:active:focus{box-shadow:0 0 0 .25rem rgba(255,251,235,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-50:disabled{color:#fffbeb;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-100{color:#fef3c7;border-color:#fef3c7}body[data-netbox-color-mode=dark] .btn-outline-yellow-100:hover{color:#000;background-color:#fef3c7;border-color:#fef3c7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-100,body[data-netbox-color-mode=dark] .btn-outline-yellow-100:focus{box-shadow:0 0 0 .25rem rgba(254,243,199,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-100,body[data-netbox-color-mode=dark] .btn-outline-yellow-100.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-100:active{color:#000;background-color:#fef3c7;border-color:#fef3c7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-100:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-100:active:focus{box-shadow:0 0 0 .25rem rgba(254,243,199,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-100:disabled{color:#fef3c7;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-200{color:#fde68a;border-color:#fde68a}body[data-netbox-color-mode=dark] .btn-outline-yellow-200:hover{color:#000;background-color:#fde68a;border-color:#fde68a}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-200,body[data-netbox-color-mode=dark] .btn-outline-yellow-200:focus{box-shadow:0 0 0 .25rem rgba(253,230,138,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-200,body[data-netbox-color-mode=dark] .btn-outline-yellow-200.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-200:active{color:#000;background-color:#fde68a;border-color:#fde68a}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-200:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-200:active:focus{box-shadow:0 0 0 .25rem rgba(253,230,138,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-200:disabled{color:#fde68a;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-300{color:#fcd34d;border-color:#fcd34d}body[data-netbox-color-mode=dark] .btn-outline-yellow-300:hover{color:#000;background-color:#fcd34d;border-color:#fcd34d}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-300,body[data-netbox-color-mode=dark] .btn-outline-yellow-300:focus{box-shadow:0 0 0 .25rem rgba(252,211,77,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-300,body[data-netbox-color-mode=dark] .btn-outline-yellow-300.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-300:active{color:#000;background-color:#fcd34d;border-color:#fcd34d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-300:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-300:active:focus{box-shadow:0 0 0 .25rem rgba(252,211,77,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-300:disabled{color:#fcd34d;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-400{color:#fbbf24;border-color:#fbbf24}body[data-netbox-color-mode=dark] .btn-outline-yellow-400:hover{color:#000;background-color:#fbbf24;border-color:#fbbf24}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-400,body[data-netbox-color-mode=dark] .btn-outline-yellow-400:focus{box-shadow:0 0 0 .25rem rgba(251,191,36,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-400,body[data-netbox-color-mode=dark] .btn-outline-yellow-400.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-400:active{color:#000;background-color:#fbbf24;border-color:#fbbf24}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-400:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-400:active:focus{box-shadow:0 0 0 .25rem rgba(251,191,36,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-400:disabled{color:#fbbf24;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-500{color:#f59e0b;border-color:#f59e0b}body[data-netbox-color-mode=dark] .btn-outline-yellow-500:hover{color:#000;background-color:#f59e0b;border-color:#f59e0b}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-500,body[data-netbox-color-mode=dark] .btn-outline-yellow-500:focus{box-shadow:0 0 0 .25rem rgba(245,158,11,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-500,body[data-netbox-color-mode=dark] .btn-outline-yellow-500.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-500:active{color:#000;background-color:#f59e0b;border-color:#f59e0b}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-500:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-500:active:focus{box-shadow:0 0 0 .25rem rgba(245,158,11,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-500:disabled{color:#f59e0b;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-600{color:#d97706;border-color:#d97706}body[data-netbox-color-mode=dark] .btn-outline-yellow-600:hover{color:#000;background-color:#d97706;border-color:#d97706}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-600,body[data-netbox-color-mode=dark] .btn-outline-yellow-600:focus{box-shadow:0 0 0 .25rem rgba(217,119,6,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-600,body[data-netbox-color-mode=dark] .btn-outline-yellow-600.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-600:active{color:#000;background-color:#d97706;border-color:#d97706}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-600:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-600:active:focus{box-shadow:0 0 0 .25rem rgba(217,119,6,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-600:disabled{color:#d97706;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-700{color:#b45309;border-color:#b45309}body[data-netbox-color-mode=dark] .btn-outline-yellow-700:hover{color:#fff;background-color:#b45309;border-color:#b45309}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-700,body[data-netbox-color-mode=dark] .btn-outline-yellow-700:focus{box-shadow:0 0 0 .25rem rgba(180,83,9,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-700,body[data-netbox-color-mode=dark] .btn-outline-yellow-700.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-700:active{color:#fff;background-color:#b45309;border-color:#b45309}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-700:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-700:active:focus{box-shadow:0 0 0 .25rem rgba(180,83,9,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-700:disabled{color:#b45309;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-800{color:#92400e;border-color:#92400e}body[data-netbox-color-mode=dark] .btn-outline-yellow-800:hover{color:#fff;background-color:#92400e;border-color:#92400e}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-800,body[data-netbox-color-mode=dark] .btn-outline-yellow-800:focus{box-shadow:0 0 0 .25rem rgba(146,64,14,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-800,body[data-netbox-color-mode=dark] .btn-outline-yellow-800.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-800:active{color:#fff;background-color:#92400e;border-color:#92400e}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-800:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-800:active:focus{box-shadow:0 0 0 .25rem rgba(146,64,14,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-800:disabled{color:#92400e;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-yellow-900{color:#78350f;border-color:#78350f}body[data-netbox-color-mode=dark] .btn-outline-yellow-900:hover{color:#fff;background-color:#78350f;border-color:#78350f}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-yellow-900,body[data-netbox-color-mode=dark] .btn-outline-yellow-900:focus{box-shadow:0 0 0 .25rem rgba(120,53,15,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-900,body[data-netbox-color-mode=dark] .btn-outline-yellow-900.active,body[data-netbox-color-mode=dark] .btn-outline-yellow-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-yellow-900:active{color:#fff;background-color:#78350f;border-color:#78350f}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-yellow-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-yellow-900:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-yellow-900:active:focus{box-shadow:0 0 0 .25rem rgba(120,53,15,.5)}body[data-netbox-color-mode=dark] .btn-outline-yellow-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-yellow-900:disabled{color:#78350f;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-50{color:#ecfdf5;border-color:#ecfdf5}body[data-netbox-color-mode=dark] .btn-outline-green-50:hover{color:#000;background-color:#ecfdf5;border-color:#ecfdf5}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-50,body[data-netbox-color-mode=dark] .btn-outline-green-50:focus{box-shadow:0 0 0 .25rem rgba(236,253,245,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-50,body[data-netbox-color-mode=dark] .btn-outline-green-50.active,body[data-netbox-color-mode=dark] .btn-outline-green-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-50:active{color:#000;background-color:#ecfdf5;border-color:#ecfdf5}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-50:focus,body[data-netbox-color-mode=dark] .btn-outline-green-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-50:active:focus{box-shadow:0 0 0 .25rem rgba(236,253,245,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-50:disabled{color:#ecfdf5;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-100{color:#d1fae5;border-color:#d1fae5}body[data-netbox-color-mode=dark] .btn-outline-green-100:hover{color:#000;background-color:#d1fae5;border-color:#d1fae5}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-100,body[data-netbox-color-mode=dark] .btn-outline-green-100:focus{box-shadow:0 0 0 .25rem rgba(209,250,229,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-100,body[data-netbox-color-mode=dark] .btn-outline-green-100.active,body[data-netbox-color-mode=dark] .btn-outline-green-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-100:active{color:#000;background-color:#d1fae5;border-color:#d1fae5}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-100:focus,body[data-netbox-color-mode=dark] .btn-outline-green-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-100:active:focus{box-shadow:0 0 0 .25rem rgba(209,250,229,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-100:disabled{color:#d1fae5;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-200{color:#a7f3d0;border-color:#a7f3d0}body[data-netbox-color-mode=dark] .btn-outline-green-200:hover{color:#000;background-color:#a7f3d0;border-color:#a7f3d0}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-200,body[data-netbox-color-mode=dark] .btn-outline-green-200:focus{box-shadow:0 0 0 .25rem rgba(167,243,208,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-200,body[data-netbox-color-mode=dark] .btn-outline-green-200.active,body[data-netbox-color-mode=dark] .btn-outline-green-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-200:active{color:#000;background-color:#a7f3d0;border-color:#a7f3d0}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-200:focus,body[data-netbox-color-mode=dark] .btn-outline-green-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-200:active:focus{box-shadow:0 0 0 .25rem rgba(167,243,208,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-200:disabled{color:#a7f3d0;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-300{color:#6ee7b7;border-color:#6ee7b7}body[data-netbox-color-mode=dark] .btn-outline-green-300:hover{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-300,body[data-netbox-color-mode=dark] .btn-outline-green-300:focus{box-shadow:0 0 0 .25rem rgba(110,231,183,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-300,body[data-netbox-color-mode=dark] .btn-outline-green-300.active,body[data-netbox-color-mode=dark] .btn-outline-green-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-300:active{color:#000;background-color:#6ee7b7;border-color:#6ee7b7}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-300:focus,body[data-netbox-color-mode=dark] .btn-outline-green-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-300:active:focus{box-shadow:0 0 0 .25rem rgba(110,231,183,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-300:disabled{color:#6ee7b7;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-400{color:#34d399;border-color:#34d399}body[data-netbox-color-mode=dark] .btn-outline-green-400:hover{color:#000;background-color:#34d399;border-color:#34d399}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-400,body[data-netbox-color-mode=dark] .btn-outline-green-400:focus{box-shadow:0 0 0 .25rem rgba(52,211,153,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-400,body[data-netbox-color-mode=dark] .btn-outline-green-400.active,body[data-netbox-color-mode=dark] .btn-outline-green-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-400:active{color:#000;background-color:#34d399;border-color:#34d399}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-400:focus,body[data-netbox-color-mode=dark] .btn-outline-green-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-400:active:focus{box-shadow:0 0 0 .25rem rgba(52,211,153,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-400:disabled{color:#34d399;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-500{color:#10b981;border-color:#10b981}body[data-netbox-color-mode=dark] .btn-outline-green-500:hover{color:#000;background-color:#10b981;border-color:#10b981}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-500,body[data-netbox-color-mode=dark] .btn-outline-green-500:focus{box-shadow:0 0 0 .25rem rgba(16,185,129,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-500,body[data-netbox-color-mode=dark] .btn-outline-green-500.active,body[data-netbox-color-mode=dark] .btn-outline-green-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-500:active{color:#000;background-color:#10b981;border-color:#10b981}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-500:focus,body[data-netbox-color-mode=dark] .btn-outline-green-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-500:active:focus{box-shadow:0 0 0 .25rem rgba(16,185,129,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-500:disabled{color:#10b981;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-600{color:#059669;border-color:#059669}body[data-netbox-color-mode=dark] .btn-outline-green-600:hover{color:#000;background-color:#059669;border-color:#059669}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-600,body[data-netbox-color-mode=dark] .btn-outline-green-600:focus{box-shadow:0 0 0 .25rem rgba(5,150,105,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-600,body[data-netbox-color-mode=dark] .btn-outline-green-600.active,body[data-netbox-color-mode=dark] .btn-outline-green-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-600:active{color:#000;background-color:#059669;border-color:#059669}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-600:focus,body[data-netbox-color-mode=dark] .btn-outline-green-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-600:active:focus{box-shadow:0 0 0 .25rem rgba(5,150,105,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-600:disabled{color:#059669;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-700{color:#047857;border-color:#047857}body[data-netbox-color-mode=dark] .btn-outline-green-700:hover{color:#fff;background-color:#047857;border-color:#047857}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-700,body[data-netbox-color-mode=dark] .btn-outline-green-700:focus{box-shadow:0 0 0 .25rem rgba(4,120,87,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-700,body[data-netbox-color-mode=dark] .btn-outline-green-700.active,body[data-netbox-color-mode=dark] .btn-outline-green-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-700:active{color:#fff;background-color:#047857;border-color:#047857}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-700:focus,body[data-netbox-color-mode=dark] .btn-outline-green-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-700:active:focus{box-shadow:0 0 0 .25rem rgba(4,120,87,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-700:disabled{color:#047857;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-800{color:#065f46;border-color:#065f46}body[data-netbox-color-mode=dark] .btn-outline-green-800:hover{color:#fff;background-color:#065f46;border-color:#065f46}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-800,body[data-netbox-color-mode=dark] .btn-outline-green-800:focus{box-shadow:0 0 0 .25rem rgba(6,95,70,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-800,body[data-netbox-color-mode=dark] .btn-outline-green-800.active,body[data-netbox-color-mode=dark] .btn-outline-green-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-800:active{color:#fff;background-color:#065f46;border-color:#065f46}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-800:focus,body[data-netbox-color-mode=dark] .btn-outline-green-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-800:active:focus{box-shadow:0 0 0 .25rem rgba(6,95,70,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-800:disabled{color:#065f46;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-green-900{color:#064e3b;border-color:#064e3b}body[data-netbox-color-mode=dark] .btn-outline-green-900:hover{color:#fff;background-color:#064e3b;border-color:#064e3b}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-green-900,body[data-netbox-color-mode=dark] .btn-outline-green-900:focus{box-shadow:0 0 0 .25rem rgba(6,78,59,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-900,body[data-netbox-color-mode=dark] .btn-outline-green-900.active,body[data-netbox-color-mode=dark] .btn-outline-green-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-green-900:active{color:#fff;background-color:#064e3b;border-color:#064e3b}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-green-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-green-900:focus,body[data-netbox-color-mode=dark] .btn-outline-green-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-green-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-green-900:active:focus{box-shadow:0 0 0 .25rem rgba(6,78,59,.5)}body[data-netbox-color-mode=dark] .btn-outline-green-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-green-900:disabled{color:#064e3b;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-50{color:#eff6ff;border-color:#eff6ff}body[data-netbox-color-mode=dark] .btn-outline-blue-50:hover{color:#000;background-color:#eff6ff;border-color:#eff6ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-50,body[data-netbox-color-mode=dark] .btn-outline-blue-50:focus{box-shadow:0 0 0 .25rem rgba(239,246,255,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-50,body[data-netbox-color-mode=dark] .btn-outline-blue-50.active,body[data-netbox-color-mode=dark] .btn-outline-blue-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-50:active{color:#000;background-color:#eff6ff;border-color:#eff6ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-50:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-50:active:focus{box-shadow:0 0 0 .25rem rgba(239,246,255,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-50:disabled{color:#eff6ff;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-100{color:#dbeafe;border-color:#dbeafe}body[data-netbox-color-mode=dark] .btn-outline-blue-100:hover{color:#000;background-color:#dbeafe;border-color:#dbeafe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-100,body[data-netbox-color-mode=dark] .btn-outline-blue-100:focus{box-shadow:0 0 0 .25rem rgba(219,234,254,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-100,body[data-netbox-color-mode=dark] .btn-outline-blue-100.active,body[data-netbox-color-mode=dark] .btn-outline-blue-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-100:active{color:#000;background-color:#dbeafe;border-color:#dbeafe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-100:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-100:active:focus{box-shadow:0 0 0 .25rem rgba(219,234,254,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-100:disabled{color:#dbeafe;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-200{color:#bfdbfe;border-color:#bfdbfe}body[data-netbox-color-mode=dark] .btn-outline-blue-200:hover{color:#000;background-color:#bfdbfe;border-color:#bfdbfe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-200,body[data-netbox-color-mode=dark] .btn-outline-blue-200:focus{box-shadow:0 0 0 .25rem rgba(191,219,254,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-200,body[data-netbox-color-mode=dark] .btn-outline-blue-200.active,body[data-netbox-color-mode=dark] .btn-outline-blue-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-200:active{color:#000;background-color:#bfdbfe;border-color:#bfdbfe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-200:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-200:active:focus{box-shadow:0 0 0 .25rem rgba(191,219,254,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-200:disabled{color:#bfdbfe;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-300{color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .btn-outline-blue-300:hover{color:#000;background-color:#93c5fd;border-color:#93c5fd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-300,body[data-netbox-color-mode=dark] .btn-outline-blue-300:focus{box-shadow:0 0 0 .25rem rgba(147,197,253,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-300,body[data-netbox-color-mode=dark] .btn-outline-blue-300.active,body[data-netbox-color-mode=dark] .btn-outline-blue-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-300:active{color:#000;background-color:#93c5fd;border-color:#93c5fd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-300:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-300:active:focus{box-shadow:0 0 0 .25rem rgba(147,197,253,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-300:disabled{color:#93c5fd;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-400{color:#60a5fa;border-color:#60a5fa}body[data-netbox-color-mode=dark] .btn-outline-blue-400:hover{color:#000;background-color:#60a5fa;border-color:#60a5fa}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-400,body[data-netbox-color-mode=dark] .btn-outline-blue-400:focus{box-shadow:0 0 0 .25rem rgba(96,165,250,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-400,body[data-netbox-color-mode=dark] .btn-outline-blue-400.active,body[data-netbox-color-mode=dark] .btn-outline-blue-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-400:active{color:#000;background-color:#60a5fa;border-color:#60a5fa}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-400:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-400:active:focus{box-shadow:0 0 0 .25rem rgba(96,165,250,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-400:disabled{color:#60a5fa;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-500{color:#3b82f6;border-color:#3b82f6}body[data-netbox-color-mode=dark] .btn-outline-blue-500:hover{color:#000;background-color:#3b82f6;border-color:#3b82f6}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-500,body[data-netbox-color-mode=dark] .btn-outline-blue-500:focus{box-shadow:0 0 0 .25rem rgba(59,130,246,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-500,body[data-netbox-color-mode=dark] .btn-outline-blue-500.active,body[data-netbox-color-mode=dark] .btn-outline-blue-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-500:active{color:#000;background-color:#3b82f6;border-color:#3b82f6}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-500:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-500:active:focus{box-shadow:0 0 0 .25rem rgba(59,130,246,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-500:disabled{color:#3b82f6;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-600{color:#2563eb;border-color:#2563eb}body[data-netbox-color-mode=dark] .btn-outline-blue-600:hover{color:#fff;background-color:#2563eb;border-color:#2563eb}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-600,body[data-netbox-color-mode=dark] .btn-outline-blue-600:focus{box-shadow:0 0 0 .25rem rgba(37,99,235,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-600,body[data-netbox-color-mode=dark] .btn-outline-blue-600.active,body[data-netbox-color-mode=dark] .btn-outline-blue-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-600:active{color:#fff;background-color:#2563eb;border-color:#2563eb}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-600:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-600:active:focus{box-shadow:0 0 0 .25rem rgba(37,99,235,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-600:disabled{color:#2563eb;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-700{color:#1d4ed8;border-color:#1d4ed8}body[data-netbox-color-mode=dark] .btn-outline-blue-700:hover{color:#fff;background-color:#1d4ed8;border-color:#1d4ed8}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-700,body[data-netbox-color-mode=dark] .btn-outline-blue-700:focus{box-shadow:0 0 0 .25rem rgba(29,78,216,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-700,body[data-netbox-color-mode=dark] .btn-outline-blue-700.active,body[data-netbox-color-mode=dark] .btn-outline-blue-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-700:active{color:#fff;background-color:#1d4ed8;border-color:#1d4ed8}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-700:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-700:active:focus{box-shadow:0 0 0 .25rem rgba(29,78,216,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-700:disabled{color:#1d4ed8;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-800{color:#1e40af;border-color:#1e40af}body[data-netbox-color-mode=dark] .btn-outline-blue-800:hover{color:#fff;background-color:#1e40af;border-color:#1e40af}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-800,body[data-netbox-color-mode=dark] .btn-outline-blue-800:focus{box-shadow:0 0 0 .25rem rgba(30,64,175,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-800,body[data-netbox-color-mode=dark] .btn-outline-blue-800.active,body[data-netbox-color-mode=dark] .btn-outline-blue-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-800:active{color:#fff;background-color:#1e40af;border-color:#1e40af}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-800:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-800:active:focus{box-shadow:0 0 0 .25rem rgba(30,64,175,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-800:disabled{color:#1e40af;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-blue-900{color:#1e3a8a;border-color:#1e3a8a}body[data-netbox-color-mode=dark] .btn-outline-blue-900:hover{color:#fff;background-color:#1e3a8a;border-color:#1e3a8a}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-blue-900,body[data-netbox-color-mode=dark] .btn-outline-blue-900:focus{box-shadow:0 0 0 .25rem rgba(30,58,138,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-900,body[data-netbox-color-mode=dark] .btn-outline-blue-900.active,body[data-netbox-color-mode=dark] .btn-outline-blue-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-blue-900:active{color:#fff;background-color:#1e3a8a;border-color:#1e3a8a}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-blue-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-blue-900:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-blue-900:active:focus{box-shadow:0 0 0 .25rem rgba(30,58,138,.5)}body[data-netbox-color-mode=dark] .btn-outline-blue-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-blue-900:disabled{color:#1e3a8a;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-50{color:#ecfeff;border-color:#ecfeff}body[data-netbox-color-mode=dark] .btn-outline-cyan-50:hover{color:#000;background-color:#ecfeff;border-color:#ecfeff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-50,body[data-netbox-color-mode=dark] .btn-outline-cyan-50:focus{box-shadow:0 0 0 .25rem rgba(236,254,255,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-50,body[data-netbox-color-mode=dark] .btn-outline-cyan-50.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-50:active{color:#000;background-color:#ecfeff;border-color:#ecfeff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-50:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-50:active:focus{box-shadow:0 0 0 .25rem rgba(236,254,255,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-50:disabled{color:#ecfeff;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-100{color:#cffafe;border-color:#cffafe}body[data-netbox-color-mode=dark] .btn-outline-cyan-100:hover{color:#000;background-color:#cffafe;border-color:#cffafe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-100,body[data-netbox-color-mode=dark] .btn-outline-cyan-100:focus{box-shadow:0 0 0 .25rem rgba(207,250,254,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-100,body[data-netbox-color-mode=dark] .btn-outline-cyan-100.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-100:active{color:#000;background-color:#cffafe;border-color:#cffafe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-100:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-100:active:focus{box-shadow:0 0 0 .25rem rgba(207,250,254,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-100:disabled{color:#cffafe;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-200{color:#a5f3fc;border-color:#a5f3fc}body[data-netbox-color-mode=dark] .btn-outline-cyan-200:hover{color:#000;background-color:#a5f3fc;border-color:#a5f3fc}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-200,body[data-netbox-color-mode=dark] .btn-outline-cyan-200:focus{box-shadow:0 0 0 .25rem rgba(165,243,252,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-200,body[data-netbox-color-mode=dark] .btn-outline-cyan-200.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-200:active{color:#000;background-color:#a5f3fc;border-color:#a5f3fc}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-200:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-200:active:focus{box-shadow:0 0 0 .25rem rgba(165,243,252,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-200:disabled{color:#a5f3fc;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-300{color:#67e8f9;border-color:#67e8f9}body[data-netbox-color-mode=dark] .btn-outline-cyan-300:hover{color:#000;background-color:#67e8f9;border-color:#67e8f9}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-300,body[data-netbox-color-mode=dark] .btn-outline-cyan-300:focus{box-shadow:0 0 0 .25rem rgba(103,232,249,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-300,body[data-netbox-color-mode=dark] .btn-outline-cyan-300.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-300:active{color:#000;background-color:#67e8f9;border-color:#67e8f9}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-300:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-300:active:focus{box-shadow:0 0 0 .25rem rgba(103,232,249,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-300:disabled{color:#67e8f9;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-400{color:#22d3ee;border-color:#22d3ee}body[data-netbox-color-mode=dark] .btn-outline-cyan-400:hover{color:#000;background-color:#22d3ee;border-color:#22d3ee}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-400,body[data-netbox-color-mode=dark] .btn-outline-cyan-400:focus{box-shadow:0 0 0 .25rem rgba(34,211,238,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-400,body[data-netbox-color-mode=dark] .btn-outline-cyan-400.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-400:active{color:#000;background-color:#22d3ee;border-color:#22d3ee}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-400:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-400:active:focus{box-shadow:0 0 0 .25rem rgba(34,211,238,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-400:disabled{color:#22d3ee;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-500{color:#06b6d4;border-color:#06b6d4}body[data-netbox-color-mode=dark] .btn-outline-cyan-500:hover{color:#000;background-color:#06b6d4;border-color:#06b6d4}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-500,body[data-netbox-color-mode=dark] .btn-outline-cyan-500:focus{box-shadow:0 0 0 .25rem rgba(6,182,212,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-500,body[data-netbox-color-mode=dark] .btn-outline-cyan-500.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-500:active{color:#000;background-color:#06b6d4;border-color:#06b6d4}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-500:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-500:active:focus{box-shadow:0 0 0 .25rem rgba(6,182,212,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-500:disabled{color:#06b6d4;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-600{color:#0891b2;border-color:#0891b2}body[data-netbox-color-mode=dark] .btn-outline-cyan-600:hover{color:#000;background-color:#0891b2;border-color:#0891b2}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-600,body[data-netbox-color-mode=dark] .btn-outline-cyan-600:focus{box-shadow:0 0 0 .25rem rgba(8,145,178,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-600,body[data-netbox-color-mode=dark] .btn-outline-cyan-600.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-600:active{color:#000;background-color:#0891b2;border-color:#0891b2}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-600:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-600:active:focus{box-shadow:0 0 0 .25rem rgba(8,145,178,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-600:disabled{color:#0891b2;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-700{color:#0e7490;border-color:#0e7490}body[data-netbox-color-mode=dark] .btn-outline-cyan-700:hover{color:#fff;background-color:#0e7490;border-color:#0e7490}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-700,body[data-netbox-color-mode=dark] .btn-outline-cyan-700:focus{box-shadow:0 0 0 .25rem rgba(14,116,144,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-700,body[data-netbox-color-mode=dark] .btn-outline-cyan-700.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-700:active{color:#fff;background-color:#0e7490;border-color:#0e7490}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-700:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-700:active:focus{box-shadow:0 0 0 .25rem rgba(14,116,144,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-700:disabled{color:#0e7490;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-800{color:#155e75;border-color:#155e75}body[data-netbox-color-mode=dark] .btn-outline-cyan-800:hover{color:#fff;background-color:#155e75;border-color:#155e75}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-800,body[data-netbox-color-mode=dark] .btn-outline-cyan-800:focus{box-shadow:0 0 0 .25rem rgba(21,94,117,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-800,body[data-netbox-color-mode=dark] .btn-outline-cyan-800.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-800:active{color:#fff;background-color:#155e75;border-color:#155e75}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-800:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-800:active:focus{box-shadow:0 0 0 .25rem rgba(21,94,117,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-800:disabled{color:#155e75;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-cyan-900{color:#164e63;border-color:#164e63}body[data-netbox-color-mode=dark] .btn-outline-cyan-900:hover{color:#fff;background-color:#164e63;border-color:#164e63}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-cyan-900,body[data-netbox-color-mode=dark] .btn-outline-cyan-900:focus{box-shadow:0 0 0 .25rem rgba(22,78,99,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-900,body[data-netbox-color-mode=dark] .btn-outline-cyan-900.active,body[data-netbox-color-mode=dark] .btn-outline-cyan-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-cyan-900:active{color:#fff;background-color:#164e63;border-color:#164e63}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-cyan-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-cyan-900:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-cyan-900:active:focus{box-shadow:0 0 0 .25rem rgba(22,78,99,.5)}body[data-netbox-color-mode=dark] .btn-outline-cyan-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-cyan-900:disabled{color:#164e63;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-50{color:#eef2ff;border-color:#eef2ff}body[data-netbox-color-mode=dark] .btn-outline-indigo-50:hover{color:#000;background-color:#eef2ff;border-color:#eef2ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-50,body[data-netbox-color-mode=dark] .btn-outline-indigo-50:focus{box-shadow:0 0 0 .25rem rgba(238,242,255,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-50,body[data-netbox-color-mode=dark] .btn-outline-indigo-50.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-50:active{color:#000;background-color:#eef2ff;border-color:#eef2ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-50:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-50:active:focus{box-shadow:0 0 0 .25rem rgba(238,242,255,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-50:disabled{color:#eef2ff;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-100{color:#e0e7ff;border-color:#e0e7ff}body[data-netbox-color-mode=dark] .btn-outline-indigo-100:hover{color:#000;background-color:#e0e7ff;border-color:#e0e7ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-100,body[data-netbox-color-mode=dark] .btn-outline-indigo-100:focus{box-shadow:0 0 0 .25rem rgba(224,231,255,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-100,body[data-netbox-color-mode=dark] .btn-outline-indigo-100.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-100:active{color:#000;background-color:#e0e7ff;border-color:#e0e7ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-100:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-100:active:focus{box-shadow:0 0 0 .25rem rgba(224,231,255,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-100:disabled{color:#e0e7ff;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-200{color:#c7d2fe;border-color:#c7d2fe}body[data-netbox-color-mode=dark] .btn-outline-indigo-200:hover{color:#000;background-color:#c7d2fe;border-color:#c7d2fe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-200,body[data-netbox-color-mode=dark] .btn-outline-indigo-200:focus{box-shadow:0 0 0 .25rem rgba(199,210,254,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-200,body[data-netbox-color-mode=dark] .btn-outline-indigo-200.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-200:active{color:#000;background-color:#c7d2fe;border-color:#c7d2fe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-200:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-200:active:focus{box-shadow:0 0 0 .25rem rgba(199,210,254,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-200:disabled{color:#c7d2fe;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-300{color:#a5b4fc;border-color:#a5b4fc}body[data-netbox-color-mode=dark] .btn-outline-indigo-300:hover{color:#000;background-color:#a5b4fc;border-color:#a5b4fc}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-300,body[data-netbox-color-mode=dark] .btn-outline-indigo-300:focus{box-shadow:0 0 0 .25rem rgba(165,180,252,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-300,body[data-netbox-color-mode=dark] .btn-outline-indigo-300.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-300:active{color:#000;background-color:#a5b4fc;border-color:#a5b4fc}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-300:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-300:active:focus{box-shadow:0 0 0 .25rem rgba(165,180,252,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-300:disabled{color:#a5b4fc;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-400{color:#818cf8;border-color:#818cf8}body[data-netbox-color-mode=dark] .btn-outline-indigo-400:hover{color:#000;background-color:#818cf8;border-color:#818cf8}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-400,body[data-netbox-color-mode=dark] .btn-outline-indigo-400:focus{box-shadow:0 0 0 .25rem rgba(129,140,248,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-400,body[data-netbox-color-mode=dark] .btn-outline-indigo-400.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-400:active{color:#000;background-color:#818cf8;border-color:#818cf8}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-400:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-400:active:focus{box-shadow:0 0 0 .25rem rgba(129,140,248,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-400:disabled{color:#818cf8;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-500{color:#6366f1;border-color:#6366f1}body[data-netbox-color-mode=dark] .btn-outline-indigo-500:hover{color:#000;background-color:#6366f1;border-color:#6366f1}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-500,body[data-netbox-color-mode=dark] .btn-outline-indigo-500:focus{box-shadow:0 0 0 .25rem rgba(99,102,241,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-500,body[data-netbox-color-mode=dark] .btn-outline-indigo-500.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-500:active{color:#000;background-color:#6366f1;border-color:#6366f1}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-500:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-500:active:focus{box-shadow:0 0 0 .25rem rgba(99,102,241,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-500:disabled{color:#6366f1;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-600{color:#4f46e5;border-color:#4f46e5}body[data-netbox-color-mode=dark] .btn-outline-indigo-600:hover{color:#fff;background-color:#4f46e5;border-color:#4f46e5}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-600,body[data-netbox-color-mode=dark] .btn-outline-indigo-600:focus{box-shadow:0 0 0 .25rem rgba(79,70,229,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-600,body[data-netbox-color-mode=dark] .btn-outline-indigo-600.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-600:active{color:#fff;background-color:#4f46e5;border-color:#4f46e5}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-600:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-600:active:focus{box-shadow:0 0 0 .25rem rgba(79,70,229,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-600:disabled{color:#4f46e5;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-700{color:#4338ca;border-color:#4338ca}body[data-netbox-color-mode=dark] .btn-outline-indigo-700:hover{color:#fff;background-color:#4338ca;border-color:#4338ca}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-700,body[data-netbox-color-mode=dark] .btn-outline-indigo-700:focus{box-shadow:0 0 0 .25rem rgba(67,56,202,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-700,body[data-netbox-color-mode=dark] .btn-outline-indigo-700.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-700:active{color:#fff;background-color:#4338ca;border-color:#4338ca}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-700:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-700:active:focus{box-shadow:0 0 0 .25rem rgba(67,56,202,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-700:disabled{color:#4338ca;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-800{color:#3730a3;border-color:#3730a3}body[data-netbox-color-mode=dark] .btn-outline-indigo-800:hover{color:#fff;background-color:#3730a3;border-color:#3730a3}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-800,body[data-netbox-color-mode=dark] .btn-outline-indigo-800:focus{box-shadow:0 0 0 .25rem rgba(55,48,163,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-800,body[data-netbox-color-mode=dark] .btn-outline-indigo-800.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-800:active{color:#fff;background-color:#3730a3;border-color:#3730a3}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-800:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-800:active:focus{box-shadow:0 0 0 .25rem rgba(55,48,163,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-800:disabled{color:#3730a3;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-indigo-900{color:#312e81;border-color:#312e81}body[data-netbox-color-mode=dark] .btn-outline-indigo-900:hover{color:#fff;background-color:#312e81;border-color:#312e81}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-indigo-900,body[data-netbox-color-mode=dark] .btn-outline-indigo-900:focus{box-shadow:0 0 0 .25rem rgba(49,46,129,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-900,body[data-netbox-color-mode=dark] .btn-outline-indigo-900.active,body[data-netbox-color-mode=dark] .btn-outline-indigo-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-indigo-900:active{color:#fff;background-color:#312e81;border-color:#312e81}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-indigo-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-indigo-900:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-indigo-900:active:focus{box-shadow:0 0 0 .25rem rgba(49,46,129,.5)}body[data-netbox-color-mode=dark] .btn-outline-indigo-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-indigo-900:disabled{color:#312e81;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-50{color:#f5f3ff;border-color:#f5f3ff}body[data-netbox-color-mode=dark] .btn-outline-purple-50:hover{color:#000;background-color:#f5f3ff;border-color:#f5f3ff}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-50,body[data-netbox-color-mode=dark] .btn-outline-purple-50:focus{box-shadow:0 0 0 .25rem rgba(245,243,255,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-50,body[data-netbox-color-mode=dark] .btn-outline-purple-50.active,body[data-netbox-color-mode=dark] .btn-outline-purple-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-50:active{color:#000;background-color:#f5f3ff;border-color:#f5f3ff}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-50:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-50:active:focus{box-shadow:0 0 0 .25rem rgba(245,243,255,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-50:disabled{color:#f5f3ff;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-100{color:#ede9fe;border-color:#ede9fe}body[data-netbox-color-mode=dark] .btn-outline-purple-100:hover{color:#000;background-color:#ede9fe;border-color:#ede9fe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-100,body[data-netbox-color-mode=dark] .btn-outline-purple-100:focus{box-shadow:0 0 0 .25rem rgba(237,233,254,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-100,body[data-netbox-color-mode=dark] .btn-outline-purple-100.active,body[data-netbox-color-mode=dark] .btn-outline-purple-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-100:active{color:#000;background-color:#ede9fe;border-color:#ede9fe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-100:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-100:active:focus{box-shadow:0 0 0 .25rem rgba(237,233,254,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-100:disabled{color:#ede9fe;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-200{color:#ddd6fe;border-color:#ddd6fe}body[data-netbox-color-mode=dark] .btn-outline-purple-200:hover{color:#000;background-color:#ddd6fe;border-color:#ddd6fe}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-200,body[data-netbox-color-mode=dark] .btn-outline-purple-200:focus{box-shadow:0 0 0 .25rem rgba(221,214,254,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-200,body[data-netbox-color-mode=dark] .btn-outline-purple-200.active,body[data-netbox-color-mode=dark] .btn-outline-purple-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-200:active{color:#000;background-color:#ddd6fe;border-color:#ddd6fe}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-200:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-200:active:focus{box-shadow:0 0 0 .25rem rgba(221,214,254,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-200:disabled{color:#ddd6fe;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-300{color:#c4b5fd;border-color:#c4b5fd}body[data-netbox-color-mode=dark] .btn-outline-purple-300:hover{color:#000;background-color:#c4b5fd;border-color:#c4b5fd}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-300,body[data-netbox-color-mode=dark] .btn-outline-purple-300:focus{box-shadow:0 0 0 .25rem rgba(196,181,253,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-300,body[data-netbox-color-mode=dark] .btn-outline-purple-300.active,body[data-netbox-color-mode=dark] .btn-outline-purple-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-300:active{color:#000;background-color:#c4b5fd;border-color:#c4b5fd}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-300:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-300:active:focus{box-shadow:0 0 0 .25rem rgba(196,181,253,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-300:disabled{color:#c4b5fd;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-400{color:#a78bfa;border-color:#a78bfa}body[data-netbox-color-mode=dark] .btn-outline-purple-400:hover{color:#000;background-color:#a78bfa;border-color:#a78bfa}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-400,body[data-netbox-color-mode=dark] .btn-outline-purple-400:focus{box-shadow:0 0 0 .25rem rgba(167,139,250,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-400,body[data-netbox-color-mode=dark] .btn-outline-purple-400.active,body[data-netbox-color-mode=dark] .btn-outline-purple-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-400:active{color:#000;background-color:#a78bfa;border-color:#a78bfa}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-400:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-400:active:focus{box-shadow:0 0 0 .25rem rgba(167,139,250,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-400:disabled{color:#a78bfa;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-500{color:#8b5cf6;border-color:#8b5cf6}body[data-netbox-color-mode=dark] .btn-outline-purple-500:hover{color:#000;background-color:#8b5cf6;border-color:#8b5cf6}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-500,body[data-netbox-color-mode=dark] .btn-outline-purple-500:focus{box-shadow:0 0 0 .25rem rgba(139,92,246,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-500,body[data-netbox-color-mode=dark] .btn-outline-purple-500.active,body[data-netbox-color-mode=dark] .btn-outline-purple-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-500:active{color:#000;background-color:#8b5cf6;border-color:#8b5cf6}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-500:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-500:active:focus{box-shadow:0 0 0 .25rem rgba(139,92,246,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-500:disabled{color:#8b5cf6;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-600{color:#7c3aed;border-color:#7c3aed}body[data-netbox-color-mode=dark] .btn-outline-purple-600:hover{color:#fff;background-color:#7c3aed;border-color:#7c3aed}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-600,body[data-netbox-color-mode=dark] .btn-outline-purple-600:focus{box-shadow:0 0 0 .25rem rgba(124,58,237,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-600,body[data-netbox-color-mode=dark] .btn-outline-purple-600.active,body[data-netbox-color-mode=dark] .btn-outline-purple-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-600:active{color:#fff;background-color:#7c3aed;border-color:#7c3aed}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-600:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-600:active:focus{box-shadow:0 0 0 .25rem rgba(124,58,237,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-600:disabled{color:#7c3aed;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-700{color:#6d28d9;border-color:#6d28d9}body[data-netbox-color-mode=dark] .btn-outline-purple-700:hover{color:#fff;background-color:#6d28d9;border-color:#6d28d9}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-700,body[data-netbox-color-mode=dark] .btn-outline-purple-700:focus{box-shadow:0 0 0 .25rem rgba(109,40,217,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-700,body[data-netbox-color-mode=dark] .btn-outline-purple-700.active,body[data-netbox-color-mode=dark] .btn-outline-purple-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-700:active{color:#fff;background-color:#6d28d9;border-color:#6d28d9}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-700:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-700:active:focus{box-shadow:0 0 0 .25rem rgba(109,40,217,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-700:disabled{color:#6d28d9;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-800{color:#5b21b6;border-color:#5b21b6}body[data-netbox-color-mode=dark] .btn-outline-purple-800:hover{color:#fff;background-color:#5b21b6;border-color:#5b21b6}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-800,body[data-netbox-color-mode=dark] .btn-outline-purple-800:focus{box-shadow:0 0 0 .25rem rgba(91,33,182,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-800,body[data-netbox-color-mode=dark] .btn-outline-purple-800.active,body[data-netbox-color-mode=dark] .btn-outline-purple-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-800:active{color:#fff;background-color:#5b21b6;border-color:#5b21b6}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-800:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-800:active:focus{box-shadow:0 0 0 .25rem rgba(91,33,182,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-800:disabled{color:#5b21b6;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-purple-900{color:#4c1d95;border-color:#4c1d95}body[data-netbox-color-mode=dark] .btn-outline-purple-900:hover{color:#fff;background-color:#4c1d95;border-color:#4c1d95}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-purple-900,body[data-netbox-color-mode=dark] .btn-outline-purple-900:focus{box-shadow:0 0 0 .25rem rgba(76,29,149,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-900,body[data-netbox-color-mode=dark] .btn-outline-purple-900.active,body[data-netbox-color-mode=dark] .btn-outline-purple-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-purple-900:active{color:#fff;background-color:#4c1d95;border-color:#4c1d95}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-purple-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-purple-900:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-purple-900:active:focus{box-shadow:0 0 0 .25rem rgba(76,29,149,.5)}body[data-netbox-color-mode=dark] .btn-outline-purple-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-purple-900:disabled{color:#4c1d95;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-50{color:#fdf2f8;border-color:#fdf2f8}body[data-netbox-color-mode=dark] .btn-outline-pink-50:hover{color:#000;background-color:#fdf2f8;border-color:#fdf2f8}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-50,body[data-netbox-color-mode=dark] .btn-outline-pink-50:focus{box-shadow:0 0 0 .25rem rgba(253,242,248,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-50,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-50,body[data-netbox-color-mode=dark] .btn-outline-pink-50.active,body[data-netbox-color-mode=dark] .btn-outline-pink-50.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-50:active{color:#000;background-color:#fdf2f8;border-color:#fdf2f8}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-50:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-50:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-50.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-50.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-50:active:focus{box-shadow:0 0 0 .25rem rgba(253,242,248,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-50.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-50:disabled{color:#fdf2f8;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-100{color:#fce7f3;border-color:#fce7f3}body[data-netbox-color-mode=dark] .btn-outline-pink-100:hover{color:#000;background-color:#fce7f3;border-color:#fce7f3}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-100,body[data-netbox-color-mode=dark] .btn-outline-pink-100:focus{box-shadow:0 0 0 .25rem rgba(252,231,243,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-100,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-100,body[data-netbox-color-mode=dark] .btn-outline-pink-100.active,body[data-netbox-color-mode=dark] .btn-outline-pink-100.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-100:active{color:#000;background-color:#fce7f3;border-color:#fce7f3}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-100:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-100:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-100.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-100.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-100:active:focus{box-shadow:0 0 0 .25rem rgba(252,231,243,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-100.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-100:disabled{color:#fce7f3;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-200{color:#fbcfe8;border-color:#fbcfe8}body[data-netbox-color-mode=dark] .btn-outline-pink-200:hover{color:#000;background-color:#fbcfe8;border-color:#fbcfe8}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-200,body[data-netbox-color-mode=dark] .btn-outline-pink-200:focus{box-shadow:0 0 0 .25rem rgba(251,207,232,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-200,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-200,body[data-netbox-color-mode=dark] .btn-outline-pink-200.active,body[data-netbox-color-mode=dark] .btn-outline-pink-200.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-200:active{color:#000;background-color:#fbcfe8;border-color:#fbcfe8}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-200:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-200:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-200.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-200.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-200:active:focus{box-shadow:0 0 0 .25rem rgba(251,207,232,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-200.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-200:disabled{color:#fbcfe8;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-300{color:#f9a8d4;border-color:#f9a8d4}body[data-netbox-color-mode=dark] .btn-outline-pink-300:hover{color:#000;background-color:#f9a8d4;border-color:#f9a8d4}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-300,body[data-netbox-color-mode=dark] .btn-outline-pink-300:focus{box-shadow:0 0 0 .25rem rgba(249,168,212,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-300,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-300,body[data-netbox-color-mode=dark] .btn-outline-pink-300.active,body[data-netbox-color-mode=dark] .btn-outline-pink-300.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-300:active{color:#000;background-color:#f9a8d4;border-color:#f9a8d4}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-300:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-300:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-300.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-300.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-300:active:focus{box-shadow:0 0 0 .25rem rgba(249,168,212,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-300.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-300:disabled{color:#f9a8d4;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-400{color:#f472b6;border-color:#f472b6}body[data-netbox-color-mode=dark] .btn-outline-pink-400:hover{color:#000;background-color:#f472b6;border-color:#f472b6}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-400,body[data-netbox-color-mode=dark] .btn-outline-pink-400:focus{box-shadow:0 0 0 .25rem rgba(244,114,182,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-400,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-400,body[data-netbox-color-mode=dark] .btn-outline-pink-400.active,body[data-netbox-color-mode=dark] .btn-outline-pink-400.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-400:active{color:#000;background-color:#f472b6;border-color:#f472b6}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-400:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-400:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-400.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-400.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-400:active:focus{box-shadow:0 0 0 .25rem rgba(244,114,182,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-400.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-400:disabled{color:#f472b6;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-500{color:#ec4899;border-color:#ec4899}body[data-netbox-color-mode=dark] .btn-outline-pink-500:hover{color:#000;background-color:#ec4899;border-color:#ec4899}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-500,body[data-netbox-color-mode=dark] .btn-outline-pink-500:focus{box-shadow:0 0 0 .25rem rgba(236,72,153,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-500,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-500,body[data-netbox-color-mode=dark] .btn-outline-pink-500.active,body[data-netbox-color-mode=dark] .btn-outline-pink-500.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-500:active{color:#000;background-color:#ec4899;border-color:#ec4899}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-500:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-500:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-500.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-500.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-500:active:focus{box-shadow:0 0 0 .25rem rgba(236,72,153,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-500.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-500:disabled{color:#ec4899;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-600{color:#db2777;border-color:#db2777}body[data-netbox-color-mode=dark] .btn-outline-pink-600:hover{color:#fff;background-color:#db2777;border-color:#db2777}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-600,body[data-netbox-color-mode=dark] .btn-outline-pink-600:focus{box-shadow:0 0 0 .25rem rgba(219,39,119,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-600,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-600,body[data-netbox-color-mode=dark] .btn-outline-pink-600.active,body[data-netbox-color-mode=dark] .btn-outline-pink-600.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-600:active{color:#fff;background-color:#db2777;border-color:#db2777}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-600:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-600:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-600.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-600.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-600:active:focus{box-shadow:0 0 0 .25rem rgba(219,39,119,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-600.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-600:disabled{color:#db2777;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-700{color:#be185d;border-color:#be185d}body[data-netbox-color-mode=dark] .btn-outline-pink-700:hover{color:#fff;background-color:#be185d;border-color:#be185d}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-700,body[data-netbox-color-mode=dark] .btn-outline-pink-700:focus{box-shadow:0 0 0 .25rem rgba(190,24,93,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-700,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-700,body[data-netbox-color-mode=dark] .btn-outline-pink-700.active,body[data-netbox-color-mode=dark] .btn-outline-pink-700.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-700:active{color:#fff;background-color:#be185d;border-color:#be185d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-700:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-700:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-700.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-700.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-700:active:focus{box-shadow:0 0 0 .25rem rgba(190,24,93,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-700.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-700:disabled{color:#be185d;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-800{color:#9d174d;border-color:#9d174d}body[data-netbox-color-mode=dark] .btn-outline-pink-800:hover{color:#fff;background-color:#9d174d;border-color:#9d174d}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-800,body[data-netbox-color-mode=dark] .btn-outline-pink-800:focus{box-shadow:0 0 0 .25rem rgba(157,23,77,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-800,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-800,body[data-netbox-color-mode=dark] .btn-outline-pink-800.active,body[data-netbox-color-mode=dark] .btn-outline-pink-800.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-800:active{color:#fff;background-color:#9d174d;border-color:#9d174d}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-800:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-800:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-800.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-800.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-800:active:focus{box-shadow:0 0 0 .25rem rgba(157,23,77,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-800.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-800:disabled{color:#9d174d;background-color:transparent}body[data-netbox-color-mode=dark] .btn-outline-pink-900{color:#831843;border-color:#831843}body[data-netbox-color-mode=dark] .btn-outline-pink-900:hover{color:#fff;background-color:#831843;border-color:#831843}.btn-check:focus+body[data-netbox-color-mode=dark] .btn-outline-pink-900,body[data-netbox-color-mode=dark] .btn-outline-pink-900:focus{box-shadow:0 0 0 .25rem rgba(131,24,67,.5)}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-900,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-900,body[data-netbox-color-mode=dark] .btn-outline-pink-900.active,body[data-netbox-color-mode=dark] .btn-outline-pink-900.dropdown-toggle.show,body[data-netbox-color-mode=dark] .btn-outline-pink-900:active{color:#fff;background-color:#831843;border-color:#831843}.btn-check:active+body[data-netbox-color-mode=dark] .btn-outline-pink-900:focus,.btn-check:checked+body[data-netbox-color-mode=dark] .btn-outline-pink-900:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-900.active:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-900.dropdown-toggle.show:focus,body[data-netbox-color-mode=dark] .btn-outline-pink-900:active:focus{box-shadow:0 0 0 .25rem rgba(131,24,67,.5)}body[data-netbox-color-mode=dark] .btn-outline-pink-900.disabled,body[data-netbox-color-mode=dark] .btn-outline-pink-900:disabled{color:#831843;background-color:transparent}body[data-netbox-color-mode=dark] .btn-link{font-weight:400;color:#93c5fd;text-decoration:underline}body[data-netbox-color-mode=dark] .btn-link:hover{color:#769eca}body[data-netbox-color-mode=dark] .btn-link.disabled,body[data-netbox-color-mode=dark] .btn-link:disabled{color:#d1d5db}body[data-netbox-color-mode=dark] .btn-group-lg>.btn,body[data-netbox-color-mode=dark] .btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.75rem}body[data-netbox-color-mode=dark] .btn-group-sm>.btn,body[data-netbox-color-mode=dark] .btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.5rem}body[data-netbox-color-mode=dark] .fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .fade{transition:none}}body[data-netbox-color-mode=dark] .fade:not(.show){opacity:0}body[data-netbox-color-mode=dark] .collapse:not(.show){display:none}body[data-netbox-color-mode=dark] .collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .collapsing{transition:none}}body[data-netbox-color-mode=dark] .dropdown,body[data-netbox-color-mode=dark] .dropend,body[data-netbox-color-mode=dark] .dropstart,body[data-netbox-color-mode=dark] .dropup{position:relative}body[data-netbox-color-mode=dark] .dropdown-toggle{white-space:nowrap}body[data-netbox-color-mode=dark] .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}body[data-netbox-color-mode=dark] .dropdown-toggle:empty:after{margin-left:0}body[data-netbox-color-mode=dark] .dropdown-menu{position:absolute;top:100%;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#fff;text-align:left;list-style:none;background-color:#111827;background-clip:padding-box;border:1px solid hsla(0,0%,100%,.15);border-radius:.5rem}body[data-netbox-color-mode=dark] .dropdown-menu[data-bs-popper]{left:0;margin-top:.125rem}body[data-netbox-color-mode=dark] .dropdown-menu-start{--bs-position:start}body[data-netbox-color-mode=dark] .dropdown-menu-start[data-bs-popper]{right:auto;left:0}body[data-netbox-color-mode=dark] .dropdown-menu-end{--bs-position:end}body[data-netbox-color-mode=dark] .dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){body[data-netbox-color-mode=dark] .dropdown-menu-sm-start{--bs-position:start}body[data-netbox-color-mode=dark] .dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}body[data-netbox-color-mode=dark] .dropdown-menu-sm-end{--bs-position:end}body[data-netbox-color-mode=dark] .dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){body[data-netbox-color-mode=dark] .dropdown-menu-md-start{--bs-position:start}body[data-netbox-color-mode=dark] .dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}body[data-netbox-color-mode=dark] .dropdown-menu-md-end{--bs-position:end}body[data-netbox-color-mode=dark] .dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){body[data-netbox-color-mode=dark] .dropdown-menu-lg-start{--bs-position:start}body[data-netbox-color-mode=dark] .dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}body[data-netbox-color-mode=dark] .dropdown-menu-lg-end{--bs-position:end}body[data-netbox-color-mode=dark] .dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .dropdown-menu-xl-start{--bs-position:start}body[data-netbox-color-mode=dark] .dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}body[data-netbox-color-mode=dark] .dropdown-menu-xl-end{--bs-position:end}body[data-netbox-color-mode=dark] .dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){body[data-netbox-color-mode=dark] .dropdown-menu-xxl-start{--bs-position:start}body[data-netbox-color-mode=dark] .dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}body[data-netbox-color-mode=dark] .dropdown-menu-xxl-end{--bs-position:end}body[data-netbox-color-mode=dark] .dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}body[data-netbox-color-mode=dark] .dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}body[data-netbox-color-mode=dark] .dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}body[data-netbox-color-mode=dark] .dropup .dropdown-toggle:empty:after{margin-left:0}body[data-netbox-color-mode=dark] .dropend .dropdown-menu{top:0;right:auto;left:100%}body[data-netbox-color-mode=dark] .dropend .dropdown-menu[data-bs-popper]{margin-top:0;margin-left:.125rem}body[data-netbox-color-mode=dark] .dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}body[data-netbox-color-mode=dark] .dropend .dropdown-toggle:empty:after{margin-left:0}body[data-netbox-color-mode=dark] .dropend .dropdown-toggle:after{vertical-align:0}body[data-netbox-color-mode=dark] .dropstart .dropdown-menu{top:0;right:100%;left:auto}body[data-netbox-color-mode=dark] .dropstart .dropdown-menu[data-bs-popper]{margin-top:0;margin-right:.125rem}body[data-netbox-color-mode=dark] .dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";display:none}body[data-netbox-color-mode=dark] .dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}body[data-netbox-color-mode=dark] .dropstart .dropdown-toggle:empty:after{margin-left:0}body[data-netbox-color-mode=dark] .dropstart .dropdown-toggle:before{vertical-align:0}body[data-netbox-color-mode=dark] .dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}body[data-netbox-color-mode=dark] .dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#f3f4f6;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}body[data-netbox-color-mode=dark] .dropdown-item:focus,body[data-netbox-color-mode=dark] .dropdown-item:hover{color:#e0e1e2;background-color:#6b7280}body[data-netbox-color-mode=dark] .dropdown-item.active,body[data-netbox-color-mode=dark] .dropdown-item:active{color:#fff;text-decoration:none;background-color:#93c5fd}body[data-netbox-color-mode=dark] .dropdown-item.disabled,body[data-netbox-color-mode=dark] .dropdown-item:disabled{color:#1f2937;pointer-events:none;background-color:transparent}body[data-netbox-color-mode=dark] .dropdown-menu.show{display:block}body[data-netbox-color-mode=dark] .dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#d1d5db;white-space:nowrap}body[data-netbox-color-mode=dark] .dropdown-item-text{display:block;padding:.25rem 1rem;color:#f3f4f6}body[data-netbox-color-mode=dark] .dropdown-menu-dark{color:#d1d5db;background-color:#1f2937;border-color:rgba(0,0,0,.15)}body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item{color:#d1d5db}body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item:focus,body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:hsla(0,0%,100%,.15)}body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item.active,body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#93c5fd}body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item.disabled,body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item:disabled{color:#6b7280}body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-item-text{color:#d1d5db}body[data-netbox-color-mode=dark] .dropdown-menu-dark .dropdown-header{color:#6b7280}body[data-netbox-color-mode=dark] .btn-group,body[data-netbox-color-mode=dark] .btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}body[data-netbox-color-mode=dark] .btn-group-vertical>.btn,body[data-netbox-color-mode=dark] .btn-group>.btn{position:relative;flex:1 1 auto}body[data-netbox-color-mode=dark] .btn-group-vertical>.btn-check:checked+.btn,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn-check:focus+.btn,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn.active,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn:active,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn:focus,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn:hover,body[data-netbox-color-mode=dark] .btn-group>.btn-check:checked+.btn,body[data-netbox-color-mode=dark] .btn-group>.btn-check:focus+.btn,body[data-netbox-color-mode=dark] .btn-group>.btn.active,body[data-netbox-color-mode=dark] .btn-group>.btn:active,body[data-netbox-color-mode=dark] .btn-group>.btn:focus,body[data-netbox-color-mode=dark] .btn-group>.btn:hover{z-index:1}body[data-netbox-color-mode=dark] .btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}body[data-netbox-color-mode=dark] .btn-toolbar .input-group{width:auto}body[data-netbox-color-mode=dark] .btn-group>.btn-group:not(:first-child),body[data-netbox-color-mode=dark] .btn-group>.btn:not(:first-child){margin-left:-1px}body[data-netbox-color-mode=dark] .btn-group>.btn-group:not(:last-child)>.btn,body[data-netbox-color-mode=dark] .btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}body[data-netbox-color-mode=dark] .btn-group>.btn-group:not(:first-child)>.btn,body[data-netbox-color-mode=dark] .btn-group>.btn:nth-child(n+3),body[data-netbox-color-mode=dark] .btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropend body[data-netbox-color-mode=dark] .dropdown-toggle-split:after,.dropup body[data-netbox-color-mode=dark] .dropdown-toggle-split:after,body[data-netbox-color-mode=dark] .dropdown-toggle-split:after{margin-left:0}.dropstart body[data-netbox-color-mode=dark] .dropdown-toggle-split:before{margin-right:0}body[data-netbox-color-mode=dark] .btn-group-sm>.btn+.dropdown-toggle-split,body[data-netbox-color-mode=dark] .btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}body[data-netbox-color-mode=dark] .btn-group-lg>.btn+.dropdown-toggle-split,body[data-netbox-color-mode=dark] .btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}body[data-netbox-color-mode=dark] .btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}body[data-netbox-color-mode=dark] .btn-group-vertical>.btn,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn-group{width:100%}body[data-netbox-color-mode=dark] .btn-group-vertical>.btn-group:not(:first-child),body[data-netbox-color-mode=dark] .btn-group-vertical>.btn:not(:first-child){margin-top:-1px}body[data-netbox-color-mode=dark] .btn-group-vertical>.btn-group:not(:last-child)>.btn,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .btn-group-vertical>.btn-group:not(:first-child)>.btn,body[data-netbox-color-mode=dark] .btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}body[data-netbox-color-mode=dark] .nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}body[data-netbox-color-mode=dark] .nav-link{display:block;padding:.5rem 1rem;color:#fff;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .nav-link{transition:none}}body[data-netbox-color-mode=dark] .nav-link.disabled{color:#1f2937;pointer-events:none;cursor:default}body[data-netbox-color-mode=dark] .nav-tabs{border-bottom:1px solid #374151}body[data-netbox-color-mode=dark] .nav-tabs .nav-link{margin-bottom:-1px;background:none;border:1px solid transparent;border-top-left-radius:.5rem;border-top-right-radius:.5rem}body[data-netbox-color-mode=dark] .nav-tabs .nav-link:focus,body[data-netbox-color-mode=dark] .nav-tabs .nav-link:hover{border-color:rgba(31,41,55,.5) rgba(31,41,55,.5) #374151;isolation:isolate}body[data-netbox-color-mode=dark] .nav-tabs .nav-link.disabled{color:#1f2937;background-color:transparent;border-color:transparent}body[data-netbox-color-mode=dark] .nav-tabs .nav-item.show .nav-link,body[data-netbox-color-mode=dark] .nav-tabs .nav-link.active{color:#f9fafb;background-color:#111827;border-color:#1f2937 #1f2937 #111827}body[data-netbox-color-mode=dark] .nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}body[data-netbox-color-mode=dark] .nav-pills .nav-link{background:none;border:0;border-radius:.5rem}body[data-netbox-color-mode=dark] .nav-pills .nav-link.active,body[data-netbox-color-mode=dark] .nav-pills .show>.nav-link{color:#fff;background-color:#93c5fd}body[data-netbox-color-mode=dark] .nav-fill .nav-item,body[data-netbox-color-mode=dark] .nav-fill>.nav-link{flex:1 1 auto;text-align:center}body[data-netbox-color-mode=dark] .nav-justified .nav-item,body[data-netbox-color-mode=dark] .nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}body[data-netbox-color-mode=dark] .nav-fill .nav-item .nav-link,body[data-netbox-color-mode=dark] .nav-justified .nav-item .nav-link{width:100%}body[data-netbox-color-mode=dark] .tab-content>.tab-pane{display:none}body[data-netbox-color-mode=dark] .tab-content>.active{display:block}body[data-netbox-color-mode=dark] .navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}body[data-netbox-color-mode=dark] .navbar>.container,body[data-netbox-color-mode=dark] .navbar>.container-fluid,body[data-netbox-color-mode=dark] .navbar>.container-lg,body[data-netbox-color-mode=dark] .navbar>.container-md,body[data-netbox-color-mode=dark] .navbar>.container-sm,body[data-netbox-color-mode=dark] .navbar>.container-xl,body[data-netbox-color-mode=dark] .navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}body[data-netbox-color-mode=dark] .navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}body[data-netbox-color-mode=dark] .navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}body[data-netbox-color-mode=dark] .navbar-nav .nav-link{padding-right:0;padding-left:0}body[data-netbox-color-mode=dark] .navbar-nav .dropdown-menu{position:static}body[data-netbox-color-mode=dark] .navbar-text{padding-top:.5rem;padding-bottom:.5rem}body[data-netbox-color-mode=dark] .navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}body[data-netbox-color-mode=dark] .navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.5rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .navbar-toggler{transition:none}}body[data-netbox-color-mode=dark] .navbar-toggler:hover{text-decoration:none}body[data-netbox-color-mode=dark] .navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}body[data-netbox-color-mode=dark] .navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:50%;background-size:100%}body[data-netbox-color-mode=dark] .navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){body[data-netbox-color-mode=dark] .navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}body[data-netbox-color-mode=dark] .navbar-expand-sm .navbar-nav{flex-direction:row}body[data-netbox-color-mode=dark] .navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}body[data-netbox-color-mode=dark] .navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}body[data-netbox-color-mode=dark] .navbar-expand-sm .navbar-nav-scroll{overflow:visible}body[data-netbox-color-mode=dark] .navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}body[data-netbox-color-mode=dark] .navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){body[data-netbox-color-mode=dark] .navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}body[data-netbox-color-mode=dark] .navbar-expand-md .navbar-nav{flex-direction:row}body[data-netbox-color-mode=dark] .navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}body[data-netbox-color-mode=dark] .navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}body[data-netbox-color-mode=dark] .navbar-expand-md .navbar-nav-scroll{overflow:visible}body[data-netbox-color-mode=dark] .navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}body[data-netbox-color-mode=dark] .navbar-expand-md .navbar-toggler{display:none}}@media (min-width:992px){body[data-netbox-color-mode=dark] .navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}body[data-netbox-color-mode=dark] .navbar-expand-lg .navbar-nav{flex-direction:row}body[data-netbox-color-mode=dark] .navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}body[data-netbox-color-mode=dark] .navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}body[data-netbox-color-mode=dark] .navbar-expand-lg .navbar-nav-scroll{overflow:visible}body[data-netbox-color-mode=dark] .navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}body[data-netbox-color-mode=dark] .navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}body[data-netbox-color-mode=dark] .navbar-expand-xl .navbar-nav{flex-direction:row}body[data-netbox-color-mode=dark] .navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}body[data-netbox-color-mode=dark] .navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}body[data-netbox-color-mode=dark] .navbar-expand-xl .navbar-nav-scroll{overflow:visible}body[data-netbox-color-mode=dark] .navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}body[data-netbox-color-mode=dark] .navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1400px){body[data-netbox-color-mode=dark] .navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}body[data-netbox-color-mode=dark] .navbar-expand-xxl .navbar-nav{flex-direction:row}body[data-netbox-color-mode=dark] .navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}body[data-netbox-color-mode=dark] .navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}body[data-netbox-color-mode=dark] .navbar-expand-xxl .navbar-nav-scroll{overflow:visible}body[data-netbox-color-mode=dark] .navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}body[data-netbox-color-mode=dark] .navbar-expand-xxl .navbar-toggler{display:none}}body[data-netbox-color-mode=dark] .navbar-expand{flex-wrap:nowrap;justify-content:flex-start}body[data-netbox-color-mode=dark] .navbar-expand .navbar-nav{flex-direction:row}body[data-netbox-color-mode=dark] .navbar-expand .navbar-nav .dropdown-menu{position:absolute}body[data-netbox-color-mode=dark] .navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}body[data-netbox-color-mode=dark] .navbar-expand .navbar-nav-scroll{overflow:visible}body[data-netbox-color-mode=dark] .navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}body[data-netbox-color-mode=dark] .navbar-expand .navbar-toggler{display:none}body[data-netbox-color-mode=dark] .navbar-light .navbar-brand,body[data-netbox-color-mode=dark] .navbar-light .navbar-brand:focus,body[data-netbox-color-mode=dark] .navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}body[data-netbox-color-mode=dark] .navbar-light .navbar-nav .nav-link{color:#6b7280}body[data-netbox-color-mode=dark] .navbar-light .navbar-nav .nav-link:focus,body[data-netbox-color-mode=dark] .navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}body[data-netbox-color-mode=dark] .navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}body[data-netbox-color-mode=dark] .navbar-light .navbar-nav .nav-link.active,body[data-netbox-color-mode=dark] .navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}body[data-netbox-color-mode=dark] .navbar-light .navbar-toggler{color:#6b7280;border-color:#374151}body[data-netbox-color-mode=dark] .navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .navbar-light .navbar-text{color:#6b7280}body[data-netbox-color-mode=dark] .navbar-light .navbar-text a,body[data-netbox-color-mode=dark] .navbar-light .navbar-text a:focus,body[data-netbox-color-mode=dark] .navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}body[data-netbox-color-mode=dark] .navbar-dark .navbar-brand,body[data-netbox-color-mode=dark] .navbar-dark .navbar-brand:focus,body[data-netbox-color-mode=dark] .navbar-dark .navbar-brand:hover{color:#fff}body[data-netbox-color-mode=dark] .navbar-dark .navbar-nav .nav-link{color:hsla(0,0%,100%,.55)}body[data-netbox-color-mode=dark] .navbar-dark .navbar-nav .nav-link:focus,body[data-netbox-color-mode=dark] .navbar-dark .navbar-nav .nav-link:hover{color:hsla(0,0%,100%,.75)}body[data-netbox-color-mode=dark] .navbar-dark .navbar-nav .nav-link.disabled{color:hsla(0,0%,100%,.25)}body[data-netbox-color-mode=dark] .navbar-dark .navbar-nav .nav-link.active,body[data-netbox-color-mode=dark] .navbar-dark .navbar-nav .show>.nav-link{color:#fff}body[data-netbox-color-mode=dark] .navbar-dark .navbar-toggler{color:hsla(0,0%,100%,.55);border-color:hsla(0,0%,100%,.1)}body[data-netbox-color-mode=dark] .navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.55)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .navbar-dark .navbar-text{color:hsla(0,0%,100%,.55)}body[data-netbox-color-mode=dark] .navbar-dark .navbar-text a,body[data-netbox-color-mode=dark] .navbar-dark .navbar-text a:focus,body[data-netbox-color-mode=dark] .navbar-dark .navbar-text a:hover{color:#fff}body[data-netbox-color-mode=dark] .card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#1f2937;background-clip:border-box;border:1px solid hsla(0,0%,100%,.125);border-radius:.5rem}body[data-netbox-color-mode=dark] .card>hr{margin-right:0;margin-left:0}body[data-netbox-color-mode=dark] .card>.list-group{border-top:inherit;border-bottom:inherit}body[data-netbox-color-mode=dark] .card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.5rem - 1px);border-top-right-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .card>.card-header+.list-group,body[data-netbox-color-mode=dark] .card>.list-group+.card-footer{border-top:0}body[data-netbox-color-mode=dark] .card-body{flex:1 1 auto;padding:1rem}body[data-netbox-color-mode=dark] .card-title{margin-bottom:.5rem}body[data-netbox-color-mode=dark] .card-subtitle{margin-top:-.25rem;margin-bottom:0}body[data-netbox-color-mode=dark] .card-text:last-child{margin-bottom:0}body[data-netbox-color-mode=dark] .card-link:hover{text-decoration:none}body[data-netbox-color-mode=dark] .card-link+.card-link{margin-left:1rem}body[data-netbox-color-mode=dark] .card-header{padding:.5rem 1rem;margin-bottom:0;background-color:"unset";border-bottom:1px solid hsla(0,0%,100%,.125)}body[data-netbox-color-mode=dark] .card-header:first-child{border-radius:calc(.5rem - 1px) calc(.5rem - 1px) 0 0}body[data-netbox-color-mode=dark] .card-footer{padding:.5rem 1rem;background-color:"unset";border-top:1px solid hsla(0,0%,100%,.125)}body[data-netbox-color-mode=dark] .card-footer:last-child{border-radius:0 0 calc(.5rem - 1px) calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}body[data-netbox-color-mode=dark] .card-header-tabs .nav-link.active{background-color:#1f2937;border-bottom-color:#1f2937}body[data-netbox-color-mode=dark] .card-header-pills{margin-right:-.5rem;margin-left:-.5rem}body[data-netbox-color-mode=dark] .card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .card-img,body[data-netbox-color-mode=dark] .card-img-bottom,body[data-netbox-color-mode=dark] .card-img-top{width:100%}body[data-netbox-color-mode=dark] .card-img,body[data-netbox-color-mode=dark] .card-img-top{border-top-left-radius:calc(.5rem - 1px);border-top-right-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .card-img,body[data-netbox-color-mode=dark] .card-img-bottom{border-bottom-right-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .card-group>.card{margin-bottom:.75rem}@media (min-width:576px){body[data-netbox-color-mode=dark] .card-group{display:flex;flex-flow:row wrap}body[data-netbox-color-mode=dark] .card-group>.card{flex:1 0 0%;margin-bottom:0}body[data-netbox-color-mode=dark] .card-group>.card+.card{margin-left:0;border-left:0}body[data-netbox-color-mode=dark] .card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}body[data-netbox-color-mode=dark] .card-group>.card:not(:last-child) .card-header,body[data-netbox-color-mode=dark] .card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}body[data-netbox-color-mode=dark] .card-group>.card:not(:last-child) .card-footer,body[data-netbox-color-mode=dark] .card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}body[data-netbox-color-mode=dark] .card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .card-group>.card:not(:first-child) .card-header,body[data-netbox-color-mode=dark] .card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}body[data-netbox-color-mode=dark] .card-group>.card:not(:first-child) .card-footer,body[data-netbox-color-mode=dark] .card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}body[data-netbox-color-mode=dark] .accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:.8125rem;font-size:1rem;color:#fff;text-align:left;background-color:transparent;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .accordion-button{transition:none}}body[data-netbox-color-mode=dark] .accordion-button:not(.collapsed){color:#d1d5db;background-color:rgba(147,197,253,.15);box-shadow:inset 0 -1px 0 hsla(0,0%,100%,.125)}body[data-netbox-color-mode=dark] .accordion-button:not(.collapsed):after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23d1d5db'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 01.708 0L8 10.293l5.646-5.647a.5.5 0 01.708.708l-6 6a.5.5 0 01-.708 0l-6-6a.5.5 0 010-.708z'/%3E%3C/svg%3E");transform:rotate(180deg)}body[data-netbox-color-mode=dark] .accordion-button:after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 01.708 0L8 10.293l5.646-5.647a.5.5 0 01.708.708l-6 6a.5.5 0 01-.708 0l-6-6a.5.5 0 010-.708z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .accordion-button:after{transition:none}}body[data-netbox-color-mode=dark] .accordion-button:hover{z-index:2}body[data-netbox-color-mode=dark] .accordion-button:focus{z-index:3;border-color:#9ecbfd;outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .accordion-header{margin-bottom:0}body[data-netbox-color-mode=dark] .accordion-item{margin-bottom:-1px;background-color:transparent;border:1px solid hsla(0,0%,100%,.125)}body[data-netbox-color-mode=dark] .accordion-item:first-of-type{border-top-left-radius:.5rem;border-top-right-radius:.5rem}body[data-netbox-color-mode=dark] .accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.5rem - 1px);border-top-right-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .accordion-item:last-of-type{margin-bottom:0;border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}body[data-netbox-color-mode=dark] .accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.5rem - 1px);border-bottom-left-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}body[data-netbox-color-mode=dark] .accordion-body{padding:.8125rem}body[data-netbox-color-mode=dark] .accordion-flush .accordion-collapse{border-width:0}body[data-netbox-color-mode=dark] .accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}body[data-netbox-color-mode=dark] .accordion-flush .accordion-item:first-child{border-top:0}body[data-netbox-color-mode=dark] .accordion-flush .accordion-item:last-child{border-bottom:0}body[data-netbox-color-mode=dark] .accordion-flush .accordion-item .accordion-button{border-radius:0}body[data-netbox-color-mode=dark] .breadcrumb{display:flex;flex-wrap:wrap;padding:0;margin-bottom:1rem;list-style:none}body[data-netbox-color-mode=dark] .breadcrumb-item+.breadcrumb-item{padding-left:.5rem}body[data-netbox-color-mode=dark] .breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:.5rem;color:#f3f4f6;content:var(--bs-breadcrumb-divider,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='%23f3f4f6'/%3E%3C/svg%3E"))}body[data-netbox-color-mode=dark] .breadcrumb-item.active{color:#fff}body[data-netbox-color-mode=dark] .pagination{display:flex;padding-left:0;list-style:none}body[data-netbox-color-mode=dark] .page-link{position:relative;display:block;color:#93c5fd;text-decoration:none;background-color:#1f2937;border:1px solid #4b5563;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .page-link{transition:none}}body[data-netbox-color-mode=dark] .page-link:hover{z-index:2;color:#bfdbfe;background-color:#9ca3af;border-color:#6b7280}body[data-netbox-color-mode=dark] .page-link:focus{z-index:3;color:#bfdbfe;background-color:#9ca3af;outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .page-item:not(:first-child) .page-link{margin-left:-1px}body[data-netbox-color-mode=dark] .page-item.active .page-link{z-index:3;color:#fff;background-color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .page-item.disabled .page-link{color:#4b5563;pointer-events:none;background-color:#1f2937;border-color:#4b5563}body[data-netbox-color-mode=dark] .page-link{padding:.375rem .75rem}body[data-netbox-color-mode=dark] .page-item:first-child .page-link{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}body[data-netbox-color-mode=dark] .page-item:last-child .page-link{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}body[data-netbox-color-mode=dark] .pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}body[data-netbox-color-mode=dark] .pagination-lg .page-item:first-child .page-link{border-top-left-radius:.75rem;border-bottom-left-radius:.75rem}body[data-netbox-color-mode=dark] .pagination-lg .page-item:last-child .page-link{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}body[data-netbox-color-mode=dark] .pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}body[data-netbox-color-mode=dark] .pagination-sm .page-item:first-child .page-link{border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}body[data-netbox-color-mode=dark] .pagination-sm .page-item:last-child .page-link{border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}body[data-netbox-color-mode=dark] .badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.375rem}body[data-netbox-color-mode=dark] .badge:empty{display:none}body[data-netbox-color-mode=dark] .btn .badge{position:relative;top:-1px}body[data-netbox-color-mode=dark] .alert{position:relative;padding:1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.5rem}body[data-netbox-color-mode=dark] .alert-heading{color:inherit}body[data-netbox-color-mode=dark] .alert-link{font-weight:700}body[data-netbox-color-mode=dark] .alert-dismissible{padding-right:3rem}body[data-netbox-color-mode=dark] .alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}body[data-netbox-color-mode=dark] .alert-primary{color:#3b4f65;background-color:#e9f3ff;border-color:#dfeefe}body[data-netbox-color-mode=dark] .alert-primary .alert-link{color:#2f3f51}body[data-netbox-color-mode=dark] .alert-secondary{color:#5e6269;background-color:#ebedef;border-color:#e1e3e7}body[data-netbox-color-mode=dark] .alert-secondary .alert-link{color:#4b4e54}body[data-netbox-color-mode=dark] .alert-success{color:#2c5c49;background-color:#e2faf1;border-color:#d4f8e9}body[data-netbox-color-mode=dark] .alert-success .alert-link{color:#234a3a}body[data-netbox-color-mode=dark] .alert-info{color:#295d64;background-color:#e1fafe;border-color:#d1f8fd}body[data-netbox-color-mode=dark] .alert-info .alert-link{color:#214a50}body[data-netbox-color-mode=dark] .alert-warning{color:#65541f;background-color:#fef6db;border-color:#fef2ca}body[data-netbox-color-mode=dark] .alert-warning .alert-link{color:#514319}body[data-netbox-color-mode=dark] .alert-danger{color:#654242;background-color:#feeded;border-color:#fee4e4}body[data-netbox-color-mode=dark] .alert-danger .alert-link{color:#513535}body[data-netbox-color-mode=dark] .alert-light{color:#545558;background-color:#f6f7f8;border-color:#f1f2f4}body[data-netbox-color-mode=dark] .alert-light .alert-link{color:#434446}body[data-netbox-color-mode=dark] .alert-dark{color:#5e6269;background-color:#ebedef;border-color:#e1e3e7}body[data-netbox-color-mode=dark] .alert-dark .alert-link{color:#4b4e54}body[data-netbox-color-mode=dark] .alert-alt{color:#0b1925;background-color:#d0d4d8;border-color:#b8bfc5}body[data-netbox-color-mode=dark] .alert-alt .alert-link{color:#09141e}body[data-netbox-color-mode=dark] .alert-gray{color:#5e6269;background-color:#ebedef;border-color:#e1e3e7}body[data-netbox-color-mode=dark] .alert-gray .alert-link{color:#4b4e54}body[data-netbox-color-mode=dark] .alert-darker{color:#010101;background-color:#ccc;border-color:#b3b3b3}body[data-netbox-color-mode=dark] .alert-darker .alert-link{color:#010101}body[data-netbox-color-mode=dark] .alert-gray-50{color:#646464;background-color:#fefefe;border-color:#fdfefe}body[data-netbox-color-mode=dark] .alert-gray-50 .alert-link{color:#505050}body[data-netbox-color-mode=dark] .alert-gray-100{color:#616262;background-color:#fdfdfd;border-color:#fbfcfc}body[data-netbox-color-mode=dark] .alert-gray-100 .alert-link{color:#4e4e4e}body[data-netbox-color-mode=dark] .alert-gray-200{color:#5c5c5e;background-color:#fafafb;border-color:#f7f8f9}body[data-netbox-color-mode=dark] .alert-gray-200 .alert-link{color:#4a4a4b}body[data-netbox-color-mode=dark] .alert-gray-300{color:#545558;background-color:#f6f7f8;border-color:#f1f2f4}body[data-netbox-color-mode=dark] .alert-gray-300 .alert-link{color:#434446}body[data-netbox-color-mode=dark] .alert-gray-400{color:#5e6269;background-color:#ebedef;border-color:#e1e3e7}body[data-netbox-color-mode=dark] .alert-gray-400 .alert-link{color:#4b4e54}body[data-netbox-color-mode=dark] .alert-gray-500{color:#40444d;background-color:#e1e3e6;border-color:#d3d5d9}body[data-netbox-color-mode=dark] .alert-gray-500 .alert-link{color:#33363e}body[data-netbox-color-mode=dark] .alert-gray-600{color:#2d333b;background-color:#dbdde0;border-color:#c9ccd0}body[data-netbox-color-mode=dark] .alert-gray-600 .alert-link{color:#24292f}body[data-netbox-color-mode=dark] .alert-gray-700{color:#212731;background-color:#d7d9dc;border-color:#c3c6cb}body[data-netbox-color-mode=dark] .alert-gray-700 .alert-link{color:#1a1f27}body[data-netbox-color-mode=dark] .alert-gray-800{color:#131921;background-color:#d2d4d7;border-color:#bcbfc3}body[data-netbox-color-mode=dark] .alert-gray-800 .alert-link{color:#0f141a}body[data-netbox-color-mode=dark] .alert-gray-900{color:#0a0e17;background-color:#cfd1d4;border-color:#b8babe}body[data-netbox-color-mode=dark] .alert-gray-900 .alert-link{color:#080b12}body[data-netbox-color-mode=dark] .alert-red-50{color:#666161;background-color:#fffcfc;border-color:#fffbfb}body[data-netbox-color-mode=dark] .alert-red-50 .alert-link{color:#524e4e}body[data-netbox-color-mode=dark] .alert-red-100{color:#665a5a;background-color:#fff9f9;border-color:#fff6f6}body[data-netbox-color-mode=dark] .alert-red-100 .alert-link{color:#524848}body[data-netbox-color-mode=dark] .alert-red-200{color:#665151;background-color:#fff4f4;border-color:#ffefef}body[data-netbox-color-mode=dark] .alert-red-200 .alert-link{color:#524141}body[data-netbox-color-mode=dark] .alert-red-300{color:#654242;background-color:#feeded;border-color:#fee4e4}body[data-netbox-color-mode=dark] .alert-red-300 .alert-link{color:#513535}body[data-netbox-color-mode=dark] .alert-red-400{color:#954444;background-color:#fee3e3;border-color:#fdd4d4}body[data-netbox-color-mode=dark] .alert-red-400 .alert-link{color:#773636}body[data-netbox-color-mode=dark] .alert-red-500{color:#8f2929;background-color:#fcdada;border-color:#fac7c7}body[data-netbox-color-mode=dark] .alert-red-500 .alert-link{color:#722121}body[data-netbox-color-mode=dark] .alert-red-600{color:#841717;background-color:#f8d4d4;border-color:#f5bebe}body[data-netbox-color-mode=dark] .alert-red-600 .alert-link{color:#6a1212}body[data-netbox-color-mode=dark] .alert-red-700{color:#6f1111;background-color:#f1d2d2;border-color:#eabbbb}body[data-netbox-color-mode=dark] .alert-red-700 .alert-link{color:#590e0e}body[data-netbox-color-mode=dark] .alert-red-800{color:#5c1010;background-color:#ebd1d1;border-color:#e0bbbb}body[data-netbox-color-mode=dark] .alert-red-800 .alert-link{color:#4a0d0d}body[data-netbox-color-mode=dark] .alert-red-900{color:#4c1111;background-color:#e5d2d2;border-color:#d9bbbb}body[data-netbox-color-mode=dark] .alert-red-900 .alert-link{color:#3d0e0e}body[data-netbox-color-mode=dark] .alert-yellow-50{color:#66645e;background-color:#fffefb;border-color:#fffef9}body[data-netbox-color-mode=dark] .alert-yellow-50 .alert-link{color:#52504b}body[data-netbox-color-mode=dark] .alert-yellow-100{color:#666150;background-color:#fffdf4;border-color:#fffbee}body[data-netbox-color-mode=dark] .alert-yellow-100 .alert-link{color:#524e40}body[data-netbox-color-mode=dark] .alert-yellow-200{color:#655c37;background-color:#fffae8;border-color:#fef8dc}body[data-netbox-color-mode=dark] .alert-yellow-200 .alert-link{color:#514a2c}body[data-netbox-color-mode=dark] .alert-yellow-300{color:#65541f;background-color:#fef6db;border-color:#fef2ca}body[data-netbox-color-mode=dark] .alert-yellow-300 .alert-link{color:#514319}body[data-netbox-color-mode=dark] .alert-yellow-400{color:#644c0e;background-color:#fef2d3;border-color:#feecbd}body[data-netbox-color-mode=dark] .alert-yellow-400 .alert-link{color:#503d0b}body[data-netbox-color-mode=dark] .alert-yellow-500{color:#935f07;background-color:#fdecce;border-color:#fce2b6}body[data-netbox-color-mode=dark] .alert-yellow-500 .alert-link{color:#764c06}body[data-netbox-color-mode=dark] .alert-yellow-600{color:#824704;background-color:#f7e4cd;border-color:#f4d6b4}body[data-netbox-color-mode=dark] .alert-yellow-600 .alert-link{color:#683903}body[data-netbox-color-mode=dark] .alert-yellow-700{color:#6c3205;background-color:#f0ddce;border-color:#e9cbb5}body[data-netbox-color-mode=dark] .alert-yellow-700 .alert-link{color:#562804}body[data-netbox-color-mode=dark] .alert-yellow-800{color:#582608;background-color:#e9d9cf;border-color:#dec6b7}body[data-netbox-color-mode=dark] .alert-yellow-800 .alert-link{color:#461e06}body[data-netbox-color-mode=dark] .alert-yellow-900{color:#482009;background-color:#e4d7cf;border-color:#d7c2b7}body[data-netbox-color-mode=dark] .alert-yellow-900 .alert-link{color:#3a1a07}body[data-netbox-color-mode=dark] .alert-green-50{color:#5e6562;background-color:#fbfffd;border-color:#f9fefc}body[data-netbox-color-mode=dark] .alert-green-50 .alert-link{color:#4b514e}body[data-netbox-color-mode=dark] .alert-green-100{color:#54645c;background-color:#f6fefa;border-color:#f1fef7}body[data-netbox-color-mode=dark] .alert-green-100 .alert-link{color:#43504a}body[data-netbox-color-mode=dark] .alert-green-200{color:#436153;background-color:#edfdf6;border-color:#e5fbf1}body[data-netbox-color-mode=dark] .alert-green-200 .alert-link{color:#364e42}body[data-netbox-color-mode=dark] .alert-green-300{color:#2c5c49;background-color:#e2faf1;border-color:#d4f8e9}body[data-netbox-color-mode=dark] .alert-green-300 .alert-link{color:#234a3a}body[data-netbox-color-mode=dark] .alert-green-400{color:#15543d;background-color:#d6f6eb;border-color:#c2f2e0}body[data-netbox-color-mode=dark] .alert-green-400 .alert-link{color:#114331}body[data-netbox-color-mode=dark] .alert-green-500{color:#0a6f4d;background-color:#cff1e6;border-color:#b7ead9}body[data-netbox-color-mode=dark] .alert-green-500 .alert-link{color:#08593e}body[data-netbox-color-mode=dark] .alert-green-600{color:#035a3f;background-color:#cdeae1;border-color:#b4e0d2}body[data-netbox-color-mode=dark] .alert-green-600 .alert-link{color:#024832}body[data-netbox-color-mode=dark] .alert-green-700{color:#024834;background-color:#cde4dd;border-color:#b4d7cd}body[data-netbox-color-mode=dark] .alert-green-700 .alert-link{color:#023a2a}body[data-netbox-color-mode=dark] .alert-green-800{color:#04392a;background-color:#cddfda;border-color:#b4cfc8}body[data-netbox-color-mode=dark] .alert-green-800 .alert-link{color:#032e22}body[data-netbox-color-mode=dark] .alert-green-900{color:#042f23;background-color:#cddcd8;border-color:#b4cac4}body[data-netbox-color-mode=dark] .alert-green-900 .alert-link{color:#03261c}body[data-netbox-color-mode=dark] .alert-blue-50{color:#606266;background-color:#fcfdff;border-color:#fafcff}body[data-netbox-color-mode=dark] .alert-blue-50 .alert-link{color:#4d4e52}body[data-netbox-color-mode=dark] .alert-blue-100{color:#585e66;background-color:#f8fbff;border-color:#f4f9ff}body[data-netbox-color-mode=dark] .alert-blue-100 .alert-link{color:#464b52}body[data-netbox-color-mode=dark] .alert-blue-200{color:#4c5866;background-color:#f2f8ff;border-color:#ecf4ff}body[data-netbox-color-mode=dark] .alert-blue-200 .alert-link{color:#3d4652}body[data-netbox-color-mode=dark] .alert-blue-300{color:#3b4f65;background-color:#e9f3ff;border-color:#dfeefe}body[data-netbox-color-mode=dark] .alert-blue-300 .alert-link{color:#2f3f51}body[data-netbox-color-mode=dark] .alert-blue-400{color:#3a6396;background-color:#dfedfe;border-color:#cfe4fe}body[data-netbox-color-mode=dark] .alert-blue-400 .alert-link{color:#2e4f78}body[data-netbox-color-mode=dark] .alert-blue-500{color:#234e94;background-color:#d8e6fd;border-color:#c4dafc}body[data-netbox-color-mode=dark] .alert-blue-500 .alert-link{color:#1c3e76}body[data-netbox-color-mode=dark] .alert-blue-600{color:#163b8d;background-color:#d3e0fb;border-color:#bed0f9}body[data-netbox-color-mode=dark] .alert-blue-600 .alert-link{color:#122f71}body[data-netbox-color-mode=dark] .alert-blue-700{color:#112f82;background-color:#d2dcf7;border-color:#bbcaf3}body[data-netbox-color-mode=dark] .alert-blue-700 .alert-link{color:#0e2668}body[data-netbox-color-mode=dark] .alert-blue-800{color:#122669;background-color:#d2d9ef;border-color:#bcc6e7}body[data-netbox-color-mode=dark] .alert-blue-800 .alert-link{color:#0e1e54}body[data-netbox-color-mode=dark] .alert-blue-900{color:#122353;background-color:#d2d8e8;border-color:#bcc4dc}body[data-netbox-color-mode=dark] .alert-blue-900 .alert-link{color:#0e1c42}body[data-netbox-color-mode=dark] .alert-cyan-50{color:#5e6666;background-color:#fbffff;border-color:#f9ffff}body[data-netbox-color-mode=dark] .alert-cyan-50 .alert-link{color:#4b5252}body[data-netbox-color-mode=dark] .alert-cyan-100{color:#536466;background-color:#f5feff;border-color:#f1feff}body[data-netbox-color-mode=dark] .alert-cyan-100 .alert-link{color:#425052}body[data-netbox-color-mode=dark] .alert-cyan-200{color:#426165;background-color:#edfdfe;border-color:#e4fbfe}body[data-netbox-color-mode=dark] .alert-cyan-200 .alert-link{color:#354e51}body[data-netbox-color-mode=dark] .alert-cyan-300{color:#295d64;background-color:#e1fafe;border-color:#d1f8fd}body[data-netbox-color-mode=dark] .alert-cyan-300 .alert-link{color:#214a50}body[data-netbox-color-mode=dark] .alert-cyan-400{color:#0e545f;background-color:#d3f6fc;border-color:#bdf2fa}body[data-netbox-color-mode=dark] .alert-cyan-400 .alert-link{color:#0b434c}body[data-netbox-color-mode=dark] .alert-cyan-500{color:#046d7f;background-color:#cdf0f6;border-color:#b4e9f2}body[data-netbox-color-mode=dark] .alert-cyan-500 .alert-link{color:#035766}body[data-netbox-color-mode=dark] .alert-cyan-600{color:#05576b;background-color:#cee9f0;border-color:#b5dee8}body[data-netbox-color-mode=dark] .alert-cyan-600 .alert-link{color:#044656}body[data-netbox-color-mode=dark] .alert-cyan-700{color:#084656;background-color:#cfe3e9;border-color:#b7d5de}body[data-netbox-color-mode=dark] .alert-cyan-700 .alert-link{color:#063845}body[data-netbox-color-mode=dark] .alert-cyan-800{color:#0d3846;background-color:#d0dfe3;border-color:#b9cfd6}body[data-netbox-color-mode=dark] .alert-cyan-800 .alert-link{color:#0a2d38}body[data-netbox-color-mode=dark] .alert-cyan-900{color:#0d2f3b;background-color:#d0dce0;border-color:#b9cad0}body[data-netbox-color-mode=dark] .alert-cyan-900 .alert-link{color:#0a262f}body[data-netbox-color-mode=dark] .alert-indigo-50{color:#5f6166;background-color:#fcfcff;border-color:#fafbff}body[data-netbox-color-mode=dark] .alert-indigo-50 .alert-link{color:#4c4e52}body[data-netbox-color-mode=dark] .alert-indigo-100{color:#5a5c66;background-color:#f9faff;border-color:#f6f8ff}body[data-netbox-color-mode=dark] .alert-indigo-100 .alert-link{color:#484a52}body[data-netbox-color-mode=dark] .alert-indigo-200{color:#505466;background-color:#f4f6ff;border-color:#eef2ff}body[data-netbox-color-mode=dark] .alert-indigo-200 .alert-link{color:#404352}body[data-netbox-color-mode=dark] .alert-indigo-300{color:#424865;background-color:#edf0fe;border-color:#e4e9fe}body[data-netbox-color-mode=dark] .alert-indigo-300 .alert-link{color:#353a51}body[data-netbox-color-mode=dark] .alert-indigo-400{color:#4d5495;background-color:#e6e8fe;border-color:#d9ddfd}body[data-netbox-color-mode=dark] .alert-indigo-400 .alert-link{color:#3e4377}body[data-netbox-color-mode=dark] .alert-indigo-500{color:#3b3d91;background-color:#e0e0fc;border-color:#d0d1fb}body[data-netbox-color-mode=dark] .alert-indigo-500 .alert-link{color:#2f3174}body[data-netbox-color-mode=dark] .alert-indigo-600{color:#2f2a89;background-color:#dcdafa;border-color:#cac8f7}body[data-netbox-color-mode=dark] .alert-indigo-600 .alert-link{color:#26226e}body[data-netbox-color-mode=dark] .alert-indigo-700{color:#282279;background-color:#d9d7f4;border-color:#c7c3ef}body[data-netbox-color-mode=dark] .alert-indigo-700 .alert-link{color:#201b61}body[data-netbox-color-mode=dark] .alert-indigo-800{color:#211d62;background-color:#d7d6ed;border-color:#c3c1e3}body[data-netbox-color-mode=dark] .alert-indigo-800 .alert-link{color:#1a174e}body[data-netbox-color-mode=dark] .alert-indigo-900{color:#1d1c4d;background-color:#d6d5e6;border-color:#c1c0d9}body[data-netbox-color-mode=dark] .alert-indigo-900 .alert-link{color:#17163e}body[data-netbox-color-mode=dark] .alert-purple-50{color:#626166;background-color:#fdfdff;border-color:#fcfbff}body[data-netbox-color-mode=dark] .alert-purple-50 .alert-link{color:#4e4e52}body[data-netbox-color-mode=dark] .alert-purple-100{color:#5f5d66;background-color:#fbfbff;border-color:#faf8ff}body[data-netbox-color-mode=dark] .alert-purple-100 .alert-link{color:#4c4a52}body[data-netbox-color-mode=dark] .alert-purple-200{color:#585666;background-color:#f8f7ff;border-color:#f5f3ff}body[data-netbox-color-mode=dark] .alert-purple-200 .alert-link{color:#464552}body[data-netbox-color-mode=dark] .alert-purple-300{color:#4e4865;background-color:#f3f0ff;border-color:#ede9fe}body[data-netbox-color-mode=dark] .alert-purple-300 .alert-link{color:#3e3a51}body[data-netbox-color-mode=dark] .alert-purple-400{color:#645396;background-color:#ede8fe;border-color:#e5dcfe}body[data-netbox-color-mode=dark] .alert-purple-400 .alert-link{color:#504278}body[data-netbox-color-mode=dark] .alert-purple-500{color:#533794;background-color:#e8defd;border-color:#dccefc}body[data-netbox-color-mode=dark] .alert-purple-500 .alert-link{color:#422c76}body[data-netbox-color-mode=dark] .alert-purple-600{color:#4a238e;background-color:#e5d8fb;border-color:#d8c4fa}body[data-netbox-color-mode=dark] .alert-purple-600 .alert-link{color:#3b1c72}body[data-netbox-color-mode=dark] .alert-purple-700{color:#411882;background-color:#e2d4f7;border-color:#d3bff4}body[data-netbox-color-mode=dark] .alert-purple-700 .alert-link{color:#341368}body[data-netbox-color-mode=dark] .alert-purple-800{color:#37146d;background-color:#ded3f0;border-color:#cebce9}body[data-netbox-color-mode=dark] .alert-purple-800 .alert-link{color:#2c1057}body[data-netbox-color-mode=dark] .alert-purple-900{color:#2e1159;background-color:#dbd2ea;border-color:#c9bbdf}body[data-netbox-color-mode=dark] .alert-purple-900 .alert-link{color:#250e47}body[data-netbox-color-mode=dark] .alert-pink-50{color:#656163;background-color:#fffcfe;border-color:#fefbfd}body[data-netbox-color-mode=dark] .alert-pink-50 .alert-link{color:#514e4f}body[data-netbox-color-mode=dark] .alert-pink-100{color:#655c61;background-color:#fefafd;border-color:#fef8fb}body[data-netbox-color-mode=dark] .alert-pink-100 .alert-link{color:#514a4e}body[data-netbox-color-mode=dark] .alert-pink-200{color:#64535d;background-color:#fef5fa;border-color:#fef1f8}body[data-netbox-color-mode=dark] .alert-pink-200 .alert-link{color:#50424a}body[data-netbox-color-mode=dark] .alert-pink-300{color:#644355;background-color:#feeef6;border-color:#fde5f2}body[data-netbox-color-mode=dark] .alert-pink-300 .alert-link{color:#503644}body[data-netbox-color-mode=dark] .alert-pink-400{color:#92446d;background-color:#fde3f0;border-color:#fcd5e9}body[data-netbox-color-mode=dark] .alert-pink-400 .alert-link{color:#753657}body[data-netbox-color-mode=dark] .alert-pink-500{color:#8e2b5c;background-color:#fbdaeb;border-color:#f9c8e0}body[data-netbox-color-mode=dark] .alert-pink-500 .alert-link{color:#72224a}body[data-netbox-color-mode=dark] .alert-pink-600{color:#831747;background-color:#f8d4e4;border-color:#f4bed6}body[data-netbox-color-mode=dark] .alert-pink-600 .alert-link{color:#691239}body[data-netbox-color-mode=dark] .alert-pink-700{color:#720e38;background-color:#f2d1df;border-color:#ecbace}body[data-netbox-color-mode=dark] .alert-pink-700 .alert-link{color:#5b0b2d}body[data-netbox-color-mode=dark] .alert-pink-800{color:#5e0e2e;background-color:#ebd1db;border-color:#e2b9ca}body[data-netbox-color-mode=dark] .alert-pink-800 .alert-link{color:#4b0b25}body[data-netbox-color-mode=dark] .alert-pink-900{color:#4f0e28;background-color:#e6d1d9;border-color:#dabac7}body[data-netbox-color-mode=dark] .alert-pink-900 .alert-link{color:#3f0b20}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}body[data-netbox-color-mode=dark] .progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#4b5563;border-radius:.375rem}body[data-netbox-color-mode=dark] .progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#93c5fd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .progress-bar{transition:none}}body[data-netbox-color-mode=dark] .progress-bar-striped{background-image:linear-gradient(45deg,hsla(0,0%,100%,.15) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,.15) 75%,transparent 0,transparent);background-size:1rem 1rem}body[data-netbox-color-mode=dark] .progress-bar-animated{animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .progress-bar-animated{animation:none}}body[data-netbox-color-mode=dark] .list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.5rem}body[data-netbox-color-mode=dark] .list-group-numbered{list-style-type:none;counter-reset:section}body[data-netbox-color-mode=dark] .list-group-numbered>li:before{content:counters(section,".") ". ";counter-increment:section}body[data-netbox-color-mode=dark] .list-group-item-action{width:100%;color:#d1d5db;text-align:inherit}body[data-netbox-color-mode=dark] .list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-action:hover{z-index:1;color:#fff;text-decoration:none;background-color:rgba(249,250,251,.15)}body[data-netbox-color-mode=dark] .list-group-item-action:active{color:#fff;background-color:rgba(209,213,219,.125)}body[data-netbox-color-mode=dark] .list-group-item{position:relative;display:block;padding:.5rem 1rem;text-decoration:none;background-color:#1f2937;border:1px solid hsla(0,0%,100%,.125)}body[data-netbox-color-mode=dark] .list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}body[data-netbox-color-mode=dark] .list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}body[data-netbox-color-mode=dark] .list-group-item.disabled,body[data-netbox-color-mode=dark] .list-group-item:disabled{color:#4b5563;pointer-events:none;background-color:#1f2937}body[data-netbox-color-mode=dark] .list-group-item.active{z-index:2;color:#fff;background-color:#93c5fd;border-color:#93c5fd}body[data-netbox-color-mode=dark] .list-group-item+body[data-netbox-color-mode=dark] .list-group-item{border-top-width:0}body[data-netbox-color-mode=dark] .list-group-item+body[data-netbox-color-mode=dark] .list-group-item.active{margin-top:-1px;border-top-width:1px}body[data-netbox-color-mode=dark] .list-group-horizontal{flex-direction:row}body[data-netbox-color-mode=dark] .list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.5rem;border-top-right-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.5rem;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal>.list-group-item.active{margin-top:0}body[data-netbox-color-mode=dark] .list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}body[data-netbox-color-mode=dark] .list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){body[data-netbox-color-mode=dark] .list-group-horizontal-sm{flex-direction:row}body[data-netbox-color-mode=dark] .list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.5rem;border-top-right-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.5rem;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-sm>.list-group-item.active{margin-top:0}body[data-netbox-color-mode=dark] .list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}body[data-netbox-color-mode=dark] .list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){body[data-netbox-color-mode=dark] .list-group-horizontal-md{flex-direction:row}body[data-netbox-color-mode=dark] .list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.5rem;border-top-right-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.5rem;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-md>.list-group-item.active{margin-top:0}body[data-netbox-color-mode=dark] .list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}body[data-netbox-color-mode=dark] .list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){body[data-netbox-color-mode=dark] .list-group-horizontal-lg{flex-direction:row}body[data-netbox-color-mode=dark] .list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.5rem;border-top-right-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.5rem;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-lg>.list-group-item.active{margin-top:0}body[data-netbox-color-mode=dark] .list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}body[data-netbox-color-mode=dark] .list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .list-group-horizontal-xl{flex-direction:row}body[data-netbox-color-mode=dark] .list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.5rem;border-top-right-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.5rem;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xl>.list-group-item.active{margin-top:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){body[data-netbox-color-mode=dark] .list-group-horizontal-xxl{flex-direction:row}body[data-netbox-color-mode=dark] .list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.5rem;border-top-right-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.5rem;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xxl>.list-group-item.active{margin-top:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}body[data-netbox-color-mode=dark] .list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}body[data-netbox-color-mode=dark] .list-group-flush{border-radius:0}body[data-netbox-color-mode=dark] .list-group-flush>.list-group-item{border-width:0 0 1px}body[data-netbox-color-mode=dark] .list-group-flush>.list-group-item:last-child{border-bottom-width:0}body[data-netbox-color-mode=dark] .list-group-item-primary{color:#3b4f65;background-color:#e9f3ff}body[data-netbox-color-mode=dark] .list-group-item-primary.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-primary.list-group-item-action:hover{color:#3b4f65;background-color:#d2dbe6}body[data-netbox-color-mode=dark] .list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#3b4f65;border-color:#3b4f65}body[data-netbox-color-mode=dark] .list-group-item-secondary{color:#5e6269;background-color:#ebedef}body[data-netbox-color-mode=dark] .list-group-item-secondary.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-secondary.list-group-item-action:hover{color:#5e6269;background-color:#d4d5d7}body[data-netbox-color-mode=dark] .list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#5e6269;border-color:#5e6269}body[data-netbox-color-mode=dark] .list-group-item-success{color:#2c5c49;background-color:#e2faf1}body[data-netbox-color-mode=dark] .list-group-item-success.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-success.list-group-item-action:hover{color:#2c5c49;background-color:#cbe1d9}body[data-netbox-color-mode=dark] .list-group-item-success.list-group-item-action.active{color:#fff;background-color:#2c5c49;border-color:#2c5c49}body[data-netbox-color-mode=dark] .list-group-item-info{color:#295d64;background-color:#e1fafe}body[data-netbox-color-mode=dark] .list-group-item-info.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-info.list-group-item-action:hover{color:#295d64;background-color:#cbe1e5}body[data-netbox-color-mode=dark] .list-group-item-info.list-group-item-action.active{color:#fff;background-color:#295d64;border-color:#295d64}body[data-netbox-color-mode=dark] .list-group-item-warning{color:#65541f;background-color:#fef6db}body[data-netbox-color-mode=dark] .list-group-item-warning.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-warning.list-group-item-action:hover{color:#65541f;background-color:#e5ddc5}body[data-netbox-color-mode=dark] .list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#65541f;border-color:#65541f}body[data-netbox-color-mode=dark] .list-group-item-danger{color:#654242;background-color:#feeded}body[data-netbox-color-mode=dark] .list-group-item-danger.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-danger.list-group-item-action:hover{color:#654242;background-color:#e5d5d5}body[data-netbox-color-mode=dark] .list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#654242;border-color:#654242}body[data-netbox-color-mode=dark] .list-group-item-light{color:#545558;background-color:#f6f7f8}body[data-netbox-color-mode=dark] .list-group-item-light.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-light.list-group-item-action:hover{color:#545558;background-color:#dddedf}body[data-netbox-color-mode=dark] .list-group-item-light.list-group-item-action.active{color:#fff;background-color:#545558;border-color:#545558}body[data-netbox-color-mode=dark] .list-group-item-dark{color:#5e6269;background-color:#ebedef}body[data-netbox-color-mode=dark] .list-group-item-dark.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-dark.list-group-item-action:hover{color:#5e6269;background-color:#d4d5d7}body[data-netbox-color-mode=dark] .list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#5e6269;border-color:#5e6269}body[data-netbox-color-mode=dark] .list-group-item-alt{color:#0b1925;background-color:#d0d4d8}body[data-netbox-color-mode=dark] .list-group-item-alt.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-alt.list-group-item-action:hover{color:#0b1925;background-color:#bbbfc2}body[data-netbox-color-mode=dark] .list-group-item-alt.list-group-item-action.active{color:#fff;background-color:#0b1925;border-color:#0b1925}body[data-netbox-color-mode=dark] .list-group-item-gray{color:#5e6269;background-color:#ebedef}body[data-netbox-color-mode=dark] .list-group-item-gray.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray.list-group-item-action:hover{color:#5e6269;background-color:#d4d5d7}body[data-netbox-color-mode=dark] .list-group-item-gray.list-group-item-action.active{color:#fff;background-color:#5e6269;border-color:#5e6269}body[data-netbox-color-mode=dark] .list-group-item-darker{color:#010101;background-color:#ccc}body[data-netbox-color-mode=dark] .list-group-item-darker.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-darker.list-group-item-action:hover{color:#010101;background-color:#b8b8b8}body[data-netbox-color-mode=dark] .list-group-item-darker.list-group-item-action.active{color:#fff;background-color:#010101;border-color:#010101}body[data-netbox-color-mode=dark] .list-group-item-gray-50{color:#646464;background-color:#fefefe}body[data-netbox-color-mode=dark] .list-group-item-gray-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-50.list-group-item-action:hover{color:#646464;background-color:#e5e5e5}body[data-netbox-color-mode=dark] .list-group-item-gray-50.list-group-item-action.active{color:#fff;background-color:#646464;border-color:#646464}body[data-netbox-color-mode=dark] .list-group-item-gray-100{color:#616262;background-color:#fdfdfd}body[data-netbox-color-mode=dark] .list-group-item-gray-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-100.list-group-item-action:hover{color:#616262;background-color:#e4e4e4}body[data-netbox-color-mode=dark] .list-group-item-gray-100.list-group-item-action.active{color:#fff;background-color:#616262;border-color:#616262}body[data-netbox-color-mode=dark] .list-group-item-gray-200{color:#5c5c5e;background-color:#fafafb}body[data-netbox-color-mode=dark] .list-group-item-gray-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-200.list-group-item-action:hover{color:#5c5c5e;background-color:#e1e1e2}body[data-netbox-color-mode=dark] .list-group-item-gray-200.list-group-item-action.active{color:#fff;background-color:#5c5c5e;border-color:#5c5c5e}body[data-netbox-color-mode=dark] .list-group-item-gray-300{color:#545558;background-color:#f6f7f8}body[data-netbox-color-mode=dark] .list-group-item-gray-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-300.list-group-item-action:hover{color:#545558;background-color:#dddedf}body[data-netbox-color-mode=dark] .list-group-item-gray-300.list-group-item-action.active{color:#fff;background-color:#545558;border-color:#545558}body[data-netbox-color-mode=dark] .list-group-item-gray-400{color:#5e6269;background-color:#ebedef}body[data-netbox-color-mode=dark] .list-group-item-gray-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-400.list-group-item-action:hover{color:#5e6269;background-color:#d4d5d7}body[data-netbox-color-mode=dark] .list-group-item-gray-400.list-group-item-action.active{color:#fff;background-color:#5e6269;border-color:#5e6269}body[data-netbox-color-mode=dark] .list-group-item-gray-500{color:#40444d;background-color:#e1e3e6}body[data-netbox-color-mode=dark] .list-group-item-gray-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-500.list-group-item-action:hover{color:#40444d;background-color:#cbcccf}body[data-netbox-color-mode=dark] .list-group-item-gray-500.list-group-item-action.active{color:#fff;background-color:#40444d;border-color:#40444d}body[data-netbox-color-mode=dark] .list-group-item-gray-600{color:#2d333b;background-color:#dbdde0}body[data-netbox-color-mode=dark] .list-group-item-gray-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-600.list-group-item-action:hover{color:#2d333b;background-color:#c5c7ca}body[data-netbox-color-mode=dark] .list-group-item-gray-600.list-group-item-action.active{color:#fff;background-color:#2d333b;border-color:#2d333b}body[data-netbox-color-mode=dark] .list-group-item-gray-700{color:#212731;background-color:#d7d9dc}body[data-netbox-color-mode=dark] .list-group-item-gray-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-700.list-group-item-action:hover{color:#212731;background-color:#c2c3c6}body[data-netbox-color-mode=dark] .list-group-item-gray-700.list-group-item-action.active{color:#fff;background-color:#212731;border-color:#212731}body[data-netbox-color-mode=dark] .list-group-item-gray-800{color:#131921;background-color:#d2d4d7}body[data-netbox-color-mode=dark] .list-group-item-gray-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-800.list-group-item-action:hover{color:#131921;background-color:#bdbfc2}body[data-netbox-color-mode=dark] .list-group-item-gray-800.list-group-item-action.active{color:#fff;background-color:#131921;border-color:#131921}body[data-netbox-color-mode=dark] .list-group-item-gray-900{color:#0a0e17;background-color:#cfd1d4}body[data-netbox-color-mode=dark] .list-group-item-gray-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-gray-900.list-group-item-action:hover{color:#0a0e17;background-color:#babcbf}body[data-netbox-color-mode=dark] .list-group-item-gray-900.list-group-item-action.active{color:#fff;background-color:#0a0e17;border-color:#0a0e17}body[data-netbox-color-mode=dark] .list-group-item-red-50{color:#666161;background-color:#fffcfc}body[data-netbox-color-mode=dark] .list-group-item-red-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-50.list-group-item-action:hover{color:#666161;background-color:#e6e3e3}body[data-netbox-color-mode=dark] .list-group-item-red-50.list-group-item-action.active{color:#fff;background-color:#666161;border-color:#666161}body[data-netbox-color-mode=dark] .list-group-item-red-100{color:#665a5a;background-color:#fff9f9}body[data-netbox-color-mode=dark] .list-group-item-red-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-100.list-group-item-action:hover{color:#665a5a;background-color:#e6e0e0}body[data-netbox-color-mode=dark] .list-group-item-red-100.list-group-item-action.active{color:#fff;background-color:#665a5a;border-color:#665a5a}body[data-netbox-color-mode=dark] .list-group-item-red-200{color:#665151;background-color:#fff4f4}body[data-netbox-color-mode=dark] .list-group-item-red-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-200.list-group-item-action:hover{color:#665151;background-color:#e6dcdc}body[data-netbox-color-mode=dark] .list-group-item-red-200.list-group-item-action.active{color:#fff;background-color:#665151;border-color:#665151}body[data-netbox-color-mode=dark] .list-group-item-red-300{color:#654242;background-color:#feeded}body[data-netbox-color-mode=dark] .list-group-item-red-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-300.list-group-item-action:hover{color:#654242;background-color:#e5d5d5}body[data-netbox-color-mode=dark] .list-group-item-red-300.list-group-item-action.active{color:#fff;background-color:#654242;border-color:#654242}body[data-netbox-color-mode=dark] .list-group-item-red-400{color:#954444;background-color:#fee3e3}body[data-netbox-color-mode=dark] .list-group-item-red-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-400.list-group-item-action:hover{color:#954444;background-color:#e5cccc}body[data-netbox-color-mode=dark] .list-group-item-red-400.list-group-item-action.active{color:#fff;background-color:#954444;border-color:#954444}body[data-netbox-color-mode=dark] .list-group-item-red-500{color:#8f2929;background-color:#fcdada}body[data-netbox-color-mode=dark] .list-group-item-red-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-500.list-group-item-action:hover{color:#8f2929;background-color:#e3c4c4}body[data-netbox-color-mode=dark] .list-group-item-red-500.list-group-item-action.active{color:#fff;background-color:#8f2929;border-color:#8f2929}body[data-netbox-color-mode=dark] .list-group-item-red-600{color:#841717;background-color:#f8d4d4}body[data-netbox-color-mode=dark] .list-group-item-red-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-600.list-group-item-action:hover{color:#841717;background-color:#dfbfbf}body[data-netbox-color-mode=dark] .list-group-item-red-600.list-group-item-action.active{color:#fff;background-color:#841717;border-color:#841717}body[data-netbox-color-mode=dark] .list-group-item-red-700{color:#6f1111;background-color:#f1d2d2}body[data-netbox-color-mode=dark] .list-group-item-red-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-700.list-group-item-action:hover{color:#6f1111;background-color:#d9bdbd}body[data-netbox-color-mode=dark] .list-group-item-red-700.list-group-item-action.active{color:#fff;background-color:#6f1111;border-color:#6f1111}body[data-netbox-color-mode=dark] .list-group-item-red-800{color:#5c1010;background-color:#ebd1d1}body[data-netbox-color-mode=dark] .list-group-item-red-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-800.list-group-item-action:hover{color:#5c1010;background-color:#d4bcbc}body[data-netbox-color-mode=dark] .list-group-item-red-800.list-group-item-action.active{color:#fff;background-color:#5c1010;border-color:#5c1010}body[data-netbox-color-mode=dark] .list-group-item-red-900{color:#4c1111;background-color:#e5d2d2}body[data-netbox-color-mode=dark] .list-group-item-red-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-red-900.list-group-item-action:hover{color:#4c1111;background-color:#cebdbd}body[data-netbox-color-mode=dark] .list-group-item-red-900.list-group-item-action.active{color:#fff;background-color:#4c1111;border-color:#4c1111}body[data-netbox-color-mode=dark] .list-group-item-yellow-50{color:#66645e;background-color:#fffefb}body[data-netbox-color-mode=dark] .list-group-item-yellow-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-50.list-group-item-action:hover{color:#66645e;background-color:#e6e5e2}body[data-netbox-color-mode=dark] .list-group-item-yellow-50.list-group-item-action.active{color:#fff;background-color:#66645e;border-color:#66645e}body[data-netbox-color-mode=dark] .list-group-item-yellow-100{color:#666150;background-color:#fffdf4}body[data-netbox-color-mode=dark] .list-group-item-yellow-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-100.list-group-item-action:hover{color:#666150;background-color:#e6e4dc}body[data-netbox-color-mode=dark] .list-group-item-yellow-100.list-group-item-action.active{color:#fff;background-color:#666150;border-color:#666150}body[data-netbox-color-mode=dark] .list-group-item-yellow-200{color:#655c37;background-color:#fffae8}body[data-netbox-color-mode=dark] .list-group-item-yellow-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-200.list-group-item-action:hover{color:#655c37;background-color:#e6e1d1}body[data-netbox-color-mode=dark] .list-group-item-yellow-200.list-group-item-action.active{color:#fff;background-color:#655c37;border-color:#655c37}body[data-netbox-color-mode=dark] .list-group-item-yellow-300{color:#65541f;background-color:#fef6db}body[data-netbox-color-mode=dark] .list-group-item-yellow-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-300.list-group-item-action:hover{color:#65541f;background-color:#e5ddc5}body[data-netbox-color-mode=dark] .list-group-item-yellow-300.list-group-item-action.active{color:#fff;background-color:#65541f;border-color:#65541f}body[data-netbox-color-mode=dark] .list-group-item-yellow-400{color:#644c0e;background-color:#fef2d3}body[data-netbox-color-mode=dark] .list-group-item-yellow-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-400.list-group-item-action:hover{color:#644c0e;background-color:#e5dabe}body[data-netbox-color-mode=dark] .list-group-item-yellow-400.list-group-item-action.active{color:#fff;background-color:#644c0e;border-color:#644c0e}body[data-netbox-color-mode=dark] .list-group-item-yellow-500{color:#935f07;background-color:#fdecce}body[data-netbox-color-mode=dark] .list-group-item-yellow-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-500.list-group-item-action:hover{color:#935f07;background-color:#e4d4b9}body[data-netbox-color-mode=dark] .list-group-item-yellow-500.list-group-item-action.active{color:#fff;background-color:#935f07;border-color:#935f07}body[data-netbox-color-mode=dark] .list-group-item-yellow-600{color:#824704;background-color:#f7e4cd}body[data-netbox-color-mode=dark] .list-group-item-yellow-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-600.list-group-item-action:hover{color:#824704;background-color:#decdb9}body[data-netbox-color-mode=dark] .list-group-item-yellow-600.list-group-item-action.active{color:#fff;background-color:#824704;border-color:#824704}body[data-netbox-color-mode=dark] .list-group-item-yellow-700{color:#6c3205;background-color:#f0ddce}body[data-netbox-color-mode=dark] .list-group-item-yellow-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-700.list-group-item-action:hover{color:#6c3205;background-color:#d8c7b9}body[data-netbox-color-mode=dark] .list-group-item-yellow-700.list-group-item-action.active{color:#fff;background-color:#6c3205;border-color:#6c3205}body[data-netbox-color-mode=dark] .list-group-item-yellow-800{color:#582608;background-color:#e9d9cf}body[data-netbox-color-mode=dark] .list-group-item-yellow-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-800.list-group-item-action:hover{color:#582608;background-color:#d2c3ba}body[data-netbox-color-mode=dark] .list-group-item-yellow-800.list-group-item-action.active{color:#fff;background-color:#582608;border-color:#582608}body[data-netbox-color-mode=dark] .list-group-item-yellow-900{color:#482009;background-color:#e4d7cf}body[data-netbox-color-mode=dark] .list-group-item-yellow-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-yellow-900.list-group-item-action:hover{color:#482009;background-color:#cdc2ba}body[data-netbox-color-mode=dark] .list-group-item-yellow-900.list-group-item-action.active{color:#fff;background-color:#482009;border-color:#482009}body[data-netbox-color-mode=dark] .list-group-item-green-50{color:#5e6562;background-color:#fbfffd}body[data-netbox-color-mode=dark] .list-group-item-green-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-50.list-group-item-action:hover{color:#5e6562;background-color:#e2e6e4}body[data-netbox-color-mode=dark] .list-group-item-green-50.list-group-item-action.active{color:#fff;background-color:#5e6562;border-color:#5e6562}body[data-netbox-color-mode=dark] .list-group-item-green-100{color:#54645c;background-color:#f6fefa}body[data-netbox-color-mode=dark] .list-group-item-green-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-100.list-group-item-action:hover{color:#54645c;background-color:#dde5e1}body[data-netbox-color-mode=dark] .list-group-item-green-100.list-group-item-action.active{color:#fff;background-color:#54645c;border-color:#54645c}body[data-netbox-color-mode=dark] .list-group-item-green-200{color:#436153;background-color:#edfdf6}body[data-netbox-color-mode=dark] .list-group-item-green-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-200.list-group-item-action:hover{color:#436153;background-color:#d5e4dd}body[data-netbox-color-mode=dark] .list-group-item-green-200.list-group-item-action.active{color:#fff;background-color:#436153;border-color:#436153}body[data-netbox-color-mode=dark] .list-group-item-green-300{color:#2c5c49;background-color:#e2faf1}body[data-netbox-color-mode=dark] .list-group-item-green-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-300.list-group-item-action:hover{color:#2c5c49;background-color:#cbe1d9}body[data-netbox-color-mode=dark] .list-group-item-green-300.list-group-item-action.active{color:#fff;background-color:#2c5c49;border-color:#2c5c49}body[data-netbox-color-mode=dark] .list-group-item-green-400{color:#15543d;background-color:#d6f6eb}body[data-netbox-color-mode=dark] .list-group-item-green-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-400.list-group-item-action:hover{color:#15543d;background-color:#c1ddd4}body[data-netbox-color-mode=dark] .list-group-item-green-400.list-group-item-action.active{color:#fff;background-color:#15543d;border-color:#15543d}body[data-netbox-color-mode=dark] .list-group-item-green-500{color:#0a6f4d;background-color:#cff1e6}body[data-netbox-color-mode=dark] .list-group-item-green-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-500.list-group-item-action:hover{color:#0a6f4d;background-color:#bad9cf}body[data-netbox-color-mode=dark] .list-group-item-green-500.list-group-item-action.active{color:#fff;background-color:#0a6f4d;border-color:#0a6f4d}body[data-netbox-color-mode=dark] .list-group-item-green-600{color:#035a3f;background-color:#cdeae1}body[data-netbox-color-mode=dark] .list-group-item-green-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-600.list-group-item-action:hover{color:#035a3f;background-color:#b9d3cb}body[data-netbox-color-mode=dark] .list-group-item-green-600.list-group-item-action.active{color:#fff;background-color:#035a3f;border-color:#035a3f}body[data-netbox-color-mode=dark] .list-group-item-green-700{color:#024834;background-color:#cde4dd}body[data-netbox-color-mode=dark] .list-group-item-green-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-700.list-group-item-action:hover{color:#024834;background-color:#b9cdc7}body[data-netbox-color-mode=dark] .list-group-item-green-700.list-group-item-action.active{color:#fff;background-color:#024834;border-color:#024834}body[data-netbox-color-mode=dark] .list-group-item-green-800{color:#04392a;background-color:#cddfda}body[data-netbox-color-mode=dark] .list-group-item-green-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-800.list-group-item-action:hover{color:#04392a;background-color:#b9c9c4}body[data-netbox-color-mode=dark] .list-group-item-green-800.list-group-item-action.active{color:#fff;background-color:#04392a;border-color:#04392a}body[data-netbox-color-mode=dark] .list-group-item-green-900{color:#042f23;background-color:#cddcd8}body[data-netbox-color-mode=dark] .list-group-item-green-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-green-900.list-group-item-action:hover{color:#042f23;background-color:#b9c6c2}body[data-netbox-color-mode=dark] .list-group-item-green-900.list-group-item-action.active{color:#fff;background-color:#042f23;border-color:#042f23}body[data-netbox-color-mode=dark] .list-group-item-blue-50{color:#606266;background-color:#fcfdff}body[data-netbox-color-mode=dark] .list-group-item-blue-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-50.list-group-item-action:hover{color:#606266;background-color:#e3e4e6}body[data-netbox-color-mode=dark] .list-group-item-blue-50.list-group-item-action.active{color:#fff;background-color:#606266;border-color:#606266}body[data-netbox-color-mode=dark] .list-group-item-blue-100{color:#585e66;background-color:#f8fbff}body[data-netbox-color-mode=dark] .list-group-item-blue-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-100.list-group-item-action:hover{color:#585e66;background-color:#dfe2e6}body[data-netbox-color-mode=dark] .list-group-item-blue-100.list-group-item-action.active{color:#fff;background-color:#585e66;border-color:#585e66}body[data-netbox-color-mode=dark] .list-group-item-blue-200{color:#4c5866;background-color:#f2f8ff}body[data-netbox-color-mode=dark] .list-group-item-blue-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-200.list-group-item-action:hover{color:#4c5866;background-color:#dadfe6}body[data-netbox-color-mode=dark] .list-group-item-blue-200.list-group-item-action.active{color:#fff;background-color:#4c5866;border-color:#4c5866}body[data-netbox-color-mode=dark] .list-group-item-blue-300{color:#3b4f65;background-color:#e9f3ff}body[data-netbox-color-mode=dark] .list-group-item-blue-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-300.list-group-item-action:hover{color:#3b4f65;background-color:#d2dbe6}body[data-netbox-color-mode=dark] .list-group-item-blue-300.list-group-item-action.active{color:#fff;background-color:#3b4f65;border-color:#3b4f65}body[data-netbox-color-mode=dark] .list-group-item-blue-400{color:#3a6396;background-color:#dfedfe}body[data-netbox-color-mode=dark] .list-group-item-blue-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-400.list-group-item-action:hover{color:#3a6396;background-color:#c9d5e5}body[data-netbox-color-mode=dark] .list-group-item-blue-400.list-group-item-action.active{color:#fff;background-color:#3a6396;border-color:#3a6396}body[data-netbox-color-mode=dark] .list-group-item-blue-500{color:#234e94;background-color:#d8e6fd}body[data-netbox-color-mode=dark] .list-group-item-blue-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-500.list-group-item-action:hover{color:#234e94;background-color:#c2cfe4}body[data-netbox-color-mode=dark] .list-group-item-blue-500.list-group-item-action.active{color:#fff;background-color:#234e94;border-color:#234e94}body[data-netbox-color-mode=dark] .list-group-item-blue-600{color:#163b8d;background-color:#d3e0fb}body[data-netbox-color-mode=dark] .list-group-item-blue-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-600.list-group-item-action:hover{color:#163b8d;background-color:#becae2}body[data-netbox-color-mode=dark] .list-group-item-blue-600.list-group-item-action.active{color:#fff;background-color:#163b8d;border-color:#163b8d}body[data-netbox-color-mode=dark] .list-group-item-blue-700{color:#112f82;background-color:#d2dcf7}body[data-netbox-color-mode=dark] .list-group-item-blue-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-700.list-group-item-action:hover{color:#112f82;background-color:#bdc6de}body[data-netbox-color-mode=dark] .list-group-item-blue-700.list-group-item-action.active{color:#fff;background-color:#112f82;border-color:#112f82}body[data-netbox-color-mode=dark] .list-group-item-blue-800{color:#122669;background-color:#d2d9ef}body[data-netbox-color-mode=dark] .list-group-item-blue-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-800.list-group-item-action:hover{color:#122669;background-color:#bdc3d7}body[data-netbox-color-mode=dark] .list-group-item-blue-800.list-group-item-action.active{color:#fff;background-color:#122669;border-color:#122669}body[data-netbox-color-mode=dark] .list-group-item-blue-900{color:#122353;background-color:#d2d8e8}body[data-netbox-color-mode=dark] .list-group-item-blue-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-blue-900.list-group-item-action:hover{color:#122353;background-color:#bdc2d1}body[data-netbox-color-mode=dark] .list-group-item-blue-900.list-group-item-action.active{color:#fff;background-color:#122353;border-color:#122353}body[data-netbox-color-mode=dark] .list-group-item-cyan-50{color:#5e6666;background-color:#fbffff}body[data-netbox-color-mode=dark] .list-group-item-cyan-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-50.list-group-item-action:hover{color:#5e6666;background-color:#e2e6e6}body[data-netbox-color-mode=dark] .list-group-item-cyan-50.list-group-item-action.active{color:#fff;background-color:#5e6666;border-color:#5e6666}body[data-netbox-color-mode=dark] .list-group-item-cyan-100{color:#536466;background-color:#f5feff}body[data-netbox-color-mode=dark] .list-group-item-cyan-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-100.list-group-item-action:hover{color:#536466;background-color:#dde5e6}body[data-netbox-color-mode=dark] .list-group-item-cyan-100.list-group-item-action.active{color:#fff;background-color:#536466;border-color:#536466}body[data-netbox-color-mode=dark] .list-group-item-cyan-200{color:#426165;background-color:#edfdfe}body[data-netbox-color-mode=dark] .list-group-item-cyan-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-200.list-group-item-action:hover{color:#426165;background-color:#d5e4e5}body[data-netbox-color-mode=dark] .list-group-item-cyan-200.list-group-item-action.active{color:#fff;background-color:#426165;border-color:#426165}body[data-netbox-color-mode=dark] .list-group-item-cyan-300{color:#295d64;background-color:#e1fafe}body[data-netbox-color-mode=dark] .list-group-item-cyan-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-300.list-group-item-action:hover{color:#295d64;background-color:#cbe1e5}body[data-netbox-color-mode=dark] .list-group-item-cyan-300.list-group-item-action.active{color:#fff;background-color:#295d64;border-color:#295d64}body[data-netbox-color-mode=dark] .list-group-item-cyan-400{color:#0e545f;background-color:#d3f6fc}body[data-netbox-color-mode=dark] .list-group-item-cyan-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-400.list-group-item-action:hover{color:#0e545f;background-color:#bedde3}body[data-netbox-color-mode=dark] .list-group-item-cyan-400.list-group-item-action.active{color:#fff;background-color:#0e545f;border-color:#0e545f}body[data-netbox-color-mode=dark] .list-group-item-cyan-500{color:#046d7f;background-color:#cdf0f6}body[data-netbox-color-mode=dark] .list-group-item-cyan-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-500.list-group-item-action:hover{color:#046d7f;background-color:#b9d8dd}body[data-netbox-color-mode=dark] .list-group-item-cyan-500.list-group-item-action.active{color:#fff;background-color:#046d7f;border-color:#046d7f}body[data-netbox-color-mode=dark] .list-group-item-cyan-600{color:#05576b;background-color:#cee9f0}body[data-netbox-color-mode=dark] .list-group-item-cyan-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-600.list-group-item-action:hover{color:#05576b;background-color:#b9d2d8}body[data-netbox-color-mode=dark] .list-group-item-cyan-600.list-group-item-action.active{color:#fff;background-color:#05576b;border-color:#05576b}body[data-netbox-color-mode=dark] .list-group-item-cyan-700{color:#084656;background-color:#cfe3e9}body[data-netbox-color-mode=dark] .list-group-item-cyan-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-700.list-group-item-action:hover{color:#084656;background-color:#baccd2}body[data-netbox-color-mode=dark] .list-group-item-cyan-700.list-group-item-action.active{color:#fff;background-color:#084656;border-color:#084656}body[data-netbox-color-mode=dark] .list-group-item-cyan-800{color:#0d3846;background-color:#d0dfe3}body[data-netbox-color-mode=dark] .list-group-item-cyan-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-800.list-group-item-action:hover{color:#0d3846;background-color:#bbc9cc}body[data-netbox-color-mode=dark] .list-group-item-cyan-800.list-group-item-action.active{color:#fff;background-color:#0d3846;border-color:#0d3846}body[data-netbox-color-mode=dark] .list-group-item-cyan-900{color:#0d2f3b;background-color:#d0dce0}body[data-netbox-color-mode=dark] .list-group-item-cyan-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-cyan-900.list-group-item-action:hover{color:#0d2f3b;background-color:#bbc6ca}body[data-netbox-color-mode=dark] .list-group-item-cyan-900.list-group-item-action.active{color:#fff;background-color:#0d2f3b;border-color:#0d2f3b}body[data-netbox-color-mode=dark] .list-group-item-indigo-50{color:#5f6166;background-color:#fcfcff}body[data-netbox-color-mode=dark] .list-group-item-indigo-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-50.list-group-item-action:hover{color:#5f6166;background-color:#e3e3e6}body[data-netbox-color-mode=dark] .list-group-item-indigo-50.list-group-item-action.active{color:#fff;background-color:#5f6166;border-color:#5f6166}body[data-netbox-color-mode=dark] .list-group-item-indigo-100{color:#5a5c66;background-color:#f9faff}body[data-netbox-color-mode=dark] .list-group-item-indigo-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-100.list-group-item-action:hover{color:#5a5c66;background-color:#e0e1e6}body[data-netbox-color-mode=dark] .list-group-item-indigo-100.list-group-item-action.active{color:#fff;background-color:#5a5c66;border-color:#5a5c66}body[data-netbox-color-mode=dark] .list-group-item-indigo-200{color:#505466;background-color:#f4f6ff}body[data-netbox-color-mode=dark] .list-group-item-indigo-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-200.list-group-item-action:hover{color:#505466;background-color:#dcdde6}body[data-netbox-color-mode=dark] .list-group-item-indigo-200.list-group-item-action.active{color:#fff;background-color:#505466;border-color:#505466}body[data-netbox-color-mode=dark] .list-group-item-indigo-300{color:#424865;background-color:#edf0fe}body[data-netbox-color-mode=dark] .list-group-item-indigo-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-300.list-group-item-action:hover{color:#424865;background-color:#d5d8e5}body[data-netbox-color-mode=dark] .list-group-item-indigo-300.list-group-item-action.active{color:#fff;background-color:#424865;border-color:#424865}body[data-netbox-color-mode=dark] .list-group-item-indigo-400{color:#4d5495;background-color:#e6e8fe}body[data-netbox-color-mode=dark] .list-group-item-indigo-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-400.list-group-item-action:hover{color:#4d5495;background-color:#cfd1e5}body[data-netbox-color-mode=dark] .list-group-item-indigo-400.list-group-item-action.active{color:#fff;background-color:#4d5495;border-color:#4d5495}body[data-netbox-color-mode=dark] .list-group-item-indigo-500{color:#3b3d91;background-color:#e0e0fc}body[data-netbox-color-mode=dark] .list-group-item-indigo-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-500.list-group-item-action:hover{color:#3b3d91;background-color:#cacae3}body[data-netbox-color-mode=dark] .list-group-item-indigo-500.list-group-item-action.active{color:#fff;background-color:#3b3d91;border-color:#3b3d91}body[data-netbox-color-mode=dark] .list-group-item-indigo-600{color:#2f2a89;background-color:#dcdafa}body[data-netbox-color-mode=dark] .list-group-item-indigo-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-600.list-group-item-action:hover{color:#2f2a89;background-color:#c6c4e1}body[data-netbox-color-mode=dark] .list-group-item-indigo-600.list-group-item-action.active{color:#fff;background-color:#2f2a89;border-color:#2f2a89}body[data-netbox-color-mode=dark] .list-group-item-indigo-700{color:#282279;background-color:#d9d7f4}body[data-netbox-color-mode=dark] .list-group-item-indigo-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-700.list-group-item-action:hover{color:#282279;background-color:#c3c2dc}body[data-netbox-color-mode=dark] .list-group-item-indigo-700.list-group-item-action.active{color:#fff;background-color:#282279;border-color:#282279}body[data-netbox-color-mode=dark] .list-group-item-indigo-800{color:#211d62;background-color:#d7d6ed}body[data-netbox-color-mode=dark] .list-group-item-indigo-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-800.list-group-item-action:hover{color:#211d62;background-color:#c2c1d5}body[data-netbox-color-mode=dark] .list-group-item-indigo-800.list-group-item-action.active{color:#fff;background-color:#211d62;border-color:#211d62}body[data-netbox-color-mode=dark] .list-group-item-indigo-900{color:#1d1c4d;background-color:#d6d5e6}body[data-netbox-color-mode=dark] .list-group-item-indigo-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-indigo-900.list-group-item-action:hover{color:#1d1c4d;background-color:#c1c0cf}body[data-netbox-color-mode=dark] .list-group-item-indigo-900.list-group-item-action.active{color:#fff;background-color:#1d1c4d;border-color:#1d1c4d}body[data-netbox-color-mode=dark] .list-group-item-purple-50{color:#626166;background-color:#fdfdff}body[data-netbox-color-mode=dark] .list-group-item-purple-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-50.list-group-item-action:hover{color:#626166;background-color:#e4e4e6}body[data-netbox-color-mode=dark] .list-group-item-purple-50.list-group-item-action.active{color:#fff;background-color:#626166;border-color:#626166}body[data-netbox-color-mode=dark] .list-group-item-purple-100{color:#5f5d66;background-color:#fbfbff}body[data-netbox-color-mode=dark] .list-group-item-purple-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-100.list-group-item-action:hover{color:#5f5d66;background-color:#e2e2e6}body[data-netbox-color-mode=dark] .list-group-item-purple-100.list-group-item-action.active{color:#fff;background-color:#5f5d66;border-color:#5f5d66}body[data-netbox-color-mode=dark] .list-group-item-purple-200{color:#585666;background-color:#f8f7ff}body[data-netbox-color-mode=dark] .list-group-item-purple-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-200.list-group-item-action:hover{color:#585666;background-color:#dfdee6}body[data-netbox-color-mode=dark] .list-group-item-purple-200.list-group-item-action.active{color:#fff;background-color:#585666;border-color:#585666}body[data-netbox-color-mode=dark] .list-group-item-purple-300{color:#4e4865;background-color:#f3f0ff}body[data-netbox-color-mode=dark] .list-group-item-purple-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-300.list-group-item-action:hover{color:#4e4865;background-color:#dbd8e6}body[data-netbox-color-mode=dark] .list-group-item-purple-300.list-group-item-action.active{color:#fff;background-color:#4e4865;border-color:#4e4865}body[data-netbox-color-mode=dark] .list-group-item-purple-400{color:#645396;background-color:#ede8fe}body[data-netbox-color-mode=dark] .list-group-item-purple-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-400.list-group-item-action:hover{color:#645396;background-color:#d5d1e5}body[data-netbox-color-mode=dark] .list-group-item-purple-400.list-group-item-action.active{color:#fff;background-color:#645396;border-color:#645396}body[data-netbox-color-mode=dark] .list-group-item-purple-500{color:#533794;background-color:#e8defd}body[data-netbox-color-mode=dark] .list-group-item-purple-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-500.list-group-item-action:hover{color:#533794;background-color:#d1c8e4}body[data-netbox-color-mode=dark] .list-group-item-purple-500.list-group-item-action.active{color:#fff;background-color:#533794;border-color:#533794}body[data-netbox-color-mode=dark] .list-group-item-purple-600{color:#4a238e;background-color:#e5d8fb}body[data-netbox-color-mode=dark] .list-group-item-purple-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-600.list-group-item-action:hover{color:#4a238e;background-color:#cec2e2}body[data-netbox-color-mode=dark] .list-group-item-purple-600.list-group-item-action.active{color:#fff;background-color:#4a238e;border-color:#4a238e}body[data-netbox-color-mode=dark] .list-group-item-purple-700{color:#411882;background-color:#e2d4f7}body[data-netbox-color-mode=dark] .list-group-item-purple-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-700.list-group-item-action:hover{color:#411882;background-color:#cbbfde}body[data-netbox-color-mode=dark] .list-group-item-purple-700.list-group-item-action.active{color:#fff;background-color:#411882;border-color:#411882}body[data-netbox-color-mode=dark] .list-group-item-purple-800{color:#37146d;background-color:#ded3f0}body[data-netbox-color-mode=dark] .list-group-item-purple-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-800.list-group-item-action:hover{color:#37146d;background-color:#c8bed8}body[data-netbox-color-mode=dark] .list-group-item-purple-800.list-group-item-action.active{color:#fff;background-color:#37146d;border-color:#37146d}body[data-netbox-color-mode=dark] .list-group-item-purple-900{color:#2e1159;background-color:#dbd2ea}body[data-netbox-color-mode=dark] .list-group-item-purple-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-purple-900.list-group-item-action:hover{color:#2e1159;background-color:#c5bdd3}body[data-netbox-color-mode=dark] .list-group-item-purple-900.list-group-item-action.active{color:#fff;background-color:#2e1159;border-color:#2e1159}body[data-netbox-color-mode=dark] .list-group-item-pink-50{color:#656163;background-color:#fffcfe}body[data-netbox-color-mode=dark] .list-group-item-pink-50.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-50.list-group-item-action:hover{color:#656163;background-color:#e6e3e5}body[data-netbox-color-mode=dark] .list-group-item-pink-50.list-group-item-action.active{color:#fff;background-color:#656163;border-color:#656163}body[data-netbox-color-mode=dark] .list-group-item-pink-100{color:#655c61;background-color:#fefafd}body[data-netbox-color-mode=dark] .list-group-item-pink-100.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-100.list-group-item-action:hover{color:#655c61;background-color:#e5e1e4}body[data-netbox-color-mode=dark] .list-group-item-pink-100.list-group-item-action.active{color:#fff;background-color:#655c61;border-color:#655c61}body[data-netbox-color-mode=dark] .list-group-item-pink-200{color:#64535d;background-color:#fef5fa}body[data-netbox-color-mode=dark] .list-group-item-pink-200.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-200.list-group-item-action:hover{color:#64535d;background-color:#e5dde1}body[data-netbox-color-mode=dark] .list-group-item-pink-200.list-group-item-action.active{color:#fff;background-color:#64535d;border-color:#64535d}body[data-netbox-color-mode=dark] .list-group-item-pink-300{color:#644355;background-color:#feeef6}body[data-netbox-color-mode=dark] .list-group-item-pink-300.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-300.list-group-item-action:hover{color:#644355;background-color:#e5d6dd}body[data-netbox-color-mode=dark] .list-group-item-pink-300.list-group-item-action.active{color:#fff;background-color:#644355;border-color:#644355}body[data-netbox-color-mode=dark] .list-group-item-pink-400{color:#92446d;background-color:#fde3f0}body[data-netbox-color-mode=dark] .list-group-item-pink-400.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-400.list-group-item-action:hover{color:#92446d;background-color:#e4ccd8}body[data-netbox-color-mode=dark] .list-group-item-pink-400.list-group-item-action.active{color:#fff;background-color:#92446d;border-color:#92446d}body[data-netbox-color-mode=dark] .list-group-item-pink-500{color:#8e2b5c;background-color:#fbdaeb}body[data-netbox-color-mode=dark] .list-group-item-pink-500.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-500.list-group-item-action:hover{color:#8e2b5c;background-color:#e2c4d4}body[data-netbox-color-mode=dark] .list-group-item-pink-500.list-group-item-action.active{color:#fff;background-color:#8e2b5c;border-color:#8e2b5c}body[data-netbox-color-mode=dark] .list-group-item-pink-600{color:#831747;background-color:#f8d4e4}body[data-netbox-color-mode=dark] .list-group-item-pink-600.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-600.list-group-item-action:hover{color:#831747;background-color:#dfbfcd}body[data-netbox-color-mode=dark] .list-group-item-pink-600.list-group-item-action.active{color:#fff;background-color:#831747;border-color:#831747}body[data-netbox-color-mode=dark] .list-group-item-pink-700{color:#720e38;background-color:#f2d1df}body[data-netbox-color-mode=dark] .list-group-item-pink-700.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-700.list-group-item-action:hover{color:#720e38;background-color:#dabcc9}body[data-netbox-color-mode=dark] .list-group-item-pink-700.list-group-item-action.active{color:#fff;background-color:#720e38;border-color:#720e38}body[data-netbox-color-mode=dark] .list-group-item-pink-800{color:#5e0e2e;background-color:#ebd1db}body[data-netbox-color-mode=dark] .list-group-item-pink-800.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-800.list-group-item-action:hover{color:#5e0e2e;background-color:#d4bcc5}body[data-netbox-color-mode=dark] .list-group-item-pink-800.list-group-item-action.active{color:#fff;background-color:#5e0e2e;border-color:#5e0e2e}body[data-netbox-color-mode=dark] .list-group-item-pink-900{color:#4f0e28;background-color:#e6d1d9}body[data-netbox-color-mode=dark] .list-group-item-pink-900.list-group-item-action:focus,body[data-netbox-color-mode=dark] .list-group-item-pink-900.list-group-item-action:hover{color:#4f0e28;background-color:#cfbcc3}body[data-netbox-color-mode=dark] .list-group-item-pink-900.list-group-item-action.active{color:#fff;background-color:#4f0e28;border-color:#4f0e28}body[data-netbox-color-mode=dark] .btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em;color:#fff;background:transparent url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3E%3C/svg%3E") 50%/1em auto no-repeat;border:0;border-radius:.5rem;opacity:.5}body[data-netbox-color-mode=dark] .btn-close:hover{color:#fff;text-decoration:none;opacity:.75}body[data-netbox-color-mode=dark] .btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25);opacity:1}body[data-netbox-color-mode=dark] .btn-close.disabled,body[data-netbox-color-mode=dark] .btn-close:disabled{pointer-events:none;user-select:none;opacity:.25}body[data-netbox-color-mode=dark] .btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}body[data-netbox-color-mode=dark] .toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.5rem}body[data-netbox-color-mode=dark] .toast:not(.showing):not(.show){opacity:0}body[data-netbox-color-mode=dark] .toast.hide{display:none}body[data-netbox-color-mode=dark] .toast-container{width:max-content;max-width:100%;pointer-events:none}body[data-netbox-color-mode=dark] .toast-container>:not(:last-child){margin-bottom:.75rem}body[data-netbox-color-mode=dark] .toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#4b5563;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.5rem - 1px);border-top-right-radius:calc(.5rem - 1px)}body[data-netbox-color-mode=dark] .toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}body[data-netbox-color-mode=dark] .toast-body{padding:.75rem;word-wrap:break-word}body[data-netbox-color-mode=dark] .modal-open{overflow:hidden}body[data-netbox-color-mode=dark] .modal-open .modal{overflow-x:hidden;overflow-y:auto}body[data-netbox-color-mode=dark] .modal{position:fixed;top:0;left:0;z-index:1060;display:none;width:100%;height:100%;overflow:hidden;outline:0}body[data-netbox-color-mode=dark] .modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade body[data-netbox-color-mode=dark] .modal-dialog{transition:transform .3s ease-out;transform:translateY(-50px)}@media (prefers-reduced-motion:reduce){.modal.fade body[data-netbox-color-mode=dark] .modal-dialog{transition:none}}.modal.show body[data-netbox-color-mode=dark] .modal-dialog{transform:none}.modal.modal-static body[data-netbox-color-mode=dark] .modal-dialog{transform:scale(1.02)}body[data-netbox-color-mode=dark] .modal-dialog-scrollable{height:calc(100% - 1rem)}body[data-netbox-color-mode=dark] .modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}body[data-netbox-color-mode=dark] .modal-dialog-scrollable .modal-body{overflow-y:auto}body[data-netbox-color-mode=dark] .modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}body[data-netbox-color-mode=dark] .modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#1f2937;background-clip:padding-box;border:1px solid hsla(0,0%,100%,.2);border-radius:.75rem;outline:0}body[data-netbox-color-mode=dark] .modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}body[data-netbox-color-mode=dark] .modal-backdrop.fade{opacity:0}body[data-netbox-color-mode=dark] .modal-backdrop.show{opacity:.5}body[data-netbox-color-mode=dark] .modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #374151;border-top-left-radius:calc(.75rem - 1px);border-top-right-radius:calc(.75rem - 1px)}body[data-netbox-color-mode=dark] .modal-header .btn-close{padding:.5rem;margin:-.5rem -.5rem -.5rem auto}body[data-netbox-color-mode=dark] .modal-title{margin-bottom:0;line-height:1.5}body[data-netbox-color-mode=dark] .modal-body{position:relative;flex:1 1 auto;padding:1rem}body[data-netbox-color-mode=dark] .modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #374151;border-bottom-right-radius:calc(.75rem - 1px);border-bottom-left-radius:calc(.75rem - 1px)}body[data-netbox-color-mode=dark] .modal-footer>*{margin:.25rem}body[data-netbox-color-mode=dark] .modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){body[data-netbox-color-mode=dark] .modal-dialog{max-width:500px;margin:1.75rem auto}body[data-netbox-color-mode=dark] .modal-dialog-scrollable{height:calc(100% - 3.5rem)}body[data-netbox-color-mode=dark] .modal-dialog-centered{min-height:calc(100% - 3.5rem)}body[data-netbox-color-mode=dark] .modal-sm{max-width:300px}}@media (min-width:992px){body[data-netbox-color-mode=dark] .modal-lg,body[data-netbox-color-mode=dark] .modal-xl{max-width:800px}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .modal-xl{max-width:1140px}}body[data-netbox-color-mode=dark] .modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}body[data-netbox-color-mode=dark] .modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen .modal-header{border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen .modal-body{overflow-y:auto}body[data-netbox-color-mode=dark] .modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){body[data-netbox-color-mode=dark] .modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}body[data-netbox-color-mode=dark] .modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-sm-down .modal-header{border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-sm-down .modal-body{overflow-y:auto}body[data-netbox-color-mode=dark] .modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){body[data-netbox-color-mode=dark] .modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}body[data-netbox-color-mode=dark] .modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-md-down .modal-header{border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-md-down .modal-body{overflow-y:auto}body[data-netbox-color-mode=dark] .modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){body[data-netbox-color-mode=dark] .modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}body[data-netbox-color-mode=dark] .modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-lg-down .modal-header{border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-lg-down .modal-body{overflow-y:auto}body[data-netbox-color-mode=dark] .modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){body[data-netbox-color-mode=dark] .modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}body[data-netbox-color-mode=dark] .modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-xl-down .modal-header{border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-xl-down .modal-body{overflow-y:auto}body[data-netbox-color-mode=dark] .modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){body[data-netbox-color-mode=dark] .modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}body[data-netbox-color-mode=dark] .modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-xxl-down .modal-header{border-radius:0}body[data-netbox-color-mode=dark] .modal-fullscreen-xxl-down .modal-body{overflow-y:auto}body[data-netbox-color-mode=dark] .modal-fullscreen-xxl-down .modal-footer{border-radius:0}}body[data-netbox-color-mode=dark] .tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}body[data-netbox-color-mode=dark] .tooltip.show{opacity:.9}body[data-netbox-color-mode=dark] .tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}body[data-netbox-color-mode=dark] .tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=top],body[data-netbox-color-mode=dark] .bs-tooltip-top{padding:.4rem 0}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,body[data-netbox-color-mode=dark] .bs-tooltip-top .tooltip-arrow{bottom:0}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before,body[data-netbox-color-mode=dark] .bs-tooltip-top .tooltip-arrow:before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#374151}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=right],body[data-netbox-color-mode=dark] .bs-tooltip-end{padding:0 .4rem}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,body[data-netbox-color-mode=dark] .bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before,body[data-netbox-color-mode=dark] .bs-tooltip-end .tooltip-arrow:before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#374151}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=bottom],body[data-netbox-color-mode=dark] .bs-tooltip-bottom{padding:.4rem 0}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,body[data-netbox-color-mode=dark] .bs-tooltip-bottom .tooltip-arrow{top:0}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before,body[data-netbox-color-mode=dark] .bs-tooltip-bottom .tooltip-arrow:before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#374151}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=left],body[data-netbox-color-mode=dark] .bs-tooltip-start{padding:0 .4rem}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,body[data-netbox-color-mode=dark] .bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}body[data-netbox-color-mode=dark] .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before,body[data-netbox-color-mode=dark] .bs-tooltip-start .tooltip-arrow:before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#374151}body[data-netbox-color-mode=dark] .tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#374151;border-radius:.5rem}body[data-netbox-color-mode=dark] .popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#374151;background-clip:padding-box;border:1px solid hsla(0,0%,100%,.2);border-radius:.75rem}body[data-netbox-color-mode=dark] .popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}body[data-netbox-color-mode=dark] .popover .popover-arrow:after,body[data-netbox-color-mode=dark] .popover .popover-arrow:before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=top]>.popover-arrow,body[data-netbox-color-mode=dark] .bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,body[data-netbox-color-mode=dark] .bs-popover-top>.popover-arrow:before{bottom:0;border-width:.5rem .5rem 0;border-top-color:hsla(0,0%,100%,.25)}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after,body[data-netbox-color-mode=dark] .bs-popover-top>.popover-arrow:after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#374151}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=right]>.popover-arrow,body[data-netbox-color-mode=dark] .bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,body[data-netbox-color-mode=dark] .bs-popover-end>.popover-arrow:before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:hsla(0,0%,100%,.25)}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after,body[data-netbox-color-mode=dark] .bs-popover-end>.popover-arrow:after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#374151}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,body[data-netbox-color-mode=dark] .bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,body[data-netbox-color-mode=dark] .bs-popover-bottom>.popover-arrow:before{top:0;border-width:0 .5rem .5rem;border-bottom-color:hsla(0,0%,100%,.25)}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after,body[data-netbox-color-mode=dark] .bs-popover-bottom>.popover-arrow:after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#374151}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=bottom] .popover-header:before,body[data-netbox-color-mode=dark] .bs-popover-bottom .popover-header:before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #343d4c}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=left]>.popover-arrow,body[data-netbox-color-mode=dark] .bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,body[data-netbox-color-mode=dark] .bs-popover-start>.popover-arrow:before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:hsla(0,0%,100%,.25)}body[data-netbox-color-mode=dark] .bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after,body[data-netbox-color-mode=dark] .bs-popover-start>.popover-arrow:after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#374151}body[data-netbox-color-mode=dark] .popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#343d4c;border-bottom:1px solid #2f3744;border-top-left-radius:calc(.75rem - 1px);border-top-right-radius:calc(.75rem - 1px)}body[data-netbox-color-mode=dark] .popover-header:empty{display:none}body[data-netbox-color-mode=dark] .popover-body{padding:1rem;color:#fff}body[data-netbox-color-mode=dark] .carousel{position:relative}body[data-netbox-color-mode=dark] .carousel.pointer-event{touch-action:pan-y}body[data-netbox-color-mode=dark] .carousel-inner{position:relative;width:100%;overflow:hidden}body[data-netbox-color-mode=dark] .carousel-inner:after{display:block;clear:both;content:""}body[data-netbox-color-mode=dark] .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .carousel-item{transition:none}}body[data-netbox-color-mode=dark] .carousel-item-next,body[data-netbox-color-mode=dark] .carousel-item-prev,body[data-netbox-color-mode=dark] .carousel-item.active{display:block}body[data-netbox-color-mode=dark] .active.carousel-item-end,body[data-netbox-color-mode=dark] .carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}body[data-netbox-color-mode=dark] .active.carousel-item-start,body[data-netbox-color-mode=dark] .carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}body[data-netbox-color-mode=dark] .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}body[data-netbox-color-mode=dark] .carousel-fade .carousel-item-next.carousel-item-start,body[data-netbox-color-mode=dark] .carousel-fade .carousel-item-prev.carousel-item-end,body[data-netbox-color-mode=dark] .carousel-fade .carousel-item.active{z-index:1;opacity:1}body[data-netbox-color-mode=dark] .carousel-fade .active.carousel-item-end,body[data-netbox-color-mode=dark] .carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .carousel-fade .active.carousel-item-end,body[data-netbox-color-mode=dark] .carousel-fade .active.carousel-item-start{transition:none}}body[data-netbox-color-mode=dark] .carousel-control-next,body[data-netbox-color-mode=dark] .carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .carousel-control-next,body[data-netbox-color-mode=dark] .carousel-control-prev{transition:none}}body[data-netbox-color-mode=dark] .carousel-control-next:focus,body[data-netbox-color-mode=dark] .carousel-control-next:hover,body[data-netbox-color-mode=dark] .carousel-control-prev:focus,body[data-netbox-color-mode=dark] .carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}body[data-netbox-color-mode=dark] .carousel-control-prev{left:0}body[data-netbox-color-mode=dark] .carousel-control-next{right:0}body[data-netbox-color-mode=dark] .carousel-control-next-icon,body[data-netbox-color-mode=dark] .carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}body[data-netbox-color-mode=dark] .carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M11.354 1.646a.5.5 0 010 .708L5.707 8l5.647 5.646a.5.5 0 01-.708.708l-6-6a.5.5 0 010-.708l6-6a.5.5 0 01.708 0z'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3E%3Cpath d='M4.646 1.646a.5.5 0 01.708 0l6 6a.5.5 0 010 .708l-6 6a.5.5 0 01-.708-.708L10.293 8 4.646 2.354a.5.5 0 010-.708z'/%3E%3C/svg%3E")}body[data-netbox-color-mode=dark] .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}body[data-netbox-color-mode=dark] .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .carousel-indicators [data-bs-target]{transition:none}}body[data-netbox-color-mode=dark] .carousel-indicators .active{opacity:1}body[data-netbox-color-mode=dark] .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}body[data-netbox-color-mode=dark] .carousel-dark .carousel-control-next-icon,body[data-netbox-color-mode=dark] .carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}body[data-netbox-color-mode=dark] .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}body[data-netbox-color-mode=dark] .carousel-dark .carousel-caption{color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}body[data-netbox-color-mode=dark] .spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}body[data-netbox-color-mode=dark] .spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}body[data-netbox-color-mode=dark] .spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:spinner-grow .75s linear infinite}body[data-netbox-color-mode=dark] .spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .spinner-border,body[data-netbox-color-mode=dark] .spinner-grow{animation-duration:1.5s}}body[data-netbox-color-mode=dark] .clearfix:after{display:block;clear:both;content:""}body[data-netbox-color-mode=dark] .link-primary{color:#93c5fd}body[data-netbox-color-mode=dark] .link-primary:focus,body[data-netbox-color-mode=dark] .link-primary:hover{color:#a9d1fd}body[data-netbox-color-mode=dark] .link-secondary{color:#9ca3af}body[data-netbox-color-mode=dark] .link-secondary:focus,body[data-netbox-color-mode=dark] .link-secondary:hover{color:#b0b5bf}body[data-netbox-color-mode=dark] .link-success{color:#6ee7b7}body[data-netbox-color-mode=dark] .link-success:focus,body[data-netbox-color-mode=dark] .link-success:hover{color:#8becc5}body[data-netbox-color-mode=dark] .link-info{color:#67e8f9}body[data-netbox-color-mode=dark] .link-info:focus,body[data-netbox-color-mode=dark] .link-info:hover{color:#85edfa}body[data-netbox-color-mode=dark] .link-warning{color:#fcd34d}body[data-netbox-color-mode=dark] .link-warning:focus,body[data-netbox-color-mode=dark] .link-warning:hover{color:#fddc71}body[data-netbox-color-mode=dark] .link-danger{color:#fca5a5}body[data-netbox-color-mode=dark] .link-danger:focus,body[data-netbox-color-mode=dark] .link-danger:hover{color:#fdb7b7}body[data-netbox-color-mode=dark] .link-light{color:#d1d5db}body[data-netbox-color-mode=dark] .link-light:focus,body[data-netbox-color-mode=dark] .link-light:hover{color:#dadde2}body[data-netbox-color-mode=dark] .link-dark{color:#9ca3af}body[data-netbox-color-mode=dark] .link-dark:focus,body[data-netbox-color-mode=dark] .link-dark:hover{color:#b0b5bf}body[data-netbox-color-mode=dark] .link-alt{color:#13293d}body[data-netbox-color-mode=dark] .link-alt:focus,body[data-netbox-color-mode=dark] .link-alt:hover{color:#0f2131}body[data-netbox-color-mode=dark] .link-gray{color:#9ca3af}body[data-netbox-color-mode=dark] .link-gray:focus,body[data-netbox-color-mode=dark] .link-gray:hover{color:#b0b5bf}body[data-netbox-color-mode=dark] .link-darker,body[data-netbox-color-mode=dark] .link-darker:focus,body[data-netbox-color-mode=dark] .link-darker:hover{color:#010101}body[data-netbox-color-mode=dark] .link-gray-50{color:#f9fafb}body[data-netbox-color-mode=dark] .link-gray-50:focus,body[data-netbox-color-mode=dark] .link-gray-50:hover{color:#fafbfc}body[data-netbox-color-mode=dark] .link-gray-100{color:#f3f4f6}body[data-netbox-color-mode=dark] .link-gray-100:focus,body[data-netbox-color-mode=dark] .link-gray-100:hover{color:#f5f6f8}body[data-netbox-color-mode=dark] .link-gray-200{color:#e5e7eb}body[data-netbox-color-mode=dark] .link-gray-200:focus,body[data-netbox-color-mode=dark] .link-gray-200:hover{color:#eaecef}body[data-netbox-color-mode=dark] .link-gray-300{color:#d1d5db}body[data-netbox-color-mode=dark] .link-gray-300:focus,body[data-netbox-color-mode=dark] .link-gray-300:hover{color:#dadde2}body[data-netbox-color-mode=dark] .link-gray-400{color:#9ca3af}body[data-netbox-color-mode=dark] .link-gray-400:focus,body[data-netbox-color-mode=dark] .link-gray-400:hover{color:#b0b5bf}body[data-netbox-color-mode=dark] .link-gray-500{color:#6b7280}body[data-netbox-color-mode=dark] .link-gray-500:focus,body[data-netbox-color-mode=dark] .link-gray-500:hover{color:#565b66}body[data-netbox-color-mode=dark] .link-gray-600{color:#4b5563}body[data-netbox-color-mode=dark] .link-gray-600:focus,body[data-netbox-color-mode=dark] .link-gray-600:hover{color:#3c444f}body[data-netbox-color-mode=dark] .link-gray-700{color:#374151}body[data-netbox-color-mode=dark] .link-gray-700:focus,body[data-netbox-color-mode=dark] .link-gray-700:hover{color:#2c3441}body[data-netbox-color-mode=dark] .link-gray-800{color:#1f2937}body[data-netbox-color-mode=dark] .link-gray-800:focus,body[data-netbox-color-mode=dark] .link-gray-800:hover{color:#19212c}body[data-netbox-color-mode=dark] .link-gray-900{color:#111827}body[data-netbox-color-mode=dark] .link-gray-900:focus,body[data-netbox-color-mode=dark] .link-gray-900:hover{color:#0e131f}body[data-netbox-color-mode=dark] .link-red-50{color:#fef2f2}body[data-netbox-color-mode=dark] .link-red-50:focus,body[data-netbox-color-mode=dark] .link-red-50:hover{color:#fef5f5}body[data-netbox-color-mode=dark] .link-red-100{color:#fee2e2}body[data-netbox-color-mode=dark] .link-red-100:focus,body[data-netbox-color-mode=dark] .link-red-100:hover{color:#fee8e8}body[data-netbox-color-mode=dark] .link-red-200{color:#fecaca}body[data-netbox-color-mode=dark] .link-red-200:focus,body[data-netbox-color-mode=dark] .link-red-200:hover{color:#fed5d5}body[data-netbox-color-mode=dark] .link-red-300{color:#fca5a5}body[data-netbox-color-mode=dark] .link-red-300:focus,body[data-netbox-color-mode=dark] .link-red-300:hover{color:#fdb7b7}body[data-netbox-color-mode=dark] .link-red-400{color:#f87171}body[data-netbox-color-mode=dark] .link-red-400:focus,body[data-netbox-color-mode=dark] .link-red-400:hover{color:#f98d8d}body[data-netbox-color-mode=dark] .link-red-500{color:#ef4444}body[data-netbox-color-mode=dark] .link-red-500:focus,body[data-netbox-color-mode=dark] .link-red-500:hover{color:#f26969}body[data-netbox-color-mode=dark] .link-red-600{color:#dc2626}body[data-netbox-color-mode=dark] .link-red-600:focus,body[data-netbox-color-mode=dark] .link-red-600:hover{color:#b01e1e}body[data-netbox-color-mode=dark] .link-red-700{color:#b91c1c}body[data-netbox-color-mode=dark] .link-red-700:focus,body[data-netbox-color-mode=dark] .link-red-700:hover{color:#941616}body[data-netbox-color-mode=dark] .link-red-800{color:#991b1b}body[data-netbox-color-mode=dark] .link-red-800:focus,body[data-netbox-color-mode=dark] .link-red-800:hover{color:#7a1616}body[data-netbox-color-mode=dark] .link-red-900{color:#7f1d1d}body[data-netbox-color-mode=dark] .link-red-900:focus,body[data-netbox-color-mode=dark] .link-red-900:hover{color:#661717}body[data-netbox-color-mode=dark] .link-yellow-50{color:#fffbeb}body[data-netbox-color-mode=dark] .link-yellow-50:focus,body[data-netbox-color-mode=dark] .link-yellow-50:hover{color:#fffcef}body[data-netbox-color-mode=dark] .link-yellow-100{color:#fef3c7}body[data-netbox-color-mode=dark] .link-yellow-100:focus,body[data-netbox-color-mode=dark] .link-yellow-100:hover{color:#fef5d2}body[data-netbox-color-mode=dark] .link-yellow-200{color:#fde68a}body[data-netbox-color-mode=dark] .link-yellow-200:focus,body[data-netbox-color-mode=dark] .link-yellow-200:hover{color:#fdeba1}body[data-netbox-color-mode=dark] .link-yellow-300{color:#fcd34d}body[data-netbox-color-mode=dark] .link-yellow-300:focus,body[data-netbox-color-mode=dark] .link-yellow-300:hover{color:#fddc71}body[data-netbox-color-mode=dark] .link-yellow-400{color:#fbbf24}body[data-netbox-color-mode=dark] .link-yellow-400:focus,body[data-netbox-color-mode=dark] .link-yellow-400:hover{color:#fccc50}body[data-netbox-color-mode=dark] .link-yellow-500{color:#f59e0b}body[data-netbox-color-mode=dark] .link-yellow-500:focus,body[data-netbox-color-mode=dark] .link-yellow-500:hover{color:#f7b13c}body[data-netbox-color-mode=dark] .link-yellow-600{color:#d97706}body[data-netbox-color-mode=dark] .link-yellow-600:focus,body[data-netbox-color-mode=dark] .link-yellow-600:hover{color:#e19238}body[data-netbox-color-mode=dark] .link-yellow-700{color:#b45309}body[data-netbox-color-mode=dark] .link-yellow-700:focus,body[data-netbox-color-mode=dark] .link-yellow-700:hover{color:#904207}body[data-netbox-color-mode=dark] .link-yellow-800{color:#92400e}body[data-netbox-color-mode=dark] .link-yellow-800:focus,body[data-netbox-color-mode=dark] .link-yellow-800:hover{color:#75330b}body[data-netbox-color-mode=dark] .link-yellow-900{color:#78350f}body[data-netbox-color-mode=dark] .link-yellow-900:focus,body[data-netbox-color-mode=dark] .link-yellow-900:hover{color:#602a0c}body[data-netbox-color-mode=dark] .link-green-50{color:#ecfdf5}body[data-netbox-color-mode=dark] .link-green-50:focus,body[data-netbox-color-mode=dark] .link-green-50:hover{color:#f0fdf7}body[data-netbox-color-mode=dark] .link-green-100{color:#d1fae5}body[data-netbox-color-mode=dark] .link-green-100:focus,body[data-netbox-color-mode=dark] .link-green-100:hover{color:#dafbea}body[data-netbox-color-mode=dark] .link-green-200{color:#a7f3d0}body[data-netbox-color-mode=dark] .link-green-200:focus,body[data-netbox-color-mode=dark] .link-green-200:hover{color:#b9f5d9}body[data-netbox-color-mode=dark] .link-green-300{color:#6ee7b7}body[data-netbox-color-mode=dark] .link-green-300:focus,body[data-netbox-color-mode=dark] .link-green-300:hover{color:#8becc5}body[data-netbox-color-mode=dark] .link-green-400{color:#34d399}body[data-netbox-color-mode=dark] .link-green-400:focus,body[data-netbox-color-mode=dark] .link-green-400:hover{color:#5ddcad}body[data-netbox-color-mode=dark] .link-green-500{color:#10b981}body[data-netbox-color-mode=dark] .link-green-500:focus,body[data-netbox-color-mode=dark] .link-green-500:hover{color:#40c79a}body[data-netbox-color-mode=dark] .link-green-600{color:#059669}body[data-netbox-color-mode=dark] .link-green-600:focus,body[data-netbox-color-mode=dark] .link-green-600:hover{color:#37ab87}body[data-netbox-color-mode=dark] .link-green-700{color:#047857}body[data-netbox-color-mode=dark] .link-green-700:focus,body[data-netbox-color-mode=dark] .link-green-700:hover{color:#036046}body[data-netbox-color-mode=dark] .link-green-800{color:#065f46}body[data-netbox-color-mode=dark] .link-green-800:focus,body[data-netbox-color-mode=dark] .link-green-800:hover{color:#054c38}body[data-netbox-color-mode=dark] .link-green-900{color:#064e3b}body[data-netbox-color-mode=dark] .link-green-900:focus,body[data-netbox-color-mode=dark] .link-green-900:hover{color:#053e2f}body[data-netbox-color-mode=dark] .link-blue-50{color:#eff6ff}body[data-netbox-color-mode=dark] .link-blue-50:focus,body[data-netbox-color-mode=dark] .link-blue-50:hover{color:#f2f8ff}body[data-netbox-color-mode=dark] .link-blue-100{color:#dbeafe}body[data-netbox-color-mode=dark] .link-blue-100:focus,body[data-netbox-color-mode=dark] .link-blue-100:hover{color:#e2eefe}body[data-netbox-color-mode=dark] .link-blue-200{color:#bfdbfe}body[data-netbox-color-mode=dark] .link-blue-200:focus,body[data-netbox-color-mode=dark] .link-blue-200:hover{color:#cce2fe}body[data-netbox-color-mode=dark] .link-blue-300{color:#93c5fd}body[data-netbox-color-mode=dark] .link-blue-300:focus,body[data-netbox-color-mode=dark] .link-blue-300:hover{color:#a9d1fd}body[data-netbox-color-mode=dark] .link-blue-400{color:#60a5fa}body[data-netbox-color-mode=dark] .link-blue-400:focus,body[data-netbox-color-mode=dark] .link-blue-400:hover{color:#80b7fb}body[data-netbox-color-mode=dark] .link-blue-500{color:#3b82f6}body[data-netbox-color-mode=dark] .link-blue-500:focus,body[data-netbox-color-mode=dark] .link-blue-500:hover{color:#629bf8}body[data-netbox-color-mode=dark] .link-blue-600{color:#2563eb}body[data-netbox-color-mode=dark] .link-blue-600:focus,body[data-netbox-color-mode=dark] .link-blue-600:hover{color:#1e4fbc}body[data-netbox-color-mode=dark] .link-blue-700{color:#1d4ed8}body[data-netbox-color-mode=dark] .link-blue-700:focus,body[data-netbox-color-mode=dark] .link-blue-700:hover{color:#173ead}body[data-netbox-color-mode=dark] .link-blue-800{color:#1e40af}body[data-netbox-color-mode=dark] .link-blue-800:focus,body[data-netbox-color-mode=dark] .link-blue-800:hover{color:#18338c}body[data-netbox-color-mode=dark] .link-blue-900{color:#1e3a8a}body[data-netbox-color-mode=dark] .link-blue-900:focus,body[data-netbox-color-mode=dark] .link-blue-900:hover{color:#182e6e}body[data-netbox-color-mode=dark] .link-cyan-50{color:#ecfeff}body[data-netbox-color-mode=dark] .link-cyan-50:focus,body[data-netbox-color-mode=dark] .link-cyan-50:hover{color:#f0feff}body[data-netbox-color-mode=dark] .link-cyan-100{color:#cffafe}body[data-netbox-color-mode=dark] .link-cyan-100:focus,body[data-netbox-color-mode=dark] .link-cyan-100:hover{color:#d9fbfe}body[data-netbox-color-mode=dark] .link-cyan-200{color:#a5f3fc}body[data-netbox-color-mode=dark] .link-cyan-200:focus,body[data-netbox-color-mode=dark] .link-cyan-200:hover{color:#b7f5fd}body[data-netbox-color-mode=dark] .link-cyan-300{color:#67e8f9}body[data-netbox-color-mode=dark] .link-cyan-300:focus,body[data-netbox-color-mode=dark] .link-cyan-300:hover{color:#85edfa}body[data-netbox-color-mode=dark] .link-cyan-400{color:#22d3ee}body[data-netbox-color-mode=dark] .link-cyan-400:focus,body[data-netbox-color-mode=dark] .link-cyan-400:hover{color:#4edcf1}body[data-netbox-color-mode=dark] .link-cyan-500{color:#06b6d4}body[data-netbox-color-mode=dark] .link-cyan-500:focus,body[data-netbox-color-mode=dark] .link-cyan-500:hover{color:#38c5dd}body[data-netbox-color-mode=dark] .link-cyan-600{color:#0891b2}body[data-netbox-color-mode=dark] .link-cyan-600:focus,body[data-netbox-color-mode=dark] .link-cyan-600:hover{color:#39a7c1}body[data-netbox-color-mode=dark] .link-cyan-700{color:#0e7490}body[data-netbox-color-mode=dark] .link-cyan-700:focus,body[data-netbox-color-mode=dark] .link-cyan-700:hover{color:#0b5d73}body[data-netbox-color-mode=dark] .link-cyan-800{color:#155e75}body[data-netbox-color-mode=dark] .link-cyan-800:focus,body[data-netbox-color-mode=dark] .link-cyan-800:hover{color:#114b5e}body[data-netbox-color-mode=dark] .link-cyan-900{color:#164e63}body[data-netbox-color-mode=dark] .link-cyan-900:focus,body[data-netbox-color-mode=dark] .link-cyan-900:hover{color:#123e4f}body[data-netbox-color-mode=dark] .link-indigo-50{color:#eef2ff}body[data-netbox-color-mode=dark] .link-indigo-50:focus,body[data-netbox-color-mode=dark] .link-indigo-50:hover{color:#f1f5ff}body[data-netbox-color-mode=dark] .link-indigo-100{color:#e0e7ff}body[data-netbox-color-mode=dark] .link-indigo-100:focus,body[data-netbox-color-mode=dark] .link-indigo-100:hover{color:#e6ecff}body[data-netbox-color-mode=dark] .link-indigo-200{color:#c7d2fe}body[data-netbox-color-mode=dark] .link-indigo-200:focus,body[data-netbox-color-mode=dark] .link-indigo-200:hover{color:#d2dbfe}body[data-netbox-color-mode=dark] .link-indigo-300{color:#a5b4fc}body[data-netbox-color-mode=dark] .link-indigo-300:focus,body[data-netbox-color-mode=dark] .link-indigo-300:hover{color:#b7c3fd}body[data-netbox-color-mode=dark] .link-indigo-400{color:#818cf8}body[data-netbox-color-mode=dark] .link-indigo-400:focus,body[data-netbox-color-mode=dark] .link-indigo-400:hover{color:#9aa3f9}body[data-netbox-color-mode=dark] .link-indigo-500{color:#6366f1}body[data-netbox-color-mode=dark] .link-indigo-500:focus,body[data-netbox-color-mode=dark] .link-indigo-500:hover{color:#8285f4}body[data-netbox-color-mode=dark] .link-indigo-600{color:#4f46e5}body[data-netbox-color-mode=dark] .link-indigo-600:focus,body[data-netbox-color-mode=dark] .link-indigo-600:hover{color:#3f38b7}body[data-netbox-color-mode=dark] .link-indigo-700{color:#4338ca}body[data-netbox-color-mode=dark] .link-indigo-700:focus,body[data-netbox-color-mode=dark] .link-indigo-700:hover{color:#362da2}body[data-netbox-color-mode=dark] .link-indigo-800{color:#3730a3}body[data-netbox-color-mode=dark] .link-indigo-800:focus,body[data-netbox-color-mode=dark] .link-indigo-800:hover{color:#2c2682}body[data-netbox-color-mode=dark] .link-indigo-900{color:#312e81}body[data-netbox-color-mode=dark] .link-indigo-900:focus,body[data-netbox-color-mode=dark] .link-indigo-900:hover{color:#272567}body[data-netbox-color-mode=dark] .link-purple-50{color:#f5f3ff}body[data-netbox-color-mode=dark] .link-purple-50:focus,body[data-netbox-color-mode=dark] .link-purple-50:hover{color:#f7f5ff}body[data-netbox-color-mode=dark] .link-purple-100{color:#ede9fe}body[data-netbox-color-mode=dark] .link-purple-100:focus,body[data-netbox-color-mode=dark] .link-purple-100:hover{color:#f1edfe}body[data-netbox-color-mode=dark] .link-purple-200{color:#ddd6fe}body[data-netbox-color-mode=dark] .link-purple-200:focus,body[data-netbox-color-mode=dark] .link-purple-200:hover{color:#e4defe}body[data-netbox-color-mode=dark] .link-purple-300{color:#c4b5fd}body[data-netbox-color-mode=dark] .link-purple-300:focus,body[data-netbox-color-mode=dark] .link-purple-300:hover{color:#d0c4fd}body[data-netbox-color-mode=dark] .link-purple-400{color:#a78bfa}body[data-netbox-color-mode=dark] .link-purple-400:focus,body[data-netbox-color-mode=dark] .link-purple-400:hover{color:#b9a2fb}body[data-netbox-color-mode=dark] .link-purple-500{color:#8b5cf6}body[data-netbox-color-mode=dark] .link-purple-500:focus,body[data-netbox-color-mode=dark] .link-purple-500:hover{color:#a27df8}body[data-netbox-color-mode=dark] .link-purple-600{color:#7c3aed}body[data-netbox-color-mode=dark] .link-purple-600:focus,body[data-netbox-color-mode=dark] .link-purple-600:hover{color:#632ebe}body[data-netbox-color-mode=dark] .link-purple-700{color:#6d28d9}body[data-netbox-color-mode=dark] .link-purple-700:focus,body[data-netbox-color-mode=dark] .link-purple-700:hover{color:#5720ae}body[data-netbox-color-mode=dark] .link-purple-800{color:#5b21b6}body[data-netbox-color-mode=dark] .link-purple-800:focus,body[data-netbox-color-mode=dark] .link-purple-800:hover{color:#491a92}body[data-netbox-color-mode=dark] .link-purple-900{color:#4c1d95}body[data-netbox-color-mode=dark] .link-purple-900:focus,body[data-netbox-color-mode=dark] .link-purple-900:hover{color:#3d1777}body[data-netbox-color-mode=dark] .link-pink-50{color:#fdf2f8}body[data-netbox-color-mode=dark] .link-pink-50:focus,body[data-netbox-color-mode=dark] .link-pink-50:hover{color:#fdf5f9}body[data-netbox-color-mode=dark] .link-pink-100{color:#fce7f3}body[data-netbox-color-mode=dark] .link-pink-100:focus,body[data-netbox-color-mode=dark] .link-pink-100:hover{color:#fdecf5}body[data-netbox-color-mode=dark] .link-pink-200{color:#fbcfe8}body[data-netbox-color-mode=dark] .link-pink-200:focus,body[data-netbox-color-mode=dark] .link-pink-200:hover{color:#fcd9ed}body[data-netbox-color-mode=dark] .link-pink-300{color:#f9a8d4}body[data-netbox-color-mode=dark] .link-pink-300:focus,body[data-netbox-color-mode=dark] .link-pink-300:hover{color:#fab9dd}body[data-netbox-color-mode=dark] .link-pink-400{color:#f472b6}body[data-netbox-color-mode=dark] .link-pink-400:focus,body[data-netbox-color-mode=dark] .link-pink-400:hover{color:#f68ec5}body[data-netbox-color-mode=dark] .link-pink-500{color:#ec4899}body[data-netbox-color-mode=dark] .link-pink-500:focus,body[data-netbox-color-mode=dark] .link-pink-500:hover{color:#f06dad}body[data-netbox-color-mode=dark] .link-pink-600{color:#db2777}body[data-netbox-color-mode=dark] .link-pink-600:focus,body[data-netbox-color-mode=dark] .link-pink-600:hover{color:#af1f5f}body[data-netbox-color-mode=dark] .link-pink-700{color:#be185d}body[data-netbox-color-mode=dark] .link-pink-700:focus,body[data-netbox-color-mode=dark] .link-pink-700:hover{color:#98134a}body[data-netbox-color-mode=dark] .link-pink-800{color:#9d174d}body[data-netbox-color-mode=dark] .link-pink-800:focus,body[data-netbox-color-mode=dark] .link-pink-800:hover{color:#7e123e}body[data-netbox-color-mode=dark] .link-pink-900{color:#831843}body[data-netbox-color-mode=dark] .link-pink-900:focus,body[data-netbox-color-mode=dark] .link-pink-900:hover{color:#691336}body[data-netbox-color-mode=dark] .ratio{position:relative;width:100%}body[data-netbox-color-mode=dark] .ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}body[data-netbox-color-mode=dark] .ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}body[data-netbox-color-mode=dark] .ratio-1x1{--bs-aspect-ratio:100%}body[data-netbox-color-mode=dark] .ratio-4x3{--bs-aspect-ratio:75%}body[data-netbox-color-mode=dark] .ratio-16x9{--bs-aspect-ratio:56.25%}body[data-netbox-color-mode=dark] .ratio-21x9{--bs-aspect-ratio:42.85714%}body[data-netbox-color-mode=dark] .fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}body[data-netbox-color-mode=dark] .fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}body[data-netbox-color-mode=dark] .sticky-top{position:sticky;top:0;z-index:1020}@media (min-width:576px){body[data-netbox-color-mode=dark] .sticky-sm-top{position:sticky;top:0;z-index:1020}}@media (min-width:768px){body[data-netbox-color-mode=dark] .sticky-md-top{position:sticky;top:0;z-index:1020}}@media (min-width:992px){body[data-netbox-color-mode=dark] .sticky-lg-top{position:sticky;top:0;z-index:1020}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .sticky-xl-top{position:sticky;top:0;z-index:1020}}@media (min-width:1400px){body[data-netbox-color-mode=dark] .sticky-xxl-top{position:sticky;top:0;z-index:1020}}body[data-netbox-color-mode=dark] .visually-hidden,body[data-netbox-color-mode=dark] .visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}body[data-netbox-color-mode=dark] .stretched-link:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}body[data-netbox-color-mode=dark] .text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body[data-netbox-color-mode=dark] .align-baseline{vertical-align:baseline!important}body[data-netbox-color-mode=dark] .align-top{vertical-align:top!important}body[data-netbox-color-mode=dark] .align-middle{vertical-align:middle!important}body[data-netbox-color-mode=dark] .align-bottom{vertical-align:bottom!important}body[data-netbox-color-mode=dark] .align-text-bottom{vertical-align:text-bottom!important}body[data-netbox-color-mode=dark] .align-text-top{vertical-align:text-top!important}body[data-netbox-color-mode=dark] .float-start{float:left!important}body[data-netbox-color-mode=dark] .float-end{float:right!important}body[data-netbox-color-mode=dark] .float-none{float:none!important}body[data-netbox-color-mode=dark] .overflow-auto{overflow:auto!important}body[data-netbox-color-mode=dark] .overflow-hidden{overflow:hidden!important}body[data-netbox-color-mode=dark] .overflow-visible{overflow:visible!important}body[data-netbox-color-mode=dark] .overflow-scroll{overflow:scroll!important}body[data-netbox-color-mode=dark] .d-inline{display:inline!important}body[data-netbox-color-mode=dark] .d-inline-block{display:inline-block!important}body[data-netbox-color-mode=dark] .d-block{display:block!important}body[data-netbox-color-mode=dark] .d-grid{display:grid!important}body[data-netbox-color-mode=dark] .d-table{display:table!important}body[data-netbox-color-mode=dark] .d-table-row{display:table-row!important}body[data-netbox-color-mode=dark] .d-table-cell{display:table-cell!important}body[data-netbox-color-mode=dark] .d-flex{display:flex!important}body[data-netbox-color-mode=dark] .d-inline-flex{display:inline-flex!important}body[data-netbox-color-mode=dark] .d-none{display:none!important}body[data-netbox-color-mode=dark] .shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}body[data-netbox-color-mode=dark] .shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}body[data-netbox-color-mode=dark] .shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}body[data-netbox-color-mode=dark] .shadow-none{box-shadow:none!important}body[data-netbox-color-mode=dark] .position-static{position:static!important}body[data-netbox-color-mode=dark] .position-relative{position:relative!important}body[data-netbox-color-mode=dark] .position-absolute{position:absolute!important}body[data-netbox-color-mode=dark] .position-fixed{position:fixed!important}body[data-netbox-color-mode=dark] .position-sticky{position:sticky!important}body[data-netbox-color-mode=dark] .top-0{top:0!important}body[data-netbox-color-mode=dark] .top-50{top:50%!important}body[data-netbox-color-mode=dark] .top-100{top:100%!important}body[data-netbox-color-mode=dark] .bottom-0{bottom:0!important}body[data-netbox-color-mode=dark] .bottom-50{bottom:50%!important}body[data-netbox-color-mode=dark] .bottom-100{bottom:100%!important}body[data-netbox-color-mode=dark] .start-0{left:0!important}body[data-netbox-color-mode=dark] .start-50{left:50%!important}body[data-netbox-color-mode=dark] .start-100{left:100%!important}body[data-netbox-color-mode=dark] .end-0{right:0!important}body[data-netbox-color-mode=dark] .end-50{right:50%!important}body[data-netbox-color-mode=dark] .end-100{right:100%!important}body[data-netbox-color-mode=dark] .translate-middle{transform:translate(-50%,-50%)!important}body[data-netbox-color-mode=dark] .translate-middle-x{transform:translateX(-50%)!important}body[data-netbox-color-mode=dark] .translate-middle-y{transform:translateY(-50%)!important}body[data-netbox-color-mode=dark] .border{border:1px solid #374151!important}body[data-netbox-color-mode=dark] .border-0{border:0!important}body[data-netbox-color-mode=dark] .border-top{border-top:1px solid #374151!important}body[data-netbox-color-mode=dark] .border-top-0{border-top:0!important}body[data-netbox-color-mode=dark] .border-end{border-right:1px solid #374151!important}body[data-netbox-color-mode=dark] .border-end-0{border-right:0!important}body[data-netbox-color-mode=dark] .border-bottom{border-bottom:1px solid #374151!important}body[data-netbox-color-mode=dark] .border-bottom-0{border-bottom:0!important}body[data-netbox-color-mode=dark] .border-start{border-left:1px solid #374151!important}body[data-netbox-color-mode=dark] .border-start-0{border-left:0!important}body[data-netbox-color-mode=dark] .border-primary{border-color:#93c5fd!important}body[data-netbox-color-mode=dark] .border-secondary{border-color:#9ca3af!important}body[data-netbox-color-mode=dark] .border-success{border-color:#6ee7b7!important}body[data-netbox-color-mode=dark] .border-info{border-color:#67e8f9!important}body[data-netbox-color-mode=dark] .border-warning{border-color:#fcd34d!important}body[data-netbox-color-mode=dark] .border-danger{border-color:#fca5a5!important}body[data-netbox-color-mode=dark] .border-light{border-color:#d1d5db!important}body[data-netbox-color-mode=dark] .border-dark{border-color:#9ca3af!important}body[data-netbox-color-mode=dark] .border-alt{border-color:#13293d!important}body[data-netbox-color-mode=dark] .border-gray{border-color:#9ca3af!important}body[data-netbox-color-mode=dark] .border-darker{border-color:#010101!important}body[data-netbox-color-mode=dark] .border-gray-50{border-color:#f9fafb!important}body[data-netbox-color-mode=dark] .border-gray-100{border-color:#f3f4f6!important}body[data-netbox-color-mode=dark] .border-gray-200{border-color:#e5e7eb!important}body[data-netbox-color-mode=dark] .border-gray-300{border-color:#d1d5db!important}body[data-netbox-color-mode=dark] .border-gray-400{border-color:#9ca3af!important}body[data-netbox-color-mode=dark] .border-gray-500{border-color:#6b7280!important}body[data-netbox-color-mode=dark] .border-gray-600{border-color:#4b5563!important}body[data-netbox-color-mode=dark] .border-gray-700{border-color:#374151!important}body[data-netbox-color-mode=dark] .border-gray-800{border-color:#1f2937!important}body[data-netbox-color-mode=dark] .border-gray-900{border-color:#111827!important}body[data-netbox-color-mode=dark] .border-red-50{border-color:#fef2f2!important}body[data-netbox-color-mode=dark] .border-red-100{border-color:#fee2e2!important}body[data-netbox-color-mode=dark] .border-red-200{border-color:#fecaca!important}body[data-netbox-color-mode=dark] .border-red-300{border-color:#fca5a5!important}body[data-netbox-color-mode=dark] .border-red-400{border-color:#f87171!important}body[data-netbox-color-mode=dark] .border-red-500{border-color:#ef4444!important}body[data-netbox-color-mode=dark] .border-red-600{border-color:#dc2626!important}body[data-netbox-color-mode=dark] .border-red-700{border-color:#b91c1c!important}body[data-netbox-color-mode=dark] .border-red-800{border-color:#991b1b!important}body[data-netbox-color-mode=dark] .border-red-900{border-color:#7f1d1d!important}body[data-netbox-color-mode=dark] .border-yellow-50{border-color:#fffbeb!important}body[data-netbox-color-mode=dark] .border-yellow-100{border-color:#fef3c7!important}body[data-netbox-color-mode=dark] .border-yellow-200{border-color:#fde68a!important}body[data-netbox-color-mode=dark] .border-yellow-300{border-color:#fcd34d!important}body[data-netbox-color-mode=dark] .border-yellow-400{border-color:#fbbf24!important}body[data-netbox-color-mode=dark] .border-yellow-500{border-color:#f59e0b!important}body[data-netbox-color-mode=dark] .border-yellow-600{border-color:#d97706!important}body[data-netbox-color-mode=dark] .border-yellow-700{border-color:#b45309!important}body[data-netbox-color-mode=dark] .border-yellow-800{border-color:#92400e!important}body[data-netbox-color-mode=dark] .border-yellow-900{border-color:#78350f!important}body[data-netbox-color-mode=dark] .border-green-50{border-color:#ecfdf5!important}body[data-netbox-color-mode=dark] .border-green-100{border-color:#d1fae5!important}body[data-netbox-color-mode=dark] .border-green-200{border-color:#a7f3d0!important}body[data-netbox-color-mode=dark] .border-green-300{border-color:#6ee7b7!important}body[data-netbox-color-mode=dark] .border-green-400{border-color:#34d399!important}body[data-netbox-color-mode=dark] .border-green-500{border-color:#10b981!important}body[data-netbox-color-mode=dark] .border-green-600{border-color:#059669!important}body[data-netbox-color-mode=dark] .border-green-700{border-color:#047857!important}body[data-netbox-color-mode=dark] .border-green-800{border-color:#065f46!important}body[data-netbox-color-mode=dark] .border-green-900{border-color:#064e3b!important}body[data-netbox-color-mode=dark] .border-blue-50{border-color:#eff6ff!important}body[data-netbox-color-mode=dark] .border-blue-100{border-color:#dbeafe!important}body[data-netbox-color-mode=dark] .border-blue-200{border-color:#bfdbfe!important}body[data-netbox-color-mode=dark] .border-blue-300{border-color:#93c5fd!important}body[data-netbox-color-mode=dark] .border-blue-400{border-color:#60a5fa!important}body[data-netbox-color-mode=dark] .border-blue-500{border-color:#3b82f6!important}body[data-netbox-color-mode=dark] .border-blue-600{border-color:#2563eb!important}body[data-netbox-color-mode=dark] .border-blue-700{border-color:#1d4ed8!important}body[data-netbox-color-mode=dark] .border-blue-800{border-color:#1e40af!important}body[data-netbox-color-mode=dark] .border-blue-900{border-color:#1e3a8a!important}body[data-netbox-color-mode=dark] .border-cyan-50{border-color:#ecfeff!important}body[data-netbox-color-mode=dark] .border-cyan-100{border-color:#cffafe!important}body[data-netbox-color-mode=dark] .border-cyan-200{border-color:#a5f3fc!important}body[data-netbox-color-mode=dark] .border-cyan-300{border-color:#67e8f9!important}body[data-netbox-color-mode=dark] .border-cyan-400{border-color:#22d3ee!important}body[data-netbox-color-mode=dark] .border-cyan-500{border-color:#06b6d4!important}body[data-netbox-color-mode=dark] .border-cyan-600{border-color:#0891b2!important}body[data-netbox-color-mode=dark] .border-cyan-700{border-color:#0e7490!important}body[data-netbox-color-mode=dark] .border-cyan-800{border-color:#155e75!important}body[data-netbox-color-mode=dark] .border-cyan-900{border-color:#164e63!important}body[data-netbox-color-mode=dark] .border-indigo-50{border-color:#eef2ff!important}body[data-netbox-color-mode=dark] .border-indigo-100{border-color:#e0e7ff!important}body[data-netbox-color-mode=dark] .border-indigo-200{border-color:#c7d2fe!important}body[data-netbox-color-mode=dark] .border-indigo-300{border-color:#a5b4fc!important}body[data-netbox-color-mode=dark] .border-indigo-400{border-color:#818cf8!important}body[data-netbox-color-mode=dark] .border-indigo-500{border-color:#6366f1!important}body[data-netbox-color-mode=dark] .border-indigo-600{border-color:#4f46e5!important}body[data-netbox-color-mode=dark] .border-indigo-700{border-color:#4338ca!important}body[data-netbox-color-mode=dark] .border-indigo-800{border-color:#3730a3!important}body[data-netbox-color-mode=dark] .border-indigo-900{border-color:#312e81!important}body[data-netbox-color-mode=dark] .border-purple-50{border-color:#f5f3ff!important}body[data-netbox-color-mode=dark] .border-purple-100{border-color:#ede9fe!important}body[data-netbox-color-mode=dark] .border-purple-200{border-color:#ddd6fe!important}body[data-netbox-color-mode=dark] .border-purple-300{border-color:#c4b5fd!important}body[data-netbox-color-mode=dark] .border-purple-400{border-color:#a78bfa!important}body[data-netbox-color-mode=dark] .border-purple-500{border-color:#8b5cf6!important}body[data-netbox-color-mode=dark] .border-purple-600{border-color:#7c3aed!important}body[data-netbox-color-mode=dark] .border-purple-700{border-color:#6d28d9!important}body[data-netbox-color-mode=dark] .border-purple-800{border-color:#5b21b6!important}body[data-netbox-color-mode=dark] .border-purple-900{border-color:#4c1d95!important}body[data-netbox-color-mode=dark] .border-pink-50{border-color:#fdf2f8!important}body[data-netbox-color-mode=dark] .border-pink-100{border-color:#fce7f3!important}body[data-netbox-color-mode=dark] .border-pink-200{border-color:#fbcfe8!important}body[data-netbox-color-mode=dark] .border-pink-300{border-color:#f9a8d4!important}body[data-netbox-color-mode=dark] .border-pink-400{border-color:#f472b6!important}body[data-netbox-color-mode=dark] .border-pink-500{border-color:#ec4899!important}body[data-netbox-color-mode=dark] .border-pink-600{border-color:#db2777!important}body[data-netbox-color-mode=dark] .border-pink-700{border-color:#be185d!important}body[data-netbox-color-mode=dark] .border-pink-800{border-color:#9d174d!important}body[data-netbox-color-mode=dark] .border-pink-900{border-color:#831843!important}body[data-netbox-color-mode=dark] .border-white{border-color:#fff!important}body[data-netbox-color-mode=dark] .border-1{border-width:1px!important}body[data-netbox-color-mode=dark] .border-2{border-width:2px!important}body[data-netbox-color-mode=dark] .border-3{border-width:3px!important}body[data-netbox-color-mode=dark] .border-4{border-width:4px!important}body[data-netbox-color-mode=dark] .border-5{border-width:5px!important}body[data-netbox-color-mode=dark] .w-25{width:25%!important}body[data-netbox-color-mode=dark] .w-50{width:50%!important}body[data-netbox-color-mode=dark] .w-75{width:75%!important}body[data-netbox-color-mode=dark] .w-100{width:100%!important}body[data-netbox-color-mode=dark] .w-auto{width:auto!important}body[data-netbox-color-mode=dark] .mw-100{max-width:100%!important}body[data-netbox-color-mode=dark] .vw-100{width:100vw!important}body[data-netbox-color-mode=dark] .min-vw-100{min-width:100vw!important}body[data-netbox-color-mode=dark] .h-25{height:25%!important}body[data-netbox-color-mode=dark] .h-50{height:50%!important}body[data-netbox-color-mode=dark] .h-75{height:75%!important}body[data-netbox-color-mode=dark] .h-100{height:100%!important}body[data-netbox-color-mode=dark] .h-auto{height:auto!important}body[data-netbox-color-mode=dark] .mh-100{max-height:100%!important}body[data-netbox-color-mode=dark] .vh-100{height:100vh!important}body[data-netbox-color-mode=dark] .min-vh-100{min-height:100vh!important}body[data-netbox-color-mode=dark] .flex-fill{flex:1 1 auto!important}body[data-netbox-color-mode=dark] .flex-row{flex-direction:row!important}body[data-netbox-color-mode=dark] .flex-column{flex-direction:column!important}body[data-netbox-color-mode=dark] .flex-row-reverse{flex-direction:row-reverse!important}body[data-netbox-color-mode=dark] .flex-column-reverse{flex-direction:column-reverse!important}body[data-netbox-color-mode=dark] .flex-grow-0{flex-grow:0!important}body[data-netbox-color-mode=dark] .flex-grow-1{flex-grow:1!important}body[data-netbox-color-mode=dark] .flex-shrink-0{flex-shrink:0!important}body[data-netbox-color-mode=dark] .flex-shrink-1{flex-shrink:1!important}body[data-netbox-color-mode=dark] .flex-wrap{flex-wrap:wrap!important}body[data-netbox-color-mode=dark] .flex-nowrap{flex-wrap:nowrap!important}body[data-netbox-color-mode=dark] .flex-wrap-reverse{flex-wrap:wrap-reverse!important}body[data-netbox-color-mode=dark] .gap-0{gap:0!important}body[data-netbox-color-mode=dark] .gap-1{gap:.25rem!important}body[data-netbox-color-mode=dark] .gap-2{gap:.5rem!important}body[data-netbox-color-mode=dark] .gap-3{gap:1rem!important}body[data-netbox-color-mode=dark] .gap-4{gap:1.5rem!important}body[data-netbox-color-mode=dark] .gap-5{gap:3rem!important}body[data-netbox-color-mode=dark] .justify-content-start{justify-content:flex-start!important}body[data-netbox-color-mode=dark] .justify-content-end{justify-content:flex-end!important}body[data-netbox-color-mode=dark] .justify-content-center{justify-content:center!important}body[data-netbox-color-mode=dark] .justify-content-between{justify-content:space-between!important}body[data-netbox-color-mode=dark] .justify-content-around{justify-content:space-around!important}body[data-netbox-color-mode=dark] .justify-content-evenly{justify-content:space-evenly!important}body[data-netbox-color-mode=dark] .align-items-start{align-items:flex-start!important}body[data-netbox-color-mode=dark] .align-items-end{align-items:flex-end!important}body[data-netbox-color-mode=dark] .align-items-center{align-items:center!important}body[data-netbox-color-mode=dark] .align-items-baseline{align-items:baseline!important}body[data-netbox-color-mode=dark] .align-items-stretch{align-items:stretch!important}body[data-netbox-color-mode=dark] .align-content-start{align-content:flex-start!important}body[data-netbox-color-mode=dark] .align-content-end{align-content:flex-end!important}body[data-netbox-color-mode=dark] .align-content-center{align-content:center!important}body[data-netbox-color-mode=dark] .align-content-between{align-content:space-between!important}body[data-netbox-color-mode=dark] .align-content-around{align-content:space-around!important}body[data-netbox-color-mode=dark] .align-content-stretch{align-content:stretch!important}body[data-netbox-color-mode=dark] .align-self-auto{align-self:auto!important}body[data-netbox-color-mode=dark] .align-self-start{align-self:flex-start!important}body[data-netbox-color-mode=dark] .align-self-end{align-self:flex-end!important}body[data-netbox-color-mode=dark] .align-self-center{align-self:center!important}body[data-netbox-color-mode=dark] .align-self-baseline{align-self:baseline!important}body[data-netbox-color-mode=dark] .align-self-stretch{align-self:stretch!important}body[data-netbox-color-mode=dark] .order-first{order:-1!important}body[data-netbox-color-mode=dark] .order-0{order:0!important}body[data-netbox-color-mode=dark] .order-1{order:1!important}body[data-netbox-color-mode=dark] .order-2{order:2!important}body[data-netbox-color-mode=dark] .order-3{order:3!important}body[data-netbox-color-mode=dark] .order-4{order:4!important}body[data-netbox-color-mode=dark] .order-5{order:5!important}body[data-netbox-color-mode=dark] .order-last{order:6!important}body[data-netbox-color-mode=dark] .m-0{margin:0!important}body[data-netbox-color-mode=dark] .m-1{margin:.25rem!important}body[data-netbox-color-mode=dark] .m-2{margin:.5rem!important}body[data-netbox-color-mode=dark] .m-3{margin:1rem!important}body[data-netbox-color-mode=dark] .m-4{margin:1.5rem!important}body[data-netbox-color-mode=dark] .m-5{margin:3rem!important}body[data-netbox-color-mode=dark] .m-auto{margin:auto!important}body[data-netbox-color-mode=dark] .mx-0{margin-right:0!important;margin-left:0!important}body[data-netbox-color-mode=dark] .mx-1{margin-right:.25rem!important;margin-left:.25rem!important}body[data-netbox-color-mode=dark] .mx-2{margin-right:.5rem!important;margin-left:.5rem!important}body[data-netbox-color-mode=dark] .mx-3{margin-right:1rem!important;margin-left:1rem!important}body[data-netbox-color-mode=dark] .mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .mx-5{margin-right:3rem!important;margin-left:3rem!important}body[data-netbox-color-mode=dark] .mx-auto{margin-right:auto!important;margin-left:auto!important}body[data-netbox-color-mode=dark] .my-0{margin-top:0!important;margin-bottom:0!important}body[data-netbox-color-mode=dark] .my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .my-3{margin-top:1rem!important;margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .my-5{margin-top:3rem!important;margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .my-auto{margin-top:auto!important;margin-bottom:auto!important}body[data-netbox-color-mode=dark] .mt-0{margin-top:0!important}body[data-netbox-color-mode=dark] .mt-1{margin-top:.25rem!important}body[data-netbox-color-mode=dark] .mt-2{margin-top:.5rem!important}body[data-netbox-color-mode=dark] .mt-3{margin-top:1rem!important}body[data-netbox-color-mode=dark] .mt-4{margin-top:1.5rem!important}body[data-netbox-color-mode=dark] .mt-5{margin-top:3rem!important}body[data-netbox-color-mode=dark] .mt-auto{margin-top:auto!important}body[data-netbox-color-mode=dark] .me-0{margin-right:0!important}body[data-netbox-color-mode=dark] .me-1{margin-right:.25rem!important}body[data-netbox-color-mode=dark] .me-2{margin-right:.5rem!important}body[data-netbox-color-mode=dark] .me-3{margin-right:1rem!important}body[data-netbox-color-mode=dark] .me-4{margin-right:1.5rem!important}body[data-netbox-color-mode=dark] .me-5{margin-right:3rem!important}body[data-netbox-color-mode=dark] .me-auto{margin-right:auto!important}body[data-netbox-color-mode=dark] .mb-0{margin-bottom:0!important}body[data-netbox-color-mode=dark] .mb-1{margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .mb-2{margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .mb-3{margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .mb-4{margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .mb-5{margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .mb-auto{margin-bottom:auto!important}body[data-netbox-color-mode=dark] .ms-0{margin-left:0!important}body[data-netbox-color-mode=dark] .ms-1{margin-left:.25rem!important}body[data-netbox-color-mode=dark] .ms-2{margin-left:.5rem!important}body[data-netbox-color-mode=dark] .ms-3{margin-left:1rem!important}body[data-netbox-color-mode=dark] .ms-4{margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .ms-5{margin-left:3rem!important}body[data-netbox-color-mode=dark] .ms-auto{margin-left:auto!important}body[data-netbox-color-mode=dark] .p-0{padding:0!important}body[data-netbox-color-mode=dark] .p-1{padding:.25rem!important}body[data-netbox-color-mode=dark] .p-2{padding:.5rem!important}body[data-netbox-color-mode=dark] .p-3{padding:1rem!important}body[data-netbox-color-mode=dark] .p-4{padding:1.5rem!important}body[data-netbox-color-mode=dark] .p-5{padding:3rem!important}body[data-netbox-color-mode=dark] .px-0{padding-right:0!important;padding-left:0!important}body[data-netbox-color-mode=dark] .px-1{padding-right:.25rem!important;padding-left:.25rem!important}body[data-netbox-color-mode=dark] .px-2{padding-right:.5rem!important;padding-left:.5rem!important}body[data-netbox-color-mode=dark] .px-3{padding-right:1rem!important;padding-left:1rem!important}body[data-netbox-color-mode=dark] .px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .px-5{padding-right:3rem!important;padding-left:3rem!important}body[data-netbox-color-mode=dark] .py-0{padding-top:0!important;padding-bottom:0!important}body[data-netbox-color-mode=dark] .py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .py-3{padding-top:1rem!important;padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .py-5{padding-top:3rem!important;padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .pt-0{padding-top:0!important}body[data-netbox-color-mode=dark] .pt-1{padding-top:.25rem!important}body[data-netbox-color-mode=dark] .pt-2{padding-top:.5rem!important}body[data-netbox-color-mode=dark] .pt-3{padding-top:1rem!important}body[data-netbox-color-mode=dark] .pt-4{padding-top:1.5rem!important}body[data-netbox-color-mode=dark] .pt-5{padding-top:3rem!important}body[data-netbox-color-mode=dark] .pe-0{padding-right:0!important}body[data-netbox-color-mode=dark] .pe-1{padding-right:.25rem!important}body[data-netbox-color-mode=dark] .pe-2{padding-right:.5rem!important}body[data-netbox-color-mode=dark] .pe-3{padding-right:1rem!important}body[data-netbox-color-mode=dark] .pe-4{padding-right:1.5rem!important}body[data-netbox-color-mode=dark] .pe-5{padding-right:3rem!important}body[data-netbox-color-mode=dark] .pb-0{padding-bottom:0!important}body[data-netbox-color-mode=dark] .pb-1{padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .pb-2{padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .pb-3{padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .pb-4{padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .pb-5{padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .ps-0{padding-left:0!important}body[data-netbox-color-mode=dark] .ps-1{padding-left:.25rem!important}body[data-netbox-color-mode=dark] .ps-2{padding-left:.5rem!important}body[data-netbox-color-mode=dark] .ps-3{padding-left:1rem!important}body[data-netbox-color-mode=dark] .ps-4{padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .ps-5{padding-left:3rem!important}body[data-netbox-color-mode=dark] .font-monospace{font-family:var(--bs-font-monospace)!important}body[data-netbox-color-mode=dark] .fs-1{font-size:calc(1.375rem + 1.5vw)!important}body[data-netbox-color-mode=dark] .fs-2{font-size:calc(1.325rem + .9vw)!important}body[data-netbox-color-mode=dark] .fs-3{font-size:calc(1.3rem + .6vw)!important}body[data-netbox-color-mode=dark] .fs-4{font-size:calc(1.275rem + .3vw)!important}body[data-netbox-color-mode=dark] .fs-5{font-size:1.25rem!important}body[data-netbox-color-mode=dark] .fs-6{font-size:1rem!important}body[data-netbox-color-mode=dark] .fst-italic{font-style:italic!important}body[data-netbox-color-mode=dark] .fst-normal{font-style:normal!important}body[data-netbox-color-mode=dark] .fw-light{font-weight:300!important}body[data-netbox-color-mode=dark] .fw-lighter{font-weight:200!important}body[data-netbox-color-mode=dark] .fw-normal{font-weight:400!important}body[data-netbox-color-mode=dark] .fw-bold{font-weight:700!important}body[data-netbox-color-mode=dark] .fw-bolder{font-weight:800!important}body[data-netbox-color-mode=dark] .lh-1{line-height:1!important}body[data-netbox-color-mode=dark] .lh-sm{line-height:1.25!important}body[data-netbox-color-mode=dark] .lh-base{line-height:1.5!important}body[data-netbox-color-mode=dark] .lh-lg{line-height:1.75!important}body[data-netbox-color-mode=dark] .text-start{text-align:left!important}body[data-netbox-color-mode=dark] .text-end{text-align:right!important}body[data-netbox-color-mode=dark] .text-center{text-align:center!important}body[data-netbox-color-mode=dark] .text-decoration-none{text-decoration:none!important}body[data-netbox-color-mode=dark] .text-decoration-underline{text-decoration:underline!important}body[data-netbox-color-mode=dark] .text-decoration-line-through{text-decoration:line-through!important}body[data-netbox-color-mode=dark] .text-lowercase{text-transform:lowercase!important}body[data-netbox-color-mode=dark] .text-uppercase{text-transform:uppercase!important}body[data-netbox-color-mode=dark] .text-capitalize{text-transform:capitalize!important}body[data-netbox-color-mode=dark] .text-wrap{white-space:normal!important}body[data-netbox-color-mode=dark] .text-nowrap{white-space:nowrap!important}body[data-netbox-color-mode=dark] .text-break{word-wrap:break-word!important;word-break:break-word!important}body[data-netbox-color-mode=dark] .text-primary{color:#93c5fd!important}body[data-netbox-color-mode=dark] .text-secondary{color:#9ca3af!important}body[data-netbox-color-mode=dark] .text-success{color:#6ee7b7!important}body[data-netbox-color-mode=dark] .text-info{color:#67e8f9!important}body[data-netbox-color-mode=dark] .text-warning{color:#fcd34d!important}body[data-netbox-color-mode=dark] .text-danger{color:#fca5a5!important}body[data-netbox-color-mode=dark] .text-light{color:#d1d5db!important}body[data-netbox-color-mode=dark] .text-dark{color:#9ca3af!important}body[data-netbox-color-mode=dark] .text-alt{color:#13293d!important}body[data-netbox-color-mode=dark] .text-gray{color:#9ca3af!important}body[data-netbox-color-mode=dark] .text-darker{color:#010101!important}body[data-netbox-color-mode=dark] .text-gray-50{color:#f9fafb!important}body[data-netbox-color-mode=dark] .text-gray-100{color:#f3f4f6!important}body[data-netbox-color-mode=dark] .text-gray-200{color:#e5e7eb!important}body[data-netbox-color-mode=dark] .text-gray-300{color:#d1d5db!important}body[data-netbox-color-mode=dark] .text-gray-400{color:#9ca3af!important}body[data-netbox-color-mode=dark] .text-gray-500{color:#6b7280!important}body[data-netbox-color-mode=dark] .text-gray-600{color:#4b5563!important}body[data-netbox-color-mode=dark] .text-gray-700{color:#374151!important}body[data-netbox-color-mode=dark] .text-gray-800{color:#1f2937!important}body[data-netbox-color-mode=dark] .text-gray-900{color:#111827!important}body[data-netbox-color-mode=dark] .text-red-50{color:#fef2f2!important}body[data-netbox-color-mode=dark] .text-red-100{color:#fee2e2!important}body[data-netbox-color-mode=dark] .text-red-200{color:#fecaca!important}body[data-netbox-color-mode=dark] .text-red-300{color:#fca5a5!important}body[data-netbox-color-mode=dark] .text-red-400{color:#f87171!important}body[data-netbox-color-mode=dark] .text-red-500{color:#ef4444!important}body[data-netbox-color-mode=dark] .text-red-600{color:#dc2626!important}body[data-netbox-color-mode=dark] .text-red-700{color:#b91c1c!important}body[data-netbox-color-mode=dark] .text-red-800{color:#991b1b!important}body[data-netbox-color-mode=dark] .text-red-900{color:#7f1d1d!important}body[data-netbox-color-mode=dark] .text-yellow-50{color:#fffbeb!important}body[data-netbox-color-mode=dark] .text-yellow-100{color:#fef3c7!important}body[data-netbox-color-mode=dark] .text-yellow-200{color:#fde68a!important}body[data-netbox-color-mode=dark] .text-yellow-300{color:#fcd34d!important}body[data-netbox-color-mode=dark] .text-yellow-400{color:#fbbf24!important}body[data-netbox-color-mode=dark] .text-yellow-500{color:#f59e0b!important}body[data-netbox-color-mode=dark] .text-yellow-600{color:#d97706!important}body[data-netbox-color-mode=dark] .text-yellow-700{color:#b45309!important}body[data-netbox-color-mode=dark] .text-yellow-800{color:#92400e!important}body[data-netbox-color-mode=dark] .text-yellow-900{color:#78350f!important}body[data-netbox-color-mode=dark] .text-green-50{color:#ecfdf5!important}body[data-netbox-color-mode=dark] .text-green-100{color:#d1fae5!important}body[data-netbox-color-mode=dark] .text-green-200{color:#a7f3d0!important}body[data-netbox-color-mode=dark] .text-green-300{color:#6ee7b7!important}body[data-netbox-color-mode=dark] .text-green-400{color:#34d399!important}body[data-netbox-color-mode=dark] .text-green-500{color:#10b981!important}body[data-netbox-color-mode=dark] .text-green-600{color:#059669!important}body[data-netbox-color-mode=dark] .text-green-700{color:#047857!important}body[data-netbox-color-mode=dark] .text-green-800{color:#065f46!important}body[data-netbox-color-mode=dark] .text-green-900{color:#064e3b!important}body[data-netbox-color-mode=dark] .text-blue-50{color:#eff6ff!important}body[data-netbox-color-mode=dark] .text-blue-100{color:#dbeafe!important}body[data-netbox-color-mode=dark] .text-blue-200{color:#bfdbfe!important}body[data-netbox-color-mode=dark] .text-blue-300{color:#93c5fd!important}body[data-netbox-color-mode=dark] .text-blue-400{color:#60a5fa!important}body[data-netbox-color-mode=dark] .text-blue-500{color:#3b82f6!important}body[data-netbox-color-mode=dark] .text-blue-600{color:#2563eb!important}body[data-netbox-color-mode=dark] .text-blue-700{color:#1d4ed8!important}body[data-netbox-color-mode=dark] .text-blue-800{color:#1e40af!important}body[data-netbox-color-mode=dark] .text-blue-900{color:#1e3a8a!important}body[data-netbox-color-mode=dark] .text-cyan-50{color:#ecfeff!important}body[data-netbox-color-mode=dark] .text-cyan-100{color:#cffafe!important}body[data-netbox-color-mode=dark] .text-cyan-200{color:#a5f3fc!important}body[data-netbox-color-mode=dark] .text-cyan-300{color:#67e8f9!important}body[data-netbox-color-mode=dark] .text-cyan-400{color:#22d3ee!important}body[data-netbox-color-mode=dark] .text-cyan-500{color:#06b6d4!important}body[data-netbox-color-mode=dark] .text-cyan-600{color:#0891b2!important}body[data-netbox-color-mode=dark] .text-cyan-700{color:#0e7490!important}body[data-netbox-color-mode=dark] .text-cyan-800{color:#155e75!important}body[data-netbox-color-mode=dark] .text-cyan-900{color:#164e63!important}body[data-netbox-color-mode=dark] .text-indigo-50{color:#eef2ff!important}body[data-netbox-color-mode=dark] .text-indigo-100{color:#e0e7ff!important}body[data-netbox-color-mode=dark] .text-indigo-200{color:#c7d2fe!important}body[data-netbox-color-mode=dark] .text-indigo-300{color:#a5b4fc!important}body[data-netbox-color-mode=dark] .text-indigo-400{color:#818cf8!important}body[data-netbox-color-mode=dark] .text-indigo-500{color:#6366f1!important}body[data-netbox-color-mode=dark] .text-indigo-600{color:#4f46e5!important}body[data-netbox-color-mode=dark] .text-indigo-700{color:#4338ca!important}body[data-netbox-color-mode=dark] .text-indigo-800{color:#3730a3!important}body[data-netbox-color-mode=dark] .text-indigo-900{color:#312e81!important}body[data-netbox-color-mode=dark] .text-purple-50{color:#f5f3ff!important}body[data-netbox-color-mode=dark] .text-purple-100{color:#ede9fe!important}body[data-netbox-color-mode=dark] .text-purple-200{color:#ddd6fe!important}body[data-netbox-color-mode=dark] .text-purple-300{color:#c4b5fd!important}body[data-netbox-color-mode=dark] .text-purple-400{color:#a78bfa!important}body[data-netbox-color-mode=dark] .text-purple-500{color:#8b5cf6!important}body[data-netbox-color-mode=dark] .text-purple-600{color:#7c3aed!important}body[data-netbox-color-mode=dark] .text-purple-700{color:#6d28d9!important}body[data-netbox-color-mode=dark] .text-purple-800{color:#5b21b6!important}body[data-netbox-color-mode=dark] .text-purple-900{color:#4c1d95!important}body[data-netbox-color-mode=dark] .text-pink-50{color:#fdf2f8!important}body[data-netbox-color-mode=dark] .text-pink-100{color:#fce7f3!important}body[data-netbox-color-mode=dark] .text-pink-200{color:#fbcfe8!important}body[data-netbox-color-mode=dark] .text-pink-300{color:#f9a8d4!important}body[data-netbox-color-mode=dark] .text-pink-400{color:#f472b6!important}body[data-netbox-color-mode=dark] .text-pink-500{color:#ec4899!important}body[data-netbox-color-mode=dark] .text-pink-600{color:#db2777!important}body[data-netbox-color-mode=dark] .text-pink-700{color:#be185d!important}body[data-netbox-color-mode=dark] .text-pink-800{color:#9d174d!important}body[data-netbox-color-mode=dark] .text-pink-900{color:#831843!important}body[data-netbox-color-mode=dark] .text-body,body[data-netbox-color-mode=dark] .text-white{color:#fff!important}body[data-netbox-color-mode=dark] .text-muted{color:#9ca3af!important}body[data-netbox-color-mode=dark] .text-black-50{color:rgba(0,0,0,.5)!important}body[data-netbox-color-mode=dark] .text-white-50{color:hsla(0,0%,100%,.5)!important}body[data-netbox-color-mode=dark] .text-reset{color:inherit!important}body[data-netbox-color-mode=dark] .bg-primary{background-color:#93c5fd!important}body[data-netbox-color-mode=dark] .bg-secondary{background-color:#9ca3af!important}body[data-netbox-color-mode=dark] .bg-success{background-color:#6ee7b7!important}body[data-netbox-color-mode=dark] .bg-info{background-color:#67e8f9!important}body[data-netbox-color-mode=dark] .bg-warning{background-color:#fcd34d!important}body[data-netbox-color-mode=dark] .bg-danger{background-color:#fca5a5!important}body[data-netbox-color-mode=dark] .bg-light{background-color:#d1d5db!important}body[data-netbox-color-mode=dark] .bg-dark{background-color:#9ca3af!important}body[data-netbox-color-mode=dark] .bg-alt{background-color:#13293d!important}body[data-netbox-color-mode=dark] .bg-gray{background-color:#9ca3af!important}body[data-netbox-color-mode=dark] .bg-darker{background-color:#010101!important}body[data-netbox-color-mode=dark] .bg-gray-50{background-color:#f9fafb!important}body[data-netbox-color-mode=dark] .bg-gray-100{background-color:#f3f4f6!important}body[data-netbox-color-mode=dark] .bg-gray-200{background-color:#e5e7eb!important}body[data-netbox-color-mode=dark] .bg-gray-300{background-color:#d1d5db!important}body[data-netbox-color-mode=dark] .bg-gray-400{background-color:#9ca3af!important}body[data-netbox-color-mode=dark] .bg-gray-500{background-color:#6b7280!important}body[data-netbox-color-mode=dark] .bg-gray-600{background-color:#4b5563!important}body[data-netbox-color-mode=dark] .bg-gray-700{background-color:#374151!important}body[data-netbox-color-mode=dark] .bg-gray-800{background-color:#1f2937!important}body[data-netbox-color-mode=dark] .bg-gray-900{background-color:#111827!important}body[data-netbox-color-mode=dark] .bg-red-50{background-color:#fef2f2!important}body[data-netbox-color-mode=dark] .bg-red-100{background-color:#fee2e2!important}body[data-netbox-color-mode=dark] .bg-red-200{background-color:#fecaca!important}body[data-netbox-color-mode=dark] .bg-red-300{background-color:#fca5a5!important}body[data-netbox-color-mode=dark] .bg-red-400{background-color:#f87171!important}body[data-netbox-color-mode=dark] .bg-red-500{background-color:#ef4444!important}body[data-netbox-color-mode=dark] .bg-red-600{background-color:#dc2626!important}body[data-netbox-color-mode=dark] .bg-red-700{background-color:#b91c1c!important}body[data-netbox-color-mode=dark] .bg-red-800{background-color:#991b1b!important}body[data-netbox-color-mode=dark] .bg-red-900{background-color:#7f1d1d!important}body[data-netbox-color-mode=dark] .bg-yellow-50{background-color:#fffbeb!important}body[data-netbox-color-mode=dark] .bg-yellow-100{background-color:#fef3c7!important}body[data-netbox-color-mode=dark] .bg-yellow-200{background-color:#fde68a!important}body[data-netbox-color-mode=dark] .bg-yellow-300{background-color:#fcd34d!important}body[data-netbox-color-mode=dark] .bg-yellow-400{background-color:#fbbf24!important}body[data-netbox-color-mode=dark] .bg-yellow-500{background-color:#f59e0b!important}body[data-netbox-color-mode=dark] .bg-yellow-600{background-color:#d97706!important}body[data-netbox-color-mode=dark] .bg-yellow-700{background-color:#b45309!important}body[data-netbox-color-mode=dark] .bg-yellow-800{background-color:#92400e!important}body[data-netbox-color-mode=dark] .bg-yellow-900{background-color:#78350f!important}body[data-netbox-color-mode=dark] .bg-green-50{background-color:#ecfdf5!important}body[data-netbox-color-mode=dark] .bg-green-100{background-color:#d1fae5!important}body[data-netbox-color-mode=dark] .bg-green-200{background-color:#a7f3d0!important}body[data-netbox-color-mode=dark] .bg-green-300{background-color:#6ee7b7!important}body[data-netbox-color-mode=dark] .bg-green-400{background-color:#34d399!important}body[data-netbox-color-mode=dark] .bg-green-500{background-color:#10b981!important}body[data-netbox-color-mode=dark] .bg-green-600{background-color:#059669!important}body[data-netbox-color-mode=dark] .bg-green-700{background-color:#047857!important}body[data-netbox-color-mode=dark] .bg-green-800{background-color:#065f46!important}body[data-netbox-color-mode=dark] .bg-green-900{background-color:#064e3b!important}body[data-netbox-color-mode=dark] .bg-blue-50{background-color:#eff6ff!important}body[data-netbox-color-mode=dark] .bg-blue-100{background-color:#dbeafe!important}body[data-netbox-color-mode=dark] .bg-blue-200{background-color:#bfdbfe!important}body[data-netbox-color-mode=dark] .bg-blue-300{background-color:#93c5fd!important}body[data-netbox-color-mode=dark] .bg-blue-400{background-color:#60a5fa!important}body[data-netbox-color-mode=dark] .bg-blue-500{background-color:#3b82f6!important}body[data-netbox-color-mode=dark] .bg-blue-600{background-color:#2563eb!important}body[data-netbox-color-mode=dark] .bg-blue-700{background-color:#1d4ed8!important}body[data-netbox-color-mode=dark] .bg-blue-800{background-color:#1e40af!important}body[data-netbox-color-mode=dark] .bg-blue-900{background-color:#1e3a8a!important}body[data-netbox-color-mode=dark] .bg-cyan-50{background-color:#ecfeff!important}body[data-netbox-color-mode=dark] .bg-cyan-100{background-color:#cffafe!important}body[data-netbox-color-mode=dark] .bg-cyan-200{background-color:#a5f3fc!important}body[data-netbox-color-mode=dark] .bg-cyan-300{background-color:#67e8f9!important}body[data-netbox-color-mode=dark] .bg-cyan-400{background-color:#22d3ee!important}body[data-netbox-color-mode=dark] .bg-cyan-500{background-color:#06b6d4!important}body[data-netbox-color-mode=dark] .bg-cyan-600{background-color:#0891b2!important}body[data-netbox-color-mode=dark] .bg-cyan-700{background-color:#0e7490!important}body[data-netbox-color-mode=dark] .bg-cyan-800{background-color:#155e75!important}body[data-netbox-color-mode=dark] .bg-cyan-900{background-color:#164e63!important}body[data-netbox-color-mode=dark] .bg-indigo-50{background-color:#eef2ff!important}body[data-netbox-color-mode=dark] .bg-indigo-100{background-color:#e0e7ff!important}body[data-netbox-color-mode=dark] .bg-indigo-200{background-color:#c7d2fe!important}body[data-netbox-color-mode=dark] .bg-indigo-300{background-color:#a5b4fc!important}body[data-netbox-color-mode=dark] .bg-indigo-400{background-color:#818cf8!important}body[data-netbox-color-mode=dark] .bg-indigo-500{background-color:#6366f1!important}body[data-netbox-color-mode=dark] .bg-indigo-600{background-color:#4f46e5!important}body[data-netbox-color-mode=dark] .bg-indigo-700{background-color:#4338ca!important}body[data-netbox-color-mode=dark] .bg-indigo-800{background-color:#3730a3!important}body[data-netbox-color-mode=dark] .bg-indigo-900{background-color:#312e81!important}body[data-netbox-color-mode=dark] .bg-purple-50{background-color:#f5f3ff!important}body[data-netbox-color-mode=dark] .bg-purple-100{background-color:#ede9fe!important}body[data-netbox-color-mode=dark] .bg-purple-200{background-color:#ddd6fe!important}body[data-netbox-color-mode=dark] .bg-purple-300{background-color:#c4b5fd!important}body[data-netbox-color-mode=dark] .bg-purple-400{background-color:#a78bfa!important}body[data-netbox-color-mode=dark] .bg-purple-500{background-color:#8b5cf6!important}body[data-netbox-color-mode=dark] .bg-purple-600{background-color:#7c3aed!important}body[data-netbox-color-mode=dark] .bg-purple-700{background-color:#6d28d9!important}body[data-netbox-color-mode=dark] .bg-purple-800{background-color:#5b21b6!important}body[data-netbox-color-mode=dark] .bg-purple-900{background-color:#4c1d95!important}body[data-netbox-color-mode=dark] .bg-pink-50{background-color:#fdf2f8!important}body[data-netbox-color-mode=dark] .bg-pink-100{background-color:#fce7f3!important}body[data-netbox-color-mode=dark] .bg-pink-200{background-color:#fbcfe8!important}body[data-netbox-color-mode=dark] .bg-pink-300{background-color:#f9a8d4!important}body[data-netbox-color-mode=dark] .bg-pink-400{background-color:#f472b6!important}body[data-netbox-color-mode=dark] .bg-pink-500{background-color:#ec4899!important}body[data-netbox-color-mode=dark] .bg-pink-600{background-color:#db2777!important}body[data-netbox-color-mode=dark] .bg-pink-700{background-color:#be185d!important}body[data-netbox-color-mode=dark] .bg-pink-800{background-color:#9d174d!important}body[data-netbox-color-mode=dark] .bg-pink-900{background-color:#831843!important}body[data-netbox-color-mode=dark] .bg-body{background-color:#111827!important}body[data-netbox-color-mode=dark] .bg-white{background-color:#fff!important}body[data-netbox-color-mode=dark] .bg-transparent{background-color:transparent!important}body[data-netbox-color-mode=dark] .bg-gradient{background-image:var(--bs-gradient)!important}body[data-netbox-color-mode=dark] .user-select-all{user-select:all!important}body[data-netbox-color-mode=dark] .user-select-auto{user-select:auto!important}body[data-netbox-color-mode=dark] .user-select-none{user-select:none!important}body[data-netbox-color-mode=dark] .pe-none{pointer-events:none!important}body[data-netbox-color-mode=dark] .pe-auto{pointer-events:auto!important}body[data-netbox-color-mode=dark] .rounded{border-radius:.5rem!important}body[data-netbox-color-mode=dark] .rounded-0{border-radius:0!important}body[data-netbox-color-mode=dark] .rounded-1,body[data-netbox-color-mode=dark] .rounded-2{border-radius:.5rem!important}body[data-netbox-color-mode=dark] .rounded-3{border-radius:.75rem!important}body[data-netbox-color-mode=dark] .rounded-circle{border-radius:50%!important}body[data-netbox-color-mode=dark] .rounded-pill{border-radius:50rem!important}body[data-netbox-color-mode=dark] .rounded-top{border-top-left-radius:.5rem!important;border-top-right-radius:.5rem!important}body[data-netbox-color-mode=dark] .rounded-end{border-top-right-radius:.5rem!important;border-bottom-right-radius:.5rem!important}body[data-netbox-color-mode=dark] .rounded-bottom{border-bottom-right-radius:.5rem!important;border-bottom-left-radius:.5rem!important}body[data-netbox-color-mode=dark] .rounded-start{border-bottom-left-radius:.5rem!important;border-top-left-radius:.5rem!important}body[data-netbox-color-mode=dark] .visible{visibility:visible!important}body[data-netbox-color-mode=dark] .invisible{visibility:hidden!important}@media (min-width:576px){body[data-netbox-color-mode=dark] .float-sm-start{float:left!important}body[data-netbox-color-mode=dark] .float-sm-end{float:right!important}body[data-netbox-color-mode=dark] .float-sm-none{float:none!important}body[data-netbox-color-mode=dark] .d-sm-inline{display:inline!important}body[data-netbox-color-mode=dark] .d-sm-inline-block{display:inline-block!important}body[data-netbox-color-mode=dark] .d-sm-block{display:block!important}body[data-netbox-color-mode=dark] .d-sm-grid{display:grid!important}body[data-netbox-color-mode=dark] .d-sm-table{display:table!important}body[data-netbox-color-mode=dark] .d-sm-table-row{display:table-row!important}body[data-netbox-color-mode=dark] .d-sm-table-cell{display:table-cell!important}body[data-netbox-color-mode=dark] .d-sm-flex{display:flex!important}body[data-netbox-color-mode=dark] .d-sm-inline-flex{display:inline-flex!important}body[data-netbox-color-mode=dark] .d-sm-none{display:none!important}body[data-netbox-color-mode=dark] .flex-sm-fill{flex:1 1 auto!important}body[data-netbox-color-mode=dark] .flex-sm-row{flex-direction:row!important}body[data-netbox-color-mode=dark] .flex-sm-column{flex-direction:column!important}body[data-netbox-color-mode=dark] .flex-sm-row-reverse{flex-direction:row-reverse!important}body[data-netbox-color-mode=dark] .flex-sm-column-reverse{flex-direction:column-reverse!important}body[data-netbox-color-mode=dark] .flex-sm-grow-0{flex-grow:0!important}body[data-netbox-color-mode=dark] .flex-sm-grow-1{flex-grow:1!important}body[data-netbox-color-mode=dark] .flex-sm-shrink-0{flex-shrink:0!important}body[data-netbox-color-mode=dark] .flex-sm-shrink-1{flex-shrink:1!important}body[data-netbox-color-mode=dark] .flex-sm-wrap{flex-wrap:wrap!important}body[data-netbox-color-mode=dark] .flex-sm-nowrap{flex-wrap:nowrap!important}body[data-netbox-color-mode=dark] .flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}body[data-netbox-color-mode=dark] .gap-sm-0{gap:0!important}body[data-netbox-color-mode=dark] .gap-sm-1{gap:.25rem!important}body[data-netbox-color-mode=dark] .gap-sm-2{gap:.5rem!important}body[data-netbox-color-mode=dark] .gap-sm-3{gap:1rem!important}body[data-netbox-color-mode=dark] .gap-sm-4{gap:1.5rem!important}body[data-netbox-color-mode=dark] .gap-sm-5{gap:3rem!important}body[data-netbox-color-mode=dark] .justify-content-sm-start{justify-content:flex-start!important}body[data-netbox-color-mode=dark] .justify-content-sm-end{justify-content:flex-end!important}body[data-netbox-color-mode=dark] .justify-content-sm-center{justify-content:center!important}body[data-netbox-color-mode=dark] .justify-content-sm-between{justify-content:space-between!important}body[data-netbox-color-mode=dark] .justify-content-sm-around{justify-content:space-around!important}body[data-netbox-color-mode=dark] .justify-content-sm-evenly{justify-content:space-evenly!important}body[data-netbox-color-mode=dark] .align-items-sm-start{align-items:flex-start!important}body[data-netbox-color-mode=dark] .align-items-sm-end{align-items:flex-end!important}body[data-netbox-color-mode=dark] .align-items-sm-center{align-items:center!important}body[data-netbox-color-mode=dark] .align-items-sm-baseline{align-items:baseline!important}body[data-netbox-color-mode=dark] .align-items-sm-stretch{align-items:stretch!important}body[data-netbox-color-mode=dark] .align-content-sm-start{align-content:flex-start!important}body[data-netbox-color-mode=dark] .align-content-sm-end{align-content:flex-end!important}body[data-netbox-color-mode=dark] .align-content-sm-center{align-content:center!important}body[data-netbox-color-mode=dark] .align-content-sm-between{align-content:space-between!important}body[data-netbox-color-mode=dark] .align-content-sm-around{align-content:space-around!important}body[data-netbox-color-mode=dark] .align-content-sm-stretch{align-content:stretch!important}body[data-netbox-color-mode=dark] .align-self-sm-auto{align-self:auto!important}body[data-netbox-color-mode=dark] .align-self-sm-start{align-self:flex-start!important}body[data-netbox-color-mode=dark] .align-self-sm-end{align-self:flex-end!important}body[data-netbox-color-mode=dark] .align-self-sm-center{align-self:center!important}body[data-netbox-color-mode=dark] .align-self-sm-baseline{align-self:baseline!important}body[data-netbox-color-mode=dark] .align-self-sm-stretch{align-self:stretch!important}body[data-netbox-color-mode=dark] .order-sm-first{order:-1!important}body[data-netbox-color-mode=dark] .order-sm-0{order:0!important}body[data-netbox-color-mode=dark] .order-sm-1{order:1!important}body[data-netbox-color-mode=dark] .order-sm-2{order:2!important}body[data-netbox-color-mode=dark] .order-sm-3{order:3!important}body[data-netbox-color-mode=dark] .order-sm-4{order:4!important}body[data-netbox-color-mode=dark] .order-sm-5{order:5!important}body[data-netbox-color-mode=dark] .order-sm-last{order:6!important}body[data-netbox-color-mode=dark] .m-sm-0{margin:0!important}body[data-netbox-color-mode=dark] .m-sm-1{margin:.25rem!important}body[data-netbox-color-mode=dark] .m-sm-2{margin:.5rem!important}body[data-netbox-color-mode=dark] .m-sm-3{margin:1rem!important}body[data-netbox-color-mode=dark] .m-sm-4{margin:1.5rem!important}body[data-netbox-color-mode=dark] .m-sm-5{margin:3rem!important}body[data-netbox-color-mode=dark] .m-sm-auto{margin:auto!important}body[data-netbox-color-mode=dark] .mx-sm-0{margin-right:0!important;margin-left:0!important}body[data-netbox-color-mode=dark] .mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}body[data-netbox-color-mode=dark] .mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}body[data-netbox-color-mode=dark] .mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}body[data-netbox-color-mode=dark] .mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}body[data-netbox-color-mode=dark] .mx-sm-auto{margin-right:auto!important;margin-left:auto!important}body[data-netbox-color-mode=dark] .my-sm-0{margin-top:0!important;margin-bottom:0!important}body[data-netbox-color-mode=dark] .my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}body[data-netbox-color-mode=dark] .mt-sm-0{margin-top:0!important}body[data-netbox-color-mode=dark] .mt-sm-1{margin-top:.25rem!important}body[data-netbox-color-mode=dark] .mt-sm-2{margin-top:.5rem!important}body[data-netbox-color-mode=dark] .mt-sm-3{margin-top:1rem!important}body[data-netbox-color-mode=dark] .mt-sm-4{margin-top:1.5rem!important}body[data-netbox-color-mode=dark] .mt-sm-5{margin-top:3rem!important}body[data-netbox-color-mode=dark] .mt-sm-auto{margin-top:auto!important}body[data-netbox-color-mode=dark] .me-sm-0{margin-right:0!important}body[data-netbox-color-mode=dark] .me-sm-1{margin-right:.25rem!important}body[data-netbox-color-mode=dark] .me-sm-2{margin-right:.5rem!important}body[data-netbox-color-mode=dark] .me-sm-3{margin-right:1rem!important}body[data-netbox-color-mode=dark] .me-sm-4{margin-right:1.5rem!important}body[data-netbox-color-mode=dark] .me-sm-5{margin-right:3rem!important}body[data-netbox-color-mode=dark] .me-sm-auto{margin-right:auto!important}body[data-netbox-color-mode=dark] .mb-sm-0{margin-bottom:0!important}body[data-netbox-color-mode=dark] .mb-sm-1{margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .mb-sm-2{margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .mb-sm-3{margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .mb-sm-4{margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .mb-sm-5{margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .mb-sm-auto{margin-bottom:auto!important}body[data-netbox-color-mode=dark] .ms-sm-0{margin-left:0!important}body[data-netbox-color-mode=dark] .ms-sm-1{margin-left:.25rem!important}body[data-netbox-color-mode=dark] .ms-sm-2{margin-left:.5rem!important}body[data-netbox-color-mode=dark] .ms-sm-3{margin-left:1rem!important}body[data-netbox-color-mode=dark] .ms-sm-4{margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .ms-sm-5{margin-left:3rem!important}body[data-netbox-color-mode=dark] .ms-sm-auto{margin-left:auto!important}body[data-netbox-color-mode=dark] .p-sm-0{padding:0!important}body[data-netbox-color-mode=dark] .p-sm-1{padding:.25rem!important}body[data-netbox-color-mode=dark] .p-sm-2{padding:.5rem!important}body[data-netbox-color-mode=dark] .p-sm-3{padding:1rem!important}body[data-netbox-color-mode=dark] .p-sm-4{padding:1.5rem!important}body[data-netbox-color-mode=dark] .p-sm-5{padding:3rem!important}body[data-netbox-color-mode=dark] .px-sm-0{padding-right:0!important;padding-left:0!important}body[data-netbox-color-mode=dark] .px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}body[data-netbox-color-mode=dark] .px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}body[data-netbox-color-mode=dark] .px-sm-3{padding-right:1rem!important;padding-left:1rem!important}body[data-netbox-color-mode=dark] .px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .px-sm-5{padding-right:3rem!important;padding-left:3rem!important}body[data-netbox-color-mode=dark] .py-sm-0{padding-top:0!important;padding-bottom:0!important}body[data-netbox-color-mode=dark] .py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .pt-sm-0{padding-top:0!important}body[data-netbox-color-mode=dark] .pt-sm-1{padding-top:.25rem!important}body[data-netbox-color-mode=dark] .pt-sm-2{padding-top:.5rem!important}body[data-netbox-color-mode=dark] .pt-sm-3{padding-top:1rem!important}body[data-netbox-color-mode=dark] .pt-sm-4{padding-top:1.5rem!important}body[data-netbox-color-mode=dark] .pt-sm-5{padding-top:3rem!important}body[data-netbox-color-mode=dark] .pe-sm-0{padding-right:0!important}body[data-netbox-color-mode=dark] .pe-sm-1{padding-right:.25rem!important}body[data-netbox-color-mode=dark] .pe-sm-2{padding-right:.5rem!important}body[data-netbox-color-mode=dark] .pe-sm-3{padding-right:1rem!important}body[data-netbox-color-mode=dark] .pe-sm-4{padding-right:1.5rem!important}body[data-netbox-color-mode=dark] .pe-sm-5{padding-right:3rem!important}body[data-netbox-color-mode=dark] .pb-sm-0{padding-bottom:0!important}body[data-netbox-color-mode=dark] .pb-sm-1{padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .pb-sm-2{padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .pb-sm-3{padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .pb-sm-4{padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .pb-sm-5{padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .ps-sm-0{padding-left:0!important}body[data-netbox-color-mode=dark] .ps-sm-1{padding-left:.25rem!important}body[data-netbox-color-mode=dark] .ps-sm-2{padding-left:.5rem!important}body[data-netbox-color-mode=dark] .ps-sm-3{padding-left:1rem!important}body[data-netbox-color-mode=dark] .ps-sm-4{padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .ps-sm-5{padding-left:3rem!important}body[data-netbox-color-mode=dark] .text-sm-start{text-align:left!important}body[data-netbox-color-mode=dark] .text-sm-end{text-align:right!important}body[data-netbox-color-mode=dark] .text-sm-center{text-align:center!important}}@media (min-width:768px){body[data-netbox-color-mode=dark] .float-md-start{float:left!important}body[data-netbox-color-mode=dark] .float-md-end{float:right!important}body[data-netbox-color-mode=dark] .float-md-none{float:none!important}body[data-netbox-color-mode=dark] .d-md-inline{display:inline!important}body[data-netbox-color-mode=dark] .d-md-inline-block{display:inline-block!important}body[data-netbox-color-mode=dark] .d-md-block{display:block!important}body[data-netbox-color-mode=dark] .d-md-grid{display:grid!important}body[data-netbox-color-mode=dark] .d-md-table{display:table!important}body[data-netbox-color-mode=dark] .d-md-table-row{display:table-row!important}body[data-netbox-color-mode=dark] .d-md-table-cell{display:table-cell!important}body[data-netbox-color-mode=dark] .d-md-flex{display:flex!important}body[data-netbox-color-mode=dark] .d-md-inline-flex{display:inline-flex!important}body[data-netbox-color-mode=dark] .d-md-none{display:none!important}body[data-netbox-color-mode=dark] .flex-md-fill{flex:1 1 auto!important}body[data-netbox-color-mode=dark] .flex-md-row{flex-direction:row!important}body[data-netbox-color-mode=dark] .flex-md-column{flex-direction:column!important}body[data-netbox-color-mode=dark] .flex-md-row-reverse{flex-direction:row-reverse!important}body[data-netbox-color-mode=dark] .flex-md-column-reverse{flex-direction:column-reverse!important}body[data-netbox-color-mode=dark] .flex-md-grow-0{flex-grow:0!important}body[data-netbox-color-mode=dark] .flex-md-grow-1{flex-grow:1!important}body[data-netbox-color-mode=dark] .flex-md-shrink-0{flex-shrink:0!important}body[data-netbox-color-mode=dark] .flex-md-shrink-1{flex-shrink:1!important}body[data-netbox-color-mode=dark] .flex-md-wrap{flex-wrap:wrap!important}body[data-netbox-color-mode=dark] .flex-md-nowrap{flex-wrap:nowrap!important}body[data-netbox-color-mode=dark] .flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}body[data-netbox-color-mode=dark] .gap-md-0{gap:0!important}body[data-netbox-color-mode=dark] .gap-md-1{gap:.25rem!important}body[data-netbox-color-mode=dark] .gap-md-2{gap:.5rem!important}body[data-netbox-color-mode=dark] .gap-md-3{gap:1rem!important}body[data-netbox-color-mode=dark] .gap-md-4{gap:1.5rem!important}body[data-netbox-color-mode=dark] .gap-md-5{gap:3rem!important}body[data-netbox-color-mode=dark] .justify-content-md-start{justify-content:flex-start!important}body[data-netbox-color-mode=dark] .justify-content-md-end{justify-content:flex-end!important}body[data-netbox-color-mode=dark] .justify-content-md-center{justify-content:center!important}body[data-netbox-color-mode=dark] .justify-content-md-between{justify-content:space-between!important}body[data-netbox-color-mode=dark] .justify-content-md-around{justify-content:space-around!important}body[data-netbox-color-mode=dark] .justify-content-md-evenly{justify-content:space-evenly!important}body[data-netbox-color-mode=dark] .align-items-md-start{align-items:flex-start!important}body[data-netbox-color-mode=dark] .align-items-md-end{align-items:flex-end!important}body[data-netbox-color-mode=dark] .align-items-md-center{align-items:center!important}body[data-netbox-color-mode=dark] .align-items-md-baseline{align-items:baseline!important}body[data-netbox-color-mode=dark] .align-items-md-stretch{align-items:stretch!important}body[data-netbox-color-mode=dark] .align-content-md-start{align-content:flex-start!important}body[data-netbox-color-mode=dark] .align-content-md-end{align-content:flex-end!important}body[data-netbox-color-mode=dark] .align-content-md-center{align-content:center!important}body[data-netbox-color-mode=dark] .align-content-md-between{align-content:space-between!important}body[data-netbox-color-mode=dark] .align-content-md-around{align-content:space-around!important}body[data-netbox-color-mode=dark] .align-content-md-stretch{align-content:stretch!important}body[data-netbox-color-mode=dark] .align-self-md-auto{align-self:auto!important}body[data-netbox-color-mode=dark] .align-self-md-start{align-self:flex-start!important}body[data-netbox-color-mode=dark] .align-self-md-end{align-self:flex-end!important}body[data-netbox-color-mode=dark] .align-self-md-center{align-self:center!important}body[data-netbox-color-mode=dark] .align-self-md-baseline{align-self:baseline!important}body[data-netbox-color-mode=dark] .align-self-md-stretch{align-self:stretch!important}body[data-netbox-color-mode=dark] .order-md-first{order:-1!important}body[data-netbox-color-mode=dark] .order-md-0{order:0!important}body[data-netbox-color-mode=dark] .order-md-1{order:1!important}body[data-netbox-color-mode=dark] .order-md-2{order:2!important}body[data-netbox-color-mode=dark] .order-md-3{order:3!important}body[data-netbox-color-mode=dark] .order-md-4{order:4!important}body[data-netbox-color-mode=dark] .order-md-5{order:5!important}body[data-netbox-color-mode=dark] .order-md-last{order:6!important}body[data-netbox-color-mode=dark] .m-md-0{margin:0!important}body[data-netbox-color-mode=dark] .m-md-1{margin:.25rem!important}body[data-netbox-color-mode=dark] .m-md-2{margin:.5rem!important}body[data-netbox-color-mode=dark] .m-md-3{margin:1rem!important}body[data-netbox-color-mode=dark] .m-md-4{margin:1.5rem!important}body[data-netbox-color-mode=dark] .m-md-5{margin:3rem!important}body[data-netbox-color-mode=dark] .m-md-auto{margin:auto!important}body[data-netbox-color-mode=dark] .mx-md-0{margin-right:0!important;margin-left:0!important}body[data-netbox-color-mode=dark] .mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}body[data-netbox-color-mode=dark] .mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}body[data-netbox-color-mode=dark] .mx-md-3{margin-right:1rem!important;margin-left:1rem!important}body[data-netbox-color-mode=dark] .mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .mx-md-5{margin-right:3rem!important;margin-left:3rem!important}body[data-netbox-color-mode=dark] .mx-md-auto{margin-right:auto!important;margin-left:auto!important}body[data-netbox-color-mode=dark] .my-md-0{margin-top:0!important;margin-bottom:0!important}body[data-netbox-color-mode=dark] .my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .my-md-auto{margin-top:auto!important;margin-bottom:auto!important}body[data-netbox-color-mode=dark] .mt-md-0{margin-top:0!important}body[data-netbox-color-mode=dark] .mt-md-1{margin-top:.25rem!important}body[data-netbox-color-mode=dark] .mt-md-2{margin-top:.5rem!important}body[data-netbox-color-mode=dark] .mt-md-3{margin-top:1rem!important}body[data-netbox-color-mode=dark] .mt-md-4{margin-top:1.5rem!important}body[data-netbox-color-mode=dark] .mt-md-5{margin-top:3rem!important}body[data-netbox-color-mode=dark] .mt-md-auto{margin-top:auto!important}body[data-netbox-color-mode=dark] .me-md-0{margin-right:0!important}body[data-netbox-color-mode=dark] .me-md-1{margin-right:.25rem!important}body[data-netbox-color-mode=dark] .me-md-2{margin-right:.5rem!important}body[data-netbox-color-mode=dark] .me-md-3{margin-right:1rem!important}body[data-netbox-color-mode=dark] .me-md-4{margin-right:1.5rem!important}body[data-netbox-color-mode=dark] .me-md-5{margin-right:3rem!important}body[data-netbox-color-mode=dark] .me-md-auto{margin-right:auto!important}body[data-netbox-color-mode=dark] .mb-md-0{margin-bottom:0!important}body[data-netbox-color-mode=dark] .mb-md-1{margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .mb-md-2{margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .mb-md-3{margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .mb-md-4{margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .mb-md-5{margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .mb-md-auto{margin-bottom:auto!important}body[data-netbox-color-mode=dark] .ms-md-0{margin-left:0!important}body[data-netbox-color-mode=dark] .ms-md-1{margin-left:.25rem!important}body[data-netbox-color-mode=dark] .ms-md-2{margin-left:.5rem!important}body[data-netbox-color-mode=dark] .ms-md-3{margin-left:1rem!important}body[data-netbox-color-mode=dark] .ms-md-4{margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .ms-md-5{margin-left:3rem!important}body[data-netbox-color-mode=dark] .ms-md-auto{margin-left:auto!important}body[data-netbox-color-mode=dark] .p-md-0{padding:0!important}body[data-netbox-color-mode=dark] .p-md-1{padding:.25rem!important}body[data-netbox-color-mode=dark] .p-md-2{padding:.5rem!important}body[data-netbox-color-mode=dark] .p-md-3{padding:1rem!important}body[data-netbox-color-mode=dark] .p-md-4{padding:1.5rem!important}body[data-netbox-color-mode=dark] .p-md-5{padding:3rem!important}body[data-netbox-color-mode=dark] .px-md-0{padding-right:0!important;padding-left:0!important}body[data-netbox-color-mode=dark] .px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}body[data-netbox-color-mode=dark] .px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}body[data-netbox-color-mode=dark] .px-md-3{padding-right:1rem!important;padding-left:1rem!important}body[data-netbox-color-mode=dark] .px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .px-md-5{padding-right:3rem!important;padding-left:3rem!important}body[data-netbox-color-mode=dark] .py-md-0{padding-top:0!important;padding-bottom:0!important}body[data-netbox-color-mode=dark] .py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .pt-md-0{padding-top:0!important}body[data-netbox-color-mode=dark] .pt-md-1{padding-top:.25rem!important}body[data-netbox-color-mode=dark] .pt-md-2{padding-top:.5rem!important}body[data-netbox-color-mode=dark] .pt-md-3{padding-top:1rem!important}body[data-netbox-color-mode=dark] .pt-md-4{padding-top:1.5rem!important}body[data-netbox-color-mode=dark] .pt-md-5{padding-top:3rem!important}body[data-netbox-color-mode=dark] .pe-md-0{padding-right:0!important}body[data-netbox-color-mode=dark] .pe-md-1{padding-right:.25rem!important}body[data-netbox-color-mode=dark] .pe-md-2{padding-right:.5rem!important}body[data-netbox-color-mode=dark] .pe-md-3{padding-right:1rem!important}body[data-netbox-color-mode=dark] .pe-md-4{padding-right:1.5rem!important}body[data-netbox-color-mode=dark] .pe-md-5{padding-right:3rem!important}body[data-netbox-color-mode=dark] .pb-md-0{padding-bottom:0!important}body[data-netbox-color-mode=dark] .pb-md-1{padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .pb-md-2{padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .pb-md-3{padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .pb-md-4{padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .pb-md-5{padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .ps-md-0{padding-left:0!important}body[data-netbox-color-mode=dark] .ps-md-1{padding-left:.25rem!important}body[data-netbox-color-mode=dark] .ps-md-2{padding-left:.5rem!important}body[data-netbox-color-mode=dark] .ps-md-3{padding-left:1rem!important}body[data-netbox-color-mode=dark] .ps-md-4{padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .ps-md-5{padding-left:3rem!important}body[data-netbox-color-mode=dark] .text-md-start{text-align:left!important}body[data-netbox-color-mode=dark] .text-md-end{text-align:right!important}body[data-netbox-color-mode=dark] .text-md-center{text-align:center!important}}@media (min-width:992px){body[data-netbox-color-mode=dark] .float-lg-start{float:left!important}body[data-netbox-color-mode=dark] .float-lg-end{float:right!important}body[data-netbox-color-mode=dark] .float-lg-none{float:none!important}body[data-netbox-color-mode=dark] .d-lg-inline{display:inline!important}body[data-netbox-color-mode=dark] .d-lg-inline-block{display:inline-block!important}body[data-netbox-color-mode=dark] .d-lg-block{display:block!important}body[data-netbox-color-mode=dark] .d-lg-grid{display:grid!important}body[data-netbox-color-mode=dark] .d-lg-table{display:table!important}body[data-netbox-color-mode=dark] .d-lg-table-row{display:table-row!important}body[data-netbox-color-mode=dark] .d-lg-table-cell{display:table-cell!important}body[data-netbox-color-mode=dark] .d-lg-flex{display:flex!important}body[data-netbox-color-mode=dark] .d-lg-inline-flex{display:inline-flex!important}body[data-netbox-color-mode=dark] .d-lg-none{display:none!important}body[data-netbox-color-mode=dark] .flex-lg-fill{flex:1 1 auto!important}body[data-netbox-color-mode=dark] .flex-lg-row{flex-direction:row!important}body[data-netbox-color-mode=dark] .flex-lg-column{flex-direction:column!important}body[data-netbox-color-mode=dark] .flex-lg-row-reverse{flex-direction:row-reverse!important}body[data-netbox-color-mode=dark] .flex-lg-column-reverse{flex-direction:column-reverse!important}body[data-netbox-color-mode=dark] .flex-lg-grow-0{flex-grow:0!important}body[data-netbox-color-mode=dark] .flex-lg-grow-1{flex-grow:1!important}body[data-netbox-color-mode=dark] .flex-lg-shrink-0{flex-shrink:0!important}body[data-netbox-color-mode=dark] .flex-lg-shrink-1{flex-shrink:1!important}body[data-netbox-color-mode=dark] .flex-lg-wrap{flex-wrap:wrap!important}body[data-netbox-color-mode=dark] .flex-lg-nowrap{flex-wrap:nowrap!important}body[data-netbox-color-mode=dark] .flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}body[data-netbox-color-mode=dark] .gap-lg-0{gap:0!important}body[data-netbox-color-mode=dark] .gap-lg-1{gap:.25rem!important}body[data-netbox-color-mode=dark] .gap-lg-2{gap:.5rem!important}body[data-netbox-color-mode=dark] .gap-lg-3{gap:1rem!important}body[data-netbox-color-mode=dark] .gap-lg-4{gap:1.5rem!important}body[data-netbox-color-mode=dark] .gap-lg-5{gap:3rem!important}body[data-netbox-color-mode=dark] .justify-content-lg-start{justify-content:flex-start!important}body[data-netbox-color-mode=dark] .justify-content-lg-end{justify-content:flex-end!important}body[data-netbox-color-mode=dark] .justify-content-lg-center{justify-content:center!important}body[data-netbox-color-mode=dark] .justify-content-lg-between{justify-content:space-between!important}body[data-netbox-color-mode=dark] .justify-content-lg-around{justify-content:space-around!important}body[data-netbox-color-mode=dark] .justify-content-lg-evenly{justify-content:space-evenly!important}body[data-netbox-color-mode=dark] .align-items-lg-start{align-items:flex-start!important}body[data-netbox-color-mode=dark] .align-items-lg-end{align-items:flex-end!important}body[data-netbox-color-mode=dark] .align-items-lg-center{align-items:center!important}body[data-netbox-color-mode=dark] .align-items-lg-baseline{align-items:baseline!important}body[data-netbox-color-mode=dark] .align-items-lg-stretch{align-items:stretch!important}body[data-netbox-color-mode=dark] .align-content-lg-start{align-content:flex-start!important}body[data-netbox-color-mode=dark] .align-content-lg-end{align-content:flex-end!important}body[data-netbox-color-mode=dark] .align-content-lg-center{align-content:center!important}body[data-netbox-color-mode=dark] .align-content-lg-between{align-content:space-between!important}body[data-netbox-color-mode=dark] .align-content-lg-around{align-content:space-around!important}body[data-netbox-color-mode=dark] .align-content-lg-stretch{align-content:stretch!important}body[data-netbox-color-mode=dark] .align-self-lg-auto{align-self:auto!important}body[data-netbox-color-mode=dark] .align-self-lg-start{align-self:flex-start!important}body[data-netbox-color-mode=dark] .align-self-lg-end{align-self:flex-end!important}body[data-netbox-color-mode=dark] .align-self-lg-center{align-self:center!important}body[data-netbox-color-mode=dark] .align-self-lg-baseline{align-self:baseline!important}body[data-netbox-color-mode=dark] .align-self-lg-stretch{align-self:stretch!important}body[data-netbox-color-mode=dark] .order-lg-first{order:-1!important}body[data-netbox-color-mode=dark] .order-lg-0{order:0!important}body[data-netbox-color-mode=dark] .order-lg-1{order:1!important}body[data-netbox-color-mode=dark] .order-lg-2{order:2!important}body[data-netbox-color-mode=dark] .order-lg-3{order:3!important}body[data-netbox-color-mode=dark] .order-lg-4{order:4!important}body[data-netbox-color-mode=dark] .order-lg-5{order:5!important}body[data-netbox-color-mode=dark] .order-lg-last{order:6!important}body[data-netbox-color-mode=dark] .m-lg-0{margin:0!important}body[data-netbox-color-mode=dark] .m-lg-1{margin:.25rem!important}body[data-netbox-color-mode=dark] .m-lg-2{margin:.5rem!important}body[data-netbox-color-mode=dark] .m-lg-3{margin:1rem!important}body[data-netbox-color-mode=dark] .m-lg-4{margin:1.5rem!important}body[data-netbox-color-mode=dark] .m-lg-5{margin:3rem!important}body[data-netbox-color-mode=dark] .m-lg-auto{margin:auto!important}body[data-netbox-color-mode=dark] .mx-lg-0{margin-right:0!important;margin-left:0!important}body[data-netbox-color-mode=dark] .mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}body[data-netbox-color-mode=dark] .mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}body[data-netbox-color-mode=dark] .mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}body[data-netbox-color-mode=dark] .mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}body[data-netbox-color-mode=dark] .mx-lg-auto{margin-right:auto!important;margin-left:auto!important}body[data-netbox-color-mode=dark] .my-lg-0{margin-top:0!important;margin-bottom:0!important}body[data-netbox-color-mode=dark] .my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}body[data-netbox-color-mode=dark] .mt-lg-0{margin-top:0!important}body[data-netbox-color-mode=dark] .mt-lg-1{margin-top:.25rem!important}body[data-netbox-color-mode=dark] .mt-lg-2{margin-top:.5rem!important}body[data-netbox-color-mode=dark] .mt-lg-3{margin-top:1rem!important}body[data-netbox-color-mode=dark] .mt-lg-4{margin-top:1.5rem!important}body[data-netbox-color-mode=dark] .mt-lg-5{margin-top:3rem!important}body[data-netbox-color-mode=dark] .mt-lg-auto{margin-top:auto!important}body[data-netbox-color-mode=dark] .me-lg-0{margin-right:0!important}body[data-netbox-color-mode=dark] .me-lg-1{margin-right:.25rem!important}body[data-netbox-color-mode=dark] .me-lg-2{margin-right:.5rem!important}body[data-netbox-color-mode=dark] .me-lg-3{margin-right:1rem!important}body[data-netbox-color-mode=dark] .me-lg-4{margin-right:1.5rem!important}body[data-netbox-color-mode=dark] .me-lg-5{margin-right:3rem!important}body[data-netbox-color-mode=dark] .me-lg-auto{margin-right:auto!important}body[data-netbox-color-mode=dark] .mb-lg-0{margin-bottom:0!important}body[data-netbox-color-mode=dark] .mb-lg-1{margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .mb-lg-2{margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .mb-lg-3{margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .mb-lg-4{margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .mb-lg-5{margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .mb-lg-auto{margin-bottom:auto!important}body[data-netbox-color-mode=dark] .ms-lg-0{margin-left:0!important}body[data-netbox-color-mode=dark] .ms-lg-1{margin-left:.25rem!important}body[data-netbox-color-mode=dark] .ms-lg-2{margin-left:.5rem!important}body[data-netbox-color-mode=dark] .ms-lg-3{margin-left:1rem!important}body[data-netbox-color-mode=dark] .ms-lg-4{margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .ms-lg-5{margin-left:3rem!important}body[data-netbox-color-mode=dark] .ms-lg-auto{margin-left:auto!important}body[data-netbox-color-mode=dark] .p-lg-0{padding:0!important}body[data-netbox-color-mode=dark] .p-lg-1{padding:.25rem!important}body[data-netbox-color-mode=dark] .p-lg-2{padding:.5rem!important}body[data-netbox-color-mode=dark] .p-lg-3{padding:1rem!important}body[data-netbox-color-mode=dark] .p-lg-4{padding:1.5rem!important}body[data-netbox-color-mode=dark] .p-lg-5{padding:3rem!important}body[data-netbox-color-mode=dark] .px-lg-0{padding-right:0!important;padding-left:0!important}body[data-netbox-color-mode=dark] .px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}body[data-netbox-color-mode=dark] .px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}body[data-netbox-color-mode=dark] .px-lg-3{padding-right:1rem!important;padding-left:1rem!important}body[data-netbox-color-mode=dark] .px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .px-lg-5{padding-right:3rem!important;padding-left:3rem!important}body[data-netbox-color-mode=dark] .py-lg-0{padding-top:0!important;padding-bottom:0!important}body[data-netbox-color-mode=dark] .py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .pt-lg-0{padding-top:0!important}body[data-netbox-color-mode=dark] .pt-lg-1{padding-top:.25rem!important}body[data-netbox-color-mode=dark] .pt-lg-2{padding-top:.5rem!important}body[data-netbox-color-mode=dark] .pt-lg-3{padding-top:1rem!important}body[data-netbox-color-mode=dark] .pt-lg-4{padding-top:1.5rem!important}body[data-netbox-color-mode=dark] .pt-lg-5{padding-top:3rem!important}body[data-netbox-color-mode=dark] .pe-lg-0{padding-right:0!important}body[data-netbox-color-mode=dark] .pe-lg-1{padding-right:.25rem!important}body[data-netbox-color-mode=dark] .pe-lg-2{padding-right:.5rem!important}body[data-netbox-color-mode=dark] .pe-lg-3{padding-right:1rem!important}body[data-netbox-color-mode=dark] .pe-lg-4{padding-right:1.5rem!important}body[data-netbox-color-mode=dark] .pe-lg-5{padding-right:3rem!important}body[data-netbox-color-mode=dark] .pb-lg-0{padding-bottom:0!important}body[data-netbox-color-mode=dark] .pb-lg-1{padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .pb-lg-2{padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .pb-lg-3{padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .pb-lg-4{padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .pb-lg-5{padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .ps-lg-0{padding-left:0!important}body[data-netbox-color-mode=dark] .ps-lg-1{padding-left:.25rem!important}body[data-netbox-color-mode=dark] .ps-lg-2{padding-left:.5rem!important}body[data-netbox-color-mode=dark] .ps-lg-3{padding-left:1rem!important}body[data-netbox-color-mode=dark] .ps-lg-4{padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .ps-lg-5{padding-left:3rem!important}body[data-netbox-color-mode=dark] .text-lg-start{text-align:left!important}body[data-netbox-color-mode=dark] .text-lg-end{text-align:right!important}body[data-netbox-color-mode=dark] .text-lg-center{text-align:center!important}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .float-xl-start{float:left!important}body[data-netbox-color-mode=dark] .float-xl-end{float:right!important}body[data-netbox-color-mode=dark] .float-xl-none{float:none!important}body[data-netbox-color-mode=dark] .d-xl-inline{display:inline!important}body[data-netbox-color-mode=dark] .d-xl-inline-block{display:inline-block!important}body[data-netbox-color-mode=dark] .d-xl-block{display:block!important}body[data-netbox-color-mode=dark] .d-xl-grid{display:grid!important}body[data-netbox-color-mode=dark] .d-xl-table{display:table!important}body[data-netbox-color-mode=dark] .d-xl-table-row{display:table-row!important}body[data-netbox-color-mode=dark] .d-xl-table-cell{display:table-cell!important}body[data-netbox-color-mode=dark] .d-xl-flex{display:flex!important}body[data-netbox-color-mode=dark] .d-xl-inline-flex{display:inline-flex!important}body[data-netbox-color-mode=dark] .d-xl-none{display:none!important}body[data-netbox-color-mode=dark] .flex-xl-fill{flex:1 1 auto!important}body[data-netbox-color-mode=dark] .flex-xl-row{flex-direction:row!important}body[data-netbox-color-mode=dark] .flex-xl-column{flex-direction:column!important}body[data-netbox-color-mode=dark] .flex-xl-row-reverse{flex-direction:row-reverse!important}body[data-netbox-color-mode=dark] .flex-xl-column-reverse{flex-direction:column-reverse!important}body[data-netbox-color-mode=dark] .flex-xl-grow-0{flex-grow:0!important}body[data-netbox-color-mode=dark] .flex-xl-grow-1{flex-grow:1!important}body[data-netbox-color-mode=dark] .flex-xl-shrink-0{flex-shrink:0!important}body[data-netbox-color-mode=dark] .flex-xl-shrink-1{flex-shrink:1!important}body[data-netbox-color-mode=dark] .flex-xl-wrap{flex-wrap:wrap!important}body[data-netbox-color-mode=dark] .flex-xl-nowrap{flex-wrap:nowrap!important}body[data-netbox-color-mode=dark] .flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}body[data-netbox-color-mode=dark] .gap-xl-0{gap:0!important}body[data-netbox-color-mode=dark] .gap-xl-1{gap:.25rem!important}body[data-netbox-color-mode=dark] .gap-xl-2{gap:.5rem!important}body[data-netbox-color-mode=dark] .gap-xl-3{gap:1rem!important}body[data-netbox-color-mode=dark] .gap-xl-4{gap:1.5rem!important}body[data-netbox-color-mode=dark] .gap-xl-5{gap:3rem!important}body[data-netbox-color-mode=dark] .justify-content-xl-start{justify-content:flex-start!important}body[data-netbox-color-mode=dark] .justify-content-xl-end{justify-content:flex-end!important}body[data-netbox-color-mode=dark] .justify-content-xl-center{justify-content:center!important}body[data-netbox-color-mode=dark] .justify-content-xl-between{justify-content:space-between!important}body[data-netbox-color-mode=dark] .justify-content-xl-around{justify-content:space-around!important}body[data-netbox-color-mode=dark] .justify-content-xl-evenly{justify-content:space-evenly!important}body[data-netbox-color-mode=dark] .align-items-xl-start{align-items:flex-start!important}body[data-netbox-color-mode=dark] .align-items-xl-end{align-items:flex-end!important}body[data-netbox-color-mode=dark] .align-items-xl-center{align-items:center!important}body[data-netbox-color-mode=dark] .align-items-xl-baseline{align-items:baseline!important}body[data-netbox-color-mode=dark] .align-items-xl-stretch{align-items:stretch!important}body[data-netbox-color-mode=dark] .align-content-xl-start{align-content:flex-start!important}body[data-netbox-color-mode=dark] .align-content-xl-end{align-content:flex-end!important}body[data-netbox-color-mode=dark] .align-content-xl-center{align-content:center!important}body[data-netbox-color-mode=dark] .align-content-xl-between{align-content:space-between!important}body[data-netbox-color-mode=dark] .align-content-xl-around{align-content:space-around!important}body[data-netbox-color-mode=dark] .align-content-xl-stretch{align-content:stretch!important}body[data-netbox-color-mode=dark] .align-self-xl-auto{align-self:auto!important}body[data-netbox-color-mode=dark] .align-self-xl-start{align-self:flex-start!important}body[data-netbox-color-mode=dark] .align-self-xl-end{align-self:flex-end!important}body[data-netbox-color-mode=dark] .align-self-xl-center{align-self:center!important}body[data-netbox-color-mode=dark] .align-self-xl-baseline{align-self:baseline!important}body[data-netbox-color-mode=dark] .align-self-xl-stretch{align-self:stretch!important}body[data-netbox-color-mode=dark] .order-xl-first{order:-1!important}body[data-netbox-color-mode=dark] .order-xl-0{order:0!important}body[data-netbox-color-mode=dark] .order-xl-1{order:1!important}body[data-netbox-color-mode=dark] .order-xl-2{order:2!important}body[data-netbox-color-mode=dark] .order-xl-3{order:3!important}body[data-netbox-color-mode=dark] .order-xl-4{order:4!important}body[data-netbox-color-mode=dark] .order-xl-5{order:5!important}body[data-netbox-color-mode=dark] .order-xl-last{order:6!important}body[data-netbox-color-mode=dark] .m-xl-0{margin:0!important}body[data-netbox-color-mode=dark] .m-xl-1{margin:.25rem!important}body[data-netbox-color-mode=dark] .m-xl-2{margin:.5rem!important}body[data-netbox-color-mode=dark] .m-xl-3{margin:1rem!important}body[data-netbox-color-mode=dark] .m-xl-4{margin:1.5rem!important}body[data-netbox-color-mode=dark] .m-xl-5{margin:3rem!important}body[data-netbox-color-mode=dark] .m-xl-auto{margin:auto!important}body[data-netbox-color-mode=dark] .mx-xl-0{margin-right:0!important;margin-left:0!important}body[data-netbox-color-mode=dark] .mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}body[data-netbox-color-mode=dark] .mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}body[data-netbox-color-mode=dark] .mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}body[data-netbox-color-mode=dark] .mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}body[data-netbox-color-mode=dark] .mx-xl-auto{margin-right:auto!important;margin-left:auto!important}body[data-netbox-color-mode=dark] .my-xl-0{margin-top:0!important;margin-bottom:0!important}body[data-netbox-color-mode=dark] .my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}body[data-netbox-color-mode=dark] .mt-xl-0{margin-top:0!important}body[data-netbox-color-mode=dark] .mt-xl-1{margin-top:.25rem!important}body[data-netbox-color-mode=dark] .mt-xl-2{margin-top:.5rem!important}body[data-netbox-color-mode=dark] .mt-xl-3{margin-top:1rem!important}body[data-netbox-color-mode=dark] .mt-xl-4{margin-top:1.5rem!important}body[data-netbox-color-mode=dark] .mt-xl-5{margin-top:3rem!important}body[data-netbox-color-mode=dark] .mt-xl-auto{margin-top:auto!important}body[data-netbox-color-mode=dark] .me-xl-0{margin-right:0!important}body[data-netbox-color-mode=dark] .me-xl-1{margin-right:.25rem!important}body[data-netbox-color-mode=dark] .me-xl-2{margin-right:.5rem!important}body[data-netbox-color-mode=dark] .me-xl-3{margin-right:1rem!important}body[data-netbox-color-mode=dark] .me-xl-4{margin-right:1.5rem!important}body[data-netbox-color-mode=dark] .me-xl-5{margin-right:3rem!important}body[data-netbox-color-mode=dark] .me-xl-auto{margin-right:auto!important}body[data-netbox-color-mode=dark] .mb-xl-0{margin-bottom:0!important}body[data-netbox-color-mode=dark] .mb-xl-1{margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .mb-xl-2{margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .mb-xl-3{margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .mb-xl-4{margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .mb-xl-5{margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .mb-xl-auto{margin-bottom:auto!important}body[data-netbox-color-mode=dark] .ms-xl-0{margin-left:0!important}body[data-netbox-color-mode=dark] .ms-xl-1{margin-left:.25rem!important}body[data-netbox-color-mode=dark] .ms-xl-2{margin-left:.5rem!important}body[data-netbox-color-mode=dark] .ms-xl-3{margin-left:1rem!important}body[data-netbox-color-mode=dark] .ms-xl-4{margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .ms-xl-5{margin-left:3rem!important}body[data-netbox-color-mode=dark] .ms-xl-auto{margin-left:auto!important}body[data-netbox-color-mode=dark] .p-xl-0{padding:0!important}body[data-netbox-color-mode=dark] .p-xl-1{padding:.25rem!important}body[data-netbox-color-mode=dark] .p-xl-2{padding:.5rem!important}body[data-netbox-color-mode=dark] .p-xl-3{padding:1rem!important}body[data-netbox-color-mode=dark] .p-xl-4{padding:1.5rem!important}body[data-netbox-color-mode=dark] .p-xl-5{padding:3rem!important}body[data-netbox-color-mode=dark] .px-xl-0{padding-right:0!important;padding-left:0!important}body[data-netbox-color-mode=dark] .px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}body[data-netbox-color-mode=dark] .px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}body[data-netbox-color-mode=dark] .px-xl-3{padding-right:1rem!important;padding-left:1rem!important}body[data-netbox-color-mode=dark] .px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .px-xl-5{padding-right:3rem!important;padding-left:3rem!important}body[data-netbox-color-mode=dark] .py-xl-0{padding-top:0!important;padding-bottom:0!important}body[data-netbox-color-mode=dark] .py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .pt-xl-0{padding-top:0!important}body[data-netbox-color-mode=dark] .pt-xl-1{padding-top:.25rem!important}body[data-netbox-color-mode=dark] .pt-xl-2{padding-top:.5rem!important}body[data-netbox-color-mode=dark] .pt-xl-3{padding-top:1rem!important}body[data-netbox-color-mode=dark] .pt-xl-4{padding-top:1.5rem!important}body[data-netbox-color-mode=dark] .pt-xl-5{padding-top:3rem!important}body[data-netbox-color-mode=dark] .pe-xl-0{padding-right:0!important}body[data-netbox-color-mode=dark] .pe-xl-1{padding-right:.25rem!important}body[data-netbox-color-mode=dark] .pe-xl-2{padding-right:.5rem!important}body[data-netbox-color-mode=dark] .pe-xl-3{padding-right:1rem!important}body[data-netbox-color-mode=dark] .pe-xl-4{padding-right:1.5rem!important}body[data-netbox-color-mode=dark] .pe-xl-5{padding-right:3rem!important}body[data-netbox-color-mode=dark] .pb-xl-0{padding-bottom:0!important}body[data-netbox-color-mode=dark] .pb-xl-1{padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .pb-xl-2{padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .pb-xl-3{padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .pb-xl-4{padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .pb-xl-5{padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .ps-xl-0{padding-left:0!important}body[data-netbox-color-mode=dark] .ps-xl-1{padding-left:.25rem!important}body[data-netbox-color-mode=dark] .ps-xl-2{padding-left:.5rem!important}body[data-netbox-color-mode=dark] .ps-xl-3{padding-left:1rem!important}body[data-netbox-color-mode=dark] .ps-xl-4{padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .ps-xl-5{padding-left:3rem!important}body[data-netbox-color-mode=dark] .text-xl-start{text-align:left!important}body[data-netbox-color-mode=dark] .text-xl-end{text-align:right!important}body[data-netbox-color-mode=dark] .text-xl-center{text-align:center!important}}@media (min-width:1400px){body[data-netbox-color-mode=dark] .float-xxl-start{float:left!important}body[data-netbox-color-mode=dark] .float-xxl-end{float:right!important}body[data-netbox-color-mode=dark] .float-xxl-none{float:none!important}body[data-netbox-color-mode=dark] .d-xxl-inline{display:inline!important}body[data-netbox-color-mode=dark] .d-xxl-inline-block{display:inline-block!important}body[data-netbox-color-mode=dark] .d-xxl-block{display:block!important}body[data-netbox-color-mode=dark] .d-xxl-grid{display:grid!important}body[data-netbox-color-mode=dark] .d-xxl-table{display:table!important}body[data-netbox-color-mode=dark] .d-xxl-table-row{display:table-row!important}body[data-netbox-color-mode=dark] .d-xxl-table-cell{display:table-cell!important}body[data-netbox-color-mode=dark] .d-xxl-flex{display:flex!important}body[data-netbox-color-mode=dark] .d-xxl-inline-flex{display:inline-flex!important}body[data-netbox-color-mode=dark] .d-xxl-none{display:none!important}body[data-netbox-color-mode=dark] .flex-xxl-fill{flex:1 1 auto!important}body[data-netbox-color-mode=dark] .flex-xxl-row{flex-direction:row!important}body[data-netbox-color-mode=dark] .flex-xxl-column{flex-direction:column!important}body[data-netbox-color-mode=dark] .flex-xxl-row-reverse{flex-direction:row-reverse!important}body[data-netbox-color-mode=dark] .flex-xxl-column-reverse{flex-direction:column-reverse!important}body[data-netbox-color-mode=dark] .flex-xxl-grow-0{flex-grow:0!important}body[data-netbox-color-mode=dark] .flex-xxl-grow-1{flex-grow:1!important}body[data-netbox-color-mode=dark] .flex-xxl-shrink-0{flex-shrink:0!important}body[data-netbox-color-mode=dark] .flex-xxl-shrink-1{flex-shrink:1!important}body[data-netbox-color-mode=dark] .flex-xxl-wrap{flex-wrap:wrap!important}body[data-netbox-color-mode=dark] .flex-xxl-nowrap{flex-wrap:nowrap!important}body[data-netbox-color-mode=dark] .flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}body[data-netbox-color-mode=dark] .gap-xxl-0{gap:0!important}body[data-netbox-color-mode=dark] .gap-xxl-1{gap:.25rem!important}body[data-netbox-color-mode=dark] .gap-xxl-2{gap:.5rem!important}body[data-netbox-color-mode=dark] .gap-xxl-3{gap:1rem!important}body[data-netbox-color-mode=dark] .gap-xxl-4{gap:1.5rem!important}body[data-netbox-color-mode=dark] .gap-xxl-5{gap:3rem!important}body[data-netbox-color-mode=dark] .justify-content-xxl-start{justify-content:flex-start!important}body[data-netbox-color-mode=dark] .justify-content-xxl-end{justify-content:flex-end!important}body[data-netbox-color-mode=dark] .justify-content-xxl-center{justify-content:center!important}body[data-netbox-color-mode=dark] .justify-content-xxl-between{justify-content:space-between!important}body[data-netbox-color-mode=dark] .justify-content-xxl-around{justify-content:space-around!important}body[data-netbox-color-mode=dark] .justify-content-xxl-evenly{justify-content:space-evenly!important}body[data-netbox-color-mode=dark] .align-items-xxl-start{align-items:flex-start!important}body[data-netbox-color-mode=dark] .align-items-xxl-end{align-items:flex-end!important}body[data-netbox-color-mode=dark] .align-items-xxl-center{align-items:center!important}body[data-netbox-color-mode=dark] .align-items-xxl-baseline{align-items:baseline!important}body[data-netbox-color-mode=dark] .align-items-xxl-stretch{align-items:stretch!important}body[data-netbox-color-mode=dark] .align-content-xxl-start{align-content:flex-start!important}body[data-netbox-color-mode=dark] .align-content-xxl-end{align-content:flex-end!important}body[data-netbox-color-mode=dark] .align-content-xxl-center{align-content:center!important}body[data-netbox-color-mode=dark] .align-content-xxl-between{align-content:space-between!important}body[data-netbox-color-mode=dark] .align-content-xxl-around{align-content:space-around!important}body[data-netbox-color-mode=dark] .align-content-xxl-stretch{align-content:stretch!important}body[data-netbox-color-mode=dark] .align-self-xxl-auto{align-self:auto!important}body[data-netbox-color-mode=dark] .align-self-xxl-start{align-self:flex-start!important}body[data-netbox-color-mode=dark] .align-self-xxl-end{align-self:flex-end!important}body[data-netbox-color-mode=dark] .align-self-xxl-center{align-self:center!important}body[data-netbox-color-mode=dark] .align-self-xxl-baseline{align-self:baseline!important}body[data-netbox-color-mode=dark] .align-self-xxl-stretch{align-self:stretch!important}body[data-netbox-color-mode=dark] .order-xxl-first{order:-1!important}body[data-netbox-color-mode=dark] .order-xxl-0{order:0!important}body[data-netbox-color-mode=dark] .order-xxl-1{order:1!important}body[data-netbox-color-mode=dark] .order-xxl-2{order:2!important}body[data-netbox-color-mode=dark] .order-xxl-3{order:3!important}body[data-netbox-color-mode=dark] .order-xxl-4{order:4!important}body[data-netbox-color-mode=dark] .order-xxl-5{order:5!important}body[data-netbox-color-mode=dark] .order-xxl-last{order:6!important}body[data-netbox-color-mode=dark] .m-xxl-0{margin:0!important}body[data-netbox-color-mode=dark] .m-xxl-1{margin:.25rem!important}body[data-netbox-color-mode=dark] .m-xxl-2{margin:.5rem!important}body[data-netbox-color-mode=dark] .m-xxl-3{margin:1rem!important}body[data-netbox-color-mode=dark] .m-xxl-4{margin:1.5rem!important}body[data-netbox-color-mode=dark] .m-xxl-5{margin:3rem!important}body[data-netbox-color-mode=dark] .m-xxl-auto{margin:auto!important}body[data-netbox-color-mode=dark] .mx-xxl-0{margin-right:0!important;margin-left:0!important}body[data-netbox-color-mode=dark] .mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}body[data-netbox-color-mode=dark] .mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}body[data-netbox-color-mode=dark] .mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}body[data-netbox-color-mode=dark] .mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}body[data-netbox-color-mode=dark] .mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}body[data-netbox-color-mode=dark] .my-xxl-0{margin-top:0!important;margin-bottom:0!important}body[data-netbox-color-mode=dark] .my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}body[data-netbox-color-mode=dark] .mt-xxl-0{margin-top:0!important}body[data-netbox-color-mode=dark] .mt-xxl-1{margin-top:.25rem!important}body[data-netbox-color-mode=dark] .mt-xxl-2{margin-top:.5rem!important}body[data-netbox-color-mode=dark] .mt-xxl-3{margin-top:1rem!important}body[data-netbox-color-mode=dark] .mt-xxl-4{margin-top:1.5rem!important}body[data-netbox-color-mode=dark] .mt-xxl-5{margin-top:3rem!important}body[data-netbox-color-mode=dark] .mt-xxl-auto{margin-top:auto!important}body[data-netbox-color-mode=dark] .me-xxl-0{margin-right:0!important}body[data-netbox-color-mode=dark] .me-xxl-1{margin-right:.25rem!important}body[data-netbox-color-mode=dark] .me-xxl-2{margin-right:.5rem!important}body[data-netbox-color-mode=dark] .me-xxl-3{margin-right:1rem!important}body[data-netbox-color-mode=dark] .me-xxl-4{margin-right:1.5rem!important}body[data-netbox-color-mode=dark] .me-xxl-5{margin-right:3rem!important}body[data-netbox-color-mode=dark] .me-xxl-auto{margin-right:auto!important}body[data-netbox-color-mode=dark] .mb-xxl-0{margin-bottom:0!important}body[data-netbox-color-mode=dark] .mb-xxl-1{margin-bottom:.25rem!important}body[data-netbox-color-mode=dark] .mb-xxl-2{margin-bottom:.5rem!important}body[data-netbox-color-mode=dark] .mb-xxl-3{margin-bottom:1rem!important}body[data-netbox-color-mode=dark] .mb-xxl-4{margin-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .mb-xxl-5{margin-bottom:3rem!important}body[data-netbox-color-mode=dark] .mb-xxl-auto{margin-bottom:auto!important}body[data-netbox-color-mode=dark] .ms-xxl-0{margin-left:0!important}body[data-netbox-color-mode=dark] .ms-xxl-1{margin-left:.25rem!important}body[data-netbox-color-mode=dark] .ms-xxl-2{margin-left:.5rem!important}body[data-netbox-color-mode=dark] .ms-xxl-3{margin-left:1rem!important}body[data-netbox-color-mode=dark] .ms-xxl-4{margin-left:1.5rem!important}body[data-netbox-color-mode=dark] .ms-xxl-5{margin-left:3rem!important}body[data-netbox-color-mode=dark] .ms-xxl-auto{margin-left:auto!important}body[data-netbox-color-mode=dark] .p-xxl-0{padding:0!important}body[data-netbox-color-mode=dark] .p-xxl-1{padding:.25rem!important}body[data-netbox-color-mode=dark] .p-xxl-2{padding:.5rem!important}body[data-netbox-color-mode=dark] .p-xxl-3{padding:1rem!important}body[data-netbox-color-mode=dark] .p-xxl-4{padding:1.5rem!important}body[data-netbox-color-mode=dark] .p-xxl-5{padding:3rem!important}body[data-netbox-color-mode=dark] .px-xxl-0{padding-right:0!important;padding-left:0!important}body[data-netbox-color-mode=dark] .px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}body[data-netbox-color-mode=dark] .px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}body[data-netbox-color-mode=dark] .px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}body[data-netbox-color-mode=dark] .px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}body[data-netbox-color-mode=dark] .py-xxl-0{padding-top:0!important;padding-bottom:0!important}body[data-netbox-color-mode=dark] .py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .pt-xxl-0{padding-top:0!important}body[data-netbox-color-mode=dark] .pt-xxl-1{padding-top:.25rem!important}body[data-netbox-color-mode=dark] .pt-xxl-2{padding-top:.5rem!important}body[data-netbox-color-mode=dark] .pt-xxl-3{padding-top:1rem!important}body[data-netbox-color-mode=dark] .pt-xxl-4{padding-top:1.5rem!important}body[data-netbox-color-mode=dark] .pt-xxl-5{padding-top:3rem!important}body[data-netbox-color-mode=dark] .pe-xxl-0{padding-right:0!important}body[data-netbox-color-mode=dark] .pe-xxl-1{padding-right:.25rem!important}body[data-netbox-color-mode=dark] .pe-xxl-2{padding-right:.5rem!important}body[data-netbox-color-mode=dark] .pe-xxl-3{padding-right:1rem!important}body[data-netbox-color-mode=dark] .pe-xxl-4{padding-right:1.5rem!important}body[data-netbox-color-mode=dark] .pe-xxl-5{padding-right:3rem!important}body[data-netbox-color-mode=dark] .pb-xxl-0{padding-bottom:0!important}body[data-netbox-color-mode=dark] .pb-xxl-1{padding-bottom:.25rem!important}body[data-netbox-color-mode=dark] .pb-xxl-2{padding-bottom:.5rem!important}body[data-netbox-color-mode=dark] .pb-xxl-3{padding-bottom:1rem!important}body[data-netbox-color-mode=dark] .pb-xxl-4{padding-bottom:1.5rem!important}body[data-netbox-color-mode=dark] .pb-xxl-5{padding-bottom:3rem!important}body[data-netbox-color-mode=dark] .ps-xxl-0{padding-left:0!important}body[data-netbox-color-mode=dark] .ps-xxl-1{padding-left:.25rem!important}body[data-netbox-color-mode=dark] .ps-xxl-2{padding-left:.5rem!important}body[data-netbox-color-mode=dark] .ps-xxl-3{padding-left:1rem!important}body[data-netbox-color-mode=dark] .ps-xxl-4{padding-left:1.5rem!important}body[data-netbox-color-mode=dark] .ps-xxl-5{padding-left:3rem!important}body[data-netbox-color-mode=dark] .text-xxl-start{text-align:left!important}body[data-netbox-color-mode=dark] .text-xxl-end{text-align:right!important}body[data-netbox-color-mode=dark] .text-xxl-center{text-align:center!important}}@media (min-width:1200px){body[data-netbox-color-mode=dark] .fs-1{font-size:2.5rem!important}body[data-netbox-color-mode=dark] .fs-2{font-size:2rem!important}body[data-netbox-color-mode=dark] .fs-3{font-size:1.75rem!important}body[data-netbox-color-mode=dark] .fs-4{font-size:1.5rem!important}}@media print{body[data-netbox-color-mode=dark] .d-print-inline{display:inline!important}body[data-netbox-color-mode=dark] .d-print-inline-block{display:inline-block!important}body[data-netbox-color-mode=dark] .d-print-block{display:block!important}body[data-netbox-color-mode=dark] .d-print-grid{display:grid!important}body[data-netbox-color-mode=dark] .d-print-table{display:table!important}body[data-netbox-color-mode=dark] .d-print-table-row{display:table-row!important}body[data-netbox-color-mode=dark] .d-print-table-cell{display:table-cell!important}body[data-netbox-color-mode=dark] .d-print-flex{display:flex!important}body[data-netbox-color-mode=dark] .d-print-inline-flex{display:inline-flex!important}body[data-netbox-color-mode=dark] .d-print-none{display:none!important}}body[data-netbox-color-mode=dark] :root{--nbx-select-content-bg:#1f2937;--nbx-select-option-selected-bg:#d1d5db;--nbx-select-option-hover-bg:#3b82f6;--nbx-select-option-hover-color:#fff;--nbx-select-placeholder-color:#6b7280}body[data-netbox-color-mode=dark] :root body[data-netbox-color-mode=dark]{--nbx-select-content-bg:#111827;--nbx-select-option-selected-bg:#6b7280;--nbx-select-option-hover-bg:#bfdbfe;--nbx-select-option-hover-color:#000;--nbx-select-placeholder-color:#6b7280}body[data-netbox-color-mode=dark] div.form-floating div.ss-main div.ss-multi-selected,body[data-netbox-color-mode=dark] div.form-floating div.ss-main div.ss-single-selected{height:calc(3.5rem + 2px)}body[data-netbox-color-mode=dark] .ss-main{position:relative;display:inline-block;user-select:none;width:100%}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected{display:flex;cursor:pointer;width:100%;height:calc(1.5em + .75rem + 2px);padding:.75rem;border:1px solid #374151;border-radius:.5rem;background-color:#fff;outline:0;box-sizing:border-box;transition:background-color .2s}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected.ss-disabled{background-color:#374151;cursor:not-allowed}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected.ss-open-above{border-top-left-radius:0;border-top-right-radius:0}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected.ss-open-below{border-bottom-left-radius:0;border-bottom-right-radius:0}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .placeholder{display:flex;flex:1 1 100%;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;width:calc(100% - 30px);line-height:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .placeholder *{display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:auto}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .placeholder .ss-disabled{color:#9ca3af}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .ss-deselect{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;margin:0 .75rem;font-weight:700}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .ss-deselect.ss-hide{display:none}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .ss-arrow{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;margin:0 .75rem}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .ss-arrow span{border:solid #f3f4f6;border-width:0 2px 2px 0;display:inline-block;padding:3px;transition:transform .2s,margin .2s}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .ss-arrow span.arrow-up{transform:rotate(-135deg);margin:3px 0 0}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected .ss-arrow span.arrow-down{transform:rotate(45deg);margin:-3px 0 0}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected{display:flex;flex-direction:row;cursor:pointer;min-height:calc(1.5em + .75rem + 2px);width:100%;padding:0 0 0 3px;border:1px solid #374151;border-radius:.5rem;background-color:#fff;outline:0;box-sizing:border-box;transition:background-color .2s}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected.ss-disabled{background-color:#374151;cursor:not-allowed}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected.ss-disabled .ss-values .ss-disabled{color:#f3f4f6}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected.ss-disabled .ss-values .ss-value .ss-value-delete{cursor:not-allowed}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected.ss-open-above{border-top-left-radius:0;border-top-right-radius:0}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected.ss-open-below{border-bottom-left-radius:0;border-bottom-right-radius:0}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-values{display:flex;flex-wrap:wrap;justify-content:flex-start;flex:1 1 100%;width:calc(100% - 30px)}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-values .ss-disabled{display:flex;padding:4px 5px;margin:2px 0;line-height:1em;align-items:center;width:100%;color:#9ca3af;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(0);opacity:0}}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-values .ss-value{display:flex;user-select:none;align-items:center;font-size:12px;padding:3px 5px;margin:3px 5px 3px 0;color:#fff;background-color:#93c5fd;border-radius:.5rem;animation-name:scaleIn;animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:both}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-values .ss-value.ss-out{animation-name:scaleOut;animation-duration:.2s;animation-timing-function:ease-out}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-values .ss-value .ss-value-delete{margin:0 0 0 5px;cursor:pointer}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-add{display:flex;flex:0 1 3px;margin:9px 12px 0 5px}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-add .ss-plus{display:flex;justify-content:center;align-items:center;background:#f3f4f6;position:relative;height:10px;width:2px;transition:transform .2s}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-add .ss-plus:after{background:#f3f4f6;content:"";position:absolute;height:2px;width:10px;left:-4px;top:4px}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-add .ss-plus.ss-cross{transform:rotate(45deg)}body[data-netbox-color-mode=dark] .ss-content{position:absolute;width:100%;margin:-1px 0 0;box-sizing:border-box;border:1px solid #374151;z-index:1010;background-color:#fff;transform-origin:center top;transition:transform .2s,opacity .2s;opacity:0;transform:scaleY(0)}body[data-netbox-color-mode=dark] .ss-content.ss-open{display:block;opacity:1;transform:scaleY(1)}body[data-netbox-color-mode=dark] .ss-content .ss-search{display:flex;flex-direction:row;padding:.75rem}body[data-netbox-color-mode=dark] .ss-content .ss-search.ss-hide,body[data-netbox-color-mode=dark] .ss-content .ss-search.ss-hide input{height:0;opacity:0;padding:0;margin:0}body[data-netbox-color-mode=dark] .ss-content .ss-search input{display:inline-flex;font-size:inherit;line-height:inherit;flex:1 1 auto;width:100%;min-width:0;height:30px;padding:.75rem;margin:0;border:1px solid #374151;border-radius:.5rem;background-color:#fff;outline:0;text-align:left;box-sizing:border-box;-webkit-box-sizing:border-box;-webkit-appearance:textfield}body[data-netbox-color-mode=dark] .ss-content .ss-search input::placeholder{color:#d1d5db;vertical-align:middle}body[data-netbox-color-mode=dark] .ss-content .ss-search input:focus{box-shadow:0 0 5px #93c5fd}body[data-netbox-color-mode=dark] .ss-content .ss-search .ss-addable{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;font-size:22px;font-weight:700;flex:0 0 30px;height:30px;margin:0 0 0 8px;border:1px solid #374151;border-radius:.5rem;box-sizing:border-box}body[data-netbox-color-mode=dark] .ss-content .ss-addable{padding-top:0}body[data-netbox-color-mode=dark] .ss-content .ss-list{max-height:200px;overflow-x:hidden;overflow-y:auto;text-align:left}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-optgroup .ss-optgroup-label{padding:6px 10px;font-weight:700}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-optgroup .ss-option{padding:6px 6px 6px 25px}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-optgroup-label-selectable{cursor:pointer}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-optgroup-label-selectable:hover{color:#fff;background-color:#93c5fd}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option{padding:6px 10px;cursor:pointer;user-select:none}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option *{display:inline-block}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option.ss-highlighted,body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option:hover{color:#fff;background-color:#93c5fd}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option.ss-disabled{cursor:not-allowed;color:#9ca3af;background-color:#fff}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option:not(.ss-disabled).ss-option-selected{color:#f3f4f6;background-color:rgba(147,197,253,.1)}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option.ss-hide{display:none}body[data-netbox-color-mode=dark] .ss-content .ss-list .ss-option .ss-search-highlight{background-color:#f59e0b}body[data-netbox-color-mode=dark] .ss-main{color:#f3f4f6}body[data-netbox-color-mode=dark] .ss-main.is-invalid .ss-multi-selected,body[data-netbox-color-mode=dark] .ss-main.is-invalid .ss-single-selected{border-color:#fca5a5}body[data-netbox-color-mode=dark] .ss-main.is-valid .ss-multi-selected,body[data-netbox-color-mode=dark] .ss-main.is-valid .ss-single-selected{border-color:#6ee7b7}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected[disabled],body[data-netbox-color-mode=dark] .ss-main .ss-single-selected[disabled]{color:#9ca3af;background-color:#374151}body[data-netbox-color-mode=dark] .ss-main div.ss-multi-selected .ss-values .ss-disabled,body[data-netbox-color-mode=dark] .ss-main div.ss-single-selected span.placeholder .ss-disabled{color:var(--nbx-select-placeholder-color);font-size:.9rem}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected{background-color:#1f2937}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected span.ss-arrow span.arrow-down,body[data-netbox-color-mode=dark] .ss-main .ss-single-selected span.ss-arrow span.arrow-up{border-color:currentColor}body[data-netbox-color-mode=dark] .ss-main .ss-single-selected span.placeholder,body[data-netbox-color-mode=dark] .ss-main .ss-single-selected span.placeholder>*{line-height:1.5}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected{align-items:center;padding-left:.75rem;padding-right:.75rem;background-color:#1f2937}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-values{padding-top:2rem!important}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-values .ss-disabled{padding:4px 0}body[data-netbox-color-mode=dark] .ss-main .ss-multi-selected .ss-add{margin:0 .75rem}body[data-netbox-color-mode=dark] .ss-main .ss-content{background-color:var(--nbx-select-content-bg);border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}body[data-netbox-color-mode=dark] .ss-main .ss-content .ss-list .ss-option.ss-option-selected{background-color:var(--nbx-select-option-selected-bg);color:#fff}body[data-netbox-color-mode=dark] .ss-main .ss-content .ss-list .ss-option:hover{background-color:var(--nbx-select-option-hover-bg);color:var(--nbx-select-option-hover-color)}body[data-netbox-color-mode=dark] .ss-main .ss-content .ss-list .ss-option:last-child{border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}body[data-netbox-color-mode=dark] .ss-main .ss-content .ss-list .ss-option.ss-disabled{background-color:transparent}body[data-netbox-color-mode=dark] .ss-main .ss-content .ss-list .ss-option.ss-disabled:hover{color:unset}body[data-netbox-color-mode=dark] .ss-main .ss-content .ss-search input[type=search]{background-color:#1f2937;color:#f3f4f6;border:1px solid #374151}body[data-netbox-color-mode=dark] .ss-main .ss-content .ss-search input[type=search]:focus{border-color:#c9e2fe;outline:0;box-shadow:0 0 0 .25rem rgba(147,197,253,.25)}body[data-netbox-color-mode=dark] .flatpickr-calendar{background:#374151;color:#fff;box-shadow:1px 0 0 #4b5563,-1px 0 0 #4b5563,0 1px 0 #4b5563,0 -1px 0 #4b5563,0 3px 13px rgba(0,0,0,.08);border-radius:.5rem}body[data-netbox-color-mode=dark] .flatpickr-calendar span.flatpickr-weekday{color:#9ca3af}body[data-netbox-color-mode=dark] .flatpickr-calendar.arrowTop:after,body[data-netbox-color-mode=dark] .flatpickr-calendar.arrowTop:before{border-bottom-color:#374151}body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-months .flatpickr-month,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-months .flatpickr-next-month,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-months .flatpickr-prev-month{color:#fff;fill:#fff}body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-months .flatpickr-current-month .flatpickr-monthDropdown-months{background:#374151}body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day{color:#fff}body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.today{border-color:#e5e7eb}body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.endRange,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.endRange.inRange,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.endRange.nextMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.endRange.prevMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.endRange:focus,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.endRange:hover,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.selected,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.selected.inRange,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.selected.nextMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.selected.prevMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.selected:focus,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.selected:hover,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.startRange,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.startRange.inRange,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.startRange.nextMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.startRange.prevMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.startRange:focus,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.startRange:hover{background:#93c5fd;border-color:#93c5fd;color:#000}body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day:hover{border-color:#e5e7eb;background:#e5e7eb;color:#000}body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.flatpickr-disabled,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.nextMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.notAllowed,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.notAllowed.nextMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.notAllowed.prevMonthDay,body[data-netbox-color-mode=dark] .flatpickr-calendar .flatpickr-day.prevMonthDay{color:#6b7280}body[data-netbox-color-mode=dark] :root{--nbx-logo-color-1:#9cc8f8;--nbx-logo-color-2:#1685fc;--nbx-sidebar-bg:#f3f4f6;--nbx-sidebar-link-color:#1f2937;--nbx-sidebar-link-hover-bg:#dbeafe;--nbx-sidebar-title-color:#9ca3af;--nbx-breadcrumb-bg:#d1d5db;--nbx-body-bg:#fff;--nbx-body-color:#1f2937;--nbx-pre-bg:#f3f4f6;--nbx-pre-border-color:#4b5563;--nbx-change-added:rgba(16,185,129,0.4);--nbx-change-removed:rgba(239,68,68,0.4);--nbx-cable-node-bg:#f3f4f6;--nbx-cable-node-border-color:#e5e7eb;--nbx-cable-termination-bg:#e5e7eb;--nbx-cable-termination-border-color:#d1d5db;--nbx-search-filter-border-left-color:#d1d5db;--nbx-color-mode-toggle-color:#93c5fd;--nbx-stat-badge-bg:#4b5563}body[data-netbox-color-mode=dark] :root body[data-netbox-color-mode=dark]{--nbx-logo-color-1:#fff;--nbx-logo-color-2:#e5e7eb;--nbx-sidebar-bg:#1f2937;--nbx-sidebar-link-color:#e5e7eb;--nbx-sidebar-link-hover-bg:rgba(147,197,253,0.15);--nbx-sidebar-title-color:#d1d5db;--nbx-breadcrumb-bg:#1f2937;--nbx-body-bg:#111827;--nbx-body-color:#f9fafb;--nbx-pre-bg:#374151;--nbx-pre-border-color:#4b5563;--nbx-change-added:rgba(110,231,183,0.4);--nbx-change-removed:rgba(252,165,165,0.4);--nbx-cable-node-bg:#374151;--nbx-cable-node-border-color:#4b5563;--nbx-cable-termination-bg:#1f2937;--nbx-cable-termination-border-color:#374151;--nbx-search-filter-border-left-color:#4b5563;--nbx-color-mode-toggle-color:#fcd34d;--nbx-stat-badge-bg:#4b5563}body[data-netbox-color-mode=dark] *{transition:background-color,color .15s ease-in-out}body[data-netbox-color-mode=dark] .text-xs{font-size:.9rem;line-height:1.25}body[data-netbox-color-mode=dark] .col:not(:last-child):not(:only-child){margin-bottom:1rem}body[data-netbox-color-mode=dark] .badge.bg-danger,body[data-netbox-color-mode=dark] .badge.bg-dark,body[data-netbox-color-mode=dark] .badge.bg-info,body[data-netbox-color-mode=dark] .badge.bg-light,body[data-netbox-color-mode=dark] .badge.bg-primary,body[data-netbox-color-mode=dark] .badge.bg-secondary,body[data-netbox-color-mode=dark] .badge.bg-success,body[data-netbox-color-mode=dark] .badge.bg-warning,body[data-netbox-color-mode=dark] .progress-bar.bg-danger,body[data-netbox-color-mode=dark] .progress-bar.bg-dark,body[data-netbox-color-mode=dark] .progress-bar.bg-info,body[data-netbox-color-mode=dark] .progress-bar.bg-light,body[data-netbox-color-mode=dark] .progress-bar.bg-primary,body[data-netbox-color-mode=dark] .progress-bar.bg-secondary,body[data-netbox-color-mode=dark] .progress-bar.bg-success,body[data-netbox-color-mode=dark] .progress-bar.bg-warning{color:#000}body[data-netbox-color-mode=dark] .badge.bg-alt,body[data-netbox-color-mode=dark] .progress-bar.bg-alt{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-gray,body[data-netbox-color-mode=dark] .progress-bar.bg-gray{color:#000}body[data-netbox-color-mode=dark] .badge.bg-darker,body[data-netbox-color-mode=dark] .progress-bar.bg-darker{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-gray-50,body[data-netbox-color-mode=dark] .badge.bg-gray-100,body[data-netbox-color-mode=dark] .badge.bg-gray-200,body[data-netbox-color-mode=dark] .badge.bg-gray-300,body[data-netbox-color-mode=dark] .badge.bg-gray-400,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-50,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-100,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-200,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-300,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-400{color:#000}body[data-netbox-color-mode=dark] .badge.bg-gray-500,body[data-netbox-color-mode=dark] .badge.bg-gray-600,body[data-netbox-color-mode=dark] .badge.bg-gray-700,body[data-netbox-color-mode=dark] .badge.bg-gray-800,body[data-netbox-color-mode=dark] .badge.bg-gray-900,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-500,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-600,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-700,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-800,body[data-netbox-color-mode=dark] .progress-bar.bg-gray-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-red-50,body[data-netbox-color-mode=dark] .badge.bg-red-100,body[data-netbox-color-mode=dark] .badge.bg-red-200,body[data-netbox-color-mode=dark] .badge.bg-red-300,body[data-netbox-color-mode=dark] .badge.bg-red-400,body[data-netbox-color-mode=dark] .badge.bg-red-500,body[data-netbox-color-mode=dark] .progress-bar.bg-red-50,body[data-netbox-color-mode=dark] .progress-bar.bg-red-100,body[data-netbox-color-mode=dark] .progress-bar.bg-red-200,body[data-netbox-color-mode=dark] .progress-bar.bg-red-300,body[data-netbox-color-mode=dark] .progress-bar.bg-red-400,body[data-netbox-color-mode=dark] .progress-bar.bg-red-500{color:#000}body[data-netbox-color-mode=dark] .badge.bg-red-600,body[data-netbox-color-mode=dark] .badge.bg-red-700,body[data-netbox-color-mode=dark] .badge.bg-red-800,body[data-netbox-color-mode=dark] .badge.bg-red-900,body[data-netbox-color-mode=dark] .progress-bar.bg-red-600,body[data-netbox-color-mode=dark] .progress-bar.bg-red-700,body[data-netbox-color-mode=dark] .progress-bar.bg-red-800,body[data-netbox-color-mode=dark] .progress-bar.bg-red-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-yellow-50,body[data-netbox-color-mode=dark] .badge.bg-yellow-100,body[data-netbox-color-mode=dark] .badge.bg-yellow-200,body[data-netbox-color-mode=dark] .badge.bg-yellow-300,body[data-netbox-color-mode=dark] .badge.bg-yellow-400,body[data-netbox-color-mode=dark] .badge.bg-yellow-500,body[data-netbox-color-mode=dark] .badge.bg-yellow-600,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-50,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-100,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-200,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-300,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-400,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-500,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-600{color:#000}body[data-netbox-color-mode=dark] .badge.bg-yellow-700,body[data-netbox-color-mode=dark] .badge.bg-yellow-800,body[data-netbox-color-mode=dark] .badge.bg-yellow-900,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-700,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-800,body[data-netbox-color-mode=dark] .progress-bar.bg-yellow-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-green-50,body[data-netbox-color-mode=dark] .badge.bg-green-100,body[data-netbox-color-mode=dark] .badge.bg-green-200,body[data-netbox-color-mode=dark] .badge.bg-green-300,body[data-netbox-color-mode=dark] .badge.bg-green-400,body[data-netbox-color-mode=dark] .badge.bg-green-500,body[data-netbox-color-mode=dark] .badge.bg-green-600,body[data-netbox-color-mode=dark] .progress-bar.bg-green-50,body[data-netbox-color-mode=dark] .progress-bar.bg-green-100,body[data-netbox-color-mode=dark] .progress-bar.bg-green-200,body[data-netbox-color-mode=dark] .progress-bar.bg-green-300,body[data-netbox-color-mode=dark] .progress-bar.bg-green-400,body[data-netbox-color-mode=dark] .progress-bar.bg-green-500,body[data-netbox-color-mode=dark] .progress-bar.bg-green-600{color:#000}body[data-netbox-color-mode=dark] .badge.bg-green-700,body[data-netbox-color-mode=dark] .badge.bg-green-800,body[data-netbox-color-mode=dark] .badge.bg-green-900,body[data-netbox-color-mode=dark] .progress-bar.bg-green-700,body[data-netbox-color-mode=dark] .progress-bar.bg-green-800,body[data-netbox-color-mode=dark] .progress-bar.bg-green-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-blue-50,body[data-netbox-color-mode=dark] .badge.bg-blue-100,body[data-netbox-color-mode=dark] .badge.bg-blue-200,body[data-netbox-color-mode=dark] .badge.bg-blue-300,body[data-netbox-color-mode=dark] .badge.bg-blue-400,body[data-netbox-color-mode=dark] .badge.bg-blue-500,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-50,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-100,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-200,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-300,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-400,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-500{color:#000}body[data-netbox-color-mode=dark] .badge.bg-blue-600,body[data-netbox-color-mode=dark] .badge.bg-blue-700,body[data-netbox-color-mode=dark] .badge.bg-blue-800,body[data-netbox-color-mode=dark] .badge.bg-blue-900,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-600,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-700,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-800,body[data-netbox-color-mode=dark] .progress-bar.bg-blue-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-cyan-50,body[data-netbox-color-mode=dark] .badge.bg-cyan-100,body[data-netbox-color-mode=dark] .badge.bg-cyan-200,body[data-netbox-color-mode=dark] .badge.bg-cyan-300,body[data-netbox-color-mode=dark] .badge.bg-cyan-400,body[data-netbox-color-mode=dark] .badge.bg-cyan-500,body[data-netbox-color-mode=dark] .badge.bg-cyan-600,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-50,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-100,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-200,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-300,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-400,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-500,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-600{color:#000}body[data-netbox-color-mode=dark] .badge.bg-cyan-700,body[data-netbox-color-mode=dark] .badge.bg-cyan-800,body[data-netbox-color-mode=dark] .badge.bg-cyan-900,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-700,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-800,body[data-netbox-color-mode=dark] .progress-bar.bg-cyan-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-indigo-50,body[data-netbox-color-mode=dark] .badge.bg-indigo-100,body[data-netbox-color-mode=dark] .badge.bg-indigo-200,body[data-netbox-color-mode=dark] .badge.bg-indigo-300,body[data-netbox-color-mode=dark] .badge.bg-indigo-400,body[data-netbox-color-mode=dark] .badge.bg-indigo-500,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-50,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-100,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-200,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-300,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-400,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-500{color:#000}body[data-netbox-color-mode=dark] .badge.bg-indigo-600,body[data-netbox-color-mode=dark] .badge.bg-indigo-700,body[data-netbox-color-mode=dark] .badge.bg-indigo-800,body[data-netbox-color-mode=dark] .badge.bg-indigo-900,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-600,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-700,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-800,body[data-netbox-color-mode=dark] .progress-bar.bg-indigo-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-purple-50,body[data-netbox-color-mode=dark] .badge.bg-purple-100,body[data-netbox-color-mode=dark] .badge.bg-purple-200,body[data-netbox-color-mode=dark] .badge.bg-purple-300,body[data-netbox-color-mode=dark] .badge.bg-purple-400,body[data-netbox-color-mode=dark] .badge.bg-purple-500,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-50,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-100,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-200,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-300,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-400,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-500{color:#000}body[data-netbox-color-mode=dark] .badge.bg-purple-600,body[data-netbox-color-mode=dark] .badge.bg-purple-700,body[data-netbox-color-mode=dark] .badge.bg-purple-800,body[data-netbox-color-mode=dark] .badge.bg-purple-900,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-600,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-700,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-800,body[data-netbox-color-mode=dark] .progress-bar.bg-purple-900{color:#fff}body[data-netbox-color-mode=dark] .badge.bg-pink-50,body[data-netbox-color-mode=dark] .badge.bg-pink-100,body[data-netbox-color-mode=dark] .badge.bg-pink-200,body[data-netbox-color-mode=dark] .badge.bg-pink-300,body[data-netbox-color-mode=dark] .badge.bg-pink-400,body[data-netbox-color-mode=dark] .badge.bg-pink-500,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-50,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-100,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-200,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-300,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-400,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-500{color:#000}body[data-netbox-color-mode=dark] .badge.bg-pink-600,body[data-netbox-color-mode=dark] .badge.bg-pink-700,body[data-netbox-color-mode=dark] .badge.bg-pink-800,body[data-netbox-color-mode=dark] .badge.bg-pink-900,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-600,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-700,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-800,body[data-netbox-color-mode=dark] .progress-bar.bg-pink-900{color:#fff}body[data-netbox-color-mode=dark] table td>.progress{min-width:6rem}body[data-netbox-color-mode=dark] body{background-color:var(--nbx-body-bg);color:var(--nbx-body-color)}body[data-netbox-color-mode=dark] body g#netbox-logo-1{fill:#9cc8f8;stroke:#9cc8f8}body[data-netbox-color-mode=dark] body g#netbox-logo-2{fill:#1685fc;stroke:#1685fc}body[data-netbox-color-mode=dark] body span.badge.stat-badge{margin-left:.5rem;background-color:var(--nbx-stat-badge-bg)}body[data-netbox-color-mode=dark] body[data-netbox-color-mode=light] .badge.bg-primary,body[data-netbox-color-mode=dark] body[data-netbox-color-mode=light] .btn.btn-primary,body[data-netbox-color-mode=dark] body[data-netbox-color-mode=light] .progress-bar.bg-primary{color:#f9fafb}body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] .breadcrumb .breadcrumb-item>a,body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] a:not(.btn){color:#93c5fd}body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] .badge{color:#000}body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] .card .text-muted,body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] .sidebar .text-muted{color:#9ca3af!important}body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] .text-body[class]{color:var(--nbx-body-color)!important}body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] g#netbox-logo-1{fill:#fff;stroke:#fff}body[data-netbox-color-mode=dark] body[data-netbox-color-mode=dark] g#netbox-logo-2{fill:#e5e7eb;stroke:#e5e7eb}body[data-netbox-color-mode=dark] body[data-netbox-color-mode] table a,body[data-netbox-color-mode=dark] body table a{text-decoration:none}body[data-netbox-color-mode=dark] body[data-netbox-color-mode] table a:hover,body[data-netbox-color-mode=dark] body table a:hover{text-decoration:underline}body[data-netbox-color-mode=dark] body[data-netbox-color-mode] table.table>:not(caption)>*>*,body[data-netbox-color-mode=dark] body table.table>:not(caption)>*>*{padding-left:.25rem!important;padding-right:.25rem!important}body[data-netbox-color-mode=dark] body[data-netbox-color-mode] table td,body[data-netbox-color-mode=dark] body[data-netbox-color-mode] table th,body[data-netbox-color-mode=dark] body table td,body[data-netbox-color-mode=dark] body table th{font-size:.9rem;line-height:1.25;vertical-align:middle}body[data-netbox-color-mode=dark] body[data-netbox-color-mode] table.attr-table td,body[data-netbox-color-mode=dark] body[data-netbox-color-mode] table.attr-table th,body[data-netbox-color-mode=dark] body table.attr-table td,body[data-netbox-color-mode=dark] body table.attr-table th{font-size:.875rem;line-height:1.25}body[data-netbox-color-mode=dark] div.title-container{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:center;padding-top:2rem;margin-bottom:2rem;border-bottom:1px solid #374151}body[data-netbox-color-mode=dark] div.title-container div#content-title{display:flex;flex-direction:column;flex:1 0 auto;padding-bottom:.5rem}body[data-netbox-color-mode=dark] nav.search{background-color:var(--nbx-body-bg)}body[data-netbox-color-mode=dark] nav.search form button.dropdown-toggle{font-weight:400;line-height:1.5;color:#f3f4f6;background-color:#374151;border:1px solid #374151;border-radius:.5rem;border-left:1px solid var(--nbx-search-filter-border-left-color)}body[data-netbox-color-mode=dark] nav.search form button.dropdown-toggle:focus{box-shadow:unset!important}body[data-netbox-color-mode=dark] main.login-container{display:flex;height:calc(100vh - 4rem);width:100%;max-width:100vw;align-items:center;justify-content:center;flex-direction:column;padding-top:40px;padding-bottom:40px}body[data-netbox-color-mode=dark] main.login-container+footer.footer button.color-mode-toggle{color:var(--nbx-color-mode-toggle-color)}body[data-netbox-color-mode=dark] footer.login-footer{height:4rem;margin-top:auto}body[data-netbox-color-mode=dark] footer.login-footer .container-fluid,body[data-netbox-color-mode=dark] footer.login-footer .container-lg,body[data-netbox-color-mode=dark] footer.login-footer .container-md,body[data-netbox-color-mode=dark] footer.login-footer .container-sm,body[data-netbox-color-mode=dark] footer.login-footer .container-xl,body[data-netbox-color-mode=dark] footer.login-footer .container-xxl{display:flex;justify-content:flex-end;padding:.75rem 1.5rem}body[data-netbox-color-mode=dark] .h1,body[data-netbox-color-mode=dark] h1{font-weight:800}body[data-netbox-color-mode=dark] .h2,body[data-netbox-color-mode=dark] h2{font-weight:700}body[data-netbox-color-mode=dark] .h3,body[data-netbox-color-mode=dark] .h4,body[data-netbox-color-mode=dark] .h5,body[data-netbox-color-mode=dark] .h6,body[data-netbox-color-mode=dark] h3,body[data-netbox-color-mode=dark] h4,body[data-netbox-color-mode=dark] h5,body[data-netbox-color-mode=dark] h6{font-weight:600}body[data-netbox-color-mode=dark] .accordion-item-title.h1,body[data-netbox-color-mode=dark] .accordion-item-title.h2,body[data-netbox-color-mode=dark] .accordion-item-title.h3,body[data-netbox-color-mode=dark] .accordion-item-title.h4,body[data-netbox-color-mode=dark] .accordion-item-title.h5,body[data-netbox-color-mode=dark] .accordion-item-title.h6,body[data-netbox-color-mode=dark] h1.accordion-item-title,body[data-netbox-color-mode=dark] h2.accordion-item-title,body[data-netbox-color-mode=dark] h3.accordion-item-title,body[data-netbox-color-mode=dark] h4.accordion-item-title,body[data-netbox-color-mode=dark] h5.accordion-item-title,body[data-netbox-color-mode=dark] h6.accordion-item-title{padding:.25rem .5rem;font-weight:700;text-transform:uppercase;color:var(--nbx-sidebar-title-color);font-size:.875rem}body[data-netbox-color-mode=dark] .form-login{width:100%;max-width:330px;padding:15px}body[data-netbox-color-mode=dark] .form-login input[type=text]{margin-bottom:-1px;border-bottom-right-radius:0;border-bottom-left-radius:0}body[data-netbox-color-mode=dark] .form-login input[type=password]{margin-bottom:10px;border-top-left-radius:0;border-top-right-radius:0}body[data-netbox-color-mode=dark] .form-login .form-control{position:relative;box-sizing:border-box;height:auto;padding:10px;font-size:16px}body[data-netbox-color-mode=dark] li.dropdown-item.dropdown-item-btns{display:flex;justify-content:space-between;align-items:center}body[data-netbox-color-mode=dark] .sidebar-sticky{position:relative;top:0;height:calc(100vh - 48px);padding-top:.5rem;overflow-x:hidden;overflow-y:auto}body[data-netbox-color-mode=dark] .navbar-brand{padding-top:.75rem;padding-bottom:.75rem;font-size:1rem}body[data-netbox-color-mode=dark] nav.nav.nav-pills .nav-item.nav-link{padding:.25rem .5rem;font-size:.875rem;border-radius:.5rem}body[data-netbox-color-mode=dark] nav.nav.nav-pills .nav-item.nav-link:hover{background-color:rgba(147,197,253,.15);color:#d1d5db}@media (max-width:768px){body[data-netbox-color-mode=dark] .sidebar.collapse.show~.content-container{position:fixed;overflow-y:hidden}}body[data-netbox-color-mode=dark] .sidebar{position:fixed;top:0;bottom:0;left:0;z-index:100;box-shadow:inset -1px 0 0 rgba(0,0,0,.1);background-color:var(--nbx-sidebar-bg)}@media (max-width:768px){body[data-netbox-color-mode=dark] .sidebar{top:8.125rem}}body[data-netbox-color-mode=dark] .sidebar div.accordion-item>a.accordion-button.nav-link:hover{color:#d1d5db;background-color:rgba(147,197,253,.15)}body[data-netbox-color-mode=dark] .sidebar div.accordion-item>a.accordion-button.nav-link:focus{border-color:unset;box-shadow:unset}body[data-netbox-color-mode=dark] .sidebar .accordion-body{max-height:calc(100vh - 24rem);overflow-y:auto}body[data-netbox-color-mode=dark] .sidebar .accordion-body .nav-item .nav-link{padding:.25rem .6rem;font-size:.875rem;border-radius:.5rem}body[data-netbox-color-mode=dark] .sidebar .accordion-body .nav-item .nav-link:hover{color:#d1d5db;background-color:rgba(147,197,253,.15)}@media (max-width:768px){body[data-netbox-color-mode=dark] .sidebar.collapse.show div.position-sticky{height:calc(100vh - 16.125rem);overflow-y:auto}}body[data-netbox-color-mode=dark] .sidebar div.position-sticky{height:calc(100vh - 8rem)}body[data-netbox-color-mode=dark] .sidebar div.sidebar-bottom{padding-left:.5rem;padding-right:.5rem;position:sticky;height:8rem;background-color:var(--nbx-sidebar-bg);box-shadow:inset -1px 0 0 rgba(0,0,0,.1)}body[data-netbox-color-mode=dark] .sidebar div.sidebar-bottom .nav-link{padding:.5rem .25rem}body[data-netbox-color-mode=dark] .sidebar a.sidebar-logo{display:flex;flex-shrink:1;width:100%;height:4rem}body[data-netbox-color-mode=dark] .tooltip{pointer-events:none}body[data-netbox-color-mode=dark] .ws-nowrap{white-space:nowrap!important}body[data-netbox-color-mode=dark] #object-type-selector .dropdown-header.h6,body[data-netbox-color-mode=dark] #object-type-selector button.dropdown-item,body[data-netbox-color-mode=dark] #object-type-selector h6.dropdown-header{font-size:.875rem}body[data-netbox-color-mode=dark] .stats-container{min-height:50vh}body[data-netbox-color-mode=dark] span.color-label{width:5rem;height:1rem;display:block;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);border-radius:.5rem;padding:.35em .65em}body[data-netbox-color-mode=dark] pre{border-radius:.5rem;border:1px solid var(--nbx-pre-border-color);background-color:var(--nbx-pre-bg);padding:1rem;white-space:pre}body[data-netbox-color-mode=dark] .btn{white-space:nowrap}body[data-netbox-color-mode=dark] .card{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)}body[data-netbox-color-mode=dark] .card .card-header{color:#fff;border-bottom:none;padding:1rem}body[data-netbox-color-mode=dark] .card .card-header+.card-body{padding-top:0}body[data-netbox-color-mode=dark] .card .card-body{overflow-x:auto}body[data-netbox-color-mode=dark] .form-floating{position:relative}body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control,body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-select{height:calc(3.5rem + 2px);padding:1rem .75rem}body[data-netbox-color-mode=dark] .form-floating>.input-group>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){body[data-netbox-color-mode=dark] .form-floating>.input-group>label{transition:none}}body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control::placeholder{color:transparent}body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control:focus,body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}body[data-netbox-color-mode=dark] .form-floating>.choices>.choices__inner,body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-select,body[data-netbox-color-mode=dark] .form-floating>.ss-main div.ss-values,body[data-netbox-color-mode=dark] .form-floating>.ss-main span.placeholder{padding-top:1.625rem;padding-bottom:.625rem}body[data-netbox-color-mode=dark] .form-floating>.choices~label,body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control:focus~label,body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control:not(:placeholder-shown)~label,body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-select~label,body[data-netbox-color-mode=dark] .form-floating>.ss-main~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem);z-index:4}body[data-netbox-color-mode=dark] .form-floating>.input-group>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem);z-index:4}body[data-netbox-color-mode=dark] textarea#id_local_context_data,body[data-netbox-color-mode=dark] textarea#id_public_key,body[data-netbox-color-mode=dark] textarea.form-control[name=csv],body[data-netbox-color-mode=dark] textarea.markdown{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}body[data-netbox-color-mode=dark] table tr.vertical-align{vertical-align:middle}body[data-netbox-color-mode=dark] .card:not(:only-of-type){margin-bottom:1rem}body[data-netbox-color-mode=dark] .stat-btn{min-width:3rem}body[data-netbox-color-mode=dark] nav.breadcrumb-container{padding:.35em .65em;border-radius:.5rem;font-size:.875rem;width:fit-content;background-color:var(--nbx-breadcrumb-bg);margin-top:1rem;margin-bottom:1rem}body[data-netbox-color-mode=dark] nav.breadcrumb-container ol.breadcrumb{margin-bottom:0}body[data-netbox-color-mode=dark] nav.breadcrumb-container ol.breadcrumb li.breadcrumb-item>a{text-decoration:none}body[data-netbox-color-mode=dark] nav.breadcrumb-container ol.breadcrumb li.breadcrumb-item>a:hover{text-decoration:underline}body[data-netbox-color-mode=dark] div.paginator>form>div.input-group{width:fit-content}body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type){margin-top:3rem}body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) .h1,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) .h2,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) .h3,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) .h4,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) .h5,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) .h6,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) h1,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) h2,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) h3,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) h4,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) h5,body[data-netbox-color-mode=dark] div.field-group:not(:first-of-type) h6{margin-bottom:1rem}body[data-netbox-color-mode=dark] label.required{font-weight:700}body[data-netbox-color-mode=dark] label.required:after{font-family:Material Design Icons;content:"󰛄";font-weight:400;font-size:8px;font-style:normal;margin:0 0 0 2px;text-decoration:none;display:inline-block;position:absolute}body[data-netbox-color-mode=dark] div.bulk-buttons{display:flex}body[data-netbox-color-mode=dark] div.bulk-buttons>*{margin:.25rem}body[data-netbox-color-mode=dark] i.bi-plus:before,body[data-netbox-color-mode=dark] span.bi-plus:before{font-weight:700!important}body[data-netbox-color-mode=dark] table tbody tr.primary{background-color:rgba(147,197,253,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.secondary{background-color:rgba(156,163,175,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.success{background-color:rgba(110,231,183,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.info{background-color:rgba(103,232,249,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.warning{background-color:rgba(252,211,77,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.danger{background-color:rgba(252,165,165,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.light{background-color:rgba(209,213,219,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.dark{background-color:rgba(156,163,175,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.alt{background-color:rgba(19,41,61,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray{background-color:rgba(156,163,175,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.darker{background-color:rgba(1,1,1,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-50{background-color:rgba(249,250,251,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-100{background-color:rgba(243,244,246,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-200{background-color:rgba(229,231,235,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-300{background-color:rgba(209,213,219,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-400{background-color:rgba(156,163,175,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-500{background-color:rgba(107,114,128,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-600{background-color:rgba(75,85,99,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-700{background-color:rgba(55,65,81,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-800{background-color:rgba(31,41,55,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.gray-900{background-color:rgba(17,24,39,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-50{background-color:rgba(254,242,242,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-100{background-color:rgba(254,226,226,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-200{background-color:rgba(254,202,202,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-300{background-color:rgba(252,165,165,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-400{background-color:rgba(248,113,113,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-500{background-color:rgba(239,68,68,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-600{background-color:rgba(220,38,38,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-700{background-color:rgba(185,28,28,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-800{background-color:rgba(153,27,27,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.red-900{background-color:rgba(127,29,29,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-50{background-color:rgba(255,251,235,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-100{background-color:rgba(254,243,199,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-200{background-color:rgba(253,230,138,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-300{background-color:rgba(252,211,77,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-400{background-color:rgba(251,191,36,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-500{background-color:rgba(245,158,11,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-600{background-color:rgba(217,119,6,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-700{background-color:rgba(180,83,9,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-800{background-color:rgba(146,64,14,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.yellow-900{background-color:rgba(120,53,15,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-50{background-color:rgba(236,253,245,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-100{background-color:rgba(209,250,229,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-200{background-color:rgba(167,243,208,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-300{background-color:rgba(110,231,183,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-400{background-color:rgba(52,211,153,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-500{background-color:rgba(16,185,129,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-600{background-color:rgba(5,150,105,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-700{background-color:rgba(4,120,87,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-800{background-color:rgba(6,95,70,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.green-900{background-color:rgba(6,78,59,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-50{background-color:rgba(239,246,255,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-100{background-color:rgba(219,234,254,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-200{background-color:rgba(191,219,254,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-300{background-color:rgba(147,197,253,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-400{background-color:rgba(96,165,250,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-500{background-color:rgba(59,130,246,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-600{background-color:rgba(37,99,235,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-700{background-color:rgba(29,78,216,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-800{background-color:rgba(30,64,175,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.blue-900{background-color:rgba(30,58,138,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-50{background-color:rgba(236,254,255,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-100{background-color:rgba(207,250,254,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-200{background-color:rgba(165,243,252,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-300{background-color:rgba(103,232,249,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-400{background-color:rgba(34,211,238,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-500{background-color:rgba(6,182,212,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-600{background-color:rgba(8,145,178,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-700{background-color:rgba(14,116,144,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-800{background-color:rgba(21,94,117,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.cyan-900{background-color:rgba(22,78,99,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-50{background-color:rgba(238,242,255,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-100{background-color:rgba(224,231,255,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-200{background-color:rgba(199,210,254,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-300{background-color:rgba(165,180,252,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-400{background-color:rgba(129,140,248,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-500{background-color:rgba(99,102,241,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-600{background-color:rgba(79,70,229,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-700{background-color:rgba(67,56,202,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-800{background-color:rgba(55,48,163,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.indigo-900{background-color:rgba(49,46,129,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-50{background-color:rgba(245,243,255,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-100{background-color:rgba(237,233,254,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-200{background-color:rgba(221,214,254,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-300{background-color:rgba(196,181,253,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-400{background-color:rgba(167,139,250,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-500{background-color:rgba(139,92,246,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-600{background-color:rgba(124,58,237,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-700{background-color:rgba(109,40,217,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-800{background-color:rgba(91,33,182,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.purple-900{background-color:rgba(76,29,149,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-50{background-color:rgba(253,242,248,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-100{background-color:rgba(252,231,243,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-200{background-color:rgba(251,207,232,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-300{background-color:rgba(249,168,212,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-400{background-color:rgba(244,114,182,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-500{background-color:rgba(236,72,153,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-600{background-color:rgba(219,39,119,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-700{background-color:rgba(190,24,93,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-800{background-color:rgba(157,23,77,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] table tbody tr.pink-900{background-color:rgba(131,24,67,.15);border-color:#6b7280}body[data-netbox-color-mode=dark] .cable-trace{max-width:38rem;margin:1rem auto;text-align:center}body[data-netbox-color-mode=dark] .cable-trace .node{background-color:var(--nbx-cable-node-bg);border:1px solid var(--nbx-cable-node-border-color);border-radius:.5rem;padding:1.5rem 1rem;position:relative;z-index:1}body[data-netbox-color-mode=dark] .cable-trace .termination{background-color:var(--nbx-cable-termination-bg);border:1px solid var(--nbx-cable-termination-border-color);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.5rem;margin:-1rem auto;padding:.5rem;position:relative;width:60%;z-index:2}body[data-netbox-color-mode=dark] .cable-trace .active{border:.25rem solid #6ee7b7}body[data-netbox-color-mode=dark] .cable-trace .cable{border-left-style:solid;border-left-width:.25rem;margin:1rem 0 1rem 50%;padding:1.5rem;text-align:left;width:50%}body[data-netbox-color-mode=dark] .cable-trace .trace-end{margin-top:2rem;text-align:center}body[data-netbox-color-mode=dark] pre.change-data{padding-left:0;padding-right:0}body[data-netbox-color-mode=dark] pre.change-data>span{display:block;padding-left:1rem;padding-right:1rem}body[data-netbox-color-mode=dark] pre.change-data>span.added{background-color:var(--nbx-change-added)}body[data-netbox-color-mode=dark] pre.change-data>span.removed{background-color:var(--nbx-change-removed)}body[data-netbox-color-mode=dark] pre.change-diff{border-color:transparent}body[data-netbox-color-mode=dark] pre.change-diff.change-removed{background-color:var(--nbx-change-removed)}body[data-netbox-color-mode=dark] pre.change-diff.change-added{background-color:var(--nbx-change-added)}body[data-netbox-color-mode=dark] div.card-overlay{position:absolute;width:100%;height:100%;background-color:hsla(0,0%,100%,.75);border-radius:.5rem;display:flex;justify-content:center;align-items:center}body[data-netbox-color-mode=dark] div.card-overlay>div.spinner-border{width:6rem;height:6rem;color:#9ca3af}body[data-netbox-color-mode=dark] div.card>div.card-header>div.table-controls{max-width:25%;width:100%} +/*# sourceMappingURL=/static/netbox-dark.css.map */ \ No newline at end of file diff --git a/netbox/project-static/dist/netbox-dark.css.map b/netbox/project-static/dist/netbox-dark.css.map new file mode 100644 index 000000000..e9e7d7459 --- /dev/null +++ b/netbox/project-static/dist/netbox-dark.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["node_modules/bootstrap/scss/_type.scss","node_modules/bootstrap/scss/_root.scss","node_modules/bootstrap/scss/_reboot.scss","node_modules/bootstrap/scss/_variables.scss","node_modules/bootstrap/scss/vendor/_rfs.scss","theme-base.scss","node_modules/bootstrap/scss/mixins/_border-radius.scss","node_modules/bootstrap/scss/mixins/_lists.scss","node_modules/bootstrap/scss/_images.scss","node_modules/bootstrap/scss/mixins/_image.scss","node_modules/bootstrap/scss/_containers.scss","node_modules/bootstrap/scss/mixins/_container.scss","node_modules/bootstrap/scss/mixins/_breakpoints.scss","node_modules/bootstrap/scss/_grid.scss","node_modules/bootstrap/scss/mixins/_grid.scss","node_modules/bootstrap/scss/_tables.scss","node_modules/bootstrap/scss/mixins/_table-variants.scss","node_modules/bootstrap/scss/forms/_labels.scss","node_modules/bootstrap/scss/forms/_form-text.scss","node_modules/bootstrap/scss/forms/_form-control.scss","node_modules/bootstrap/scss/mixins/_transition.scss","theme-dark.scss","node_modules/bootstrap/scss/mixins/_gradients.scss","node_modules/bootstrap/scss/forms/_form-select.scss","node_modules/bootstrap/scss/forms/_form-check.scss","node_modules/bootstrap/scss/forms/_form-range.scss","node_modules/bootstrap/scss/forms/_floating-labels.scss","node_modules/bootstrap/scss/forms/_input-group.scss","node_modules/bootstrap/scss/mixins/_forms.scss","node_modules/bootstrap/scss/_buttons.scss","node_modules/bootstrap/scss/mixins/_buttons.scss","node_modules/bootstrap/scss/_transitions.scss","node_modules/bootstrap/scss/_dropdown.scss","node_modules/bootstrap/scss/mixins/_caret.scss","node_modules/bootstrap/scss/_button-group.scss","node_modules/bootstrap/scss/_nav.scss","node_modules/bootstrap/scss/_navbar.scss","node_modules/bootstrap/scss/_card.scss","node_modules/bootstrap/scss/_accordion.scss","node_modules/bootstrap/scss/_breadcrumb.scss","node_modules/bootstrap/scss/_pagination.scss","node_modules/bootstrap/scss/mixins/_pagination.scss","node_modules/bootstrap/scss/_badge.scss","node_modules/bootstrap/scss/_alert.scss","node_modules/bootstrap/scss/mixins/_alert.scss","node_modules/bootstrap/scss/_progress.scss","node_modules/bootstrap/scss/_list-group.scss","node_modules/bootstrap/scss/mixins/_list-group.scss","node_modules/bootstrap/scss/_close.scss","node_modules/bootstrap/scss/_toasts.scss","node_modules/bootstrap/scss/_modal.scss","node_modules/bootstrap/scss/_tooltip.scss","node_modules/bootstrap/scss/mixins/_reset-text.scss","node_modules/bootstrap/scss/_popover.scss","node_modules/bootstrap/scss/_carousel.scss","node_modules/bootstrap/scss/mixins/_clearfix.scss","node_modules/bootstrap/scss/_spinners.scss","node_modules/bootstrap/scss/helpers/_colored-links.scss","node_modules/bootstrap/scss/helpers/_ratio.scss","node_modules/bootstrap/scss/helpers/_position.scss","node_modules/bootstrap/scss/helpers/_visually-hidden.scss","node_modules/bootstrap/scss/mixins/_visually-hidden.scss","node_modules/bootstrap/scss/helpers/_stretched-link.scss","node_modules/bootstrap/scss/helpers/_text-truncation.scss","node_modules/bootstrap/scss/mixins/_text-truncate.scss","node_modules/bootstrap/scss/mixins/_utilities.scss","node_modules/bootstrap/scss/utilities/_api.scss","select.scss","node_modules/slim-select/src/slim-select/slimselect.scss","flatpickr-dark.scss","netbox.scss"],"names":[],"mappings":"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A,uCoBfN,6CpBgBQ,iBoBPN,mDACE,SAAA,CACA,anC8CO,CmC5CP,wBnCEO,CmCDP,qBAGF,mDACE,SAAA,CACA,anCsCO,CmCrCP,wBnCLO,CmCMP,SrCqgCgC,CqCpgChC,8CAKF,0EACE,iBAGF,+DACE,SAAA,CACA,UrC9BO,CmBJT,wBjB2DS,CmCvBP,qBAGF,iEACE,anCtBO,CmCuBP,mBAAA,CACA,wBnCtBO,CmCuBP,qBC3CF,6CACE,uBAOI,oEnCqCJ,4BAAA,CACA,gCmChCI,mEnCiBJ,6BAAA,CACA,iCmChCF,4DACE,qBAAA,CrCsPE,kBqC/OE,mFnCqCJ,6BAAA,CACA,iCmChCI,kFnCiBJ,8BAAA,CACA,kCmChCF,4DACE,oBAAA,CrCsPE,kBqC/OE,mFnCqCJ,4BAAA,CACA,gCmChCI,kFnCiBJ,6BAAA,CACA,iCoC/BJ,yCACE,oBAAA,CACA,mBAAA,CtCoPI,eALI,CsC7OR,evCya4B,CuCxa5B,aAAA,CACA,UvCHS,CuCIT,iBAAA,CACA,kBAAA,CACA,uBAAA,CpCKE,sBoCAF,+CACE,aAKJ,8CACE,iBAAA,CACA,SCvBF,yCACE,iBAAA,CACA,YAAA,CACA,kBxCmvC8B,CwClvC9B,4BAAA,CrCWE,oBqCNJ,iDAEE,cAIF,8CACE,gBAQF,qDACE,mBAGA,gEACE,iBAAA,CACA,KAAA,CACA,OAAA,CACA,SAAA,CACA,qBAeF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,mDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,8CClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,0DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,gDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,4DACE,cD6CF,+CClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,2DACE,cD6CF,8CClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,0DACE,cD6CF,6CClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,yDACE,cD6CF,8CClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,0DACE,cD6CF,gDClDA,aD8Cc,CrB5Cd,qBqB0CmB,CC1CnB,qBAEA,4DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,gDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,4DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,iDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,mDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,mDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,mDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,mDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,mDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,+DACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,oDClDA,aD8Cc,CrB5Cd,wBqB0CmB,CC1CnB,qBAEA,gEACE,cD6CF,iDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,6DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8DACE,cD6CF,kDClDA,aDgDgB,CrB9ChB,wBqB0CmB,CC1CnB,qBAEA,8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e,CC5Jf,yBAGF,wFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,yDACE,aDmKmB,CClKnB,yBAGE,4KAEE,aD6Je,CC5Jf,yBAGF,uFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,wDACE,aDiKiB,CChKjB,yBAGE,0KAEE,aD2Ja,CC1Jb,yBAGF,sFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,uDACE,aDiKiB,CChKjB,yBAGE,wKAEE,aD2Ja,CC1Jb,yBAGF,qFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,wDACE,aDiKiB,CChKjB,yBAGE,0KAEE,aD2Ja,CC1Jb,yBAGF,sFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,0DACE,aDiKiB,CChKjB,sBAGE,8KAEE,aD2Ja,CC1Jb,yBAGF,wFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDmKmB,CClKnB,yBAGE,gLAEE,aD6Je,CC5Jf,yBAGF,yFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,0DACE,aDmKmB,CClKnB,yBAGE,8KAEE,aD6Je,CC5Jf,yBAGF,wFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,2DACE,aDmKmB,CClKnB,yBAGE,gLAEE,aD6Je,CC5Jf,yBAGF,yFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,2DACE,aDmKmB,CClKnB,yBAGE,gLAEE,aD6Je,CC5Jf,yBAGF,yFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,2DACE,aDmKmB,CClKnB,yBAGE,gLAEE,aD6Je,CC5Jf,yBAGF,yFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,2DACE,aDiKiB,CChKjB,yBAGE,gLAEE,aD2Ja,CC1Jb,yBAGF,yFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDiKiB,CChKjB,yBAGE,gLAEE,aD2Ja,CC1Jb,yBAGF,yFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDiKiB,CChKjB,yBAGE,gLAEE,aD2Ja,CC1Jb,yBAGF,yFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDiKiB,CChKjB,yBAGE,gLAEE,aD2Ja,CC1Jb,yBAGF,yFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDiKiB,CChKjB,yBAGE,gLAEE,aD2Ja,CC1Jb,yBAGF,yFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDiKiB,CChKjB,yBAGE,gLAEE,aD2Ja,CC1Jb,yBAGF,yFACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,6DACE,aDmKmB,CClKnB,yBAGE,oLAEE,aD6Je,CC5Jf,yBAGF,2FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,6DACE,aDmKmB,CClKnB,yBAGE,oLAEE,aD6Je,CC5Jf,yBAGF,2FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,6DACE,aDmKmB,CClKnB,yBAGE,oLAEE,aD6Je,CC5Jf,yBAGF,2FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,6DACE,aDmKmB,CClKnB,yBAGE,oLAEE,aD6Je,CC5Jf,yBAGF,2FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,6DACE,aDmKmB,CClKnB,yBAGE,oLAEE,aD6Je,CC5Jf,yBAGF,2FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,6DACE,aDiKiB,CChKjB,yBAGE,oLAEE,aD2Ja,CC1Jb,yBAGF,2FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,6DACE,aDiKiB,CChKjB,yBAGE,oLAEE,aD2Ja,CC1Jb,yBAGF,2FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,6DACE,aDiKiB,CChKjB,yBAGE,oLAEE,aD2Ja,CC1Jb,yBAGF,2FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,6DACE,aDiKiB,CChKjB,yBAGE,oLAEE,aD2Ja,CC1Jb,yBAGF,2FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,6DACE,aDiKiB,CChKjB,yBAGE,oLAEE,aD2Ja,CC1Jb,yBAGF,2FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDmKmB,CClKnB,yBAGE,gLAEE,aD6Je,CC5Jf,yBAGF,yFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDmKmB,CClKnB,yBAGE,gLAEE,aD6Je,CC5Jf,yBAGF,yFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,6DACE,aDmKmB,CClKnB,yBAGE,oLAEE,aD6Je,CC5Jf,yBAGF,2FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,6DACE,aDmKmB,CClKnB,yBAGE,oLAEE,aD6Je,CC5Jf,yBAGF,2FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDmKmB,CClKnB,yBAGE,sLAEE,aD6Je,CC5Jf,yBAGF,4FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,8DACE,aDiKiB,CChKjB,yBAGE,sLAEE,aD2Ja,CC1Jb,yBAGF,4FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,2DACE,aDmKmB,CClKnB,yBAGE,gLAEE,aD6Je,CC5Jf,yBAGF,yFACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDmKmB,CClKnB,yBAGE,kLAEE,aD6Je,CC5Jf,yBAGF,0FACE,U5CRG,C4CSH,wBDuJe,CCtJf,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBAdN,4DACE,aDiKiB,CChKjB,yBAGE,kLAEE,aD2Ja,CC1Jb,yBAGF,0FACE,U5CRG,C4CSH,wBDqJa,CCpJb,qBCbR,6CACE,sBAAA,CACA,S7Cq4C2B,C6Cp4C3B,U7Co4C2B,C6Cn4C3B,aAAA,CACA,U7CFS,C6CGT,qXAAA,CAC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,UlEdK,CkEeL,UAEF,iIACE,mBAGJ,qEACE,WACA,2EACE,qBAEF,khDAkBE,kBhEWK,CgEVL,oBhEUK,CgETL,WAEF,2EACE,oBhEvCK,CgEwCL,kBhExCK,CgEyCL,WAEF,omBAOE,cChEN,wCACE,0BAAA,CACA,0BAAA,CACA,wBAAA,CACA,gCAAA,CACA,mCAAA,CACA,iCAAA,CACA,2BAAA,CACA,kBAAA,CACA,wBAAA,CACA,oBAAA,CACA,8BAAA,CACA,uCAAA,CACA,wCAAA,CACA,2BAAA,CACA,qCAAA,CACA,kCAAA,CACA,4CAAA,CACA,6CAAA,CACA,qCAAA,CACA,4BAEA,0EACE,uBAAA,CACA,0BAAA,CACA,wBAAA,CACA,gCAAA,CACA,kDAAA,CACA,iCAAA,CACA,2BAAA,CACA,qBAAA,CACA,wBAAA,CACA,oBAAA,CACA,8BAAA,CACA,wCAAA,CACA,0CAAA,CACA,2BAAA,CACA,qCAAA,CACA,kCAAA,CACA,4CAAA,CACA,6CAAA,CACA,qCAAA,CACA,4BAIJ,oCACE,mDAGF,2CACE,ejE+Ea,CiE9Eb,iBAIF,yEACE,mBAOE,02BACE,WADF,uGACE,WADF,yGACE,WADF,6GACE,WADF,mjBACE,WADF,qjBACE,WADF,wpBACE,WADF,4bACE,WADF,izBACE,WADF,+VACE,WADF,myBACE,WADF,yVACE,WADF,oqBACE,WADF,ocACE,WADF,qxBACE,WADF,mVACE,WADF,4rBACE,WADF,odACE,WADF,4rBACE,WADF,odACE,WADF,oqBACE,WADF,ocACE,WAMN,qDACE,eAGF,uCACE,mCAAA,CACA,4BACA,uDACE,YAAA,CACA,eAGF,uDACE,YAAA,CACA,eAEF,6DACE,iBAAA,CACA,0CAIA,2QAGE,cAOF,mLACE,cAEF,2EACE,WAIA,+KACE,wBAGJ,sFACE,sCAEF,oFACE,SnEnHK,CmEoHL,YAGF,oFACE,YjE9GK,CiE+GL,eAKF,sHACE,qBACA,kIACE,0BAGJ,kKACE,6BAAA,CACA,+BAEF,gPAEE,ejEZS,CiEaT,gBjETW,CiEUX,sBAGA,4RAEE,iBnEmRsB,CmEl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","file":"netbox-dark.css","sourceRoot":"..","sourcesContent":["//\n// Headings\n//\n.h1 {\n @extend h1;\n}\n\n.h2 {\n @extend h2;\n}\n\n.h3 {\n @extend h3;\n}\n\n.h4 {\n @extend h4;\n}\n\n.h5 {\n @extend h5;\n}\n\n.h6 {\n @extend h6;\n}\n\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n@each $display, $font-size in $display-font-sizes {\n .display-#{$display} {\n @include font-size($font-size);\n font-weight: $display-font-weight;\n line-height: $display-line-height;\n }\n}\n\n//\n// Emphasis\n//\n.small {\n @extend small;\n}\n\n.mark {\n @extend mark;\n}\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size($initialism-font-size);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-font-size);\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n.blockquote-footer {\n margin-top: -$blockquote-margin-y;\n margin-bottom: $blockquote-margin-y;\n @include font-size($blockquote-footer-font-size);\n color: $blockquote-footer-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n font-size: $font-size-root;\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: $body-text-align;\n background-color: $body-bg; // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-` diff --git a/netbox/templates/dcim/devicerole.html b/netbox/templates/dcim/devicerole.html index 5edf9cb7a..6811e9036 100644 --- a/netbox/templates/dcim/devicerole.html +++ b/netbox/templates/dcim/devicerole.html @@ -9,7 +9,7 @@ {% block content %}

-
+
Device Role @@ -51,13 +51,13 @@
{% plugin_left_page object %}
-
+
{% include 'inc/custom_fields_panel.html' %} {% plugin_right_page object %}
-
+
Devices diff --git a/netbox/templates/dcim/devicetype.html b/netbox/templates/dcim/devicetype.html index fb1391d04..984fc81ac 100644 --- a/netbox/templates/dcim/devicetype.html +++ b/netbox/templates/dcim/devicetype.html @@ -58,7 +58,7 @@ {% block content %}
-
+
Chassis @@ -133,7 +133,7 @@
{% plugin_left_page object %}
-
+
{% include 'inc/custom_fields_panel.html' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:devicetype_list' %}
@@ -152,12 +152,12 @@
-
+
{% plugin_full_width_page object %}
-
+
diff --git a/netbox/templates/dcim/frontport.html b/netbox/templates/dcim/frontport.html index 726680316..ac9137231 100644 --- a/netbox/templates/dcim/frontport.html +++ b/netbox/templates/dcim/frontport.html @@ -10,7 +10,7 @@ {% block content %}
-
+
Front Port @@ -56,7 +56,7 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% plugin_left_page object %}
-
+
Connection @@ -126,7 +126,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/interface.html b/netbox/templates/dcim/interface.html index 942a40567..54cfc2604 100644 --- a/netbox/templates/dcim/interface.html +++ b/netbox/templates/dcim/interface.html @@ -19,7 +19,7 @@ {% block content %}
-
+
Interface @@ -86,7 +86,7 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% plugin_left_page object %}
-
+
{% if object.is_connectable %}
@@ -267,7 +267,7 @@
-
+
IP Addresses @@ -290,17 +290,17 @@
-
+
{% include 'panel_table.html' with table=vlan_table heading="VLANs" %}
-
+
{% include 'panel_table.html' with table=child_interfaces_table heading="Child Interfaces" %}
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/interface_edit.html b/netbox/templates/dcim/interface_edit.html index 52bb23f06..0317e0323 100644 --- a/netbox/templates/dcim/interface_edit.html +++ b/netbox/templates/dcim/interface_edit.html @@ -46,8 +46,8 @@ {% block buttons %} Cancel {% if obj.pk %} - - + + {% else %} diff --git a/netbox/templates/dcim/inventoryitem.html b/netbox/templates/dcim/inventoryitem.html index 441fee4e9..509c7f804 100644 --- a/netbox/templates/dcim/inventoryitem.html +++ b/netbox/templates/dcim/inventoryitem.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Inventory Item @@ -73,12 +73,12 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% plugin_left_page object %}
-
+
{% plugin_right_page object %}
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/location.html b/netbox/templates/dcim/location.html index 05bd2170f..f151f08bf 100644 --- a/netbox/templates/dcim/location.html +++ b/netbox/templates/dcim/location.html @@ -12,7 +12,7 @@ {% block content %}
-
+
Location @@ -58,7 +58,7 @@
{% plugin_left_page object %}
-
+
{% include 'inc/custom_fields_panel.html' %}
@@ -80,7 +80,7 @@
-
+
Locations diff --git a/netbox/templates/dcim/manufacturer.html b/netbox/templates/dcim/manufacturer.html index 2e0e553bd..a4624c42f 100644 --- a/netbox/templates/dcim/manufacturer.html +++ b/netbox/templates/dcim/manufacturer.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Manufacturer @@ -35,13 +35,13 @@
{% plugin_left_page object %}
-
+
{% include 'inc/custom_fields_panel.html' %} {% plugin_right_page object %}
-
+
Device Types diff --git a/netbox/templates/dcim/platform.html b/netbox/templates/dcim/platform.html index 820e53c7c..e921fc0b9 100644 --- a/netbox/templates/dcim/platform.html +++ b/netbox/templates/dcim/platform.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Platform @@ -53,13 +53,13 @@
{% plugin_left_page object %}
-
+
{% include 'inc/custom_fields_panel.html' %} {% plugin_right_page object %}
-
+
Devices diff --git a/netbox/templates/dcim/powerfeed.html b/netbox/templates/dcim/powerfeed.html index add2486ba..8bddc1303 100644 --- a/netbox/templates/dcim/powerfeed.html +++ b/netbox/templates/dcim/powerfeed.html @@ -16,7 +16,7 @@ {% block content %}
-
+
Power Feed @@ -112,7 +112,7 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:powerfeed_list' %} {% plugin_left_page object %}
-
+
Connection @@ -199,7 +199,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/poweroutlet.html b/netbox/templates/dcim/poweroutlet.html index fe8f7c002..2ef2fd8dd 100644 --- a/netbox/templates/dcim/poweroutlet.html +++ b/netbox/templates/dcim/poweroutlet.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Power Outlet @@ -53,7 +53,7 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% plugin_left_page object %}
-
+
Connection @@ -123,7 +123,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/powerpanel.html b/netbox/templates/dcim/powerpanel.html index f0f0dda72..6476b3660 100644 --- a/netbox/templates/dcim/powerpanel.html +++ b/netbox/templates/dcim/powerpanel.html @@ -14,7 +14,7 @@ {% block content %}
-
+
Power Panel @@ -42,14 +42,14 @@
{% plugin_left_page object %}
-
+
{% include 'inc/custom_fields_panel.html' %} {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:powerpanel_list' %} {% plugin_right_page object %}
-
+
{% csrf_token %}
diff --git a/netbox/templates/dcim/powerport.html b/netbox/templates/dcim/powerport.html index de71971ea..e3d94ecfb 100644 --- a/netbox/templates/dcim/powerport.html +++ b/netbox/templates/dcim/powerport.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Power Port @@ -53,7 +53,7 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% plugin_left_page object %}
-
+
Connection @@ -133,7 +133,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/rack.html b/netbox/templates/dcim/rack.html index ee4604717..0cc115ddd 100644 --- a/netbox/templates/dcim/rack.html +++ b/netbox/templates/dcim/rack.html @@ -33,7 +33,7 @@ {% block content %}
-
+
Rack @@ -310,15 +310,15 @@
{% plugin_left_page object %}
-
+
-
+

Front

{% include 'dcim/inc/rack_elevation.html' with face='front' %}
-
+

Rear

{% include 'dcim/inc/rack_elevation.html' with face='rear' %} @@ -344,7 +344,7 @@ {{ device }} {{ device.device_role }} - {{ device.device_type.display_name }} + {{ device.device_type }} {% if device.parent_bay %} {{ device.parent_bay.device }} {{ device.parent_bay }} @@ -373,7 +373,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/rack_edit.html b/netbox/templates/dcim/rack_edit.html index d0c1a47a6..286cd2bca 100644 --- a/netbox/templates/dcim/rack_edit.html +++ b/netbox/templates/dcim/rack_edit.html @@ -30,16 +30,16 @@ {% render_field form.width %} {% render_field form.u_height %}
- -
+ +
{{ form.outer_width }}
Width
-
+
{{ form.outer_depth }}
Depth
-
+
{{ form.outer_unit }}
Unit
diff --git a/netbox/templates/dcim/rack_elevation_list.html b/netbox/templates/dcim/rack_elevation_list.html index b13e954b1..363b92779 100644 --- a/netbox/templates/dcim/rack_elevation_list.html +++ b/netbox/templates/dcim/rack_elevation_list.html @@ -24,8 +24,8 @@ {% block content %}
-
-
+
+
{% include 'inc/search_panel.html' %}
{% if page %} diff --git a/netbox/templates/dcim/rackreservation.html b/netbox/templates/dcim/rackreservation.html index 83ce4be1a..e685ba18e 100644 --- a/netbox/templates/dcim/rackreservation.html +++ b/netbox/templates/dcim/rackreservation.html @@ -12,7 +12,7 @@ {% block content %}
-
+
Rack @@ -87,15 +87,15 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:rackreservation_list' %} {% plugin_left_page object %}
-
+
-
+

Front

{% include 'dcim/inc/rack_elevation.html' with object=object.rack face='front' %}
-
+

Rear

{% include 'dcim/inc/rack_elevation.html' with object=object.rack face='rear' %} @@ -106,7 +106,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/rackrole.html b/netbox/templates/dcim/rackrole.html index fbfd9c0df..85da68a25 100644 --- a/netbox/templates/dcim/rackrole.html +++ b/netbox/templates/dcim/rackrole.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Rack Role @@ -41,13 +41,13 @@
{% plugin_left_page object %}
-
+
{% include 'inc/custom_fields_panel.html' %} {% plugin_right_page object %}
-
+
Racks diff --git a/netbox/templates/dcim/rearport.html b/netbox/templates/dcim/rearport.html index 30dd8a335..31397bf6d 100644 --- a/netbox/templates/dcim/rearport.html +++ b/netbox/templates/dcim/rearport.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Rear Port @@ -49,7 +49,7 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all %} {% plugin_left_page object %}
-
+
Connection @@ -113,7 +113,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/region.html b/netbox/templates/dcim/region.html index 0fe4adf00..2f59f935e 100644 --- a/netbox/templates/dcim/region.html +++ b/netbox/templates/dcim/region.html @@ -12,7 +12,7 @@ {% block content %}
-
+
Region @@ -49,7 +49,7 @@ {% include 'inc/custom_fields_panel.html' %} {% plugin_left_page object %}
-
+
Child Regions @@ -69,7 +69,7 @@
-
+
Sites diff --git a/netbox/templates/dcim/site.html b/netbox/templates/dcim/site.html index 1fa77d580..97ac7293d 100644 --- a/netbox/templates/dcim/site.html +++ b/netbox/templates/dcim/site.html @@ -16,7 +16,7 @@ {% block content %}
-
+
Site @@ -164,34 +164,34 @@
{% plugin_left_page object %}
-
+
Stats
-
+ -
+ -
+ -
+ -
+ -
+

{{ stats.vm_count }}

Virtual Machines

@@ -246,7 +246,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/sitegroup.html b/netbox/templates/dcim/sitegroup.html index 1d3b38161..6fe426859 100644 --- a/netbox/templates/dcim/sitegroup.html +++ b/netbox/templates/dcim/sitegroup.html @@ -12,7 +12,7 @@ {% block content %}
-
+
Site Group @@ -49,7 +49,7 @@ {% include 'inc/custom_fields_panel.html' %} {% plugin_left_page object %}
-
+
Child Groups @@ -69,7 +69,7 @@
-
+
Sites diff --git a/netbox/templates/dcim/virtualchassis.html b/netbox/templates/dcim/virtualchassis.html index 3582a806c..6f98559db 100644 --- a/netbox/templates/dcim/virtualchassis.html +++ b/netbox/templates/dcim/virtualchassis.html @@ -22,7 +22,7 @@ {% block content %}
-
+
Virtual Chassis @@ -50,7 +50,7 @@ {% include 'extras/inc/tags_panel.html' with tags=object.tags.all url='dcim:virtualchassis_list' %} {% plugin_left_page object %}
-
+
Members @@ -87,7 +87,7 @@
-
+
{% plugin_full_width_page object %}
diff --git a/netbox/templates/dcim/virtualchassis_add_member.html b/netbox/templates/dcim/virtualchassis_add_member.html index e89f912fa..b7818b47f 100644 --- a/netbox/templates/dcim/virtualchassis_add_member.html +++ b/netbox/templates/dcim/virtualchassis_add_member.html @@ -7,7 +7,7 @@ {% csrf_token %}
-
+
Add New Member
@@ -18,7 +18,7 @@
-
+
Cancel diff --git a/netbox/templates/dcim/virtualchassis_edit.html b/netbox/templates/dcim/virtualchassis_edit.html index 492c45f82..195855620 100644 --- a/netbox/templates/dcim/virtualchassis_edit.html +++ b/netbox/templates/dcim/virtualchassis_edit.html @@ -10,7 +10,7 @@ {{ pk_form.pk }} {{ formset.management_form }}
-
+
Virtual Chassis
@@ -91,10 +91,10 @@
-
+
Cancel {% if vc_form.instance.pk %} - + {% else %} {% endif %} diff --git a/netbox/templates/extras/configcontext.html b/netbox/templates/extras/configcontext.html index 733264df3..dde954a2d 100644 --- a/netbox/templates/extras/configcontext.html +++ b/netbox/templates/extras/configcontext.html @@ -9,7 +9,7 @@ {% block content %}
-
+
Config Context @@ -185,7 +185,7 @@
-
+
Data
diff --git a/netbox/templates/extras/journalentry.html b/netbox/templates/extras/journalentry.html index 4cbfcb729..5ebddd59d 100644 --- a/netbox/templates/extras/journalentry.html +++ b/netbox/templates/extras/journalentry.html @@ -10,7 +10,7 @@ {% block content %}
-
+
Journal Entry @@ -45,7 +45,7 @@
-
+
Comments diff --git a/netbox/templates/extras/object_configcontext.html b/netbox/templates/extras/object_configcontext.html index 4c489b51b..408e0a64a 100644 --- a/netbox/templates/extras/object_configcontext.html +++ b/netbox/templates/extras/object_configcontext.html @@ -6,7 +6,7 @@ {% block content %}
-
+
Rendered Context @@ -17,7 +17,7 @@
-
+
Local Context diff --git a/netbox/templates/extras/object_journal.html b/netbox/templates/extras/object_journal.html index 437ea4105..bcb070b22 100644 --- a/netbox/templates/extras/object_journal.html +++ b/netbox/templates/extras/object_journal.html @@ -8,7 +8,7 @@ {% block content %} {% if perms.extras.add_journalentry %} -
+

New Journal Entry

{% csrf_token %} @@ -18,14 +18,14 @@ {% render_field form.kind %} {% render_field form.comments %}
-
+
Cancel
{% endif %} -
+
{% include 'panel_table.html' %}
{% include 'inc/paginator.html' with paginator=table.paginator page=table.page %} diff --git a/netbox/templates/extras/objectchange.html b/netbox/templates/extras/objectchange.html index 23e00f221..30664db9a 100644 --- a/netbox/templates/extras/objectchange.html +++ b/netbox/templates/extras/objectchange.html @@ -21,7 +21,7 @@ {% block header %}
-
+
@@ -38,7 +38,7 @@ {% block content %}
-
+
Change @@ -89,7 +89,7 @@
-
+
Difference
@@ -122,7 +122,7 @@
-
+
Pre-Change Data @@ -139,7 +139,7 @@
-
+
Post-Change Data @@ -158,7 +158,7 @@
-
+
{% include 'panel_table.html' with table=related_changes_table heading='Related Changes' panel_class='default' %} {% if related_changes_count > related_changes_table.rows|length %}
diff --git a/netbox/templates/extras/report.html b/netbox/templates/extras/report.html index a87477b4e..0d7698d76 100644 --- a/netbox/templates/extras/report.html +++ b/netbox/templates/extras/report.html @@ -32,7 +32,7 @@
{% endif %}
-
+
{% if report.result %} Last run: {{ report.result.created }} diff --git a/netbox/templates/extras/report_list.html b/netbox/templates/extras/report_list.html index 3314d3044..8ce3fd931 100644 --- a/netbox/templates/extras/report_list.html +++ b/netbox/templates/extras/report_list.html @@ -5,7 +5,7 @@ {% block content %}
-
+
{% if reports %} {% for module, module_reports in reports %}
@@ -85,7 +85,7 @@
{% endif %}
-
+
{% if reports %}
diff --git a/netbox/templates/extras/report_result.html b/netbox/templates/extras/report_result.html index a5210ecbe..acd1e9f9f 100644 --- a/netbox/templates/extras/report_result.html +++ b/netbox/templates/extras/report_result.html @@ -11,7 +11,7 @@ {% block content %}
-
+

Run: {{ result.created }} {% if result.completed %} diff --git a/netbox/templates/extras/script.html b/netbox/templates/extras/script.html index 2ef75133c..1078ba427 100644 --- a/netbox/templates/extras/script.html +++ b/netbox/templates/extras/script.html @@ -29,7 +29,7 @@

-
+
{% if not perms.extras.run_script %}
diff --git a/netbox/templates/extras/script_list.html b/netbox/templates/extras/script_list.html index b6e468f93..290d7d64f 100644 --- a/netbox/templates/extras/script_list.html +++ b/netbox/templates/extras/script_list.html @@ -5,7 +5,7 @@ {% block content %}
-
+
{% if scripts %} {% for module, module_scripts in scripts.items %}

{{ module|bettertitle }}

@@ -49,7 +49,7 @@
{% endif %}
-
+
{% if scripts %}
diff --git a/netbox/templates/extras/script_result.html b/netbox/templates/extras/script_result.html index 9c126fbec..6d036251c 100644 --- a/netbox/templates/extras/script_result.html +++ b/netbox/templates/extras/script_result.html @@ -13,7 +13,7 @@ {% block content %}
-
+