text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace Track.Web.Areas.Adm.Controllers
{
    public class ControlController : AdmBaseController
    {

        // GET: Control
        public ActionResult Index()
        {
            return View();
        }

        // GET: Control/Dashboard
        public ActionResult Dashboard()
        {
            return View();
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
{block name="main-container"}

1111 blog

                打开了首页

{/block}


text:
<?php

namespace Webiny\Component\Security\User\Providers\OAuth2;

use Webiny\Component\Security\Authentication\Firewall;
use Webiny\Component\Security\Authentication\Providers\Login;
use Webiny\Component\Security\User\AbstractUser;

/**
 * OAuth2 user class.
 *
 * @package         namespace Webiny\Component\Security\User\Providers\OAuth2
 */
class User extends AbstractUser
{

    /**
     * This method verifies the credentials of current user with the credentials provided from the Login object.
     *
     * @param Login    $login
     * @param Firewall $firewall
     *
     * @throws OAuth2Exception
     * @return bool Return true if credentials are valid, otherwise return false.
     */
    public function authenticate(Login $login, Firewall $firewall)
    {
        return true; // oauth2 users are always authenticated
    }
}


text:
package com.ibm.cics.ca1y;

import com.ibm.jzos.MvsJobSubmitter;

import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Class to submit an MVS batch job.
 *
 * @author Mark Cocker <mark_cocker@uk.ibm.com>
 * @version 1.0
 * @since 2013-09-02
 */
public class MVSJob implements EmitAdapter {

	/**
	 * Copyright statement to be included in the compiled class.
	 */
	static final String COPYRIGHT = "Licensed Materials - Property of IBM. "
			+ "CICS SupportPac CA1Y (c) Copyright IBM Corporation 2012 - 2016. All Rights Reserved. "
			+ "US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corporation";

	/**
	 * Logging
	 */
	private static Logger logger = Logger.getLogger(MVSJob.class.getName());

	/**
	 * Property to specify the MVS job content.
	 */
	private static final String MVSJOB_CONTENT = "mvsjob.content";

	/**
	 * Property to set the MVS job id to.
	 */
	private static final String MVSJOB_JOBID = "mvsjob.jobid";

	/**
	 * The Job ID available once the job has been submitted.
	 */
	private String jobID;
	private String jobName;

	/**
	 * Properties from which to find the job to be submitted.
	 */
	private EmitProperties props;

	public MVSJob(EmitProperties p) {
		props = p;
	}

	public boolean send() {
		String mvsjobContent = props.getProperty(MVSJOB_CONTENT);
		MvsJobSubmitter jobSubmitter;

		if (mvsjobContent == null) {
			return false;
		}

		try {
			jobSubmitter = new MvsJobSubmitter();

		} catch (IOException _ex) {
			logger.warning(Emit.messages.getString("UnableToOpenInternalReader") + " - " + getMessageSummary());
			return false;
		}

		try {
			Scanner scanner = new Scanner(mvsjobContent);

			while (scanner.hasNextLine()) {
				String line = scanner.nextLine();

				if (jobName == null) {
					StringTokenizer tok = new StringTokenizer(line);
					String jobToken = tok.nextToken();

					if (jobToken.startsWith("//")) {
						jobName = jobToken.substring(2);
					} else {
						jobName = "";
					}
				}

				jobSubmitter.write(line);
			}

			scanner.close();
			jobSubmitter.close();
			jobID = jobSubmitter.getJobid();

		} catch (Exception e) {
			logger.warning(Emit.messages.getString("MVSJOB_LOG_FAIL_MESSAGE") + " - " + getMessageSummary());
			e.printStackTrace();
			return false;
		}

		if (logger.isLoggable(Level.INFO)) {
			logger.info(Emit.messages.getString("MVSJOB_LOG_SUCCESS_MESSAGE") + " - " + getMessageSummary());
		}

		/* Put the job id into the properties and return it to the caller in container specified by MVSJOB_JOBID */
		props.put(MVSJOB_JOBID, jobID);
		props.setPropertyReturnContainer(MVSJOB_JOBID, MVSJOB_JOBID);

		return true;
	}

	/**
	 * Return true if we should attempt to emit
	 *
	 * @return true if the entries in EmitProperties are valid for emission.
	 */
	public static boolean validForEmission(EmitProperties props) {
		return props.containsKey(MVSJob.MVSJOB_CONTENT);
	}

	/**
	 * Return a short summary of the MVS job.
	 *
	 * @return short summary of the MVS job.
	 */
	private String getMessageSummary() {
		return "job name:" + jobName + ",job ID:" + jobID;
	}
}


text:
#include "CCBReader.h"

#include <algorithm>

#include "CCNodeLoader.h"
#include "CCNodeLoaderLibrary.h"
#include "CCNodeLoaderListener.h"
#include "CCBMemberVariableAssigner.h"
#include "CCBSelectorResolver.h"

#ifdef __CC_PLATFORM_IOS
#include <UIKit/UIDevice.h>
#endif

USING_NS_CC;
USING_NS_CC_EXT;

CCBReader::CCBReader(CCNodeLoaderLibrary * pCCNodeLoaderLibrary, CCBMemberVariableAssigner * pCCBMemberVariableAssigner, CCBSelectorResolver * pCCBSelectorResolver, CCNodeLoaderListener * pCCNodeLoaderListener) {
    this->mRootNode = NULL;
    this->mRootCCBReader = true;

    this->mCCNodeLoaderLibrary = pCCNodeLoaderLibrary;
    this->mCCNodeLoaderLibrary->retain();
    this->mCCBMemberVariableAssigner = pCCBMemberVariableAssigner;
    this->mCCBSelectorResolver = pCCBSelectorResolver;
    this->mCCNodeLoaderListener = pCCNodeLoaderListener;

    this->mResolutionScale = 1;

#ifdef __CC_PLATFORM_IOS
    /* iPad */
    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        this->mResolutionScale = 2;
    }
#endif
}

CCBReader::CCBReader(CCBReader * pCCBReader) {
    this->mRootNode = NULL;
    this->mRootCCBReader = false;

    /* Borrow data from the 'parent' CCBReader. */
    this->mResolutionScale = pCCBReader->mResolutionScale;
    this->mLoadedSpriteSheets = pCCBReader->mLoadedSpriteSheets;
    this->mCCNodeLoaderLibrary = pCCBReader->mCCNodeLoaderLibrary;
    this->mCCNodeLoaderLibrary->retain();

    this->mCCBMemberVariableAssigner = pCCBReader->mCCBMemberVariableAssigner;
    this->mCCBSelectorResolver = pCCBReader->mCCBSelectorResolver;
    this->mCCNodeLoaderListener = pCCBReader->mCCNodeLoaderListener;
}

CCBReader::~CCBReader() {
    CC_SAFE_DELETE_ARRAY(this->mBytes);

    this->mCCNodeLoaderLibrary->release();

    /* Clear string cache. */
    std::vector<CCString *>::iterator stringCacheIterator;
    for (stringCacheIterator = this->mStringCache.begin(); stringCacheIterator != this->mStringCache.end(); stringCacheIterator++) {
        (*stringCacheIterator)->release();
    }
    this->mStringCache.clear();

    if(this->mRootCCBReader) {
        /* Clear loaded spritesheets. */
        this->mLoadedSpriteSheets.clear();
    }
}

CCString * CCBReader::getCCBRootPath() {
    return this->mCCBRootPath;
}

CCBMemberVariableAssigner * CCBReader::getCCBMemberVariableAssigner() {
    return this->mCCBMemberVariableAssigner;
}

CCBSelectorResolver * CCBReader::getCCBSelectorResolver() {
    return this->mCCBSelectorResolver;
}

float CCBReader::getResolutionScale() {
    return this->mResolutionScale;
}

CCNode * CCBReader::readNodeGraphFromFile(const char * pCCBRootPath, const char * pCCBFileName, CCObject * pOwner) {
    return this->readNodeGraphFromFile(pCCBRootPath, pCCBFileName, pOwner, CCDirector::sharedDirector()->getWinSize());
}

CCNode * CCBReader::readNodeGraphFromFile(CCString * pCCBRootPath, CCString * pCCBFileName, CCObject * pOwner) {
    return this->readNodeGraphFromFile(pCCBRootPath, pCCBFileName, pOwner, CCDirector::sharedDirector()->getWinSize());
}

CCNode * CCBReader::readNodeGraphFromFile(const char * pCCBRootPath, const char * pCCBFileName, CCObject * pOwner, CCSize pRootContainerSize) {
    return this->readNodeGraphFromFile(CCString::create(pCCBRootPath), CCString::create(pCCBFileName), pOwner, pRootContainerSize);
}

CCNode * CCBReader::readNodeGraphFromFile(CCString * pCCBRootPath, CCString * pCCBFileName, CCObject * pOwner, CCSize pRootContainerSize) {
    this->mCCBRootPath = pCCBRootPath;
    this->mCCBRootPath->retain();

    CCString * ccbFullFilePath = CCBReader::concat(pCCBRootPath, pCCBFileName);

    const char * path = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(ccbFullFilePath->getCString());

    unsigned long size = 0;
    this->mBytes = CCFileUtils::sharedFileUtils()->getFileData(path, "rb", &size);

    this->mCurrentByte = 0;
    this->mCurrentBit = 0;

    this->mOwner = pOwner;
    this->mOwner->retain();
    this->mRootContainerSize = pRootContainerSize;

    CCNode * node = NULL;
    if(this->readHeader() && this->readStringCache()) {
        node = this->readNodeGraph();
    }

    CC_SAFE_RELEASE(this->mOwner);
    CC_SAFE_RELEASE(this->mCCBRootPath);
    CC_SAFE_RELEASE(this->mRootNode);

    return node;
}

bool CCBReader::readHeader() {
	/* If no bytes loaded, don't crash about it. */
	if(this->mBytes == NULL) {
        return false;
    }

    /* Read magic bytes */
    int magicBytes = *((int*)(this->mBytes + this->mCurrentByte));
    this->mCurrentByte += 4;

    if(CC_SWAP_INT32_LITTLE_TO_HOST(magicBytes) != 'ccbi') {
        return false;
    }

    /* Read version. */
    int version = this->readInt(false);
    if(version != kCCBVersion) {
        CCLog("WARNING! Incompatible ccbi file version (file: %d reader: %d)", version, kCCBVersion);
        return false;
    }

    return true;
}

bool CCBReader::readStringCache() {
    int numStrings = this->readInt(false);

    for(int i = 0; i < numStrings; i++) {
        this->readStringCacheEntry();
    }

    return true;
}

void CCBReader::readStringCacheEntry() {
    int b0 = this->readByte();
    int b1 = this->readByte();

    int numBytes = b0 << 8 | b1;

    const unsigned char * src = (const unsigned char *) (this->mBytes + this->mCurrentByte);
    CCString * string = CCString::create(src, (unsigned long)numBytes);
    string->retain();

    this->mCurrentByte += numBytes;

    this->mStringCache.push_back(string);
}

unsigned char CCBReader::readByte() {
    unsigned char byte = this->mBytes[this->mCurrentByte];
    this->mCurrentByte++;
    return byte;
}

bool CCBReader::readBool() {
    return 0 == this->readByte() ? false : true;
}

int CCBReader::readInt(bool pSigned) {
    int numBits = 0;
    while(!this->getBit()) {
        numBits++;
    }

    long long current = 0;
    for(int a = numBits - 1; a >= 0; a--) {
        if(this->getBit()) {
            current |= 1 << a;
        }
    }
    current |= 1 << numBits;

    int num;
    if(pSigned) {
        int s = current % 2;
        if(s) {
            num = (int)(current / 2);
        } else {
            num = (int)(-current / 2);
        }
    } else {
        num = current - 1;
    }

    this->alignBits();

    return num;
}

float CCBReader::readFloat() {
    unsigned char type = this->readByte();

    switch (type) {
        case kCCBFloat0:
            return 0;
        case kCCBFloat1:
            return 1;
        case kCCBFloatMinus1:
            return -1;
        case kCCBFloat05:
            return 0.5f;
        case kCCBFloatInteger:
            return (float)this->readInt(true);
        default:
            /* using a memcpy since the compiler isn't
             * doing the float ptr math correctly on device.
             * TODO still applies in C++ ? */
            float * pF = (float*)(this->mBytes + this->mCurrentByte);
            float f = 0;
            memcpy(&f, pF, sizeof(float));
            this->mCurrentByte += 4;
            return f;
    }
}

bool CCBReader::getBit() {
    bool bit;
    unsigned char byte = *(this->mBytes + this->mCurrentByte);
    if(byte & (1 << this->mCurrentBit)) {
        bit = true;
    } else {
        bit = false;
    }

    this->mCurrentBit++;

    if(this->mCurrentBit >= 8) {
        this->mCurrentBit = 0;
        this->mCurrentByte++;
    }

    return bit;
}

void CCBReader::alignBits() {
    if(this->mCurrentBit) {
        this->mCurrentBit = 0;
        this->mCurrentByte++;
    }
}

CCString * CCBReader::readCachedString() {
    int i = this->readInt(false);
    return this->mStringCache[i];
}

CCNode * CCBReader::readNodeGraph(CCNode * pParent) {
    /* Read class name. */
    CCString * className = this->readCachedString();

    int memberVarAssignmentType = this->readInt(false);
    CCString * memberVarAssignmentName;
    if(memberVarAssignmentType != kCCBTargetTypeNone) {
        memberVarAssignmentName = this->readCachedString();
    }

    CCNodeLoader * ccNodeLoader = this->mCCNodeLoaderLibrary->getCCNodeLoader(className);
    CCNode * node = ccNodeLoader->loadCCNode(pParent, this);

    /* Set root node, if not set yet. */
    if(this->mRootNode == NULL) {
        this->mRootNode = node;
        this->mRootNode->retain();
    }

    if(memberVarAssignmentType != kCCBTargetTypeNone) {
        CCObject * target = NULL;
        if(memberVarAssignmentType == kCCBTargetTypeDocumentRoot) {
            target = this->mRootNode;
        } else if(memberVarAssignmentType == kCCBTargetTypeOwner) {
            target = this->mOwner;
        }

        if(target != NULL) {
            bool assigned = false;

            CCBMemberVariableAssigner * targetAsCCBMemberVariableAssigner = dynamic_cast<CCBMemberVariableAssigner *>(target);

            if(targetAsCCBMemberVariableAssigner != NULL) {
                assigned = targetAsCCBMemberVariableAssigner->onAssignCCBMemberVariable(target, memberVarAssignmentName, node);
            }

            if(!assigned && this->mCCBMemberVariableAssigner != NULL) {
                this->mCCBMemberVariableAssigner->onAssignCCBMemberVariable(target, memberVarAssignmentName, node);
            }
        }
    }

    /* Read and add children. */
    int numChildren = this->readInt(false);
    for(int i = 0; i < numChildren; i++) {
        CCNode * child = this->readNodeGraph(node);
        node->addChild(child);
    }

    CCNodeLoaderListener * nodeAsCCNodeLoaderListener = dynamic_cast<CCNodeLoaderListener *>(node);
    if(nodeAsCCNodeLoaderListener != NULL) {
        nodeAsCCNodeLoaderListener->onNodeLoaded(node, ccNodeLoader);
    } else if(this->mCCNodeLoaderListener != NULL) {
        this->mCCNodeLoaderListener->onNodeLoaded(node, ccNodeLoader);
    }

    return node;
}

CCNode * CCBReader::readNodeGraph() {
    return this->readNodeGraph(NULL);
}

CCObject * CCBReader::getOwner() {
    return this->mOwner;
}

CCNode * CCBReader::getRootNode() {
    return this->mRootNode;
}

CCSize CCBReader::getContainerSize(CCNode * pNode) {
    if(pNode) {
        return pNode->getContentSize();
    } else {
        return this->mRootContainerSize;
    }
}

bool CCBReader::isSpriteSheetLoaded(CCString * pSpriteSheet) {
    return this->mLoadedSpriteSheets.find(pSpriteSheet->m_sString) != this->mLoadedSpriteSheets.end();
}

void CCBReader::addLoadedSpriteSheet(CCString * pSpriteSheet) {
    // Since std::set<string> will copy the string from pSpriteSheet, we needn't to retain 'pSpriteSheet'.
    //    pSpriteSheet->retain();
    this->mLoadedSpriteSheets.insert(pSpriteSheet->m_sString);
}

CCString * CCBReader::lastPathComponent(CCString * pPath) {
    std::string path(pPath->getCString());
    int slashPos = path.find_last_of("/");
    if(slashPos != std::string::npos) {
        return CCString::create(path.substr(slashPos + 1, path.length() - slashPos).c_str());
    }
    return CCString::create(path.c_str());
}

CCString * CCBReader::deletePathExtension(CCString * pPath) {
    std::string path(pPath->getCString());
    int dotPos = path.find_last_of(".");
    if(dotPos != std::string::npos) {
        return CCString::create(path.substr(0, dotPos).c_str());
    }
    return CCString::create(path.c_str());
}

CCString * CCBReader::toLowerCase(CCString * pString) {
    std::string copy(pString->getCString());
    std::transform(copy.begin(), copy.end(), copy.begin(), ::tolower);
    return CCString::create(copy.c_str());
}

CCString * CCBReader::concat(CCString * pStringA, CCString * pStringB) {
    int concatenatedLength = pStringA->length() + pStringB->length();
    char* concatenated = (char*) malloc(concatenatedLength+1);
    CCString* pRet = NULL;
    strcpy(concatenated, pStringA->getCString());
    strcat(concatenated, pStringB->getCString());

    concatenated[concatenatedLength] = '\0';
    pRet = CCString::create(concatenated);
    CC_SAFE_FREE(concatenated);
    return pRet;
}

bool CCBReader::endsWith(CCString * pString, CCString * pEnding) {
    std::string string(pString->getCString());
    std::string ending(pEnding->getCString());
    if(string.length() >= ending.length()) {
        return (string.compare(string.length() - ending.length(), ending.length(), ending) == 0);
    } else {
        return false;
    }
}


text:
@font-face {
  font-family: 'AvenirNext-Regular';
  src: url(/fonts/AvenirNext-Regular.woff) format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'AvenirNext-Medium', Helvetica, Arial, Sans-serif;
  src: url(/fonts/AvenirNext-Medium.woff) format('woff');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  src: url(/fonts/AvenirNext-DemiBold.woff) format('woff');
  font-weight: normal;
  font-style: normal;
}

h1,
h2,
h3,
h4,
h5,
h6,
strong,
b {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  font-weight: bold;
}

body {
  background: #fff;
  margin: 0;
  padding: 0;
  font-size: 12px;
  font-family: 'AvenirNext-Regular', Helvetica, Arial, Sans-serif;
  width: 100%;
  overflow-x: hidden;
  color: #181b1f;
}

a {
  color: #3177af;
  text-decoration: none;
}
a:hover {
  color: #62a1d3;
}

p {
  padding: 0;
  margin: 0;
}

ul {
  padding: 0;
  margin: 0;
  list-style-type: none;
}

img {
  border: none;
}

button {
  display: block; /* for firefox compat */
}

.clear {
  clear: both;
}

.container {
  width: 980px;
  margin: 0 auto;
  position: relative;
}

.rightBar {
  float: right;
  width: 312px;
}

.sub-container {
  width: 655px;
}

.pgWithSideBar .sub-container {
  float: left;
}

input.loading {
  background-position: right center !important;
}

#loadingResults {
  position: fixed;
  top: 50%;
  left: 0;
  width: 100%;
  text-align: center;
}

#loadingResults > span {
  font-size: 18px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  color: #555;
  background: url(/images/loading.gif) no-repeat left;
  padding-left: 40px;
}

