
.btn,
.btn-lg,
.btn-sm,
.btn-xs{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
  border-width: 1px;
  border-color: transparent;
  font-size: 0.875rem;
  line-height: 1.5715;
  font-weight: 500;
  line-height: 1.25rem;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-duration: 150ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.btn{
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.btn-lg{
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.btn-sm{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.btn-xs{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}

* Forms */

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
  -webkit-appearance: none;
}

.form-input,
.form-textarea,
.form-multiselect,
.form-select,
.form-checkbox,
.form-radio{
  border-width: 1px;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}

.form-input:focus,
.form-textarea:focus,
.form-multiselect:focus,
.form-select:focus,
.form-checkbox:focus,
.form-radio:focus{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 0px;
}

:is(.dark .form-input),:is(.dark 
.form-textarea),:is(.dark 
.form-multiselect),:is(.dark 
.form-select),:is(.dark 
.form-checkbox),:is(.dark 
.form-radio){
  background-color: rgb(15 23 42 / 0.3);
}

:is(.dark .form-input:disabled),:is(.dark 
.form-textarea:disabled),:is(.dark 
.form-multiselect:disabled),:is(.dark 
.form-select:disabled),:is(.dark 
.form-checkbox:disabled),:is(.dark 
.form-radio:disabled){
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity));
  background-color: rgb(51 65 85 / 0.3);
}

:is(.dark .form-input:hover:disabled),:is(.dark 
.form-textarea:hover:disabled),:is(.dark 
.form-multiselect:hover:disabled),:is(.dark 
.form-select:hover:disabled),:is(.dark 
.form-checkbox:hover:disabled),:is(.dark 
.form-radio:hover:disabled){
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity));
}

.form-input,
.form-textarea,
.form-multiselect,
.form-select,
.form-checkbox{
  border-radius: 0.25rem;
}

.form-input,
.form-textarea,
.form-multiselect,
.form-select{
  --tw-border-opacity: 1;
  border-color: rgb(226 232 240 / var(--tw-border-opacity));
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5715;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity));
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.form-input:hover,
.form-textarea:hover,
.form-multiselect:hover,
.form-select:hover{
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity));
}

.form-input:focus,
.form-textarea:focus,
.form-multiselect:focus,
.form-select:focus{
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity));
}

:is(.dark .form-input),:is(.dark 
.form-textarea),:is(.dark 
.form-multiselect),:is(.dark 
.form-select){
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity));
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / var(--tw-text-opacity));
}

:is(.dark .form-input:hover),:is(.dark 
.form-textarea:hover),:is(.dark 
.form-multiselect:hover),:is(.dark 
.form-select:hover){
  --tw-border-opacity: 1;
  border-color: rgb(71 85 105 / var(--tw-border-opacity));
}

:is(.dark .form-input:focus),:is(.dark 
.form-textarea:focus),:is(.dark 
.form-multiselect:focus),:is(.dark 
.form-select:focus){
  --tw-border-opacity: 1;
  border-color: rgb(71 85 105 / var(--tw-border-opacity));
}

.form-input::-moz-placeholder, .form-textarea::-moz-placeholder{
  --tw-placeholder-opacity: 1;
  color: rgb(148 163 184 / var(--tw-placeholder-opacity));
}

.form-input::placeholder,
.form-textarea::placeholder{
  --tw-placeholder-opacity: 1;
  color: rgb(148 163 184 / var(--tw-placeholder-opacity));
}

:is(.dark .form-input)::-moz-placeholder, :is(.dark 
.form-textarea)::-moz-placeholder{
  --tw-placeholder-opacity: 1;
  color: rgb(100 116 139 / var(--tw-placeholder-opacity));
}

:is(.dark .form-input)::placeholder,:is(.dark 
.form-textarea)::placeholder{
  --tw-placeholder-opacity: 1;
  color: rgb(100 116 139 / var(--tw-placeholder-opacity));
}

.form-select{
  padding-right: 2.5rem;
}

.form-checkbox,
.form-radio{
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(203 213 225 / var(--tw-border-opacity));
  --tw-text-opacity: 1;
  color: rgb(99 102 241 / var(--tw-text-opacity));
}

.form-checkbox:checked,
.form-radio:checked{
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / var(--tw-bg-opacity));
}

.form-checkbox:focus,
.form-radio:focus{
  --tw-border-opacity: 1;
  border-color: rgb(165 180 252 / var(--tw-border-opacity));
}

:is(.dark .form-checkbox),:is(.dark 
.form-radio){
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity));
}

:is(.dark .form-checkbox:checked),:is(.dark 
.form-radio:checked){
  border-color: transparent;
}

:is(.dark .form-checkbox:focus),:is(.dark 
.form-radio:focus){
  border-color: rgb(99 102 241 / 0.5);
}

/* Switch element */

.form-switch{
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  width: 44px;
}

.form-switch label{
  display: block;
  height: 1.5rem;
  cursor: pointer;
  overflow: hidden;
  border-radius: 9999px;
}

.form-switch label > span:first-child{
  position: absolute;
  display: block;
  border-radius: 9999px;
  width: 20px;
  height: 20px;
  top: 2px;
  left: 2px;
  right: 50%;
  transition: all .15s ease-out;
}

