/* Utitilies are prefixed by Tailwind */

._tw-col-span-2 {
  grid-column: span 2 / span 2 !important;
}

._tw-col-span-6 {
  grid-column: span 6 / span 6 !important;
}

._tw-m-10 {
  margin: 2.5rem !important;
}

._tw-m-2 {
  margin: 0.5rem !important;
}

._tw-mx-1 {
  margin-left: 0.25rem !important;
  margin-right: 0.25rem !important;
}

._tw-my-1 {
  margin-top: 0.25rem !important;
  margin-bottom: 0.25rem !important;
}

._tw-mr-0\.5 {
  margin-right: 0.125rem !important;
}

._tw-mr-3 {
  margin-right: 0.75rem !important;
}

._tw-box-border {
  box-sizing: border-box !important;
}

._tw-flex {
  display: flex !important;
}

._tw-grid {
  display: grid !important;
}

._tw-h-\[10px\] {
  height: 10px !important;
}

._tw-h-\[20px\] {
  height: 20px !important;
}

._tw-h-full {
  height: 100% !important;
}

._tw-max-h-1\/5 {
  max-height: 16vh !important;
}

._tw-max-h-3\/5 {
  max-height: 48vh !important;
}

._tw-min-h-1\/4 {
  min-height: 20vh !important;
}

._tw-min-h-screen {
  min-height: 100vh !important;
}

._tw-w-\[10px\] {
  width: 10px !important;
}

._tw-w-\[20px\] {
  width: 20px !important;
}

._tw-w-full {
  width: 100% !important;
}

@keyframes _tw-spin {
  to {
    transform: rotate(360deg);
  }
}

._tw-animate-spin {
  animation: _tw-spin 1s linear infinite !important;
}

._tw-grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

._tw-grid-cols-8 {
  grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
}

._tw-flex-row {
  flex-direction: row !important;
}

._tw-flex-row-reverse {
  flex-direction: row-reverse !important;
}

._tw-items-center {
  align-items: center !important;
}

._tw-justify-between {
  justify-content: space-between !important;
}

._tw-gap-4 {
  gap: 1rem !important;
}

._tw-overflow-auto {
  overflow: auto !important;
}

._tw-whitespace-pre {
  white-space: pre !important;
}

._tw-rounded-full {
  border-radius: 9999px !important;
}

._tw-rounded-lg {
  border-radius: 0.5rem !important;
}

._tw-border {
  border-width: 1px !important;
}

._tw-border-2 {
  border-width: 2px !important;
}

._tw-border-b-2 {
  border-bottom-width: 2px !important;
}

._tw-border-solid {
  border-style: solid !important;
}

._tw-border-blue-500 {
  --tw-border-opacity: 1 !important;
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)) !important;
}

._tw-border-gray-200 {
  --tw-border-opacity: 1 !important;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)) !important;
}

._tw-border-red-500 {
  --tw-border-opacity: 1 !important;
  border-color: rgb(239 68 68 / var(--tw-border-opacity, 1)) !important;
}

._tw-border-b-red-500 {
  --tw-border-opacity: 1 !important;
  border-bottom-color: rgb(239 68 68 / var(--tw-border-opacity, 1)) !important;
}

._tw-bg-blue-500 {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)) !important;
}

._tw-bg-slate-200 {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)) !important;
}

._tw-bg-slate-500 {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1)) !important;
}

._tw-p-4 {
  padding: 1rem !important;
}

._tw-px-1 {
  padding-left: 0.25rem !important;
  padding-right: 0.25rem !important;
}

._tw-px-2 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

._tw-py-1 {
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
}

._tw-text-center {
  text-align: center !important;
}

._tw-text-4xl {
  font-size: 2.25rem !important;
  line-height: 2.5rem !important;
}

._tw-text-lg {
  font-size: 1.125rem !important;
  line-height: 1.75rem !important;
}

._tw-font-bold {
  font-weight: 700 !important;
}

._tw-font-medium {
  font-weight: 500 !important;
}

._tw-text-\[\#FF8F00\] {
  --tw-text-opacity: 1 !important;
  color: rgb(255 143 0 / var(--tw-text-opacity, 1)) !important;
}

._tw-text-black {
  --tw-text-opacity: 1 !important;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1)) !important;
}

._tw-text-blue-500 {
  --tw-text-opacity: 1 !important;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1)) !important;
}

._tw-text-red-500 {
  --tw-text-opacity: 1 !important;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1)) !important;
}

._tw-text-white {
  --tw-text-opacity: 1 !important;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
}

._tw-border-b-red-500 {
  border-bottom-color: #ef4444 !important;
}

/* Tailwind base css that is used in Papyros */

/* Source: node_modules/tailwindcss/src/css/preflight.css */

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

.tailwind *,
.tailwind ::before,
.tailwind ::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

.tailwind ::before,
.tailwind ::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
*/