input.error {
  background-position: right center !important;
}

.thumb {
  background-color: #efefef;
}

.button {
  cursor: pointer;
  font-size: 12px;
  background-color: #f9f9f9;
  border: 1px solid #ccc;
  margin-left: 2px;
  padding: 3px;
  color: black;
}

.button:hover {
  border: 1px solid #3177af;
  color: #f24e4c;
}

.greenButton {
  cursor: pointer;
  font-size: 14px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  padding: 10px;
  text-align: center;
  color: white;
  border: 1px solid #3177af;
  border-radius: 3px;
  background: transparent;
  color: #3177af;
}

.greenButton:hover {
  background: #62a1d3;
  color: white;
  border: 1px solid #62a1d3;
}

.greenButton:active {
  background: #3177af;
  box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
}

.redButton {
  cursor: pointer;
  font-size: 14px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  padding: 10px;
  text-align: center;
  color: white;
  border: 1px solid #869374;
  border-radius: 3px;
  background: #c60e0b;
  background-image: linear-gradient(top, #ef0600 24%, #c60e0b 81%);
  box-shadow: inset 0 -1px 2px rgba(0, 0, 0, 0.2);
  background-clip: padding-box;
}

.redButton:hover {
  background: #ef0600;
}

.redButton:active {
  background: #ef0600;
  box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4);
}

.grayButton {
  /* copied from .userSubscribe */
  cursor: pointer;
  font-size: 12px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  color: #333;
  padding: 8px;
  background: #eeeeee;
  background-image: linear-gradient(bottom, #eeeeee 27%, #ffffff 64%);
  border: 1px solid #a5acb1aa;
  border-radius: 3px;
}

.grayButton:hover {
  background: #dadada;
  background-image: linear-gradient(bottom, #dadada 27%, #f7f7f7 64%);
}

.grayButton:active {
  background: #e2e2e2;
  background-image: linear-gradient(bottom, #e2e2e2 27%, #f3f3f3 50%);
  box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.38);
}

#whydMessageContainer {
  position: fixed;
  text-align: center;
  top: 50px;
  width: 100%;
  background: #a4cf5d;
  z-index: 10;
  overflow: hidden;
  height: 0px;
}

#whydMessageContainer.error {
  background: #bc162a;
}

#whydMessageContainer > div {
  position: relative;
  top: 10px;
  display: inline;
  color: white;
  font-size: 14px;
  background: url('/images/puce-validate.png') no-repeat;
  padding-left: 24px;
}

#whydMessageContainer.error > div {
  background: url('/images/puce-error.png') no-repeat;
}

#whydMessageContainer > div > a {
  color: white;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

.whitePanel {
  background: white;
  padding: 15px;
  border-radius: 3px;
  margin-top: 40px;
  overflow: auto;
}

/** form fields (taken from loginPage.html) **/

.fld > input[type='text'],
.fld > input[type='password'],
.fld > textarea {
  padding: 12px 10px;
  font-size: 13px;
  color: #575757;
  border-radius: 3px;
  border: 1px solid #cbced2;
  margin-bottom: 14px;
}

