:root {
  --amber: #ffc107;
  --blue: #2196f3;
  --blue-grey: #607d8b;
  --breakpoint-lg: 992px;
  --breakpoint-md: 768px;
  --breakpoint-sm: 576px;
  --breakpoint-xl: 1200px;
  --breakpoint-xs: 0;
  --brown: #795548;
  --cyan: #00bcd4;
  --danger: #f44336;
  --danger-dark: #d32f2f;
  --danger-light: #ffcdd2;
  --dark: #424242;
  --dark-dark: #212121;
  --dark-light: #757575;
  --deep-orange: #ff5722;
  --deep-purple: #673ab7;
  --font-family-monospace: "Roboto Mono",Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  --font-family-sans-serif: Roboto,-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  --font-family-serif: "Roboto Slab",Georgia,"Times New Roman",Times,serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  --green: #4caf50;
  --grey: #9e9e9e;
  --indigo: #3f51b5;
  --info: #2196f3;
  --info-dark: #1976d2;
  --info-light: #bbdefb;
  --light: #f5f5f5;
  --light-blue: #03a9f4;
  --light-dark: #e0e0e0;
  --light-green: #8bc34a;
  --light-light: #fafafa;
  --lime: #cddc39;
  --orange: #ff9800;
  --pink: #e91e63;
  --primary: #9c27b0;
  --primary-dark: #7b1fa2;
  --primary-light: #e1bee7;
  --purple: #9c27b0;
  --red: #f44336;
  --secondary: #ff4081;
  --secondary-dark: #f50057;
  --secondary-light: #ff80ab;
  --success: #4caf50;
  --success-dark: #388e3c;
  --success-light: #c8e6c9;
  --teal: #009688;
  --warning: #ff9800;
  --warning-dark: #f57c00;
  --warning-light: #ffe0b2;
  --yellow: #ffeb3b;
}

*,
:after,
:before {
  box-sizing: inherit;
}

@-ms-viewport {
  width: device-width;
}

article,
aside,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section {
  display: block;
}

html {
  -moz-text-size-adjust: 100%;
  -ms-overflow-style: scrollbar;
  -ms-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  box-sizing: border-box;
  font-family: sans-serif;
  line-height: 1.15;
  text-size-adjust: 100%;
}

html,
body {
  height: 100%;
}

body {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  background-color: #fff;
  color: rgba(0,0,0,.87);
  font-family: Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.428572;
  margin: 0;
  text-align: left;
  text-align: start;
}
[dir=rtl] body {
  text-align: right;
  text-align: start;
}
 
[tabindex="-1"]:focus {
  outline: 0 !important;
}

body {
  /* For why this is necessary see: http://stackoverflow.com/questions/11124777/twitter-bootstrap-navbar-fixed-top-overlapping-site */
  padding-top: 52px;
}

label, legend {
  font-weight: 400;
  letter-spacing: 0;
}

label {
  color: rgba(0,0,0,.38);
  display: inline-block;
  font-size: .75rem;
  line-height: 1.5;
}

/* Used in the Setting Dialog (section titles) */
legend {
  color: inherit;
  display: block;
  font-size: 1.5rem;
  line-height: 1.333334;
  margin-bottom: .5rem;
  max-width: 100%;
  padding: 0;
  white-space: normal;
  width: 100%;
}

.form-row {
  -ms-flex-wrap: wrap;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap;
  margin-left: -.5rem;
  margin-right: -.5rem;
}

svg:not(:root) {
  overflow: hidden;
}

.mr-2 {
  margin-right: .5rem !important;
}

.mt-3 {
  margin-top: 1rem !important;
}

.mb-3 {
  margin-bottom: 1rem !important;
}

.shadow-2 {
  box-shadow: 0 0 4px 0 rgba(0,0,0,.14),0 3px 4px 0 rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2) !important;
}

#main-content {
  min-height: 100%;
  height: auto !important;
  height: 100%;
  margin: 0 auto -4em;
}

.clear {
  clear: both;
}

.nomargin {
  margin: 0px;
}

.hide {
  display: none;
}

/* See https://stackoverflow.com/a/35902636/795131 */
.disabled {
  pointer-events: none;
  opacity: 0.6;
}

/* Container */

.container {
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
  width: 100%;
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 1140px;
  }
}

/* btn, btn-group (from Daemonite material.css) */

