/* The following gets added to the <head> if it is detected that the user has a
 * monospace font with inconsistent normal/bold/italic height.  See
 * notebookmain.js.  Such fonts will have keywords vertically offset with
 * respect to the rest of the text.  The user should select a better font.
 * See: https://github.com/ipython/ipython/issues/1503
 *
 * .CodeMirror span {
 *      vertical-align: bottom;
 * }
 */

.CodeMirror {
    line-height: @code_line_height;  /* Changed from 1em to our global default */
    height: auto;     /* Changed to auto to autogrow */
    background: none;  /* Changed from white to allow our bg to show through */
}

.CodeMirror-scroll {
    /*  The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
    /*  We have found that if it is visible, vertical scrollbars appear with font size changes.*/
    overflow-y: hidden;
    overflow-x: auto;
}

@-moz-document url-prefix() {
  /* Firefox does weird and terrible things (#3549) when overflow-x is auto */
  /* It doesn't respect the overflow setting anyway, so we can workaround it with this */
  .CodeMirror-scroll {
    overflow-x: hidden;
  }
}

.CodeMirror-lines {
    /* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
    /* we have set a different line-height and want this to scale with that. */
    padding: @code_padding;
}

.CodeMirror-linenumber {
    // This is needed to fine tune the position of the line numbers because we use the 0.4em in @code_padding
    // spacing in various places. Fine tuned to look right.
    padding: 0 8px 0 4px;
}

.CodeMirror-gutters {
    // This is needed because our cell has rounded corners, otherwise the gutter area square
    // corner cuts into the rounded cell border.
    border-bottom-left-radius: @baseBorderRadius;
    border-top-left-radius: @baseBorderRadius;
}

.CodeMirror pre {
    /* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
    /* .CodeMirror-lines */
    padding: 0;
    border: 0;
    .border-radius(0)
}