.fld > input[type='text']:focus,
.fld > input[type='password']:focus,
.fld > textarea:focus {
  outline: none;
  border: 1px solid #2577bc;
  box-shadow: 0 0 5px rgba(37, 119, 188, 1);
}

/*.fld >*/
input[type='text'].error,
input[type='password'].error,
textarea.error,
.fld.error > input[type='text'],
.fld.error > input[type='password'],
.fld.error > textarea {
  outline: none;
  border: 1px solid #bc2525;
  box-shadow: 0 0 5px rgba(251, 101, 101, 1);
  background-image: none !important;
}

/*.fld >*/
input[type='text'].ok,
input[type='password'].ok,
textarea.ok,
.fld.ok > input[type='text'],
.fld.ok > input[type='password'],
.fld.ok > textarea {
  background: #f6ffe4;
  outline: none;
  border: 1px solid #7da729;
  box-shadow: 0 0 5px rgba(169, 208, 90, 1);
}

.fld > input[type='text'],
.fld > input[type='password'] {
  width: 340px;
}

.fld > textarea {
  width: 340px;
}

/*.fld >*/
input[type='text'].ok,
input[type='password'].ok,
textarea.ok {
  background: #f6ffe4;
  outline: none;
  border: 1px solid #7da729;
  box-shadow: 0 0 5px rgba(169, 208, 90, 1);
}

/** header **/

.topWarning {
  z-index: 2;
  width: 100%;
  margin: 0;
  text-align: center;
  padding: 1px;
  background-color: black;
  color: yellow;
  position: absolute;
  top: 50px;
  font-size: 13px;
}

#header {
  background: white;
  height: 50px;
  top: 0;
  position: fixed;
  z-index: 100;
  width: 100%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

#header > div {
  z-index: 2;
  padding: 0;
  height: 49px;
}

#header #navbar {
  float: left;
  height: 60px;
}

#header #navbar > a {
  height: 100%;
  color: #474747;
  float: left;
  line-height: 53px;
  height: 48px;
  font-size: 13px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  padding: 0 12px;
  text-align: center;
  margin-left: 35px;
}

/************** HOT TRACKS ********************/

#filterSelector {
  float: left;
  width: 312px;
}

#filterSelector > ul {
  overflow: auto;
  list-style: none;

  background: white;
  margin: 0 0 10px 0;
  padding: 0;
}

#filterSelector > ul li {
  padding: 0 15px;
  cursor: pointer;
  border-bottom: 1px solid #efefef;
  background-color: white;
  color: #333d45;
  font-size: 13px;
  height: 34px;
}

#filterSelector > ul li:last-child {
  border: 0;
  border-radius: 0 0 3px 3px;
}

#filterSelector > ul li > a {
  font-size: 14px;
  line-height: 34px;
  color: #111;
  display: inline-block;
  width: 100%;
}

#filterSelector > ul li.selected {
  box-shadow: inset 2px 0px 0 0px #3177af;
  font-weight: bold;
}

#filterSelector > ul li.selected > a,
#filterSelector > ul li > a:hover {
  color: #3177af;
}

.pgHotTracks .sub-container {
  float: right;
}

.pgHotTracks .genreSelector {
  color: #3177af;
  font-family: 'AvenirNext-Medium', Helvetica, Arial, Sans-serif;
  font-size: 14px;
}

.pgHotTracks .post {
  padding-left: 40px;
  background-repeat: no-repeat;
  background-position: left 55px;
  background-image: url(/images/icon-ranking-equal.png);
}

.pgHotTracks .post.rankingUp {
  background-image: url(/images/icon-ranking-up.png);
}

.pgHotTracks .post.rankingDown {
  background-image: url(/images/icon-ranking-down.png);
}

.pgHotTracks .post .medal {
  right: -15px;
  top: -15px;
  width: 45px;
  height: 56px;
  line-height: 44px;
  background: url(/images/HotTrackBackgroundNumber.png);
  color: white;
  font-size: 16px;
  font-family: 'Helvetica Neue';
  padding-left: 11px;
}

#logo {
  background: url(/images/logo-s.png) no-repeat;
  width: 34px;
  height: 34px;
  display: block;
}

body.pgStream #header #navbar > a#tabStream,
body.pgHotTracks #header #navbar > a#tabHot {
  color: #3177af;
  border-bottom: 2px solid #3177af;
}

#header #navbar > a:hover {
  color: #3177af;
}

#header #headCenter {
  float: left;
  margin-top: 8px;
  width: 103px;
  height: 42px;
}

#header #navLinks {
  float: right;
  padding: 2px 0 0 0;
}

/* search */

#header #searchBar {
  float: left;
  width: 350px;
  background: none;
  height: 25px;
  padding: 0;
  margin: 10px 0 0 30px;
  top: 10px;
}

#header #searchBar h1,
#header #searchBar p {
  display: none;
}

input.search-input {
  font-size: 13px;
  z-index: 0;
  height: 32px;
  background: #efefef;
  outline: none;
  border: 0;
  position: relative;
  z-index: 1;
  padding: 0 5px 0 28px;
  /* background-image: url(/images/icon-search-general.png); */
  background-image: url('/images/plus-add-track-from-search.png');
  background-repeat: no-repeat;
  background-position: 7px 50%;
  border-radius: 2px;
}

input.search-input:focus {
  color: #181b1f;
  background-color: #fff;
  box-shadow: inset 0px 0px 0px 1px rgba(206, 206, 206, 1);
  outline: none;
}

#header #searchForm input {
  max-width: 100%;
  width: 350px;
  margin: 0;
}

#searchResults {
  display: none;
  width: 384px;
  background: white;
  position: relative;
  top: 10px;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.6);
  border-radius: 3px;
  background-clip: padding-box;
  z-index: 1;
}

#searchResults ul {
  position: relative;
  list-style: none;
  padding: 0;
  margin: 0;
}

#searchResults ul li {
  position: relative;
  padding: 15px;
  font-size: 14px;
}

#searchResults ul li a {
  display: block;
  width: 100%;
  line-height: 24px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #3177af;
}

#searchResults ul li a div {
  width: 24px;
  height: 24px;
  background-size: cover;
  float: left;
  margin-right: 10px;
}

#searchResults ul.showAllResults {
  border-bottom: 1px solid #d0d0d0;
}

#searchResults ul.showAllResults.loading {
  padding-bottom: 100px;
  background-position: 50% 70%;
}
#searchResults ul.loading {
  background-image: url(/images/loading.gif) !important;
  background-repeat: no-repeat;
}

#searchResults li.hover {
  background-color: #3177af;
}

#searchResults li.hover a {
  color: white;
}

#searchResults li:hover {
  background-color: #3177af !important;
}
#searchResults li:hover a {
  color: white !important;
}

#searchResults ul:nth-child(2) {
  border-top: none;
}

#searchResults ul.resultCategory > div {
  font-size: 12px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  max-width: 100%;
  text-transform: uppercase;
  color: #848586;
  background-color: #efefef;
  height: 21px;
  padding: 7px 0 0 15px;
  letter-spacing: 1px;
}

body.home #searchResults {
  width: 540px;
  text-align: left;
  margin-left: 20px;
}

/* old login button */

#loginLink {
  position: absolute;
  top: 7px;
  right: 0px;
  cursor: pointer;
  color: #777;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  font-size: 14px;
  padding: 9px;
}

#loginLink:hover {
  text-decoration: none;
  color: #fff;
}

#loginLink:active {
  top: 10px;
}

/* invite banner (with new login button) */

.visitor #logBox {
  float: right;
  margin-top: 9px;
}

#logBox a {
  border: 1px solid #cbced2;
  text-align: center;
  color: #a5acb1;
  font-family: 'AvenirNext-Medium', Helvetica, Arial, Sans-serif;
  border-radius: 3px;
  height: 32px;
  line-height: 32px;
  display: inline-block;
  padding: 0 12px;
  margin: 0 5px;
}

#logBox a:hover {
  border-color: #cbced2;
  background-color: #cbced2;
  color: white;
}

#logBox #signup {
  background-color: #3177af;
  border-color: #3177af;
  color: white;
  cursor: pointer;
}

#logBox #signup:hover {
  background-color: #62a1d3;
  border-color: #62a1d3;
}

/********************* LANDING ****************************/
body.visitor.pgStream #header,
body.visitor.pgHotTracks #header {
  background: #e5e5e5 url(/images/HomepageBackgroundPicture.jpg) no-repeat;
  background-size: cover;
  height: 550px;
  position: relative;
}

body.visitor.pgStream #header .container,
body.visitor.pgHotTracks #header .container {
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  height: 55px;
}

body.visitor.pgStream #header #logo,
body.visitor.pgHotTracks #header #logo {
  background-image: url(/images/logo-white.png);
}

body.visitor.pgStream #header #navbar > a#tabStream,
body.visitor.pgHotTracks #header #navbar > a#tabHot {
  color: #fdfdfd;
  border-color: #fdfdfd;
}

body.visitor.pgStream #header #navbar > a#tabHot,
body.visitor.pgHotTracks #header #navbar > a#tabStream {
  color: #fdfdfd;
}

#header #homeHeader {
  display: none;
}

body.visitor.pgStream #header #homeHeader,
body.visitor.pgHotTracks #header #homeHeader {
  display: block;
  margin: 251px 200px;
  position: absolute;
  text-align: center;
  width: 580px;
}

body.visitor.pgStream #header #homeHeader h1,
body.visitor.pgHotTracks #header #homeHeader h1 {
  color: #fdfdfd;
  font-size: 28px;
  margin: 10px 0;
  display: block;
}

body.visitor.pgStream #header #homeHeader p,
body.visitor.pgHotTracks #header #homeHeader p {
  color: #cbced2;
  font-size: 16px;
  font-family: 'AvenirNext-Medium', Helvetica, Arial, Sans-serif;
  margin-bottom: 25px;
  font-size: normal;
  display: block;
}

body.visitor.pgStream input.search-input,
body.visitor.pgHotTracks input.search-input {
  background-color: rgba(239, 239, 239, 128);
}

body.visitor.pgStream #logBox a,
body.visitor.pgHotTracks #logBox a {
  border-color: #fdfdfd;
  color: #fdfdfd;
  float: none;
}

body.visitor.pgStream #contentPane,
body.visitor.pgHotTracks #contentPane {
  margin-top: 30px;
}

body.visitor.pgStream .post > .stats,
body.visitor.pgHotTracks .post > .stats {
  cursor: default;
  height: 18px;
  overflow: hidden;
}

body.visitor.pgStream .post > .stats:hover,
body.visitor.pgHotTracks .post > .stats:hover {
  background-color: transparent;
}

/* user dropdown menu */

#navLinks {
  overflow: auto;
}

#loginDiv {
  margin-top: 7px;
  overflow: auto;
  border-radius: 3px;
  float: left;
}

#loginDiv:hover .puce {
  border-left: 1px solid #3177af;
}

#loginDiv > a {
  float: left;
  position: relative;
  border-top: 1px solid #e6e8e9;
  border-left: 1px solid #e6e8e9;
  border-bottom: 1px solid #e6e8e9;
}

#loginDiv > a:hover {
  background-color: #3177af;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: white;
  border-top: 1px solid #3177af;
  border-left: 1px solid #3177af;
  border-bottom: 1px solid #3177af;
}

#loginDiv > a:hover strong {
  color: white;
}

#loginDiv .image {
  background-color: #eee;
  background-size: cover;
  background-position: 50% 50%;
  width: 22px;
  height: 22px;
  float: left;
  border-radius: 11px;
  margin: 5px 0 5px 7px;
}