.btn-group>.btn-group:not(:last-child)>.btn,
.btn-group>.btn:not(:last-child):not(.dropdown-toggle),
.btn-group>.dropdown-toggle:not(:last-of-type) {
  border-bottom-right-radius: 0;
  border-top-right-radius: 0;
}

a:not([href]):not([tabindex]),
a:not([href]):not([tabindex]):active,
a:not([href]):not([tabindex]):focus,
a:not([href]):not([tabindex]):hover {
  color: inherit;
  text-decoration: none;
}

.btn-group>.btn-group:first-child,
.btn-group>.btn:first-child {
  margin-left: 0;
}

.btn:not(:disabled):not(.disabled) {
  cursor: pointer;
}

.btn-group>.btn,
.btn-group>.btn-group {
  margin-left: -1px;
}

@media (min-width: 992px) {
  .btn-group-vertical>.btn,
  .btn-group>.btn {
    transition-duration: .2s;
  }
}

@media (min-width: 576px) {
  .btn-group-vertical>.btn,
  .btn-group>.btn {
    transition-duration: .39s;
  }
}

.btn-group-vertical>.btn,
.btn-group>.btn {
  -ms-flex: 0 1 auto;
  box-shadow: none;
  flex: 0 1 auto;
  min-width: 0;
  transition-duration: .3s;
  transition-property: border-color,opacity;
  transition-timing-function: cubic-bezier(.4,0,.2,1);
}

.btn:focus,
.btn:hover {
  background-image: linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.12));
}

.btn:active,
.btn:focus,
.btn:hover {
  color: rgba(0,0,0,.87);
  text-decoration: none;
}

a:active,
a:focus,
a:hover {
  color: #ff4081;
  text-decoration: underline;
}

@media (min-width: 992px) {
  .btn {
    transition-duration: .2s;
  }
}

@media (min-width: 576px) {
  .btn {
    transition-duration: .39s;
  }
}

.btn {
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
  background-color: transparent;
  background-image: none;
  border: 0;
  border-radius: 2px;
  box-shadow: 0 0 4px 0 rgba(0,0,0,.14),0 3px 4px 0 rgba(0,0,0,.12),0 1px 5px 0 rgba(0,0,0,.2);
  color: rgba(0,0,0,.87);
  display: inline-block;
  font-size: .875rem;
  font-weight: 500;
  line-height: 1;
  margin: 0;
  max-width: 100%;
  min-width: 5.5rem;
  padding: .6875rem 1rem;
  position: relative;
  text-align: center;
  text-transform: uppercase;
  transition-duration: .3s;
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(.4,0,.2,1);
  user-select: none;
  vertical-align: middle;
  white-space: nowrap;
}

a {
  -webkit-text-decoration-skip: objects;
  background-color: transparent;
  color: #ff4081;
  text-decoration: none
}

/* Flat button */

.btn.flat-button {
  min-width: auto !important;
  background-color: rgb(0,0,0,0);
  border: 1px solid rgba(0,0,0,0);
  color: black;
  box-shadow: none;
  border-radius: 0%;
}

.btn.flat-button.active,
.btn.flat-button.active:hover {
  color:#0098f7;
}

.btn.flat-button.active:hover {
  background-image: linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.12));
}

/*
Daemonite Material UI overrides any added disabled class added
to a button, so we define a disabled flat-button here.
*/
.btn.flat-button.disabled {
  pointer-events: none;
  opacity: 0.6;
}

/* Input, form-control (Settings Dialog dropdown select) */

.custom-select:hover,
.form-control-file:hover,
.form-control:hover {
  border-color: rgba(0,0,0,.87);
  box-shadow: inset 0 -2px 0 -1px rgba(0,0,0,.87);
}

.custom-select,
 select.form-control {
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg fill="%23000000" fill-opacity="0.54" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"%3E%3Cpath d="M7 10l5 5 5-5z"/%3E%3Cpath d="M0 0h24v24H0z" fill="none"/%3E%3C/svg%3E');
  background-position: 100% 50%;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  padding-right: 1.5em;
}

.custom-select,
select.form-control {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}

.custom-select,
.form-control,
.form-control-file {
  background-clip: padding-box;
  background-color: transparent;
  border: solid rgba(0,0,0,.42);
  border-radius: 0;
  border-width: 0 0 1px;
  box-shadow: none;
  color: rgba(0,0,0,.87);
  display: block;
  font-size: 1rem;
  line-height: 1.5;
  padding: .375rem 0 calc(.375rem - 1px);
  width: 100%;
}

