html, body {
  font-family: "Avenir Next", Avenir, sans-serif;
  font-weight: 300;
  color: #fff;
  background-color: #34323d;
  margin: 0; }

html, input, button {
  font-size: 3.5vw; }
  @media screen and (min-width: 520px) {
    html, input, button {
      font-size: 18px; } }
  @media screen and (max-width: 320px) {
    html, input, button {
      font-size: 10px; } }

a {
  font-weight: 400;
  color: #5c3ae8;
  text-decoration: none; }
  a:visited {
    color: #5c3ae8; }

h1, h2, h3, h4, h5, h6 {
  font-size: 1rem;
  font-weight: 500;
  margin: 1.5rem 0 0.5rem 0;
  padding: 0; }

h1 {
  font-size: 2rem; }

h2 {
  font-size: 1rem;
  font-weight: 500; }

h3 {
  font-size: 1rem;
  font-style: italic;
  font-weight: 400; }

h1 {
  position: absolute;
  top: 0;
  left: .5rem;
  writing-mode: vertical-rl;
  text-orientation: upright;
  color: #fff;
  opacity: 0.15; }

@media screen and (max-width: 520px) {
  h1 {
    display: none; }
  .container {
    padding-left: 1.5rem !important; } }

p {
  margin: 2rem 0 .5rem 0;
  padding: 0;
  color: #e0e0e0; }

tt {
  font-family: 'Courier New', monospace;
  font-weight: 400;
  font-size: 80%;
  padding-right: .4rem;
  color: #666666; }
  tt.url {
    color: #e0e0e0; }

ul.players {
  list-style-type: none;
  padding: 0; }
  ul.players li {
    display: inline-block;
    margin-right: 1rem;
    width: auto; }

input, textarea, button {
  font-family: 'Avenir Next', Avenir, sans-serif;
  font-weight: 400;
  font-size: 80%;
  width: calc(100% - 1.4rem);
  margin: .5rem 0 1rem 0;
  padding: .5rem .7rem;
  background-color: #006158;
  color: #00c381;
  border: 0;
  border-radius: 0; }
  input[type='checkbox'], textarea[type='checkbox'], button[type='checkbox'] {
    width: auto;
    margin-left: 1rem; }
  input[type='checkbox']:first-of-type, textarea[type='checkbox']:first-of-type, button[type='checkbox']:first-of-type {
    width: auto;
    margin-left: 0; }
  input[disabled], textarea[disabled], button[disabled] {
    background-color: #666666; }
    input[disabled]:hover, textarea[disabled]:hover, button[disabled]:hover {
      background-color: #666666; }
  input::-webkit-input-placeholder, textarea::-webkit-input-placeholder, button::-webkit-input-placeholder {
    color: #e0e0e0; }
  input:active, input:focus, input:hover, textarea:active, textarea:focus, textarea:hover, button:active, button:focus, button:hover {
    border-color: #ff4e3f;
    outline: none; }
  input.error, input:focus.error, input:active.error, textarea.error, textarea:focus.error, textarea:active.error, button.error, button:focus.error, button:active.error {
    background-color: #fff4f5;
    border-color: #fd253a; }

button, .button, input[type='submit'] {
  display: inline-block;
  padding: 0.7rem;
  width: 100%;
  background-color: #006158;
  color: white;
  border: 0;
  border-radius: 0;
  text-align: center;
  font-weight: 500;
  cursor: pointer; }
  button:hover, .button:hover, input[type='submit']:hover {
    background-color: #00c381; }

button.clear-all {
  width: auto;
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  background-color: #b21a29;
  opacity: 0.2; }

.container {
  margin: 0 auto;
  padding: 0 1.5rem 0 3.5rem;
  max-width: 1000px; }

.request {
  border: 3px solid #ffa900;
  color: #ffa900;
  font-weight: 400;
  padding: 1rem;
  margin: 2rem 0; }
  .request.bid .bid-label {
    width: auto;
    white-space: nowrap;
    margin-right: 1rem; }
  .request.bid .bid-options {
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
    .request.bid .bid-options button {
      padding: 2rem;
      margin: .5rem 1rem .5rem 0;
      text-align: center;
      width: auto; }

h2 .trump {
  font-weight: 300;
  padding-left: 2rem; }

table.score {
  border: 2px solid #666666;
  border-spacing: 0;
  font-size: 80%;
  margin: 1rem 0;
  width: 100%; }
  table.score tr:nth-child(odd) {
    background-color: rgba(255, 255, 255, 0.05); }
  table.score tr.score-header, table.score tr.score-totals, table.score td:first-child {
    background-color: rgba(0, 0, 0, 0.2); }
  table.score tr.score-totals td {
    border-top: 3px double #666666;
    font-weight: 600;
    color: #666666; }
  table.score th {
    font-weight: 600;
    border-bottom: 1px solid #666666;
    padding: .25rem 0; }
    table.score th:first-child {
      width: 3rem;
      border-right: 1px solid #666666; }
    table.score th.beginner {
      text-decoration: underline; }
  table.score td {
    padding: .5rem 0;
    text-align: center;
    font-weight: 400; }
    table.score td .score {
      margin-top: .2rem;
      font-weight: 600;
      color: #666666; }
    table.score td:first-child {
      border-right: 1px solid #666666; }

.card {
  position: relative;
  width: 4rem;
  background-color: #69284e;
  background-color: #000;
  text-align: center;
  padding: 1.5rem .5rem 2rem .5rem;
  margin-right: 1rem;
  border-radius: .5rem;
  font-weight: 600;
  font-size: 150%; }
  .card .suit {
    margin-bottom: 1rem;
    font-weight: 400;
    opacity: .6; }
  .card .player {
    position: absolute;
    bottom: 0.2rem;
    right: 0.2rem;
    font-size: 50%;
    font-weight: 400;
    color: #666666; }

.card-text {
  font-weight: 500;
  padding-left: .3rem; }
  .card-text .player {
    padding-right: 0.1rem;
    color: #34323d; }

.card.placeholder, .card-text.placeholder {
  opacity: 0.2; }

.card.R, .card-text.R {
  color: #fd253a; }

.card.G, .card-text.G {
  color: #00c381; }

.card.B, .card-text.B {
  color: #5c3ae8; }

.card.Y, .card-text.Y {
  color: #ffa900; }

.card.L, .card-text.L {
  color: #bf00ff; }

.card.M, .card-text.M {
  color: #ff0079; }

.card.Z, .card-text.Z {
  color: #fff; }

.card.N, .card-text.N {
  color: #e0e0e0; }

.done {
  margin-top: 2rem; }

.hand, .table {
  display: flex;
  align-items: end; }
  .hand.request .card, .table.request .card {
    cursor: pointer;
    border: 1px solid #ffa900; }

.messages {
  position: fixed;
  top: 0;
  right: 0;
  font-size: 70%;
  text-align: right;
  background-color: #000;
  opacity: 0.5;
  padding: 0.5rem 1rem; }
  .messages .no1 {
    opacity: .8; }
  .messages .no2 {
    opacity: .6; }
  .messages .no3 {
    opacity: .4; }
  .messages .no4 {
    opacity: .2; }
  .messages .waiting {
    padding-bottom: 0.3rem; }