#loginDiv strong.username {
  color: black;
  float: left;
  padding: 5px 10px 0 10px;
  max-width: 70px;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  height: 27px;
  line-height: 22px;
}

#loginDiv .puce {
  border: 1px solid #e6e8e9;

  width: 25px;
  height: 32px;
  background: url(/images/pointe-usermenu.png) no-repeat 9px center;
  float: left;
  cursor: pointer;
}
#loginDiv .puce:hover {
  background-color: #3177af;
  border-color: #3177af;
}

#loginDiv .puce:hover .submenu {
  display: block;
  width: 132px;
  margin-left: -118px;
}

#settingsDiv {
  float: left;
  width: 40px;
  height: 40px;
  margin-left: 37px;
  margin-top: 7px;
}

#settingsDiv:hover {
  cursor: pointer;
}

#settingsDiv .btn {
  margin-top: 7px;
  width: 18px;
  height: 18px;
  background: url(/images/ic_setting.png) no-repeat center 0;
  float: left;
}

#settingsDiv:hover .btn {
  background-position: 0 -19px;
}

#settingsDiv .puce {
  float: left;
  margin-top: 15px;
  width: 20px;
  height: 5px;
  background: url(/images/pointe-usermenu.png) no-repeat center 0;
}
#settingsDiv:hover .submenu {
  display: block;
  width: 180px;
  margin-left: -9px;
  z-index: 11;
  right: 0;
}

#navLinks .submenu {
  display: none;
  background: white;
  position: absolute;
  top: 46px;
  width: 170px;
  padding: 5px;
  margin: -3px 0 0 -40px;
  border-radius: 3px;
  box-shadow: 0 1px 4px rgba(24, 27, 31, 0.26);
}

#navLinks .submenu > a {
  display: block;
  text-decoration: none;
  padding: 13px;
  margin: 2px;
  color: #181b1f;
}

#navLinks .submenu > a:hover {
  color: #fff;
  background: #3177af;
}

/* *********MENU********* */

#tabSelector {
  width: 315px;
  margin: 0px auto 10px auto;
  float: left;
}

#tabSelector ul,
ul#tabSelector {
  border: none;
  border-radius: 3px;
  list-style-type: none;
  padding: 0;
  margin: 0;
  overflow: hidden;
}

#tabSelector li {
  background: #fff;

  margin-bottom: 1px;
}

#tabSelector li a {
  display: block;
  height: 54px;
  line-height: 54px;
  font-size: 16px;
  padding: 0px 20px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  border: none;
  color: #333d45;
  border-left: 2px solid transparent;
}

#tabSelector a:hover {
  color: #3177af;
}

#tabSelector a.selected {
  border-left: 2px solid #3177af;
  color: #7cb1da;
}

#tabSelector a > .number-stats {
  color: #a5acb1;
  font-weight: normal;
  padding-left: 6px;
  font-size: 11px;
}

#tabSelector a.selected > .number-stats {
  color: #7cb1da;
}

#tabSelector > ul a.selected > .number-stats,
#tabSelector > ul a:hover > .number-stats {
  color: #adcef3;
  font-weight: normal;
  padding-left: 6px;
}

/************ POSTS  ************************/

.posts {
  background: white;
  padding: 0 0 15px 0;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
}

/************ SEARCH  ************************/

#searchBoxAlgolia {
  text-align: right;
  background: transparent;
  padding: 10px 10px 5px 10px;
}

#searchBoxAlgolia a {
  display: block;
}

#algolia {
  text-align: center;
  background: transparent;
  margin-top: 60px;
  display: block;
}

.pgSearch .sub-container {
  float: left;
  margin-left: 10px;
  border-radius: 3px;
  overflow: hidden;
}
.pgSearch .head-name-tab span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 480px;
  display: inline-block;
}
.pgSearch #results {
  margin-top: 1px;
}

#filterBox {
  display: none;
}

/********* PLAYLISTS RESULTS *******************/

#playlists {
  list-style: none;
  overflow: auto;
  padding-top: 15px;
}

#playlists .playlist {
  float: left;
  margin-left: 15px;
  margin-bottom: 20px;
  padding: 0;
}

#playlists .playlist .thumb {
  width: 200px;
  height: 200px;
  background-size: cover;
  background-position: 50% 50%;
  position: relative;
  overflow: hidden;
  border-radius: 3px;
}

#playlists .playlist .thumb > img.blur {
  position: absolute;
  top: -15px;
  left: -60px;
  width: 320px;
  height: 260px;
}

#playlists .playlist .thumb > .cover-playlist-vinyle {
  background: url(/images/cover-playlist.png) no-repeat;
  width: 200px;
  height: 200px;
  position: absolute;
  background-size: cover;
  background-position: center center;
}

#playlists .playlist p {
  width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin: 4px auto 0 auto;
  font-size: 14px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

#playlists .playlist > span {
  color: #a5acb1;
  text-transform: uppercase;
  margin-top: 5px;
  display: inline-block;
  letter-spacing: 1px;
}

/* BTN NEW PLAYLIST */
#playlists .playlist.btnNewPlaylist {
  border: 1px dashed #d1d1d1;
  border-radius: 3px;
  cursor: pointer;
  background: url(/images/icon-create-a-playlist.png) no-repeat 70px 70px;
  position: relative;
  padding: 0 0 34px 0 !important;
}

#playlists .playlist.btnNewPlaylist .thumb {
  width: 192px;
  height: 200px;
  background: transparent;
}

#playlists .playlist.btnNewPlaylist:hover {
  border: 1px dashed #bfbfbf;
  background-color: #fafafa;
}

#playlists > .btnNewPlaylist p {
  position: absolute;
  text-align: center;
  bottom: 12px;
}

/* sort filter */
.sort-playlists {
  cursor: pointer;
  display: inline-block;
  margin: 0 0 0 12px;
  position: relative;
}

.sort-icon-container {
  display: flex;
  align-items: center;
}

.sort-title {
  font-size: 12px;
  margin: 0 0 0 4px;
}

.sort-menu {
  display: none;
  background: white;
  position: absolute;
  top: 46px;
  padding: 5px;
  margin: -3px 0 0 -40px;
  border-radius: 3px;
  box-shadow: 0 1px 4px rgba(24, 27, 31, 0.26);
}

.sort-playlists:hover .sort-menu {
  display: inline-block;
  margin-left: -9px;
  z-index: 11;
  left: 0;
}

.sort-menu-item {
  display: block;
  text-decoration: none;
  padding: 13px;
  margin: 2px;
  color: #181b1f;
  font-size: 12px;
  line-height: 1.3;
}

.sort-menu-item:hover {
  color: #fff;
  background: #3177af;
}

body.userTracks #tabSelector > a.filter {
  display: block;
  width: auto;
  padding-right: 20px;
}

body.userTracks #tabSelector > a.filter > div {
  background-image: url(/images/icon-mini-search.png);
  background-repeat: no-repeat;
  background-position: 10px center;
  width: 40px;
  height: 100%;
  float: left;
}

body.filterMode #tabSelector {
  display: none;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

body.filterMode #filterBox {
  display: block;
  background: #f9f9f9;
  padding: 15px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ddd;
  animation: fadeIn 0.2s;
}

body.filterMode #filterBox > div {
  display: inline-block;
  width: 30px;
  height: 30px;
  background: url(/images/icon-delete.png) no-repeat 9px 9px;
  cursor: pointer;
  vertical-align: middle;
}

/* global box header, used by recentActivity page */

.bigBox {
  border-radius: 3px;
  margin: 2px;
  background: white;
}

.bigBox > .head {
  position: relative;
  padding: 25px 15px;
}

.bigBox > .head > h1,
.bigBox > .head > h2 {
  margin: 0;
  color: #414141;
  font-size: 26px;
  line-height: 18px;
}

.bigBox > .head > a {
  float: right;
}

.bigBox > .body {
  padding: 15px;
  border-top: 1px solid #f4f4f4;
  color: #5f5f5f;
}

/* feed header */

/* FILTER */

.feedHeader {
  position: relative;
  overflow: auto;
  background: white;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}

.userProfile > #contentPane > #mainPanel > .feedHeader {
  margin-bottom: 18px;
  border-radius: 3px;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
}

.feedHeader > .avatar {
  float: left;
  width: 100px;
  height: 100px;
  background-position: 50% 50%;
  background-size: cover;
  margin: 0 20px 0 4px;
}

.feedHeader > h1 {
  color: #414141;
  font-size: 26px;
  line-height: 18px;
  width: 570px;
}

.feedHeader > .bio {
  font-size: 13px;
  color: #4e4e4e;
  font-style: italic;
  width: 500px;
  overflow: hidden;
  max-height: 30px;
}

/**************** POST PAGE ********************/

body.pgPost #contentPane {
  margin-top: 50px;
}

body.pgPost .background-header {
  width: 100%;
  height: 280px;
  overflow: hidden;
  background-color: black;
}

body.pgPost .background-header > div {
  background-size: cover;
  background-position: center;
  width: 130%;
  margin: -50px 0 0 -50px;
  height: 130%;
  opacity: 0.85;

  filter: url("data:image/svg+xml;utf8,<svg xmlns='https://www.w3.org/2000/svg'><filter id='effect-blur-1'><feGaussianBlur stdDeviation='15' /></filter></svg>#effect-blur-1");
  filter: blur(25px);
  filter: url(#effect-blur-1);
}

body.pgPost .posts {
  background-color: transparent !important;
  padding: 0;
}

body.pgPost h2 {
  margin: 15px 15px 5px 15px;
  max-width: 580px;
  white-space: normal;
}

body.pgPost h2 a {
  color: #181b1f;
  font-size: 18px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  text-overflow: ellipsis;
  display: block;
  max-height: 47px;
  max-width: 540px;
}
body.pgPost .btns {
  margin-left: 15px;
  overflow: hidden;
}
body.pgPost .stats {
  margin-right: 15px;
  margin-top: 4px;
}

body.pgPost .ext {
  margin-left: 0;
  margin-top: 10px;
  background-color: transparent;
  border-top: 1px solid #efefef;
}

body.pgPost .post .ago {
  right: 15px;
  top: auto;
  margin-top: -25px;
  position: absolute;
  float: right;
}

body.pgPost .post > .author {
  margin: 0px 15px 6px 15px;
  min-height: 45px;
  border-bottom: 1px solid #f6f8f9;
  width: 100%;
}

body.pgPost .post {
  margin: -205px auto 0px auto;
  width: 660px;
  background-color: white;
  padding: 0 0 15px 0;
}

body.pgPost .post .thumb {
  width: 630px;
  height: 410px;
  margin: 15px;
  display: block;
  float: none;
  cursor: pointer;
}

body.pgPost .post > .thumb > .play {
  background-image: url('/images/play-big.png');
}

body.pgPost .post > .thumb > .play.playing {
  background-image: url('/images/pause-big.png');
}

body.pgPost .post .comments {
  padding: 0 15px 15px 15px;
}

body.pgPost .post .comments .newComment .commentEntry {
  min-height: 50px;
}

body.pgPost .powered {
  padding-left: 20px;
  background-repeat: no-repeat;
  color: #cbced2;
  width: 140px;
  margin: 30px auto 0px auto;
  display: block;
  position: relative;
}

.powered.youtube {
  background-image: url(/images/PageTrackSourceYoutube.png);
}

.powered.soundcloud {
  background-image: url(/images/PageTrackSourceSoundcloud.png);
}

.powered.vimeo {
  background-image: url(/images/PageTrackSourceVimeo.png);
}

.pgPost .post:hover > .btns a {
  background-position: 0 -19px;
  color: #a5acb1;
}

.pgPost .post > .btns a:hover {
  background-position: 0 -38px;
  color: #3177af;
}

.pgPost .post > .btns a {
  height: 15px;
  display: inline-block;
  padding: 4px 0 0 23px;
  font-size: 14px;
  background-position: 0 0px;
}

.pgPost .post a.btnRepost {
  background-image: url('/images/PageTrackIconAdd.png');
}

.pgPost .post a.btnLike {
  background-image: url('/images/PageTrackIconLike.png');
}

.pgPost .post a.btnLike.selected {
  background-position: 0 -57px;
  color: #bc162a;
}

.pgPost .post a.btnComment {
  background-image: url('/images/PageTrackIconComment.png');
}

.pgPost .post a.btnShare {
  background-image: url('/images/PageTrackIconShare.png');
}

.pgPost .post .postEdit a {
  background-image: url('/images/PageTrackIconEdit.png');
}

/******************* SETTINGS PAGE *******************************/

#settingsPanel .sub-container {
  float: left;
  margin-left: 10px;
}