button,
select {
  text-transform: none;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  margin: 0;
}

/* hr */

hr {
  border: 0;
  border-top: 1px solid rgba(0,0,0,.12);
  margin-bottom: 1rem;
  margin-top: 1rem;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}


.dropdown-menu-sm {
  min-width: 7rem;
}

/* Dropdown submenu */

ul li:hover > .dropdown-submenu {
  display: block;
}

.dropdown-submenu {
  top: 0;
  /*
  The following rules are specific to the Recent Notations list,
  which needs to open to the left.
  */
  right: 100% !important;
  margin-top: -1px;
  margin-right: -1px;
}

/* See: https://stackoverflow.com/a/21907453/795131 */
.caret-right {
  float: right;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-left: 5px solid;
  border-left-color: #333;
  border-bottom: 5px solid transparent;
  border-top: 5px solid transparent;
  margin-top: 5px;
  margin-right: -8px;
}

#navbar-right > li,
#more-options-list > li {
  cursor: pointer;
}

.btn-toolbar label {
  font-size: 1rem;
}

/* Draggable */

#realisation .draggable {
  cursor: move;
}

/* Footer */

.footer,
.push {
  height: 4em;
}

.footer {
  border-top: 1px solid #E4E4E4;
  line-height: 2em;
  margin-top: 15px;
}

#attribution {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
  padding-top: 10px;
  padding-bottom: 10px;
}

#attribution > span {
  display: inline-block;
  color: rgba(0,0,0,.54) !important;
}

@media screen and (max-width: 767px) {
  #footer {
    font-size: 12px;
  }
}


/* Nav Menu */

.menu {
  margin: 0px;
  padding: 0px;
}

.menu li {
  display: inline-block;
  position: relative;
  text-align: center;
  height: 28px;
}

.menu a {
  font-size: 22px;
  display: block;
  line-height: 84px;
  padding: 0px 50px;
  text-decoration: none;
}

/* Bootstrap Select fixes for Daemonite Material UI */

.bootstrap-select > .btn {
  min-width: 0px !important;
}

.bootstrap-select > .dropdown-menu.show {
  min-width: 100% !important;
  overflow: visible !important;
}

.bootstrap-select .dropdown-menu.inner.show::before {
  -webkit-box-shadow: none;
  box-shadow: none;
}

/* Notation Selector */

#notation-selector label,
#notation-selector-dropdown label {
  font-weight: normal !important;
  font-size: 1rem !important;
  color: rgba(0,0,0,0.7);
}

#notation-type-table {
  width: 420px; /* 455px; */
}

@media screen and (max-width: 767px) {
  #notation-type-table {
    max-width: 100%;
  }
}

@media screen and (max-width: 767px) {
  #notation-type-table-card {
    margin-bottom: 8px;
    box-shadow: none !important;
    border-top: 1px solid rgba(0,0,0,.12);
    border-bottom: 1px solid rgba(0,0,0,.12);
  }
}

#notation-type-table-card > .card-header {
  padding: .5rem;
}

#notation-type-table-card .btn {
  margin-bottom: 0px;
}

.notation-table-nav-btn {
  font-family: Helvetica, Arial, sans-serif !important;
  font-size: 21px;
  cursor: pointer;
  text-align: center;
  text-decoration: none;
}

.notation-table-nav-btn:hover > i {
  background-color: #eee;
}

#notation-table-prev i {
  padding-left: 5px;
  padding-right: 7px;
  padding-bottom: 1px;
}

#notation-table-next i {
  padding-left: 7px;
  padding-right: 5px;
  padding-bottom: 1px;
}

#notation-type-table > .row > .col {
  text-align: center;
  cursor: default;
  font-size: .8125rem;
  font-weight: 400;
  height: 3rem;
  padding-bottom: .919643rem;
  padding-top: .919643rem;
}

@media screen and (max-width: 767px) {
  #notation-type-table > .row > .col {
    font-size: .75rem;
  }
}

#notation-type-table > .row > .col.notation-type-label:hover {
  background-color: #f5f5f5;
}

#notation-type-table > .row > .col > a {
  color: #333;
  text-decoration: none;
}

.notation-table-cell-select {
  outline: thin dotted;
  background-color: #f5f5f5; /* #007fff; */
}

#notation-selector-hamburger.show {
  position: static;
}

#notation-selector-hamburger.show .dropdown-menu {
  width: 100%;
  left: 0;
  right: 0;
}

