/* ==========================================================================
   Notes
   ==========================================================================

z-index
=======
1  = everything
10 = things to be just above everything
20 = user controls i.e. panels
30 = the top layer i.e. top-bar.
40 = overlay layer i.e. modals, dnd overlay.

========================================================================== */

/* ==========================================================================
   Common
   ========================================================================== */

/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-cyrillic-ext_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWtE6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-cyrillic_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWvU6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-greek-ext_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWtU6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-greek_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWuk6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0370-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-hebrew_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWu06FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-vietnamese_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWtk6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-latin-ext_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWt06FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-latin_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWuU6FxZCJgg.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-cyrillic-ext_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWtE6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-cyrillic_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWvU6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-greek-ext_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWtU6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-greek_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWuk6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0370-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-hebrew_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWu06FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-vietnamese_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWtk6FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-latin-ext_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWt06FxZCJgvAQ.woff2") format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-italic-latin_memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvX8mqWuU6FxZCJgg.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-cyrillic-ext_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSKmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-cyrillic_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSumu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-greek-ext_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSOmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-greek_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSymu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0370-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-hebrew_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTS2mu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-vietnamese_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSCmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-latin-ext_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSGmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-latin_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTS-mu0SC55I.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-cyrillic-ext_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSKmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-cyrillic_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSumu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-greek-ext_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSOmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-greek_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSymu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0370-03FF;
}
/* hebrew */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-hebrew_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTS2mu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
/* vietnamese */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-vietnamese_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSCmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-latin-ext_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTSGmu0SC55K5gw.woff2") format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-stretch: 87.5%;
  src: url("fonts/open-sans-v34-regular-latin_memvYaGs126MiZpBA-UvWbX2vVnXBbObjwSVTS-mu0SC55I.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* latin - medium */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 87.5%;
  src: url("fonts/opensans-semibold-webfont.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin - italic - medium */
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 500;
  font-stretch: 87.5%;
  src: url("fonts/opensans-semibolditalic-webfont.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* see http://google.github.io/material-design-icons/#icon-font-for-the-web */
@font-face {
    font-family: 'Material Icons';
    font-style: normal;
    font-weight: 400;
    src: url("fonts/MaterialIcons-Regular.woff2") format('woff2'),
         url("fonts/MaterialIcons-Regular.woff") format('woff');
}

@keyframes spin {
    from   { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
@-webkit-keyframes spin {
    from   { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

html {
    overflow-x: hidden;
    font: 62.5%/1.5 "Open Sans", sans-serif;
}

body {
    background-color: #333;
    color: #ccc;
    font-size: 1.6rem;
    margin: 0;
    padding: 0 0 0 0;
    font-synthesis: none;
}

h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-family: inherit;
    font-weight: normal;
    margin: 0;
}

figure, ul, li, dl, dd {
    margin: 0;
    padding: 0;
}

ul {
    list-style-type: none;
}

a {
    color: #ccc;
    text-decoration: none;
    cursor: pointer;
}
a:hover {
    color: white;
}

.coloured-link {
    color: #00adee;
}

input,
option,
select,
textarea,
button {
    font-family: "Open Sans", sans-serif;
    font-size: 1.4rem;
}

.text-input {
    background-color: #444;
    color: #ccc;
    border: 1px solid #999;
    padding: 5px;
    box-sizing: border-box;
}

.text-input::placeholder {
    color: #888;
}

textarea {
    resize: vertical;
}

/* annoyingly we have to have these seperate as the moz-placeholder breaks the
Chrome selector */
input[disabled],
textarea[disabled],
.disabled {
    color: #666;
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
    color: #666;
}
input::-moz-placeholder,
textarea:disabled::-moz-placeholder {
    color: #666;
}

button {
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    cursor: pointer;
    color: inherit;
    font-size: inherit;
}

.button {
    border: 0;
    background: #00adee;
    border-radius: 2px;
    box-shadow: 0 2px #00729c;
    box-sizing: border-box;
    color: white;
    display: block;
    padding: 5px 10px;
    font-size: 1.4rem;
    position: relative;
}
.button:hover {
    background: #008fc5;
}
.button:active {
    box-shadow: none;
    top: 2px;
}
.button:focus,
a:focus {
    outline: 2px solid rgba(255, 255, 255, 0.5);
    outline-offset: -3px;
}

button[disabled],
.button[disabled] {
    background-color: #999;
    box-shadow: 0 2px #666;
    color: #ccc;
}
.button--green {
    background: forestgreen;
    box-shadow: 0 2px darkgreen;
}

.button-shy {
    padding: 2px 5px;
    color: #ccc;
    background: transparent;
    box-shadow: 0 2px #888;
    border: 1px solid #888;
    font-size: inherit;
}
.button-shy:not([disabled]):hover {
    background: #888;
}
.button-ico {
    padding: 4px;
}
.button-ico-square {
    height: 36px;
}

.button-save {
    background: #00adee;
    color: white;
    /* above the edit button of a field below */
    z-index: 10;
}
.button-save[disabled] {
    background: #888;
    cursor: auto;
}

.button-save:hover {
    background-color: #008fc5;
}

.button-cancel,
.button-edit {
    background-color: #898989;
}

.button-cancel:hover,
.button-edit:hover {
    background-color: #666666;
}

.button-save,
.button-cancel,
.button-edit {
    padding: 0 5px;
    height: 24px;
    color: white;
}

.button-save,
.button-cancel {
    margin-left: 5px;
}

.button--confirm-delete {
    background: red;
}

.button--confirm-delete gr-icon {
    padding-right: 5px;
}

.button--confirm-delete:hover {
    background: #960000;
}

.loader {
    text-align: center;
}
.loader:after {
    border: 12px solid white;
    border-bottom-width: 35px;
    content: "g";
    height: 90px;
    width: 80px;
    display:  block;
    box-sizing:  border-box;
    background:  #ddd;
    margin: auto;
    color:  #005689;
    font-size: 2.6rem;
    margin-top: 10px;

    animation-duration: 1500ms;
    animation-name: flipper;
    animation-iteration-count: infinite;
    -webkit-animation-duration: 1500ms;
    -webkit-animation-name: flipper;
    -webkit-animation-iteration-count: infinite;
}
@keyframes flipper {
    0% {}
    95% {}
    100% { transform: rotateY(360deg); }
}
@-webkit-keyframes flipper {
    0% {}
    95% {}
    100% { transform: rotateY(360deg); }
}

.saving {
    display: inline;
    width: 15px;
    line-height: 15px;
    text-align: center;
    padding: 0 2px;
    color: #00adee;

    animation-name: spin;
    animation-duration: 1500ms;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
    -webkit-animation-name: spin;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-duration: 1500ms;
    -webkit-animation-timing-function: linear;
}

.spin {
    animation-name: spin;
    animation-duration: 500ms;
    animation-iteration-count: infinite;
    animation-timing-function: ease-out;

    -webkit-animation-name: spin;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-duration: 500ms;
    -webkit-animation-timing-function: ease-out;
}

.full-width {
    width: 100%;
}

.flex-right {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
}

.flex-container {
    display: flex;
}
.flex-container--rtl {
    flex-direction: row-reverse;
}

.flex-spacer {
    flex-grow: 1;
}

.flex-no-shrink {
    flex-shrink: 0;
}

.inline-block {
    display: inline-block;
}

.flex-center {
    align-items: center;
}

.side-padded {
    padding: 0 10px;
}

.clickable:hover {
    background-color: #666666;
    color: white;
    cursor: pointer;
}

.inner-clickable {
    height: 100%;
    display: inline-flex;
    align-items: center;
}

.inner-clickable--disabled {
  opacity: 0.7;
}

.button-right-side {
    padding-left: 5px;
    margin-left: -4px
}

.section {
    margin-bottom: 25px;
}

.section-heading {
    font-size: 1.8rem;
    margin: 10px 0;
    border-bottom: 1px solid #999;
}

.text-small {
    font-size: 13px;
}

.separator-left {
    border-left: 1px solid #565656;
}

.separator-right {
    border-right: 1px solid #565656;
}

.fill-height {
    height: 100%;
}

.bg-light {
    background-color: #444;
    color: white;
}

.hover-parent .hover-child {
    display: none;
}
.hover-parent:hover .hover-child {
    display: initial;
}

.visibly-hidden {
    position: absolute;
    left: -9999px;
    font-size: 0;
}

/* ==========================================================================
   Angular
   ========================================================================== */

/* FIXME: we use the element to be more specific, which is baloney */
input.ng-invalid,
textarea.ng-invalid {
    border-color: #ed5935;
}


/* ==========================================================================
   Top bar
   ========================================================================== */

#share-with-url {
    display: flex;
}
.top-bar-item__label {
    padding-left: 5px;
}

.top-bar-item {
    margin-left: -4px;
    vertical-align: middle;
    line-height: 50px;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    border-left: 2px solid #565656;
    height: 50px;
}

.top-bar-item:first-child {
    margin-left: 0;
}

.top-bar-item:last-child {
    border-right: 2px solid #565656;
}

.top-bar-item__form {
    display: inline-flex;
}

.top-bar-item__form__input {
    background-color: #444;
    color: #ccc;
    border: 1px solid #999;
    padding: 5px;
    box-sizing: border-box;
    max-width: 65px; /*width of four digits for pixel width and height */
}

.user-actions {
    margin-right: -10px;
    padding: 0 5px;
    margin-top: 12px;
}

.home-link {
    text-indent: -9999px;
    width: 50px;
    height: 50px;
    background: url(/assets/images/grid-logo.svg) no-repeat center;
    margin-right: 0;
    vertical-align: top;
    float: left;
}

.home-link:hover {
    background-color: #666666;
}

.logout {
    color: inherit;
    font-size: 1.3rem;
    position: fixed;
    bottom: 0;
    right: 0;
    background: rgba(0, 0, 0, .5);
    padding: 10px;
}

@media screen and (max-width: 950px) {
    .top-bar-item .gr-confirm-delete {
        min-width: inherit;
    }

    gr-top-bar-actions {
      min-width: 128px;
    }

    .results-toolbar-item .gr-confirm-delete gr-icon-label {
        padding: 0
    }

    .top-bar-item button gr-icon {
        margin-right: 0;
    }

    /* only use this class if you want it to hide */
    .icon-label {
        display: none;
    }
}

/* ==========================================================================
   Page
   ========================================================================== */
.page-wrapper {
    margin: 0 auto;
    max-width: 900px;
    padding-top: 10px;
}

/* ================================
   Notifications
   ================================ */
.global-notifications {
  position: fixed;
  margin: 0 auto;
  left: 0;
  right: 0;
  top: 87px;
  z-index: 39;
  text-align: left;
  max-width: 100%;
}

/* ==========================================================================
   Errors / status
   ========================================================================== */
.global-errors {
    position: fixed;
    margin: 0 auto;
    left: 0;
    right: 0;
    top: 5px;
    z-index: 40;
    text-align: center;
    max-width: fit-content;
}

.global-error {
    display: inline-block;
    border-radius: 5px;
}

.global-error__close {
    padding-left: 10px;
    cursor: pointer;
}

.global-error__close:hover {
    color: white;
}

.error {
    background: darkred;
    color: white;
    padding: 20px 40px;
}
.error--small {
    padding: 5px 10px;
    font-size: 13px;
}

.warning {
    background: #ffbc01;
    color: black;
    padding: 20px 40px;
    text-align: center;
}
.warning--small {
  padding: 5px 10px;
}

.full-error {
    margin-top: 3rem;
    text-align: center;
    font-size: 3rem;
}

.success {
    background: #D5E5CF;
    color: black;
    padding: 20px 40px;
    text-align: center;
}
.status {
    color: white;
    background-color: orange;
}

.status--info {
  background-color: #5E9ED6;
}

.status--info a {
  color: #0e1831;
}

.status--info a:hover {
  color: #1B2E5F;
}

.status--valid {
    background-color: green;
}

.status--invalid {
    background-color: red;
}

#clipboard a {
    position: relative;
    top: 2px;
    right: 1px;
    color: black;
}

#clipboard span {
    position: relative;
    display: inherit;
    bottom: 2px;
    border-bottom-color: black;
    border-bottom-width: 2px;
    border-bottom-style: solid;
    width: 28px;
}
/* ==========================================================================
   Search
   ========================================================================== */

.search-query {
    display: flex;
    /* Fill the container for larger clickable area */
    align-items: stretch;

    background-color: #444;
    color: #ccc;
    border: 1px solid #999;
    box-sizing: border-box;

    min-width: 300px;
    flex-grow: 1;
}

.search {
    margin-top: 10px;
    display: flex;
    height: 30px;
    line-height: 12px;
}

.search-query__magnifier {
    /* Better vertical centering */
    align-self: center;
}

.search-query__query {
    flex: 1;
    /* Better vertical centering */
    align-self: center;
    overflow: hidden;
}

.search__modifier {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  margin-left: 25px;
  align-items: center; /* vertical align all filters */
}

.search__modifier-sort {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center; /* vertical align all filters */
  margin-left: 0px;
  margin-right: 8px;
}

.search__modifier-item {
    padding: 1px;
    margin-right: 5px;
}

.search__modifier-container {
    position: relative;
    display: flex;
}

.search__modifier-toggle {
    display: none;
}
.search__modifier-toggle__icon {
    display: none;
}

.search__modifier-checkbox label {
    display: inline-flex;
    align-items: center;
    margin-right: 8px;
}

.search__modifier-checkbox label:hover {
    cursor: pointer;
}

.search__modifier-checkbox label input[type="checkbox"] {
    margin-right: 6px;
}

.search__modifier-checkbox label input[type="checkbox"]:hover {
    cursor: pointer;
}

.search__advanced-toggle-lbl {
  margin-right: 6px;
}

@media screen and (max-width: 850px) {
    .search__advanced-toggle {
        display: none;
    }
}

/* Note: order matters for cascade ;_; */
@media screen and (max-width: 750px) {
    .search__modifier-toggle__text {
        display: none;
    }
}

@media screen and (max-width: 1380px) {
    .search__modifier-toggle {
        display: flex;
        flex-direction: row;
        align-items:center;
        margin-left: 15px;
    }
    .search__modifier-toggle:hover {
        filter: brightness(200%);
    }
    .search__modifier-container:last-of-type .search__modifier-toggle {
        margin-right: 15px;
    }
    .search__modifier-toggle__icon {
        display: inline;
    }
    .search__modifier {
        display: inherit;
        position: absolute;
        top: 25px;
        left: 0;
        width: 150px;
        background-color: #333;
        position: absolute;
        padding: 10px;
        box-shadow: 0 1px 5px rgba(0, 0, 0, 0.5);
    }
    .order__option--hide,
    .search__filter--hide {
        display: none;
    }
    .order__option--show,
    .search__filter--show {
        display: block;
        margin-left: 0px;
    }
    .search__filter-item {
        display: list-item;
    }

    .search .search__filter {
        margin-left: 0;
    }
}

.search-query__icon {
    padding: 0 5px;
}

.search-query__clear {
    outline: none;
}

/* fade in/out */
.search-query__clear.ng-hide-add,
.search-query__clear.ng-hide-remove {
    -webkit-transition: 0.2s ease-out all;
    transition: 0.2s ease-out all;
}
.search-query__clear.ng-hide {
    opacity: 0;
}
.search-query__clear.ng-hide-remove.ng-hide-remove-active {
    opacity: 1;
}


.clear-button {
    font-family: Arial, sans-serif;
    font-weight: bold;
}

.clear-button:hover {
    color: white;
}

.advanced-search-help {
    top: 49px;
    max-height: 95vh;
    overflow: auto;
    background-color: #444444;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    max-width: 680px /*width of input box and advance button in topbar*/
}

.advanced-search-help__cancel {
    float: right;
    padding: 10px;
}

.advanced-search-help__cancel:hover {
    color: white;
}

.advanced-search-help__section {
    margin-bottom: 10px;
    padding: 0 10px 0 10px;
    box-sizing: border-box;
}

.advanced-search-help__section__title {
    font-weight: bold;
    font-size: 16px;
}

.advanced-search-help__section__sub-heading {
    font-size: 16px;
    margin-bottom: 5px;
}

.advanced-search-help__close {
    position: absolute;
    top: 0;
    right: 0;
    padding: 13px 5px;
}

.advanced-search-example {
    display: flex;
}

.advanced-search-example__field {
    margin-bottom: 5px;
    display: inline-flex;
    flex-basis: 50%;
}

.advanced-search-example__explanation {
    margin-bottom: 5px;
    flex-basis: 50%;
}

.advanced-search-example__input {
    background-color: #444;
    color: #ccc;
    border: 1px solid #999;
    padding: 2px 4px;
    box-sizing: border-box;
}

.search__advanced-toggle {
    margin-left: 10px;
}

.search__advanced-toggle:hover {
    color: white;
}

.search__advanced-toggle:focus {
    outline: none; /*stops blue box appearing around tooltip*/
}

.search__date {
    display: inline-block;
}

.search__overlay {
    background-color: #333;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
    padding: 10px;
    position: absolute;
    right: 0px;
    min-width: 520px;
}

.search__overlay__title {
    font-weight: bold;
}

/* ==========================================================================
   File uploader
   ========================================================================== */

.file-uploader__file {
    display: none;
}

.file-uploader__select-files {
    padding: 5px 10px;
}

/* ==========================================================================
   Results
   ========================================================================== */

.results {
    display: flex;
    flex-wrap: wrap;
    top: 35px;
    position: relative;
}

.results-controls {
    background: white;
    padding: 10px;
    box-shadow: 0 1px 5px #999;
}

.results__control {
    display: inline;
    margin-right: 5px;
}

.result {
    position: relative;
    border: 5px solid transparent;
    box-sizing: border-box;
    margin: 5px;
    background-color: #393939;
}

.result--seen {
    opacity: .5;
}

.result-placeholder {
    position: relative;
    border: solid 5px #333;
    box-sizing: border-box;
    background: #393939;
}

.result__select input[type=checkbox] {
    visibility: hidden;
}

.result__select {
    position: absolute;
    display: none;

    /* above thumbnail and overlay */
    z-index: 2;
}

.result__select--no-pointer-events {
    pointer-events: none;
}

.result__select__checkbox__label {
    position: absolute;
    top: 0;
    left: 0;
    cursor: pointer;
}

.result__select .result__select__checkbox__label gr-icon {
    font-size: 25px;
    color: white;
}

.result__select--selected .result__select__checkbox__label gr-icon {
    color: #00adee;
}

/* Hacky: Hide gr-archiver-status "Add to Library" (unarchived state) unless hovering */
.result .gr-archiver-status--unarchived {
    display: none;
}

.result:hover .result__select,
.result:hover .preview__fade,
.result:hover .image-actions,
.result:hover .gr-archiver-status--unarchived {
    display: block;
}

.result:hover .gr-add-label--inactive {
    display: inline-block;
}

.result:hover {
    background-color: #404040;
}

.result--selected:hover .preview__fade {
    display: none;
}

.result__select--selected {
    display: initial;
}

.validity,
.cost {
    color: white;
    font-size: 1.4rem;
    padding: 0 10px 0;
    text-align: center;
    vertical-align: middle;
}
.validity--invalid,
.cost--pay,
.cost--no_rights,
.cost--overquota {
    background-color: red;
}
.validity--warning,
.cost--conditional {
    background-color: orange;
}
.validity--leased,
.cost--leased {
  background-color: teal;
}
.cost--free {
    background-color: green;
}

.costs li {
    display: inline-block;
}

.costs .image-notice {
    padding: 6px 12px;
    margin: 0 3px 3px 0;
}

/* Hacky pointer to some element above */
.validity--point-up {
    position: relative;
}
.validity--point-up::before {
    content: "";
    border-left: 20px solid rgba(0, 0, 0, 0);
    border-right: 20px solid rgba(0, 0, 0, 0);
    position: absolute;
    top: -9px;
    right: 30px;
    z-index: 200;
    border-bottom-width: 10px;
    border-bottom-style: solid;
}
.validity--invalid::before {
    border-bottom-color: red;
}
.validity--warning::before {
    border-bottom-color: orange;
}
.validity--leased::before {
  border-bottom-color: teal;
}

/* ==========================================================================
   Results bar
   ========================================================================== */

.results-toolbar {
    font-size: 1.4rem;
    margin: 0 0 0;
    height: 35px;
    display: flex;
    background-color: #333;
    width: 100%;
    border-bottom: 1px solid #565656;
    position: fixed;
    z-index: 20;
    left: 0;
}

.results-toolbar__right {
    margin-left: auto;
}

.results-toolbar__right gr-downloader gr-icon-label, .results-toolbar__right gr-delete-image gr-icon-label {
  padding: 0px;
}

.results-toolbar-item {
    vertical-align: middle;
    border-width: 0 1px;
    border-color: #565656;
    border-style: solid;
    position: relative;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    white-space: nowrap;
}

.results-toolbar-item:hover {
    background-color: #666666;
}

.results-toolbar-item--static,
.results-toolbar-item gr-icon-label {
    padding: 0 10px;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
}

.results-toolbar-item--inline {
  display: flex;
  align-items: center;
  padding-left: 3.5px;
}

.results-toolbar-item--left {
    border-left: 0;
}

.results-toolbar-item--right {
    border-right: 0;
}

.results-toolbar-item--disabled {
    color: #666;
}

.results-toolbar-item--no-hover:hover {
    background: #333;
}

.results-toolbar-item--active {
    background-color: #444;
}

.results-toolbar-item--disabled:hover {
    color: #666;
    background-color: transparent;
}

/* --static is for top bar items that perform no action, only display information */
.results-toolbar-item--static:hover {
    background-color: transparent;
}

.results-toolbar-item__clear-selection {
    width: 105px;
}

.results-toolbar-item__sort-direction {
    padding: 0px;
}

.results-toolbar-item__progress {
    /* updated in JS to show progress */
    background: linear-gradient(90deg, #00adee 0%, transparent 0%);
    color: white;
}

.results-toolbar-item .inner-clickable {
  display: inline-flex;
}

.image-results-count__new {
    font-family: inherit;
    background-color: #00adee;
    color: white;
    display: inline-block;
    padding: 2px 4px;
    border-radius: 2px;
    margin-left: 5px;
}

.image-results-count__org-owned {
    font-family: inherit;
    background-color: #005689;
    color: white;
    display: inline-block;
    padding: 2px 4px;
    border-radius: 2px;
    margin-left: 5px;
}

.image-results-count {
    border-left: 0;
    line-height: 35px;
}

.image-results-count,
.sort-direction {
    display: inline-block;
}


.image-results-more {
    margin: 40px 0;
    text-align: center;
}
.image-results-more__heading {
    font-size: 36px;
}
.image-results-more__instructions {
    font-size: 20px;
}

.image-loading-results,
.image-no-results {
    font-size: 3rem;
    text-align: center;
    margin-top: 4rem;
}

.image-loading-results {
    color: #999;
}


/* ==========================================================================
   Preview
   ========================================================================== */
.preview {
    position: relative;
}

.preview__link,
.preview__no-link {
    display: block;
    height: 190px;
}

.preview__link--large, .preview__no-link--large {
    height: auto;
    max-height: calc(100vh - 190px);
    max-width: 100%;
}

.preview__image {
    display: block;
    max-width: 100%;
    max-height: 98%;
    margin: 0 auto;
    pointer-events: none;
}

.is-potentially-graphic > img {
  filter: blur(15px);
  transition: filter 0.6s;
}
.is-potentially-graphic::after {
  content: "POTENTIALLY GRAPHIC IMAGE \A (hover to reveal)";
  white-space: pre;
  font-weight: bold;
  color: white;
  position: absolute;
  top: 20px;
  width: 100%;
  text-align: center;
  transition: opacity 0.6s;
}
.is-potentially-graphic:hover > img {
  filter: none;
}
.is-potentially-graphic:hover::after {
  opacity: 0;
}

.graphic-image-blur-explainer__background {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding-top: 10vh;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 100;
}
.graphic-image-blur-explainer__spotlight {
  z-index: 101;
  position: relative;
  outline: white solid 1px;
  outline-offset: 3px;
  border-radius: 3px;
}
.graphic-image-blur-explainer__tooltip {
  z-index: 101;
  position: absolute;
  width: 410px;
  top: -4px;
  left: -430px;
  background: white;
  color: black;
  padding: 5px;
  border-radius: 3px;
  word-break: normal;
  white-space: normal;
}
.graphic-image-blur-explainer__tooltip a {
  color: black;
  text-decoration: underline;
}
.graphic-image-blur-explainer__tooltip a:focus {
  outline: #00adee solid 2px;
  outline-offset: 3px;
}

.preview__image.preview__image--staff {
    border: 10px solid #005689;
    box-sizing: border-box;
}

.preview__info {
    font-size: 1.3rem;
    padding-left: 10px;
    margin: 5px 0px 0px 0px;
}
.preview__bottom-icons {
    font-size: 1.3rem;
    padding-left: 7px;
    margin: 5px 0;
    display: inline;
}
.preview__bottom-icons-align-right {
    float: right;
}

.preview__info--large {
    font-size: 1.4rem;
    max-width: 800px;
    margin: 0 auto;
}

.preview__description {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin: 0;
}

.preview__description--gallery {
    white-space: normal;
}

/*
FIXME: this is a little targeted
FIXME: what to do with touch devices
*/

.preview__labeller {
    /*25px - auto height of div on hover, stops shifting when off hover */
    height: 25px;
    white-space: nowrap;
    overflow: hidden;
}

.preview .gr-add-label--inactive {
    display: none;
}

.preview__upload-time {
    font-size: 1.2rem;
    color: #999;
}

.preview__has-crops {
    cursor: help;
}

.preview__collections {
    margin-right: 2px;
    height: 25px;
    display: block;
    white-space: nowrap;
}

.preview__collections__collection {
    /*important to overwrite tooltips styling*/
    display: inline-flex !important;
    margin: 0 5px 5px 0;
}

.preview__collections__collection__value,
.preview__collections__collection__remove {
    color: #fff;
    padding: 0 5px;
    margin-left: 2px;
    border-radius: 2px;
    /*this will be overwritten if the collection has a background-colour*/
    background-color: #555;
}

.preview__collections__collection__remove {
    margin-left: -1px;
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.preview__collections__collection__value:hover,
.preview__collections__collection__remove:hover {
    /*need important to overwrite the inline style*/
    background-color: #fff !important;
    color: black;
}

.preview__collections__collection__apply-all {
    margin-left: 10px;
    line-height: 20px;
    font-size: 1.6rem;
}

.preview__cost {
    margin-left: 5px;
}

.preview__bottom-bar {
    font-size: 1.4rem;
    margin-top: 0px;
}

.preview__bottom-bar--large {
    font-size: 1.6rem;
    max-width: 800px;
    margin: 0 auto 40px;
}

.preview__quick-select {
    cursor: pointer;
}

.preview__select {
  cursor: default;
}

.preview__fade {
    width: 100%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75));
    height: 35px;
    position: absolute;
    top: 0;
    display: none;
}

.bottom-bar {
    display: flex;
}
.bottom-bar__meta {
    flex: 1;
    padding-left: 10px;
}
.bottom-bar__meta .preview__upload-time {
    margin-right: 5px;
}
.bottom-bar__meta-item {
    font-size: 1.2rem;
}
.bottom-bar__meta-item gr-icon{
    color: #999;
    position: relative;
    top: -3px;
}
.bottom-bar__action {
    display: inline-block;
}

.bottom-bar__action--cost {
    width: 20px;
}
/*
.bottom-bar__action .allow {
    background-color: green;
}
.bottom-bar__action .deny {
    background-color: red;
}
*/
.bottom-bar__action--lease {
    text-align: center;
}
.bottom-bar__action--lease .access {
    border-radius: 3px;
    padding-left: 2px;
    padding-right: 2px;
}

/* ==========================================================================
   Image actions
   ========================================================================== */
.image-actions-container .image-actions {
    display: none;
}

.image-actions {
    position: absolute;
    top: 0;
    right: 0;
    background: rgba(0, 0, 0, .75);
    display: none;
    text-align: center;
    font-size: 1.2rem;
    /* above preview__fade */
    z-index: 1;
}

.image-action {
    line-height: 24px;
    width: 24px;
    color: #999;
    display: block;
    border-top: 1px solid rgba(255, 255, 255, .3);
}
.image-action--first {
    border-top: 0;
}

.image-action:hover {
    color: white;
}


/* ==========================================================================
   Results editor
   ========================================================================== */

.result-editor {
    display: flex;
}

.result-editor__result {
    flex-shrink: 0;
    position: relative;
    width: 256px;
}

.result-editor__save-status-container {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 1.4rem;
}

.result-editor__save-status {
    background: rgba(0, 0, 0, .75);
    color: #00adee;
    padding: 2px 5px;
    display: inline-block;
}

.result-editor__save-status--error {
    background: red;
    color: white;
}

.result-editor__img,
.result-editor__img-link {
    display: block;
    margin: 0 auto;
    pointer-events: none;
}

.result-editor__editor {
    flex-grow: 1;
    margin-left: 10px;
}

.result-editor__info {
    display: flex;
}

.result-editor__info-item {
    flex: 1;
    margin-left: 1px;
    font-size: 1.4rem;
}

.results-editor__top-heading {
  margin-bottom: 15px;
}

.results-editor__heading {
  margin-bottom: 15px;
  margin-top: 15px;
}

.result-editor__info-item--png-warning {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    background-color: rgba(256, 0, 0, .7);
    text-align: center;
}

.result-editor__info-item--first {
    margin-left: 0;
}

.result-editor__status {
    display: block;
    margin: 0 auto;
    text-align: center;
    padding: 2px 5px;
}

.result-editor__archiver {
    background: #444;
    padding: 0 5px;
}

.result-editor__field-container {
    display: flex;
    width: 100%;
    margin-bottom: 5px;
}

.result-editor__field-container__labels,
.result-editor__field-container__collections {
    display: flex;
    font-size: 1.4rem;
}

.result-editor__field-container__labels--hidden {
    display: inline;
}

.result-editor__field-container__add-button {
    font-size: 1.3rem;
    padding-bottom: 5px;
}

.result-editor__field-container__add-button:hover {
    color: white;
}

.result-editor__field-label {
    width: 130px;
    line-height: 24px;
}

.result-editor__field-value {
    font-size: 1.4rem;
    line-height: 24px;
}


.result-editor__usage-rights-container {
    flex-grow: 1;
}

.result-editor__usage-rights-container .image-info__edit {
    position: relative;
    margin-left: 10px;
}

.result-editor__field-container.image-info__wrap:hover .image-info__edit {
    display: inline-block;
}

.result-editor__usage-rights .ure {
    padding: 10px;
    background: #444;
    font-size: 1.4rem;
}

/* ==========================================================================
   Full Image / crop
   ========================================================================== */

.easel {
    display: block;
    text-align: center;
}

.easel__canvas {
    height: calc(100vh - 50px); /* viewport - top-bar */
    vertical-align: middle;
    overflow: hidden;
}

.easel__image-container {
    /*style rules also affect the cropper preview*/
    display: inline-block;
    height: calc(100% - 60px);
    width: calc(100% - 60px);
    margin-top: 30px;
}

.easel__image--checkered__background {
     background-color: #bdbdbd;
     background-image:
         linear-gradient(45deg, white 25%, transparent 25%),
         linear-gradient(135deg, white 25%, transparent 25%),
         linear-gradient(45deg, transparent 75%, white 75%),
         linear-gradient(135deg, transparent 75%, white 75%);

    background-size: 20px 20px;

    background-position: 0 0, 10px 0, 10px -10px, 0px 10px;

}

.easel__image {
  display: block;
  margin: 0 auto;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  max-width: calc(100% - 20px); /* 20px here for padding */
  max-height: calc(100vh - 68px);
  pointer-events: none;
  image-orientation: none;
}

.easel__image:fullscreen,
.easel__image--checkered__background:fullscreen,
.easel__image::backdrop,
.easel__image--checkered__background::backdrop {
    background-color: #333;
    background-image: none;
}

.easel__image--cropper {
    visibility: hidden;
}

.circular-mask-toggle-container {
  position: absolute;
  right: 0;
  padding: 10px;
  user-select: none;
}


.image-details {
    box-sizing: border-box;
    font-size: 1.3rem;
}
/* HACK: This is here until we start using the panelled-content here */
.image-details--full-image {
    float: right;
    height: calc(100vh - 50px); /* viewport - top-bar */
    width: 300px;
    border-left: 1px solid #565656;
    display: flex;
    flex-direction: column;
}

.image-details--scroll {
    overflow-y: auto;
    overflow-x: hidden;
}

.image-details--crop {
    float: left;
    width: 130px;
    border-right: 1px solid #565656;
    border-left: none;
    position: relative;
    height: calc(100vh - 50px); /* viewport - top-bar */
    display: flex;
    flex-direction: column;
}

.image-details__delete-crops {
    width: 100%;
}

.image-details:after {
    clear: both;
    content:  " ";
    display:  table;
}

/*to clear the set widths of the side panels */
.image-holder {
    margin-right: 300px;
    margin-left: 130px;
}

.image-info__group {
    padding: 10px;
    border-bottom: 1px solid #565656;
}

.image-info__group--last {
    border-bottom: 0;
    clear: both;
}

.image-info__group table {
    border-collapse: collapse;
}

.image-info__group--list {
    width: 100%;
}

.image-info__group--list td {
    position: relative;
}

.image-info__group--dl {
  width: 100%;
  display: flex;
  flex-flow: row wrap;
}

/*flex-basis values chosen to accommodate longest key*/
.image-info__group--dl__key {
    flex-basis: 40%;
}

.image-info__group--dl__value {
    flex-basis: 60%;
    position: relative;
    /* cut long words */
    overflow: hidden;
    text-overflow: ellipsis;
}

.image-info__group--dl__key--panel {
    flex-basis: 30%;
}

.image-info__group--dl__value--panel {
    flex-basis: 70%;
    position: relative;
}

.image-info__group--dl__key--full-metadata {
    flex-basis: 45%;
}

.image-info__group--dl__value--full-metadata {
    flex-basis: 55%;
    position: relative;
}

.image-info__title {
    color: #eee;
}

.image-info__file-size {
    color: #eee;
    font-size: 1.2rem;
    font-weight: normal;
}

.image-info__heading {
    color: #aaa;
    font-weight: bold;
    padding-bottom: 3px;
    display: flex;
    justify-content: space-between;
}

.image-info__heading--crops {
    flex-basis: 100%;
    max-width: 100%;
}

.image-info__heading--first {
    margin-top: 0;
}

.image-info__image-type {
  color: #eee;
}
.image-info__description,
.image-info__special-instructions {
    /* respect newlines in text */
    white-space: pre-line;
    color: #eee;
}

.image-info__description--options {
    padding-bottom: 10px;
}


.image-info__heading--lease {
    width: 90%;
    float: left;
}

.image-info__heading--lease-preview {
  float: none;
}

.image-info--editor__input-preview,
.image-info__description-preview,
.image-info__image-type-preview
.image-info__title-preview,
.image-info__special-instructions-preview{
  border: 1px solid #ffbc01;
  padding-left: 5px;
}

.image-info__keyword li {
    display: inline-block;
    background-color: #222;
    color: #aaa;
    border-radius: 8px;
    padding: 0 8px;
    margin-right: 5px;
    margin-bottom: 5px;
    font-size: 1.3rem;
}

.image-info__keyword li a {
    color: inherit;
}

.image-info__wrap {
    position: relative;
    vertical-align: top;
    /* cut long words */
    overflow: hidden;
    text-overflow: ellipsis;
}

.image-info__wrap:hover .image-info__edit {
    display: block
}

.image-info__edit,
.edit-button {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    line-height: 21px;
    width: 21px;
    border-radius: 50%;
    color: #222;
    background-color: white;
}
.edit-button {
    display: block;
    position: relative;
}

.image-info__edit:hover,
.edit-button:hover {
    color: white;
    background-color: #222;
    border: 1px solid white;
    margin-top: -1px;
    margin-bottom: -1px;
}

.image-info__wrap .editable-wrap,
.image-info__wrap .editable-input {
    width: 100%;
}

.image-info__wrap .editable-error {
    text-align: right;
    font-size: 12px;
    color: #BB1212;
}

.image-info__wrap .editable-empty,
.image-info__wrap .editable-empty:hover {
    color: #aaa;
}

.image-info__wrap .editable-wrap .image-info__editor--error {
    border: 1px solid #BB1212;
    outline: none;
}

.image-info__wrap .editable-wrap .image-info__editor--saving {
    border: 1px dashed #ccc;
    outline: none;
}

/* targetting .image-info__wrap to win on specificity against default xeditable style */
.image-info__wrap .editable-input.editable-has-buttons {
    width: 100%;
}

/* targetting .image-info__wrap to win on specificity against default xeditable style */
.image-info__wrap .editable-buttons {
    display: flex;
    justify-content: flex-end;
    padding-top: 2px;
    margin-bottom: 5px;
}

.image-info__usage-rights .ure {
    background: #333;
    padding: 10px;
}

.image-info--multiple {
    font-style: italic;
}

.image-notice {
    padding: 10px;
}

.metadata-line {
    color: #999;
}

.metadata-line__info {
    color: #eee;
    padding-bottom: 10px;
}

.select-all-wrap {
    user-select: all;
}

.metadata-line__info--crop {
    padding-bottom: 0;
}

.metadata-line__info a {
    color: inherit;
    border-bottom: 1px solid #999;
}
.metadata-line__info--nowrap {
  white-space: nowrap;
}
.metadata-line__key {
    font-weight: bold;
    color: #aaa;
    vertical-align: top;
    text-align: left;
}

.metadata-reveal {
    color: #aaa;
    font-size: 1.4rem;
    font-family: inherit;
}

.metadata {
    font-family: "Open Sans", sans-serif;
}

.metadata__heading {
    display: block;
    font-weight: bold;
    margin-bottom: 5px;
    text-align: left;
}

.metadata__description {
  margin: 10px 0;
}

.metadata__body {
    font-size: 1.3rem;
}

.image-crops {
    display: flex;
    flex-wrap: wrap;
}

.image-crop {
    margin-bottom: 10px;
    min-width: 100%;
    box-sizing: border-box;
    background-color: #333;
}

.image-crop:hover .image-crop__creator{
    display: inline;
}

.result--selected,
.result--selected:hover {
    border-color: #00adee;
}

.image-crop--selected {
    border: solid 2px #00adee;
}

.image-crop--disabled {
  color: #999;
  cursor: not-allowed;
}

.image-crop__image--disabled {
  opacity: 0.5;
}

.result--selected .preview {
    background-color: #4c4c4c;
}

.image-crop__creator {
    display: none;
    border-radius: 50%;
    background-color: #6E6E6E;
    opacity: 0.5;
    width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
}

.image-crop__creator:hover {
    opacity: 1;
}

.image-crop__image {
    display: block;
    max-width: 100%;
    max-height: 64px;
    margin: 0 auto;
    pointer-events: none;
}

.image-crop__info {
    background: #333;
    padding: 2px;
    font-size: 1.2rem;
}

.image-crop__more-info {
    line-height: 22px;
}

.image-crop__info--selected {
    color: #FFFFFF;
}

/* ==========================================================================
   Uploads
   TODO: remove unused classes
   ========================================================================== */

.jobs {
    border-collapse: collapse;
}

.job-status {
    padding: 5px 10px;
    border-radius: 5px;
}

.job-info {
    vertical-align: top;
    padding: 20px 30px 20px;
    border-bottom: 1px dashed #ccc;
    position: relative;
}

.job-info--thumbnail {
    /* reserve space */
    width: 200px;
    max-height: 150px;
    padding-left: 0;
    padding-right: 0;
}
.job-info--thumbnail__image {
    max-width: 100%;
    max-height: 100%;
}

.job-file {
    color: #aaa;
    font-size: 1.2rem;
    margin-top: 10px;
}

.job-info--editor__field {
    display: flex;
    margin-bottom: 5px;
    position: relative;
}
.job-info--editor__label {
    width: 130px;
    vertical-align: top;
}
.job-info--editor__input {
    display: inline-block;
    flex-grow: 1;
}
.job-info--editor__input--with-batch {
    padding-right: 25px;
}

.job-info--editor__input--description {
    height: 4em;
}

.job-info__credit {
    width: 100%;
}

.job-edit-disabler {
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .75);
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
}

.job-editor:after {
    clear: both;
    content: " ";
    display: table;
}

.job-editor__buttons {
    text-align: right;
}

.job-editor__button {
    display: inline-block;
    margin-bottom: 5px;
}

.job-labels {
    margin-top: 10px;
    border: 1px solid #ccc;
    padding: 5px;
    border-radius: 2px;
    font-size: 1.4rem;
}
.job-labels:after {
    clear: both;
    content: " ";
    display: table;
}

.job-labeller {
    clear: both;
    text-align: right;
    font-size: 1.4rem;
    margin-top: 10px;
    display: block;
}

.job-apply-to-all {
    float: right;
}

.job-uploading {
    margin-bottom: 20px;
}

.job-editor__apply-to-all {
    position: absolute;
    /* These positions are so that we don't overlay the input borders */
    right: 1px;
    top: 1px;
    z-index: 1;
    padding: 0 5px;
}

.job-editor__apply-to-all:hover {
    color: #FFF;
}


.metadata-applicator {
    font-size: 1.4rem;
    text-align: right;
    /* FIXME: This is to get the text to lay next to the save button of the
    `metadata-editor` */
    padding-right: 80px;
    margin-top: -25px;
}

.metadata-applicator__button {
    font-weight: bold;
    text-decoration: underline;
}

.upload-result + .upload-result {
    margin-top: 10px;
    padding-top: 20px;
    border-top: 1px dashed #999;
}

.upload-result .gr-confirm-delete {
    padding: 0 10px;
}

.upload-result:hover .image-actions {
    display: block;
}


/* ==========================================================================
   jCrop
   ========================================================================== */


.jcrop-holder {
    margin: 0 auto;
    max-width: 100%;
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

.jcrop-holder .easel__image {
    top: 50% !important;
}

.jcrop-keymgr {
    opacity: 0;
}

/* ==========================================================================
   Drag and drop
   ========================================================================== */
.dnd-uploader {
    border: 5px dashed #00adee;
    background: rgba(20, 20, 20, .75);
    width: calc(100vw - 10px);
    height: calc(100vh - 10px); /* border-box doesn't work with v units */
    position: fixed;
    top: 0;
    left: 0;
    z-index: 40;
    text-align: center;
}

.dnd-uploader__info {
    border: 0 solid #00adee;
    color: white;
    background: #00adee;
    max-width: 500px;
    border-radius: 2px;
    text-align: center;
    padding: 10px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    right: 0;
    margin: 0 auto;
    animation-duration: 2000ms;
    animation-name: heartbeat;
    animation-iteration-count: infinite;
    -webkit-animation-duration: 2000ms;
    -webkit-animation-name: heartbeat;
    -webkit-animation-iteration-count: infinite;
}

.dnd-uploader__heading {
    font-size: 2.6rem;
}

@-webkit-keyframes heartbeat {
    0% { border-width: 0; }
    10% { border-width: 10px; }
    90% { border-width: 10px; }
    100% { border-width: 0; }
}

/* ==========================================================================
   Drop menu e.g top level navigation
   ========================================================================== */

.drop-menu {
    position: relative;
}

.drop-menu__button {
    padding: 5px;
    background-color: #333;
    line-height: 1.6rem;
}

.drop-menu__button:hover i {
    filter: brightness(200%)
}

.drop-menu__button--nopad {
    padding: 0;
}

.drop-menu__close {
    position: absolute;
    top: 5px;
    right: 5px;
    padding: 2px;
}

.drop-menu__items {
    background-color: #333;
    position: absolute;
    padding: 10px;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.5);
    top: calc(100% + 8px);
    z-index: 4;
    /* Drop items should win over everything */
    white-space: nowrap;
    line-height: normal;
    right: 0;
}

.drop-menu__items--right {
    right: 0;
}

.drop-menu__items--nopad {
    top: 100%;
}

.drop-menu__items--action {
    background-color: grey;
}

.drop-menu__items__separator {
    border-bottom: 1px solid #565656;
    margin-bottom: 5px;
    padding-bottom: 5px;
}

/* ==========================================================================
   Dropdown menu e.g. autocomplete
   ========================================================================== */

.dropdown-menu {
    z-index: 1;
    background: #333;
    padding: 5px;
}

.dropdown-menu li {
    cursor: pointer;
    color: #ccc;
    padding: 5px;
}

.dropdown-menu li:hover {
    background-color: #00adee
}


/* ==========================================================================
   Datalist
   ========================================================================== */

.datalist {
    position: relative;
    width: 100%;
}

.datalist__options {
    position: absolute;
    width: 100%;
    z-index: 1;
    border: 1px solid #999;
    background: #444;
    color: #ccc;
    padding: 5px;
    padding-right: 15px; /* hack to reserve some space for the scrollbar */
    font-size: 1.2rem;
    box-sizing: border-box;
    max-height: 400px;
    overflow-y: auto;
}

.datalist__input {
    width: 100%;
    box-sizing: border-box;
}

.datalist__option {
    cursor: pointer;
    padding: 5px;
}

.datalist__option--selected {
    background-color: #00adee;
    color: white;
}

/* ==========================================================================
   Heard not seen
   ========================================================================== */

.tracking-image {
    display: none;
}

/* ==========================================================================
   Forms
   ========================================================================== */

.form-label {
    display: flex;
}

.form-label__error,
.form-label__notice {
    font-size: 1.2rem;
    flex-grow: 1;
    text-align: right;
}
.form-label__error { color: #ed5935; }
.form-label__notice { color: orange; }

.form-property {
    display: block;
    margin-bottom: 10px;
}

.form-property--last {
    margin-bottom: 0;
}

.form-input-text {
    width: 100%;
}

.radio-list {
    display: flex;
    overflow: hidden;
}
.radio-list--invalid {
    border: 1px solid #ed5935;
}
.radio-list__item {
    flex-grow: 1;
    display:flex;
}
.radio-list__item:last-child {
    border-right: 1px;
}
.radio-list__label {
    flex-grow: 1;
    color: #CCC;
    background-color: #444;
    text-align: center;
    cursor: pointer;
    border: 1px solid #565656
}

.radio-list__label:hover {
    color: #ffffff;
}

.radio-list--selected .radio-list__label-value {
    background-color:#666;
}

.radio-list--selected .radio-list__selection-state {
    background: #00adee;
}

.radio-list--disabled .radio-list__label-value {
    color: #777;
}

.radio-list__circle {
    clip: rect(0 0 0 0);
    clip-path: inset(100%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.radio-list__circle:focus-visible + .radio-list__label {
    outline: 1px solid #5E9ED6;
    outline: auto -webkit-focus-ring-color;
}

.radio-list__selection-state {
    height: 3px;
    background: transparent;
}

.radio-list__label-value {
    padding: 5px 10px;
}

.drag-icon {
    position: absolute;
    top: 0;
    right: 0;
    width: 50px;
    height: 50px;
    background-color: #CCCCCC;
}

.drag-count {
    position: absolute;
    top: -10px;
    right: -10px;
    border-radius: 50%;
    background-color: #666666;
    width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
}

@media print {

    /* ==========================================================================
       Image page
    ========================================================================== */

    /*!important is used to overwrite the component stylesheet (labeller.css) loaded after*/
    /*main.css*/

    button,
    gr-top-bar,
    gr-add-label,
    .image-details--crop,
    .image-info__group--full-metadata,
    .radio-list {
        display: none !important;
    }

    .image-details {
        border: none;
    }

    .metadata-line__info,
    .image-info__title,
    .image-info__description,
    .image-info__special-instructions,
    .label__value,
    .image-info__keyword li {
        color: black !important;
    }

    .easel__canvas {
        overflow: visible;
    }

    .easel__image {
        float: left;
        max-width: 100%;
        max-height: 450px;
        transform: none;
        position: static;
    }

    .image-canvas, .image-details {
        height: auto;
        width: auto;
    }

    .image-info__description, .image-info__keyword li {
        max-height: 80px;
        overflow: hidden;
    }

    .image-info__group, .metadata-line__info, .image-holder {
        padding: 0;
        margin: 0;
    }

    .image-info__group, .metadata-line__info a {
        border: none;
    }

    .image-info__group--dl__key {
        flex-basis: 20%;
    }

    .image-info__group--dl__value {
        flex-basis: 80%;
    }

    /* ==========================================================================
       Results page
    ========================================================================== */

    /*!important is used to overwrite the component stylesheet (panel.css) loaded after*/
    /*main.css*/

    .global-error,
    .gr-panel,
    .gr-panel__content,
    .results-toolbar {
        display: none !important;
    }

    .result-placeholder {
        border: none;
    }

    .preview__link {
        height: auto;
    }

    .preview__image {
        max-height: 150px;
    }

}

.result__select__overlay {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;

  /* above thumbnail */
  z-index: 1;

  /* preserve original tooltip behavior */
  pointer-events: none;
}

.result__select__overlay.alert {
  background-color: red;
  opacity: 0.3;
}

.result__select__overlay.warning {
  background-color: orange;
  opacity: 0.3;
}

.result__select__overlay.lease_attached {
  background-color: teal;
  opacity: 0.3;
}

.result__select__overlay__text {
  position: relative; /* z-index will not work with default position static */
  font-size: 1.3rem;
  font-weight: bold;
  color: white;
  padding: 5px 10px;
  text-align: left;

  /* above thumbnail and overlay */
  z-index: 2;
}
.result__select__overlay__text.alert {
  background-color: red;
}
.result__select__overlay__text.warning {
  background-color: orange;
  color: black;
}
.result__select__overlay__text.lease_attached {
  background-color: teal;
  color: white;
}