#settingsPanel {
  margin: 40px auto;
  padding: 15px;
}

#settingsPanel h1 {
  margin-bottom: 32px;
}

#settingsPanel h1,
h2 {
  color: #333;
}

#settingsPanel .tabContent {
  display: none;
  background-color: white;
  padding: 15px 0;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
}

#settingsPanel #tabAccount {
  display: block;
}

#settingsPanel form {
  margin-left: 200px;
  color: #777;
}

#settingsPanel form /*fieldset*/.fld {
  padding: 0;
  margin: 0;
  border: none;
  position: relative;
  margin-bottom: 20px;
}

#settingsPanel form .fld.nomargin {
  margin-bottom: 0px;
}

#settingsPanel form .fld legend {
  position: absolute;
  left: -200px;
  top: 16px;
  width: 180px;
  text-align: right;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  font-size: 11px;
}

#settingsPanel form .fld label {
  /* for checkboxes */
  display: block;
  line-height: 25px;
}

#settingsPanel form .fld span.msg {
  margin-left: 20px;
}

#settingsPanel form .fld.ok span.msg {
  color: #7da729;
}

#settingsPanel form .fld.error span.msg {
  color: #ff7070;
}

#settingsPanel #url > span {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

#settingsPanel div.loading {
  width: 30px;
  height: 30px;
}

#settingsPanel #fbConn {
  background-image: url(/images/fb-connect.png);
  width: 352px;
  height: 53px;
  cursor: pointer;
  margin-bottom: 40px;
}

#settingsPanel #fbConn:hover {
  background-position: 0 -54px;
}

#settingsPanel #fbConn:active {
  background-position: 0 -108px;
}

#settingsPanel #pref {
  display: none;
}

#settingsPanel #lastFmConn {
  display: block;
  background-image: url(/images/lastfm-connect.png);
  width: 352px;
  height: 53px;
  cursor: pointer;
  margin-bottom: 40px;
}

#settingsPanel #lastFmConn:hover {
  background-position: 0 -54px;
}

#settingsPanel #lastFmConn:active {
  background-position: 0 -108px;
}

#settingsPanel #deleteAccount {
  float: right;
  color: #ff7070;
  margin: -20px 20px 0 0;
}

#settingsPanel #tabNotif div {
  margin-bottom: 10px;
}

#settingsPanel #tabNotif div > p {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  padding-top: 15px;
  padding-bottom: 10px;
}

#settingsPanel #tabNotif div > label {
  display: inline;
  margin-right: 15px;
}

#settingsPanel #tabNotif input[type='submit'] {
  margin-top: 40px;
}

/**************** POPIN ********************/

.popin {
  background-color: #fff;
  display: none;
  height: auto;
  margin: 0 auto;
  width: 500px;
}

#popin-mask {
  background-color: rgba(0, 0, 0, 0.8);
}

.popin .close {
  text-indent: -9999px;
  background: url(/images/icon-close-big.png) no-repeat;
  width: 24px;
  height: 23px;
  border: none;
  zoom: 1;
  float: right;
  margin: 20px;
}

.popin h3 {
  font-size: 16px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  color: #181b1f;
  line-height: 24px;
  margin-bottom: 8px;
}

.popin .form {
  padding: 60px 10px;
  width: 300px;
  margin: 0 auto;
}

.popin p {
  color: #888888;
  padding-bottom: 8px;
}

.dlgSignup {
  width: 468px;
  height: 450px;
}

.fbButton {
  background: #3c599b url(/images/fb-icon-button.png) no-repeat 16px 16px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  color: white;
  font-size: 13px;
  padding: 20px 15px 17px 55px;
  border-radius: 3px;
  margin: 13px 0 17px 0;
  display: block;
}

.fbButton:hover {
  background-color: #5b7ac0;
  cursor: pointer;
  color: white;
}

#popinSignup {
  color: #a5acb1;
  font-size: 14px;
  width: 300px;
  margin: 0 auto;
}

#popinSignup h3 {
  font-size: 16px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  color: #181b1f;
  line-height: 24px;
  margin-bottom: 8px;
}

#popinSignup span {
  text-align: center;
  display: block;
  border-top: 1px solid #cbced2;
  padding: 10px 0 0 0;
  margin-bottom: 15px;
}

#popinSignup input {
  border: 1px solid #cbced2;
  font-size: 13px;
  width: 280px;
  margin: 6px 0;
  padding: 10px 8px;
}

#popinSignup .condition {
  color: #a5acb1;
  margin-top: 6px;
  font-size: 11px;
}

#popinSignup .condition a {
  text-decoration: underline;
  color: #a5acb1;
}

#popinSignup input[type='submit'] {
  color: #3177af;
  font-size: 13px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  padding: 12px 0 13px 0;
  margin-top: 15px;
  width: 300px;
  text-align: center;
  background: transparent;
  border: 1px solid #3177af;
  border-radius: 3px;
  cursor: pointer;
}

.feedHeader form.submitting {
  width: 600px;
  background: url('/images/loader.gif') no-repeat right;
}

.feedHeader > #userStats {
  position: absolute;
  right: 30px;
  top: 70px;
}

.feedHeader > #userStats > a {
  margin-left: 10px;
  color: #666;
}

.feedHeader > #userStats > a > span {
  font-weight: normal;
  color: #333;
}

.userSubscribe {
  /* also used for "edit profile" button */
  cursor: pointer;
  font-size: 13px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  padding: 7px 0 5px 0;
  background: transparent;
  border: 1px solid #3177af;
  width: 82px;
  border-radius: 3px;
  display: block;
  text-align: center;
  color: #3177af;
  top: 30px;
  right: 1px;
  position: absolute;
}

.userSubscribe:hover,
.userSubscribe.active {
  background-color: #62a1d3;
  border-color: #62a1d3;
  color: white;
}

.userSubscribe.subscribed {
  border: 1px solid #cbced2;
  color: #a5acb1;
}

.userSubscribe.subscribed:hover {
  border: 1px solid #a5acb1;
  color: #a5acb1;
  background-color: transparent;
}

.feedHeader #playlistNameField {
  float: left;
  color: #414141;
  font-size: 26px;
  padding: 5px;
  margin-bottom: 10px;
  margin-right: 10px;
  background-color: inherit;
  border: 1px solid transparent;
  width: 500px;
  border-radius: 3px;
}

.feedHeader #playlistNameField:hover {
  background-color: white;
  border: 1px solid #2477bc;
}

.feedHeader #playlistNameField:focus {
  background-color: white;
  box-shadow: 0px 0px 0pt 1pt #2477bc;
}

.feedHeader #playlistNameField.loading {
  background-position: right center;
}

.feedHeader #playlistNameSubmit {
  float: left;
  display: none;
}

.feedHeader > #playlistActions {
  position: absolute;
  bottom: 20px;
  right: 20px;
}

.feedHeader > #playlistActions > * {
  margin-left: 20px;
}

.feedHeader > .sharing {
  position: absolute;
  right: 20px;
  top: 20px;
  height: 20px;
  overflow: hidden;
}

.feedHeader > .sharing > iframe {
  width: 80px;
  margin-left: 20px;
  float: left;
}

.feedHeader > #playlistActions > .orderPlaylist {
  background: #bbb url('/images/icon-change-order.png') no-repeat 7px 4px;
}

.feedHeader > #playlistActions > .embedPlaylist {
  background: #bbb url('/images/icon-embed.png') no-repeat 7px 4px;
}

.feedHeader > #playlistActions > .deletePlaylist {
  color: red;
}

.feedHeader > .playlistOwner {
  clear: left;
}

.feedHeader > .playlistOwner > div {
  width: 32px;
  height: 32px;
  background-size: cover;
  float: left;
  margin-right: 10px;
  border-radius: 16px;
}

.feedHeader > .playlistOwner > p {
  padding-top: 8px;
}

.feedHeader > .playlistOwner > p > a {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

/* main content */

#contentPane {
  position: relative;
  padding-bottom: 40px; /* so that content is not hidden behind the fixed player bar */
  clear: both;
  overflow: auto;
}

#contentPane.withPlayer {
  padding-bottom: 80px;
}

#contentPane > #mainPanel {
  position: relative;
}

.posts #btnNewPlaylist {
  width: 100%;
  border: 1px dashed #ccc;
  display: block;
  text-align: center;
  padding: 20px 0;
  background: #eee;
  font-size: 18px;
}

/* TITLE */

.head-name-tab {
  margin: 0 0 1px 0;
  display: block;
  font-size: 16px;
  color: #181b1f;
  padding-left: 14px;
  height: 54px;
  line-height: 54px;
  background: #fff;
  border-radius: 3px 3px 0 0;
}

body #contentPane {
  margin-top: 70px;
}

.rightBar > .sideBox > .head {
  position: relative;
  background: white;
  padding: 18px 15px;
  margin-right: 2px;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}

.rightBar > .sideBox > .head > h2 {
  color: #414141;
  font-size: 16px;
  margin: 0;
}

.rightBar > .sideBox > .head > a {
  position: absolute;
  top: 20px;
  right: 17px;
}

.rightBar > .sideBox > .body {
  margin: 0;
  margin-right: 2px;
  margin-bottom: 24px;
  position: relative;
  top: -1px;
  background-color: white;
  padding: 15px;
  border-top: 1px solid #f4f4f4;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
  color: #5f5f5f;
}

.rightBar > .sidebox--important > .head {
  box-sizing: border-box;
  border: 2px solid #3177af;
  border-bottom: 0;
}

.rightBar > .sidebox--important > .body {
  box-sizing: border-box;
  border: 2px solid #3177af;
  border-top: 0;
}

.rightBar > .sideBox ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rightBar > .sideBox li {
  overflow: auto;
  position: relative;
  margin-bottom: 10px;
}

.rightBar > .sideBox li > div {
  float: left;
  width: 32px;
  height: 32px;
  background-size: cover;
  margin-right: 10px;
  border-radius: 16px;
  cursor: pointer;
  margin-top: 6px;
}

.rightBar > .sideBox li > .userName {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  max-width: 165px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #3177af;
  font-size: 12px;
}

.rightBar > .sideBox li > .subscribedUser {
  line-height: 18px;
}

.rightBar > .sideBox li > a.userName:hover {
  color: #357bd1;
}

.rightBar > .sideBox li > .subscribe {
  font-size: 12px;
  margin-left: 8px;
  color: #3177af;
  cursor: pointer;
  line-height: 16px;
}

