@import url('https://fonts.googleapis.com/css2?family=Fira+Sans+Condensed:wght@300;400;700;800&family=Fira+Sans:wght@300;400;700&display=swap');
@import url('https://cdn.datatables.net/buttons/3.0.0/css/buttons.dataTables.css');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css');

body, input {
    font-family: 'Fira Sans', sans-serif;
    font-size: 11pt;
}

p {
    line-height: 150%;
    font-size: 10pt;
}

.footer {
    font-size: 8pt;
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid #c0c0c0;

/* position: absolute;
   bottom: 0;
   left: 0;*/
   right: 2vw;
   width: 98vw;
}

.footertext {
    display: flow-root;
    text-align: center;
    color: grey;
    font-size: 8pt;
}

.footertext a:any-link {
    color: grey;
}

h1 {
    margin: 5px 10px 0 0;
    color: rgb(246,168,0);
    font-family: "Fira Sans Condensed", sans-serif;
    font-weight: bold;
    line-height: 1.35;
    letter-spacing: normal;
    text-transform: uppercase;
    text-shadow: none;
    word-wrap: break-word;
}

h2 {
    color: grey;
    font-family: "Fira Sans Condensed", sans-serif;
    font-weight: bold;
    letter-spacing: normal;
    text-transform: uppercase;
    text-shadow: none;
    word-wrap: break-word;
    font-size: 12pt;
    margin-top: 0pt;
    margin-bottom: 0pt;
    margin-left: 2px;
}

h3 {
    color: rgb(246,168,0);
    font-family: "Fira Sans Condensed", sans-serif;
    font-weight: bold;
    /* line-height: 1.35; */
    font-size: 18pt;
    margin-bottom: 2pt;
    letter-spacing: normal;
    text-transform: uppercase;
    text-shadow: none;
    word-wrap: break-word;
}

.ui-widget-header {
    font-family: "Fira Sans Condensed"; sans-serif;
    font-weight: bold;
}

.ui-widget {
    font-family: "Fira Sans", sans-serif;
}

.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
    font-weight: bold;
}

showoptions, #SEARCH {
    margin-left: 10px;
    margin-right: 10px;
}

.tabs-left-vertical .ui-tabs-nav {
    position: absolute;
    width: 21em;
    transform: translate(-100%,0%) rotate(-90deg);
    transform-origin: 100% 0%;
}

.tabs-left-vertical .ui-tabs-nav li {
    float: right;
}

.tabs-left-vertical .ui-tabs-panel {
    padding-left: 3.5em;
}

.tabs-left-vertical .ui-tabs-panel {
    height: 20em;
}

.mono {
    font-family: "DejaVu Sans Mono", Inconsolata, SourceCodePro, "Courier New", Courier, monospace;
    font-size: 9pt;
    line-height: 150%;
}

.ui-tooltip-content {
    font-size: 10pt;
    color: #222222;
}

svg > .ui-tooltip-content {
    font-size: 8pt;
    color: #222222;
}

a.merged {
    color: #0000ff;
    fill: #0000ff;;
}

.merged {
    color: #0000ff;
    fill: #0000ff;;
}

#first a, .paradigmator a {
    text-decoration: none;
}

a.marked, #first a.marked {
    text-decoration: underline;
}

.somtext {
    font-style: normal;
    color: #333;
}

.somtext.merged {
    color: #0000ff;
    fill: #0000ff;;
}

.somtext.target {
    font-weight: bold;
  animation: blink-animation 0.5s steps(5, start) 100;
  -webkit-animation: blink-animation 1s steps(5, start) infinite;
}

a.target.merged {
    font-weight: bold;
    color: #0000ff;
    fill: #0000ff;;
  animation: blink-animation 0.5s steps(5, start) 100;
  -webkit-animation: blink-animation 1s steps(5, start) infinite;
}

a.target {
    font-weight: bold;
    color: orange;
    fill: orange;
  animation: blink-animation 0.5s steps(5, start) 100;
  -webkit-animation: blink-animation 1s steps(5, start) infinite;
}


@keyframes blink-animation {
  to {
    opacity: 0.5;
  }
}

@-webkit-keyframes blink-animation {
  to {
    opacity:0.5;
  }
}

table.display {
    width: 40% important!;
    margin: 1;  /* <- works for me this way ****/
}

table.dataTable thead th, table.dataTable thead td, table.dataTable tbody td {
    padding: 2px 2px;
    //  border-bottom: 1px solid #111;
}

.dataTables_filter input { width: 16ex }