#notation-selector-dropdown {
  padding-right: 10px;
  padding-left: 10px;
  padding-top: 8px;
}

#notation-selector-dropdown::before {
  box-shadow: 0 6px 12px rgba(0,0,0,.175) !important;
}

#notation-selector-dropdown select.custom-select {
  min-width: 100%;
  padding: 0px;
  border-top: 1px solid rgba(0,0,0,.12);
  border-bottom: 1px solid rgba(0,0,0,.12);
  border-left: none !important;
  border-right: none !important;
  border-radius: 0px;
}

#notation-selector-dropdown select.custom-select > option {
  padding-left: 5px;
  color: #333333 !important;
  font-family: inherit !important;
}

/* Notation Container */

#notation-instructions > blockquote {
  background: #f9f9f9;
  border-left: 10px solid #ccc;
  font-family: "Baskerville";
  font-style: italic;
  font-size: 20px;
  margin: 0.7em 0px 12px 0px; /*1.5em 10px;*/
  padding: 0.5em 10px;
  quotes: "\201C""\201D""\2018""\2019";
}

@media screen and (max-width: 767px) {
  #notation-instructions > blockquote {
    font-size: 15px;
  }
}

#notation-instructions > blockquote:before {
  color: #ccc;
  content: open-quote;
  font-size: 4em;
  line-height: 0.1em;
  margin-right: 0.25em;
  vertical-align: -0.4em;
}

blockquote p {
  display: inline;
}

#transcription .dynamic {
  cursor: default;
}

#notation {
  /* margin-top: 12px; */
  padding-bottom: 10px;
}

.score {
  padding: 10px 0px;
  outline: 0px;
  background-color: #ffffff;
  /* border: 1px solid rgba(0,0,0,0.2); */
  max-height: 1000px; /*500px;*/
  overflow: auto; /*scroll;*/
}

#edit-mode-toolbar {
  margin-top: 4px;
  padding: 4px 4px 3px 4px;
  /*
  border-top: 1px solid #cccccc;
  border-right: 1px solid #cccccc;
  border-left: 1px solid #cccccc;
  */
  border-bottom: 1px solid #cccccc;
}

#edit-mode-toolbar .btn {
  border: 1px solid rgba(0,0,0,0);
}

#realisation-toolbar {
  margin-top: 4px;
  padding: 4px 4px 3px 4px;
  /*
  border-top: 1px solid #cccccc;
  border-right: 1px solid #cccccc;
  border-left: 1px solid #cccccc;
  */
  border-bottom: 1px solid #cccccc;
  display: flex;
}

@media screen and (max-width: 400px) {
  #edit-mode-toolbar .btn,
  #realisation-toolbar .btn,
  #performance-mode-toolbar .btn {
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }
}

#edit-mode-toolbar .btn-group,
#realisation-toolbar .btn-group,
#performance-mode-toolbar .btn-group {
  background-color: rgba(0,0,0,0) !important;
  box-shadow: none !important;
  display: inline-flex;
}

.static-text-box {
  padding: 6px;
  margin-bottom: 0px;
  color: #555555;
  display: inline-block;
}

/* Tick List Dropdown (Display Mode, Edit Mode) */

.tick-list > li > a > .glyphicon {
  visibility: hidden;
}

.tick-list > li > a.selected > .glyphicon {
  visibility: visible;
}

.btn.flat-button.tick-list {
  padding-right: 38px !important;
}

/* Context Menus */

#note-respell-menu ul {
  min-width: 80px;
  max-width: 80px;
}

/*
This is for the app context menu, it determines whether a menu item has a check mark
or not (currently used for the 'Show Menu Bar' and 'Show Instructions' items).
*/
#app-context-menu > ul > li > a > .fa-check {
  visibility:hidden;
}

#app-context-menu > ul > li.selected > a > .fa-check {
  visibility:visible;
}

/* Modals */

/*
.modal-content {
  border-radius: 0;
  border: none;
}

.modal-header {
  border-bottom-color: #EEEEEE;
  background-color: #FAFAFA;
}
*/

/* CSS borrowed from https://material-ui.com/components/dialogs/#full-screen-dialogs */
.modal-full-screen {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  max-width: 100%;
  max-height: none;
  border-radius: 0;
}

a.modal-x-close {
  background-color: rgb(0,0,0,0);
  border: 1px solid rgba(0,0,0,0);
}