.rightBar > .sideBox li > .suggType {
  display: block;
  font-size: 12px;
  margin-top: 5px;
  max-width: 215px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: inherit;
}

.rightBar > .sideBox li > .suggType:hover {
  color: #357bd1;
}

.rightBar > .sideBox li > .remove {
  position: absolute;
  top: 0px;
  right: 0px;
  color: #ccc;
  cursor: pointer;
}

.rightBar #bookmarkletAd .body {
  background-image: url('/images/icon-bookmarklet.png');
  background-repeat: no-repeat;
  background-position: 12px 18px;
  padding-left: 54px;
  line-height: 18px;
}

.rightBar .postRemove {
  position: absolute;
  top: 25px;
  right: 14px;
  opacity: 0.4;
  font-size: 10px;
  color: gray;
  cursor: pointer;
  background-image: url(/images/Stream_ic_closebox.png);
  background-repeat: no-repeat;
  width: 8px;
  height: 8px;
}

.rightBar .postRemove:hover {
  background-position: 0 -9px;
}

.rightBar .postRemove:hover {
  opacity: 0.8;
}

.rightBar .body.inviteAd {
  position: relative;
}

.rightBar .body.inviteAd input[type='text'] {
  height: 30px;
  padding: 0 10px;
  width: 183px;
  line-height: 14px;
  margin-bottom: 4px;
  border: 1px solid #e3e3e3;
  box-shadow: none;
}

.rightBar .body.inviteAd input[type='text']:focus {
  border: 1px solid #a8a8a8;
  transition: all 0.5s;
}

.rightBar .body.inviteAd input[type='submit'] {
  top: 15px;
  right: 15px;
  color: white;
  border-radius: 4px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border: 1px solid #3177af;
  background-color: #3177af;
  height: 32px;
}

.rightBar .body.inviteAd input[type='submit']:hover {
  border: 1px solid #62a1d3;
  background-color: #62a1d3;
}

.rightBar .body.inviteAd.sending input[type='submit'] {
  display: none;
}

.rightBar .body.inviteAd.sending {
  background: white url(/images/loader.gif) no-repeat 265px 25px;
}

.rightBar .inviteAd .userSubscribe {
  top: 17px;
}

.rightBar .inviteAd li:first-child .userSubscribe {
  top: 7px;
}

.rightBar .inviteAd li {
  padding: 10px 0 0 0;
  margin-bottom: 15px;
}

.rightBar .inviteAd li:first-child {
  padding: 0;
}

.rightBar .inviteAd li:last-child {
  margin: 0;
}

.rightBar .inviteAd li > a {
  height: 20px;
  margin: 3px 0;
  width: 150px;
  white-space: no-wrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.rightBar .inviteAd li > small {
  width: 200px;
}

.recentActivity .rightBar li {
  line-height: 32px;
}

.rightBar .recentActivity li > div {
  margin-top: 0px;
}

/* sidebar footer */

#sideFooter {
  color: #afafaf;
  font-size: 13px;
  padding: 5px 15px 15px 15px;
}

#sideFooter ul {
  list-style: none;
  padding: 0;
  margin: 15px 0 14px 0;
  font-family: 'AvenirNext-Medium', Helvetica, Arial, Sans-serif;
  color: #c6c6c6;
}

#sideFooter li {
  display: inline;
  margin: 0 15px 0 0;
}

#sideFooter a {
  color: #afafaf;
}

#sideFooter a:hover {
  color: #3177af;
}

#sideFooter p {
  font-weight: normal;
  color: #c7c7c7;
}

/* newfeed items */
.posts .post:first-child {
  border: 0;
}

.post {
  position: relative;
  overflow: visible; /* switch from auto because of .playing .playBar */
  font-size: 12px;
  line-height: 16px;
  padding: 10px 0;
  min-height: 110px;
  color: #cbced2;
  margin: 0 15px;
  max-width: 100%;
  padding: 12px 0;
  border: 0;
  border-top: 1px solid transparent;
}

/*********** USERS LIST******************/

ul .user {
  position: relative;
  overflow: auto;
  padding: 15px 0;
  margin-bottom: 15px;
  margin: 0 15px;
  border-top: 1px dotted #bdbfbf;
}

ul .user:first-child {
  border: 0;
}
ul .user .thumb {
  float: left;
  width: 74px;
  height: 74px;
  background-size: cover;
  background-position: 50% 50%;
  margin-right: 20px;
  border-radius: 37px;
}

ul .user > li p {
  float: left;
  width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
}

ul .user .username {
  color: #3177af;
  font-family: 'AvenirNext-Medium', Helvetica, Arial, Sans-serif;
  margin-top: 15px;
  margin-bottom: 0;
  font-size: 14px;
  display: block;
}

ul .user .userbio {
  width: 440px;
  margin-bottom: 10px;
  max-height: 60px;
  overflow: hidden;
}

ul .user h2 {
  font-size: 14px;
  margin: 19px 0 5px 0;
  font-family: 'AvenirNext-Medium', Helvetica, Arial, Sans-serif;
}

ul .user p {
  color: #a5acb1;
  width: 440px;
  height: 20px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.post.playing .playBar {
  position: absolute;
  top: 0;
  left: -15px;
  height: 100%;
  width: 2px;
  background-color: #3177af;
}

.post.disabled {
  background-color: #eee;
  opacity: 0.5;
}

.filtering .post {
  opacity: 0.1;
}

.post > h2 {
  font-size: 14px;
  line-height: 24px;
  margin: 4px 0;
  max-width: 410px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #3177af;
  cursor: pointer;
}

body.pgWithSideBar .post > h2 {
  width: 370px;
}

.author {
  color: #5f5f5f;
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.author {
  line-height: 32px;
  position: relative;
  margin: 7px 0 6px 0;
  min-height: 34px;
  max-width: 100%;
  display: block;
  font-size: 13px;
}

.author > span {
  float: left;
  width: 32px;
  height: 32px;
  border-radius: 16px;
  background-size: cover;
  background-position: 50% 50%;
  margin-right: 10px;
  background-color: #efefef;
}

.post .comment {
  margin-top: 5px;
}

.post .comment > p {
  color: #181b1f;
}

.post .comment .author > span {
  color: #181b1f;
  margin-top: 5px;
}

.post.external .author span {
  width: 24px;
  height: 24px;
  border-radius: 0;
  margin-top: 4px;
}

.author > a {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  font-size: 13px;
}

.post > .ago {
  position: absolute;
  top: 17px;
  right: 4px;
}

.post > .ago > a {
  color: inherit;
  font-size: 11px;
  color: #bbbbbb;
}

.post > .ago > a:hover {
  color: #3177af;
}

.postEdit > a {
  background-image: url(/images/icon-post-edit.png);
  background-repeat: no-repeat;
  cursor: pointer;
  background-position: 0 0;
  margin-left: 4px;
  margin-right: 3px;
}

.postEdit:hover > a {
  background-position: 0 -16px;
}

.post .postEdit {
  display: none;
}

.post:hover .postEdit {
  display: inline;
}

/* post stats */

.post > .stats {
  float: right;
  cursor: pointer;
  font-size: 11px;
  line-height: 26px;
}

.post > .stats > * {
  padding: 0 4px;
  padding-left: 14px;
  background-repeat: no-repeat;
  background-position: 0px center;
  margin-left: 5px;
  cursor: pointer;
}

.post > .stats > .nbReposts {
  background-image: url('/images/icon-post-add.png');
  background-position: 0 1px;
}

.post > .stats > .nbLoves {
  background-image: url('/images/icon-post-like.png');
  background-position: 0 1px;
}

.post:hover > .stats span {
  background-position: 0 -13px;
  color: #a5acb1;
}

.post .stats span:hover {
  background-position: 0 -27px;
  color: #3177af;
}

.post .stats span:hover span {
  color: #3177af;
}

.post > .stats > .nbComments {
  background-image: url('/images/icon-post-comment.png');
  background-position: 0 1px;
}

/* post buttons */

.post:hover > .btns a {
  background-position: 0 -12px;
  color: #a5acb1;
}

.post > .btns a:hover {
  background-position: 0 -26px;
  color: #3177af;
}

.post > .btns {
  position: relative; /* for share popin */
  margin-top: 12px;
  overflow: auto;
  text-shadow: none;
  font-size: 12px;
}

.post > .btns a {
  padding-left: 16px;
  background-repeat: no-repeat;
  color: inherit;
  cursor: pointer;
}

.post a.btnRepost {
  background-image: url('/images/icon-post-add.png');
  background-position: 0 2px;
  margin-right: 3px;
}

.post a.btnLike {
  background-image: url('/images/icon-post-like.png');
  background-position: 0 2px;
  margin-left: 4px;
  margin-right: 3px;
}

.post a.btnLike.selected {
  background-position: 0 -40px;
  color: #bc162a;
}

.post a.btnComment {
  background-image: url('/images/icon-post-comment.png');
  background-position: 0 2px;
  margin-left: 4px;
  margin-right: 3px;
}

.post a.btnShare {
  background-image: url('/images/icon-post-share.png');
  margin-left: 4px;
  margin-right: 3px;
  background-position: 0 2px;
}

/* content */

.post > .thumb {
  float: left;
  position: relative;
  margin-right: 14px;
  width: 110px;
  height: 110px;
  overflow: visible;
  background-size: cover;
  background-position: 50% 50%;
}

.post > .thumb > img {
  display: none;
}

.post > .thumb > .play {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  background: url('/images/icon-post-play.png') no-repeat center center;
  opacity: 0.9;
}

.post > .thumb .play.playing,
.post > .thumb .loading {
  background: url('/images/icon-post-pause.png') no-repeat center center;
}

.post.disabled > .thumb > .play {
  background: url('/images/icon-error.png') no-repeat center center;
}

.post > .thumb:hover > .play {
  opacity: 1;
}

/* post extended view, incl. comments */

.post .ext {
  height: auto;
  padding: 0 0 3px 0;
  margin: 17px 0 0 125px;
  background: #f7f7f7;
  border-top: 1px solid #e6e8ea;
}

.post .ext.hidden {
  border: 0;
  padding: 0;
  height: 0;
  overflow: hidden;
}

.post .ext > p {
  color: #a5acb1;
  padding: 10px;
  border-bottom: 1px solid #e5e5e5;
}

.post .ext > p a {
  color: #888;
}

.post .ext > p a:hover {
  color: #3177af;
}

.post .ext .stats {
  border-bottom: 1px solid #e6e8ea;
  display: table;
  width: 100%;
}

.post .ext .stats > * {
  display: table-cell;
  padding: 5px 15px;
  vertical-align: middle;
}

.post .ext .stats > * > span {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

.post .ext .stats > .faces {
  padding: 10px;
  width: 100%;
  list-style: none;
}

.post .ext .stats > .faces > div {
  height: 32px;
  overflow: hidden;
}

.post .ext .stats > .faces a {
  float: left;
  height: 32px;
  width: 32px;
  margin-right: 10px;
  background-size: cover;
  background-position: 50% 50%;
  border-radius: 16px;
}

.post .ext .stats > .nbLoves,
.post .ext .stats > .nbReposts {
  border-right: 1px solid #e6e8ea;
}

.post .ext .stats > .nbLoves:hover,
.post .ext .stats > .nbReposts:hover {
  color: #357bd1;
  cursor: pointer;
}

.post .ext .stats > :hover {
  color: #357bd1;
  cursor: pointer;
}

.post .comments {
  color: #a5acb1;
  padding: 10px;
  padding-top: 0;
}

.post .comments > div {
  position: relative;
  margin-top: 15px;
}

.post .comments > div.hidden {
  display: none;
}

.post .comments > div:hover .delete {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 9px;
  height: 9px;
  background-image: url(/images/icon-delete.png);
  background-repeat: no-repeat;
  cursor: pointer;
  opacity: 0.6;
}

.post .comments > div .delete:hover {
  opacity: 1;
}

.post .comments .showMore {
  margin-top: 16px;
  cursor: pointer;
  color: #3177af;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

.post .comments .showMore > div {
  float: left;
  background: url(/images/icon-more-comments.png) no-repeat 0 -5px;
  width: 16px;
  height: 4px;
  margin: 6px;
  margin-right: 8px;
}

.post .comments .author {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  color: #3177af;
  font-size: 13px;
}

.post .comments .author:hover > p {
  color: #3177af;
}

.post .comments .author span.t {
  color: #a5acb1;
  font-weight: normal;
  margin-left: 3px;
  font-size: 12px;
}

.post .comments div .text {
  overflow: hidden;
  white-space: pre-wrap;
  margin: -16px 0 0 42px;
  color: #181b1f;
  font-size: 12px;
}

.post .comments .newComment {
  display: table;
  width: 100%;
}

.post .comments .newComment > div {
  display: table-cell;
  width: 100%;
  position: relative;
  vertical-align: top;
  text-shadow: none;
  padding-top: 5px;
}

.post .comments .newComment .commentEntry {
  margin-bottom: 10px;
}

.post .comments > div.newTip {
  margin-left: 42px;
  margin-top: 0;
  line-height: 28px;
}

.post .comments > div.newTip input {
  float: right;
  border: 0 none;
  margin: 0;
  color: #3177af;
  padding: 8px;
  border: 1px solid #3177af;
  background: transparent;
  border-radius: 3px;
  cursor: pointer;
  font-size: 12px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

.post .comments > div.newTip input[disabled] {
  filter: alpha(opacity=0);
  opacity: 0;
}

/* newsfeed */

.addPost {
  margin: 0 15px;
  padding: 12px 0;
  line-height: 40px;
  text-align: center;
}

.addPost a {
  display: block;
  border: 1px dashed #d1d1d1;
  border-radius: 3px;
  cursor: pointer;
}

.addPost:hover a {
  border: 1px dashed #bfbfbf;
  background-color: #fafafa;
}

.emptyFeed {
  clear: both;
  display: block;
  margin: 30px 0;
  text-align: center;
}

.emptyFeed > .fakePost {
  display: block;
  background: url('/images/fakePost.png');
  width: 848px;
  height: 178px;
}

.emptyFeed > .fakePost > div.grayOverlay {
  width: 848px;
  height: 178px;
  background: #ccc;
  opacity: 0.5;
}

.emptyFeed > .fakePost > div.addButton {
  position: relative;
  top: -110px;
  margin: 0 auto;
  width: 125px;
  float: none;
  color: #333;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

.emptyFeed > .fakePost > div.addButton > div {
  float: left;
}

.emptyFeed > .fakePost > div.addButton > span {
  position: absolute;
  top: 15px;
  left: 50px;
}

.emptyFeed > .fakePost > div {
  display: none;
}

.emptyFeed > .fakePost:hover > div {
  display: block;
}

.btnLoadMore {
  display: block;
  color: #cbced2;
  font-size: 13px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  border: 1px solid #cbced2;
  text-align: center;
  width: 320px;
  height: 36px;
  overflow: hidden;
  line-height: 36px;
  padding-right: 20px;
  cursor: pointer;
  border-radius: 3px;
  position: relative;
  margin: 20px auto;
}

.btnLoadMore:hover {
  background-color: transparent;
  border: 1px solid #a5acb1;
  color: #a5acb1;
}

.btnLoadMore > div {
  position: absolute;
  background: url(/images/spinner.gif) no-repeat;
  top: 40px;
  left: 148px;
  width: 24px;
  height: 24px;
  transition: top 0.2s;
}

.btnLoadMore > span {
  position: relative;
  transition: top 0.2s;
}

.btnLoadMore.loading > div {
  top: 7px;
}

.btnLoadMore.loading > span {
  top: -25px;
}

.btnLoadAll > div {
  transition: top 0.5s;
  position: absolute;
  text-align: center;
  top: 11px;
  left: 220px;
  width: 16px;
  height: 16px;
}

/* music player */

#playerContainer {
  position: fixed;
  bottom: 61px;
  right: 4px;
  width: 200px;
  height: 200px;
  overflow: hidden;
}

#playerContainer > div {
  position: relative;
  width: 100%;
  height: 100%;
}

#playerContainer > div > * {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
}

#playerContainer > div > #playerClose {
  z-index: 3;
  top: 4px;
  right: 4px;
  left: auto;
  background: url(/images/btn-player-video-close.png) no-repeat;
  width: 16px;
  height: 16px;
  z-index: 100000;
  opacity: 0.1;
  transition: opacity 0.1s ease;
  cursor: pointer;
}

#playerContainer > div:hover > #playerClose {
  opacity: 0.9;
}

#playerContainer > div > #playerClose:hover {
  opacity: 1;
}