.dt-button {
  margin-top: 4px !important;
  padding: 0px 6px 0px 6px !important;
  border: none;
  border-collapse:collapse;
}

g.u a, g.tsnet a, td.collocator {
    cursor: pointer;
}

#collocators {
    margin-bottom: 15px;
}

#header {
    width: 100%;
    //   border: 1px solid red;
    overflow: hidden; /* will contain if #first is longer than #second */
}

#topwrapper {
    width: 100%;
    display: flex;
    //       border: 1px solid red;
}

#wrapper {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    padding:5px;
    /*       border: 1px solid green;
    //   border: 1px solid red;
    //  overflow: hidden; /* will contain if #first is longer than #second */
}

#pagetitle {
    max-width: 460px;
    margin-right: 20px;
    float: left;
    overflow: hidden; /* if you don't want #second to wrap below #first */
    //    border: 1px solid green;
}

#options {
    /* float: left; */
    width: 800px;
    margin: 20px auto 10px auto;
    overflow: hidden; /* if you don't want #second to wrap below #first */
}

#word {
    width: 50%;
}

#first {
    margin-right: 10px;
    float: left;
    overflow: hidden; /* if you don't want #second to wrap below #first */
    //    border: 1px solid green;
}
#tabs {
    margin-right: 20px;
    min-width: 98vw;
    min-height: 80vh;
    overflow: hidden; /* if you don't want #second to wrap below #first */
}

.tabs-min {
    background: transparent;
    border: none;
}

.tabs-min .ui-widget-header {
    background: transparent;
    border: none;
    border-bottom: 1px solid #c0c0c0;
    -moz-border-radius: 0px;
    -webkit-border-radius: 0px;
    border-radius: 0px;
}

.tabs-min .ui-tabs-nav .ui-state-default {
    background: transparent;
    border: none;
}

.tabs-min .ui-tabs-nav .ui-state-active {
    background: transparent url(/derekovecs/img/uiTabsArrow.png) no-repeat bottom center;
    border: none;
}

.tabs-min .ui-tabs-nav .ui-state-default a {
    color: #c0c0c0;
}

.tabs-min .ui-tabs-nav .ui-state-active a {
    color: rgb(246,168,0);
}

#embed {
    max-width: 802px;
    border: 1px solid #333;
}

#second {
    min-width: 700px;
/*   border: 1px solid #333; */
    overflow: hidden; /* if you don't want #second to wrap below #first */
}
#som2 svg {
    border: 1px solid #333;
}

#cost {
    font-family: "Fira Sans Condensed"; sans-serif;
    font-size: 8pt;
    float: right;
    text-align: right;
    color: #222222;
    margin-top: 4px;
    margin-bottom: 12px;
}

#sominfo1, #sominfo {
    font-size: 8pt;
    color: #222222;
    margin-top: 0px;
}

#somcolor1, #somcolor2, #somcolor3 {
    display: inline-block;
    height: 10px;
    width: 10px;
}

#third {
    border: 1px solid #333;
}

th {
    color: rgb(246,168,0);
    font-family: "Fira Sans Condensed", sans-serif;
}

th, th .regular {
    color: rgb(246,168,0);
    font-family: "Fira Sans Condensed", sans-serif;
}

p.citation {
    font-size: 8pt;
    color: #999999;
}

.ui-widget.ui-widget-content {
    border: none;
}

#ids_logo {
    position: absolute;
    top: 0px;
    right: 2vw;
    width: 200px;
}

#tabs-4, #tabs-3, #tabs-2, #tabs-1, #tabs-0, #wrapper {
    display: flex;
    justify-content: center;
    place-items: center;
}

#info {
    width: 90ex;
    max-width: 90vw;
}

#info p {
    text-align: justify;
}

#info pre {
    font-family: "DejaVu Sans Mono", Inconsolata, SourceCodePro, "Courier New", Courier, monospace;
}

p.refkey {
    font-size: 90%;
    font-weight: bold;
    text-align: left;
    margin:  0;
    color: #657b83; 
}

p.reference {
    font-size: 90%;
    text-align: left;
    margin:  0;
    margin-left:  2em;
    margin-bottom: 1ex;
    color: #657b83; 
}
dt {
    float: left;
    clear: left;
    width: 25ex;
    font-variant-ligatures: common-ligatures;
    font-variant-numeric: tabular-nums;
    text-align: right;
    font-weight: bold;
    margin-right: 1ex;
}

dd {
    font-variant-ligatures: common-ligatures;
    font-variant-numeric: tabular-nums;
}