.tailwind-html {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

.tailwind-body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

.tailwind button,
.tailwind input,
.tailwind select,
.tailwind textarea {
  font-family: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  line-height: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

.tailwind :-moz-focusring {
  outline: auto;
}

/*
Removes the default spacing and border for appropriate elements.
*/

.tailwind p {
  margin: 0;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

.tailwind input::-moz-placeholder, .tailwind textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

.tailwind input::placeholder,
.tailwind textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/* Ensure the default browser behavior of the `hidden` attribute. */

[hidden] {
  /* Make it invisible while keeping page layout */
  visibility: hidden !important;
}

/* CodeMirror search panel close button*/

.cm-search > [name="close"] {
  cursor: pointer;
}

.cm-content,
.papyros-font-family {
  font-family: Monaco, Menlo, "Ubuntu Mono", Consolas, source-code-pro, monospace;
}

/* Override top border generated by @codemirror/one-dark-theme */

.ͼo .cm-panels.cm-panels-bottom {
  /* dark-mode-content in tailwind.config.js*/
  border-color: #37474F;
}

/* Change styling of tooltips generated by CodeMirror */

.cm-completionInfo {
  white-space: pre;
  overflow: auto;
  resize: both;
  /* override default max width/height to allow resizing */
  max-width: 600px !important;
  max-height: 600px !important;
}

/* 
  Disable resizing left completion infos as its movements are mirrored
  According to https://github.com/codemirror/codemirror.next/issues/815
  this feature is out of scope for CodeMirror
*/

.cm-completionInfo-left {
  resize: none;
}

/* Add placeholder to an empty element */

.with-placeholder:empty:before {
  content: attr(data-placeholder);
  /* same value as placeholder-grey in tailwind.config.js */
  color: #888;
}

/* Also override CodeMirror buttons to use this style */

.papyros-button,
.cm-button,
.tailwind .papyros-button,
.tailwind .cm-button {
  margin: 0.25rem;
  cursor: pointer;
  border-radius: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.papyros-button:disabled,
.cm-button:disabled,
.tailwind .papyros-button:disabled,
.tailwind .cm-button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.papyros-button,
.cm-button,
.tailwind .papyros-button,
.tailwind .cm-button{
  min-width: 60px;
}

/* Round the corners of textfields created by CodeMirror */

.cm-textfield {
  border-radius: 0.5rem !important;
}

.papyros-button.btn-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.papyros-button.btn-secondary {
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.papyros-button.btn-danger {
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.papyros-button.with-icon {
  padding-left: 8px;
}

.papyros-button.with-icon svg{
  vertical-align: middle;
}

.papyros-test-code {
  background-color: rgba(143, 182, 130, 0.1);
}

.papyros-test-code.cm-activeLine {
  background-color: rgba(143, 182, 130, 0.1)
}

.papyros-test-code-widget {
  background-color: rgba(143, 182, 130, 0.1);
  color: #7d8799;
  padding: 0 2px 0 6px;
  position: relative;
}

.papyros-test-code-buttons {
  position: absolute;
  top: -2px;
  left: -42px;
  z-index: 220;
}

.papyros-icon-link {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
  font-size: 16px;
  padding: 2px;
  cursor: pointer;
}

.papyros-icon-link:hover {
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity, 1));
}

.papyros-state-card.cm-panels {
  display: none;
  position: absolute;
  right: 8px;
  top: -31px;
  left: initial;
  padding: 4px 8px;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  border: 1px solid;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}

.papyros-state-card.cm-panels:is(._tw-dark *) {
  border-style: none;
}

.papyros-state-card.cm-panels.show {
  display: flex;
}

.papyros-bottom-padding-widget {
  position: relative;
  height: 0;
}

.papyros-bottom-padding-widget div {
  background-color: rgba(143, 182, 130, 0.1);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
}

#__papyros-code-output-area.papyros-debug > * {
  opacity: 0.1;
}

#__papyros-code-output-area.papyros-debug > .papyros-highlight-debugged {
  opacity: 1;
}

.papyros-code-editor .cm-content[contenteditable="false"] {
  cursor: default;
}

.papyros-code-editor .cm-gutters {
  cursor: default;
}

.placeholder\:_tw-text-placeholder-grey::-moz-placeholder {
  --tw-text-opacity: 1 !important;
  color: rgb(136 136 136 / var(--tw-text-opacity, 1)) !important;
}

.placeholder\:_tw-text-placeholder-grey::placeholder {
  --tw-text-opacity: 1 !important;
  color: rgb(136 136 136 / var(--tw-text-opacity, 1)) !important;
}

.hover\:_tw-cursor-pointer:hover {
  cursor: pointer !important;
}

.focus\:_tw-outline-none:focus {
  outline: 2px solid transparent !important;
  outline-offset: 2px !important;
}

.focus\:_tw-ring-1:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color) !important;
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color) !important;
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000) !important;
}

.focus\:_tw-ring-blue-500:focus {
  --tw-ring-opacity: 1 !important;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)) !important;
}

.disabled\:_tw-cursor-not-allowed:disabled {
  cursor: not-allowed !important;
}

.dark\:_tw-border-dark-mode-blue:is(._tw-dark *) {
  --tw-border-opacity: 1 !important;
  border-color: rgb(2 119 189 / var(--tw-border-opacity, 1)) !important;
}

.dark\:_tw-border-dark-mode-content:is(._tw-dark *) {
  --tw-border-opacity: 1 !important;
  border-color: rgb(55 71 79 / var(--tw-border-opacity, 1)) !important;
}

.dark\:_tw-bg-dark-mode-bg:is(._tw-dark *) {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(38 50 56 / var(--tw-bg-opacity, 1)) !important;
}

.dark\:_tw-bg-dark-mode-blue:is(._tw-dark *) {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(2 119 189 / var(--tw-bg-opacity, 1)) !important;
}

.dark\:_tw-bg-slate-500:is(._tw-dark *) {
  --tw-bg-opacity: 1 !important;
  background-color: rgb(100 116 139 / var(--tw-bg-opacity, 1)) !important;
}

.dark\:_tw-text-dark-mode-blue:is(._tw-dark *) {
  --tw-text-opacity: 1 !important;
  color: rgb(2 119 189 / var(--tw-text-opacity, 1)) !important;
}

.dark\:_tw-text-white:is(._tw-dark *) {
  --tw-text-opacity: 1 !important;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1)) !important;
}