#playerContainer > div > #playBtnOverlay {
  z-index: 10000;
}

#playerContainer > div > #genericholder {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
}

#playerContainer > div > #genericholder > object {
  width: 100%;
  height: 100%;
}

#playerContainer > div > #genericholder > object > embed {
  width: 100%;
  height: 100%;
}

#playerContainer > div > #playBtnOverlay.paused {
  background: url('/images/play-big.png') no-repeat center center;
}

#playerContainer > div > #playBtnOverlay.playing {
  background: none;
}

#playerContainer > div > #playBtnOverlay.playing:hover {
  background: url('/images/pause-big.png') no-repeat center center;
}

#containerSoundCloud {
  width: 1px;
  height: 1px;
  overflow: hidden;
}

body.fullscreenVideo.playing_Youtube #playerContainer,
body.fullscreenVideo.playing_Vimeo #playerContainer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10000;
}

body.fullscreenVideo.playing_Youtube #header,
body.fullscreenVideo.playing_Vimeo #header,
body.fullscreenVideo.playing_Youtube #playerContainer > div > #playBtnOverlay,
body.fullscreenVideo.playing_Vimeo #playerContainer > div > #playBtnOverlay {
  display: none;
}

/* quick fix for new youtube / vevo minimum embed size */

body/*.playing_Youtube*/ #playerContainer > div > #genericholder {
  position: relative;
}

body #playerContainer > div > #genericholder > object {
  position: absolute;
}

body.playing_Youtube #playerContainer > div > #genericholder > object,
body.playing_Youtube #playerContainer > div > #genericholder > object > embed {
  top: -20px;
  left: -20px;
  width: 240px;
  height: 240px;
}

body.playing_Vimeo #playerContainer > div > #genericholder > object,
body.playing_Vimeo #playerContainer > div > #genericholder > object > embed {
  left: -10px;
}

body.fullscreenVideo #playerContainer > div > #genericholder > object,
body.fullscreenVideo #playerContainer > div > #genericholder > object > embed {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* end of fix */

body.playing_Bandcamp #playerContainer,
body.playing_SoundCloud #playerContainer,
body.playing_Deezer #playerContainer,
body.reduced #playerContainer {
  left: 100% !important;
  top: 100% !important;
  opacity: 0.01;
}

/* player bar */

#whydPlayer {
  display: none;
  position: fixed;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background-color: #1a1a1a;
  z-index: 10000;
  overflow: visible;
  filter: alpha(opacity=98);
  opacity: 0.98;
}

#whydPlayer > .buttons {
  overflow: auto;
  padding: 0 20px;
  padding-bottom: 6px;
  outline: none;
}

#whydPlayer > .buttons > * {
  float: left;
}

#whydPlayer button {
  margin-top: 5px;
  float: left;
  width: 32px;
  height: 43px;
  border: none;
  background-image: url('/images/btn-player-2.png');
  background-color: transparent;
  background-repeat: no-repeat;
  cursor: pointer;
  margin-right: 5px;
}

#whydPlayer #btnPlay {
  width: 46px;
}
#whydPlayer #btnPrev {
  background-position: 0px 0px;
}
#whydPlayer #btnPrev:hover {
  background-position: 0px -44px;
}
#whydPlayer #btnPrev:active {
  background-position: 0px -88px;
}

#whydPlayer #btnPlay {
  background-position: -38px 0px;
}
#whydPlayer #btnPlay:hover {
  background-position: -38px -44px;
}
#whydPlayer #btnPlay:active {
  background-position: -38px -88px;
}

#whydPlayer #btnPlay.playing {
  background-position: -38px -132px;
}
#whydPlayer #btnPlay.playing:hover {
  background-position: -38px -176px;
}
#whydPlayer #btnPlay.playing:active {
  background-position: -38px -220px;
}

#whydPlayer #btnNext {
  background-position: -90px 0px;
  margin-right: 20px;
}
#whydPlayer #btnNext:hover {
  background-position: -90px -44px;
}
#whydPlayer #btnNext:active {
  background-position: -90px -88px;
}

#whydPlayer #btnPlay,
#whydPlayer #btnPrev,
#whydPlayer #btnPlay.playing,
#whydPlayer #btnNext,
#whydPlayer #btnRepost,
#whydPlayer #btnLike,
#whydPlayer #btnComment,
#whydPlayer #btnFullscreen,
#whydPlayer #btnShuffle {
  outline: none;
}

/* other buttons */

#whydPlayer #btnRepost,
#whydPlayer #btnLike,
#whydPlayer #btnComment,
#whydPlayer #btnFullscreen,
#whydPlayer #btnShuffle {
  background: none;
  padding: 5px;
  height: auto;
  width: auto;
  margin: 0;
  margin-top: 12px;
}

#whydPlayer #btnRepost div,
#whydPlayer #btnLike div,
#whydPlayer #btnComment div,
#whydPlayer #btnFullscreen div,
#whydPlayer #btnShuffle div {
  height: 16px;
  width: 16px;
}

#whydPlayer #btnRepost div {
  background-image: url('/images/btn-player-add.png');
}
#whydPlayer #btnLike div {
  background-image: url('/images/btn-player-like.png');
}
#whydPlayer #btnComment div {
  background-image: url('/images/btn-player-comment.png');
}
#whydPlayer #btnFullscreen div {
  background-image: url('/images/btn-player-fullscreen.png');
}
#whydPlayer #btnShuffle div {
  background-image: url('/images/btn-player-shuffle.png');
}

body.isShuffle #whydPlayer #btnShuffle div {
  background-position: 0px -51px;
}

#whydPlayer #btnRepost:hover div,
#whydPlayer #btnLike:hover div,
#whydPlayer #btnComment:hover div,
#whydPlayer #btnFullscreen:hover div,
#whydPlayer #btnShuffle:hover div {
  background-position: 0px -17px;
}

#whydPlayer #btnRepost:active div,
#whydPlayer #btnLike:active div,
#whydPlayer #btnComment:active div,
#whydPlayer #btnFullscreen:active div,
body #whydPlayer #btnShuffle:active div {
  background-position: 0px -34px;
}

#whydPlayer #btnLike.loved div {
  background-position: 0px -51px;
}

#whydPlayer #btnFullscreen {
  margin-left: 10px;
  border-left: 1px solid #333;
  padding-left: 10px;
}