#notation-info-sidebar #notation-instructions > blockquote {
  background: #f9f9f9;
  font-family: "Baskerville";
  font-style: italic;
  font-size: 16px;
  margin: 0.7em 0px 12px 0px; /*1.5em 10px;*/
  padding: 0.5em 10px;
}

/*
#settings-modal-container form {
  border: 1px groove #ddd !important;
  padding: 0 1.4em 1.4em 1.4em !important;
  margin: 0 0 1.5em 0 !important;
  -webkit-box-shadow:  0px 0px 0px 0px #000;
  box-shadow:  0px 0px 0px 0px #000;
}
*/

#settings-dialog .modal-body {
  padding-bottom: 0;
}

#settings-modal-container legend {
  font-size: 1.25em !important;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 8px;
  /* border-bottom: 1px solid #e3e3e3; */
  background: #eaeaea;
}

#settings-modal-container label {
  font-size: 1em !important;
  color: rgba(0,0,0,.45) !important;
}

.settings-tab-panel {
  padding: 10px;
  padding-top: 15px;
  padding-bottom: 5px;
}

#settings-modal-container input[type=text] {
  padding: .2rem 0 calc(.2rem - 1px);
}

#settings-modal-container p {
  margin-top: 0.8rem;
  margin-bottom: 0.25rem;
}

#settings-modal-container .form-check {
  margin-top: 0.25rem;
}

#realisation-list-modal .selected {
  background-color: #e1e1e1;
}

/* Docs */

#user-guide-title {
  text-align: center;
  margin-bottom: 45px;
}

#user-guide-content {
  padding-top: 60px;
}

#user-guide-content > section {
  margin-top: 35px;
}

#user-guide-page h3, h4 {
  padding-bottom: .3em;
  margin-bottom: 16px;
  margin-top: 24px;
}

#user-guide-page h4 {
  border-bottom: 1px solid #eaecef;
}

#user-guide-page h5 {
  font-size: 16px;
  font-weight: 500;
}

/*
#user-guide-page p {
  margin-bottom: 16px;
  margin-top: 0;
}
*/

#user-guide-page img {
  max-width: 100%;
  padding-top: 20px;
  padding-bottom: 20px;
}

#user-guide-content > section {
  margin-top: -10px;
}

.bolder {
  font-weight: 500;
}

/*
Jumping to a hash link when we have a sticky header causes a problem, as the header
will cover the top of the section. The following rules fix this, found here:
https://css-tricks.com/hash-tag-links-padding/#article-header-id-1
*/
#user-guide-content > section h4::before,
#user-guide-content > section h5::before {
  display: block; 
  content: " "; 
  margin-top: -90px; 
  height: 90px; 
  visibility: hidden; 
  pointer-events: none;
  z-index: -100;
}

#user-guide-content .img-panel {
  display: flex;
  justify-content: center;
}

#user-guide-menu-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 230px;
  height: 100%;
  padding-top: 60px;
  background: #F7F7F7;
  z-index: 100;
}

#user-guide-menu-container ul {
  list-style-type: none;
  padding-left: 0px;
}

#user-guide-menu-container ul li:hover {
  background-color: #e6e6e6;
}

#user-guide-menu-container ul li.user-guide-menu-current-page {
  background-color: #e6e6e6 !important;
}

#user-guide-menu-container li ul {
  display: none;
}

#user-guide-menu-container ul li a {
  padding: 4px;
  padding-left: 40px;
  display: block;
  text-decoration: none;
  color: #666666;
  font-weight: 500;
  cursor: pointer;
}

/*
See https://stackoverflow.com/a/42397919/795131 for explanation of 'display: flex'. Also see the
fixed toc 'header' in the Auth0 docs, here: https://auth0.com/docs/getting-started/the-basics.
*/
.user-guide-page-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center; /* Important for aligning the items centrally. */
  position: fixed;
  top: 0;
  left: 320px;
  box-sizing: border-box;
  margin-bottom: 16px;
  background: white;
  border-bottom: 1px solid #eaecef;
  /*box-shadow: 0 6px 12px rgba(0,0,0,.175) !important;*/
  /*box-shadow: 0 8px 12px -6px rgba(0,0,0,.175) !important;*/
}

#quickstart-page article {
  padding-right: 90px;
  padding-bottom: 50px;
  padding-left: 90px;
}

.quickstart-component-number {
  position: absolute;
  padding: 5px;
  font-size: 1.25rem;
  font-weight: 500;
  color: red;
  cursor: pointer;
}

.quickstart-component-number:hover {
  text-decoration: underline;
}