.form-switch input[type="checkbox"]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(99 102 241 / var(--tw-bg-opacity));
}

.form-switch input[type="checkbox"]:checked + label > span:first-child {
  left: 22px;
}

.form-switch input[type="checkbox"]:disabled + label{
  cursor: not-allowed;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(226 232 240 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(241 245 249 / var(--tw-bg-opacity));
}

:is(.dark .form-switch input[type="checkbox"]:disabled + label){
  --tw-border-opacity: 1;
  border-color: rgb(51 65 85 / var(--tw-border-opacity));
  background-color: rgb(51 65 85 / 0.2);
}

.form-switch input[type="checkbox"]:disabled + label > span:first-child{
  --tw-bg-opacity: 1;
  background-color: rgb(148 163 184 / var(--tw-bg-opacity));
}

:is(.dark .form-switch input[type="checkbox"]:disabled + label > span:first-child){
  --tw-bg-opacity: 1;
  background-color: rgb(71 85 105 / var(--tw-bg-opacity));
}

:root {
  --z-tooltip: 35;
  --z-contextual-menu: 45;
  --z-header: 50;
  --z-modal: 80;
}

.admin-header {
  z-index: var(--z-header);
}

.contextual-menu {
  z-index: var(--z-contextual-menu);
}

.modal-layer {
  z-index: var(--z-modal);
}

/* Tooltip reutilizable para botones/enlaces con iconos.
   Uso: class="tooltip tooltip-t|tooltip-r|tooltip-b|tooltip-l" data-tooltip="Texto del tooltip".
   Si no se define dirección, se muestra arriba. */
.tooltip {
  position: relative;
}

.tooltip::before,
.tooltip::after {
  position: absolute;
  z-index: var(--z-tooltip);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
}

.tooltip::before {
  content: attr(data-tooltip);
  width: max-content;
  max-width: 14rem;
  padding: 0.375rem 0.5rem;
  border-radius: 0.25rem;
  background-color: rgb(15 23 42 / 0.95);
  color: #fff;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
  box-shadow: 0 10px 15px -3px rgb(15 23 42 / 0.2), 0 4px 6px -4px rgb(15 23 42 / 0.2);
}

.tooltip::after {
  content: "";
  border-style: solid;
}

.tooltip:hover::before,
.tooltip:hover::after,
.tooltip:focus-visible::before,
.tooltip:focus-visible::after {
  opacity: 1;
  visibility: visible;
}

.tooltip::before,
.tooltip::after,
.tooltip-t::before,
.tooltip-t::after {
  left: 50%;
  bottom: calc(100% + 0.5rem);
  transform: translate(-50%, 0.25rem);
}

.tooltip::after,
.tooltip-t::after {
  bottom: calc(100% + 0.25rem);
  border-width: 0.25rem 0.25rem 0;
  border-color: rgb(15 23 42 / 0.95) transparent transparent;
}

.tooltip:hover::before,
.tooltip:hover::after,
.tooltip:focus-visible::before,
.tooltip:focus-visible::after,
.tooltip-t:hover::before,
.tooltip-t:hover::after,
.tooltip-t:focus-visible::before,
.tooltip-t:focus-visible::after {
  transform: translate(-50%, 0);
}

.tooltip-b::before,
.tooltip-b::after {
  left: 50%;
  top: calc(100% + 0.5rem);
  bottom: auto;
  transform: translate(-50%, -0.25rem);
}

.tooltip-b::after {
  top: calc(100% + 0.25rem);
  bottom: auto;
  border-width: 0 0.25rem 0.25rem;
  border-color: transparent transparent rgb(15 23 42 / 0.95);
}

.tooltip-b:hover::before,
.tooltip-b:hover::after,
.tooltip-b:focus-visible::before,
.tooltip-b:focus-visible::after {
  transform: translate(-50%, 0);
}

.tooltip-r::before,
.tooltip-r::after {
  left: calc(100% + 0.5rem);
  top: 50%;
  bottom: auto;
  transform: translate(-0.25rem, -50%);
}

.tooltip-r::after {
  left: calc(100% + 0.25rem);
  border-width: 0.25rem 0.25rem 0.25rem 0;
  border-color: transparent rgb(15 23 42 / 0.95) transparent transparent;
}

.tooltip-r:hover::before,
.tooltip-r:hover::after,
.tooltip-r:focus-visible::before,
.tooltip-r:focus-visible::after {
  transform: translate(0, -50%);
}

.tooltip-l::before,
.tooltip-l::after {
  right: calc(100% + 0.5rem);
  left: auto;
  top: 50%;
  bottom: auto;
  transform: translate(0.25rem, -50%);
}

.tooltip-l::after {
  right: calc(100% + 0.25rem);
  border-width: 0.25rem 0 0.25rem 0.25rem;
  border-color: transparent transparent transparent rgb(15 23 42 / 0.95);
}

.tooltip-l:hover::before,
.tooltip-l:hover::after,
.tooltip-l:focus-visible::before,
.tooltip-l:focus-visible::after {
  transform: translate(0, -50%);
}