body.playing_Bandcamp #whydPlayer #btnFullscreen > div,
body.playing_SoundCloud #whydPlayer #btnFullscreen > div,
body.playing_Deezer #whydPlayer #btnFullscreen > div {
  opacity: 0.2;
}

/* other elements */

#whydPlayer a {
  color: white;
  font-weight: normal;
}

#whydPlayer #trackTitle {
  font-size: 12px;
  color: #ddd;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
  max-width: 400px;
  margin-top: 17px;
  margin-left: 8px;
}

#whydPlayer #progressTimer {
  margin-left: 10px;
  color: #777;
  font-size: 10px;
  margin-top: 19px;
}

#whydPlayer #progressTrack {
  width: 100%;
  position: relative;
  top: -3px;
  background: gray;
  cursor: ew-resize;
  height: 4px;
  z-index: 5;
}

#whydPlayer #progressTrack > #progressBar {
  width: 0px;
  height: 4px;
  background: #3177af;
}

#whydPlayer #progressTrack > #progressCursor {
  position: absolute;
  top: -3px;
  left: -5px;
  width: 16px;
  height: 16px;
  background-color: #3177af;
  border-radius: 8px;
}

#whydPlayer .rightButtons {
  float: right;
}

#whydPlayer:hover #progressTrack {
  height: 10px;
  transition: all 0.1s ease-in-out;
}

#whydPlayer:hover #progressTrack > #progressBar {
  height: 10px;
  transition: all 0.1s ease-in-out;
}

/* volume control */

#whydPlayer .volumePanel {
  float: left;
  position: relative;
  padding-top: 17px;
  margin-left: 16px;
}

#whydPlayer .volumePanel > div {
  float: left;
}

#whydPlayer .volumePanel .volume {
  background-image: url(/images/icon-volume.png);
  width: 16px;
  height: 16px;
}

#whydPlayer .volumePanel .volume.half {
  background-position: 0 -17px;
}

#whydPlayer .volumePanel .volume.mute {
  background-position: 0 -34px;
}

#whydPlayer .volumePanel .progressTrack {
  margin: 5px 8px;
  position: relative;
  width: 40px;
  height: 3px;
  background: gray;
}

#whydPlayer .volumePanel .progressTrack > .progressBar {
  height: 100%;
  background: white;
}

#whydPlayer .volumePanel .progressTrack > .progressCursor {
  position: absolute;
  top: -2px;
  right: -6px;
  width: 8px;
  height: 8px;
  background-color: white;
  border-radius: 4px;
}

#whydPlayer .progressTrack > .progressCursor {
  display: none;
}

#whydPlayer .progressTrack.dragging > .progressCursor,
#whydPlayer:hover .progressTrack > .progressCursor {
  display: block;
}

#whydPlayer #trackDragPos {
  display: none;
  position: absolute;
  background-color: #1a1a1a;
  padding: 2px;
  border-radius: 4px;
  top: -30px;
  left: 0;
  color: #ddd;
}

/* share popin */

#sharepopin-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
}

#sharePopin,
.dlgVote {
  position: absolute !important;
  width: 209px;
  top: 24px;
  right: 28px;
  border: 1px solid #ddd;
  padding: 8px;
  overflow: visible;
  border-radius: 3px;
  background: #fff;
  box-shadow: 0 0px 3px rgba(0, 0, 0, 0.2);
  z-index: 9999;
}

.dlgVote {
  width: 119px;
}

#sharePopin .pointe,
.dlgVote .pointe {
  position: absolute;
  top: -12px;
  left: 22px;
  background: url('/images/pointe-share.png') no-repeat;
  width: 28px;
  height: 12px;
}

#sharePopin .sharing,
.dlgVote .sharing {
  border-bottom: 1px solid #ddd;
  padding: 5px 0;
  margin-bottom: 5px;
  height: 27px;
  overflow: hidden;
}

.dlgVote .sharing {
  height: 53px;
  border: none;
}

.dlgVote iframe {
  display: block;
  width: 100px;
  height: 20px;
}

.dlgVote .twitter-share-button {
  margin-bottom: 10px;
}

#sharePopin .sharing .twitter-share-button {
  float: left;
  width: 90px;
  height: 20px;
  margin-left: 5px;
}

#sharePopin .sharing .fblikeBtn {
  float: left;
  border: none;
  overflow: hidden;
  width: 90px;
  height: 21px;
}

#sharePopin p {
  margin: 5px;
  margin-top: 8px;
  font-size: 11px;
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
}

#sharePopin input {
  margin: 0 5px;
  font-size: 8px;
  padding: 6px;
  width: 170px;
  color: #a5acb1;
  border: 1px solid #ccc;
  border-radius: 2px;
}

#sharePopin input:focus {
  outline: none;
}

/* tooltips (from ui.css) */

.toolTip {
  position: relative;
  text-decoration: none !important;
}

.toolTipWrapper {
  position: absolute;
  top: 20px;
  display: none;
  color: #fff;
  font-size: 9pt;
  white-space: nowrap;
  z-index: 10;
}

.toolTipMid {
  padding: 5px;
  background: #333;
}

/* page loader */

#pageLoader {
  position: fixed;
  top: -100px;
  left: -100px;
  width: 72px;
  height: 72px;
  background-image: url('/images/pageloarder.gif');
  background-color: black;
  opacity: 0;
  border-radius: 60px;
  transform: scale(1.3);
  z-index: 9999;
}

.loading #pageLoader {
  top: 50%;
  left: 47.5%;
  opacity: 0.5;
  transition: opacity, transform 0.2s;
  transform: scale(1);
}

/* query.mentionsInput.css */

.mentions-input-box {
  position: relative;
  background: #fff;
}

.mentions-input-box > * {
  width: 100%;
  display: block;
  padding: 8px;
  outline: 0;
  resize: none;
  box-sizing: border-box;
  font-family: 'AvenirNext', Helvetica, Arial, Sans-serif;
  font-size: 12px;
  line-height: 15px;
  border-radius: 3px;
}

.mentions-input-box textarea {
  position: relative;
  border: 1px solid #dcdcdc;
  height: 18px;
  overflow: hidden;
  background: transparent;
  color: #5f5f5f;
}

.mentions-autocomplete-list {
  display: none;
  background: #fff;
  border: 1px solid #b2b2b2;
  position: absolute;
  left: 0;
  right: 0;
  height: auto;
  padding: 0;
  z-index: 10000;
  margin-top: -2px;
}

.mentions-autocomplete-list ul {
  margin: 0;
  padding: 5px 0;
}

.mentions-autocomplete-list li {
  background-color: #fff;
  padding: 5px 10px;
  margin: 0;
  width: auto;
  height: 26px;
  line-height: 26px;
  overflow: hidden;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
  color: #3f6191;
  font-family: 'AvenirNext', Helvetica, Arial, Sans-serif;
}

.mentions-autocomplete-list li > img,
.mentions-autocomplete-list li > div.icon {
  width: 26px;
  height: 26px;
  float: left;
  margin-right: 7px;
  border-radius: 2px;
}

.mentions-autocomplete-list li em {
  font-family: 'AvenirNext-DemiBold', Helvetica, Arial, Sans-serif;
  font-weight: bold;
  font-style: none;
}

.mentions-autocomplete-list li.active {
  background-color: #417bd1;
  border-radius: 0px;
  color: #fff;
}

.mentions {
  position: absolute;
  left: 1px;
  right: 0;
  top: 1px;
  bottom: 0;
  padding: 8px;
  color: #fff;
  overflow: hidden;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.mentions-input-box .mentions > div {
  color: #fff;
  white-space: pre-wrap;
  width: 100%;
  height: 100%;
  line-height: 15px;
}

.mentions-input-box .mentions > div > strong {
  font-family: 'AvenirNext', Helvetica, Arial, Sans-serif;
  font-weight: normal;
  background: #d8dfea;
}

.mentions-input-box .mentions > div > strong > span {
  filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
}

/* PAGE PUBLIC TRACK */

/* Avgrund.js */

.avgrund-popin {
  position: absolute;
  background: #fff;
  padding: 0;
  overflow-y: scroll;
  visibility: hidden;
  opacity: 0;
  filter: alpha(opacity=0);
  top: 50%;
  left: 50%;
  z-index: 1000;
  transform: scale(0.8);
}

.avgrund-overlay {
  background: #000;
  width: 100%;
  position: absolute;
  top: -1500px;
  left: 0;
  z-index: 101;
  visibility: hidden;
  opacity: 0;
  filter: alpha(opacity=0);
}

body.avgrund-ready,
.avgrund-ready .avgrund-popin,
.avgrund-ready .avgrund-overlay {
  transform-origin: 50% 50%;
  transition: 0.2s all ease-out;
}

body.avgrund-active {
  overflow: hidden;
}

.avgrund-active .avgrund-popin {
  visibility: visible;
  opacity: 1;
  filter: alpha(opacity=100);
  transform: scale(1);
}

.avgrund-active .avgrund-overlay {
  visibility: visible;
  opacity: 0.5;
  filter: alpha(opacity=50);
  height: 20000px;
}

.avgrund-popin.stack {
  transform: scale(1.2);
}

.avgrund-active .avgrund-popin.stack {
  transform: scale(1);
}

.avgrund-active .avgrund-blur {
  filter: blur(1px);
}

.avgrund-popin .video {
  padding: 40px;
}

/* Optional close button styles */

.avgrund-popin .close {
  position: absolute;
  right: 0;
}
.avgrund-close {
  text-indent: -9999px;
  background: url(/images/icon-close-big.png) no-repeat;
  width: 24px;
  height: 23px;
  border: none;
  zoom: 1;
  float: right;
  margin: 20px;
}


text:
package main

// This file replaces main.go when running godoc under app-engine.
// See README.godoc-app for details.

import (
	"archive/zip"
	"log"
	"path"

	"github.com/zengbo/go.tools/godoc"
	"github.com/zengbo/go.tools/godoc/static"
	"github.com/zengbo/go.tools/godoc/vfs"
	"github.com/zengbo/go.tools/godoc/vfs/mapfs"
	"github.com/zengbo/go.tools/godoc/vfs/zipfs"
)

func init() {
	playEnabled = true

	log.Println("initializing godoc ...")
	log.Printf(".zip file   = %s", zipFilename)
	log.Printf(".zip GOROOT = %s", zipGoroot)
	log.Printf("index files = %s", indexFilenames)

	goroot := path.Join("/", zipGoroot) // fsHttp paths are relative to '/'

	// read .zip file and set up file systems
	const zipfile = zipFilename
	rc, err := zip.OpenReader(zipfile)
	if err != nil {
		log.Fatalf("%s: %s\n", zipfile, err)
	}
	// rc is never closed (app running forever)
	fs.Bind("/", zipfs.New(rc, zipFilename), goroot, vfs.BindReplace)
	fs.Bind("/lib/godoc", mapfs.New(static.Files), "/", vfs.BindReplace)

	corpus := godoc.NewCorpus(fs)
	corpus.Verbose = false
	corpus.MaxResults = 10000 // matches flag default in main.go
	corpus.IndexEnabled = true
	corpus.IndexFiles = indexFilenames
	if err := corpus.Init(); err != nil {
		log.Fatal(err)
	}
	go corpus.RunIndexer()

	pres = godoc.NewPresentation(corpus)
	pres.TabWidth = 8
	pres.ShowPlayground = true
	pres.ShowExamples = true
	pres.DeclLinks = true

	readTemplates(pres, true)
	registerHandlers(pres)

	log.Println("godoc initialization complete")
}