@font-face {
  font-family: source-sans-pro;
  font-weight: normal;
  font-style: normal;
  src: url('/static/font/source_sans_pro_regular.ttf'); }

  @font-face {
    font-family: source-sans-pro;
    font-weight: bold;
    src: url('/static/font/source_sans_pro_bold.ttf'); }

    @font-face {
      font-family: source-sans-pro;
      font-weight: 500;
      src: url('/static/font/source_sans_pro_semibold.ttf'); }

      @font-face {
        font-family: source-sans-pro;
        font-weight: 300;
        src: url('/static/font/source_sans_pro_light.ttf'); }

        html, body {
          margin: 0;
          padding: 0;
          height: 100%;
          width: 100%; }

          a {
            text-decoration: none; }
            a:hover {
              color: #37f;
              text-decoration: underline; }

p {
  margin: 0 0 0.5em 0; }

  [type='text'], [type='password'] {
    font-family: source-sans-pro;
    font-size: 1em;
    padding: 0.2em 0.3em;
    border: solid 1px #ddd;
    border-radius: 0.1em;
    background: #fff;
    height: 2em;
    box-sizing: border-box; }
    [type='text']:hover, [type='password']:hover {
      background: #fafafa; }
      [type='text']:focus, [type='password']:focus {
        background: #fff; }

[type='submit'] {
  font-family: source-sans-pro;
  font-size: 1em;
  padding: 0.3em 0.6em;
  background: #d7d7d7;
  border: solid 1px #bbb;
  border-radius: 0.1em;
  cursor: pointer;
  height: 2em;
  box-sizing: border-box; }
  [type='submit']:hover {
    background: #e3e3e3; }
    [type='submit']::-moz-focus-inner {
      padding: 0;
      border: 0; }

.site {
  font-family: source-sans-pro;
  font-size: 0.9em; }
  .site__header {
    background: #e5e6e7;
    border-bottom: 1px solid #ddd; }
    .site__header-content {
      width: 60em;
      margin: 0 auto; }
      .site__messages {
        padding: 0;
        margin: 0;
        list-style-type: none; }
        .site__body {
          padding: 1.2em 0.8em; }
          .site__body-content {
            width: 60em;
            margin: 0 auto; }

.register__notice {
  margin: 0 0 1em 0;
  text-align: center; }
  .register__form {
    margin: auto; }

.login__form {
  margin: auto; }

.notice {
  margin: 0;
  color: #777; }

  .flash-message {
    border: 1px solid #97c097;
    padding: 0.4em 0.8em;
    background: #ddf8dd; }
    .flash-message__content {
      width: 60em;
      margin: 0 auto; }
      .flash-message--error {
        background: #ffd6d6;
        border-color: #ddaeae; }
        .flash-message--notice {
          background: #b7bbcb;
          border-color: #9a9fb5; }

.header {
  padding: 0.7em 0.5em 0.4em 0.5em;
  display: table; }
  .header > * {
    display: table-cell;
    vertical-align: middle; }
    .header__logo {
      width: 100%; }
      .header__logo img {
        width: 12.12em;
        height: 2em; }
  .header__user {
    padding: 0 0 0 3em;
    text-align: right; }

.table {
  display: table; }
  .table__row {
    display: table-row; }
    .table__cell {
      display: table-cell;
      padding: 0.2em; }
      .table__error-row > .table__cell {
        padding: 0; }
        .table input {
          width: 100%;
          min-width: 17em; }

.user {
  display: table;
  min-width: 9em;
  text-align: left; }
  .user > * {
    display: table-cell;
    vertical-align: middle; }
    .user a {
      color: #000; }
      .user__icon {
        padding-top: 0.2em; }
        .user__icon img {
          height: 1em;
          width: 1.24em; }
  .user__login {
    padding: 0 0 0 0.5em; }
    .user__name {
      padding: 0 0 0 0.5em;
      font-weight: bold; }
      .user__logout {
        padding: 0 0 0 0.3em; }

.field-errors {
  padding: 0;
  margin: 0;
  list-style-type: none; }
  .field-errors__element {
    background: #fdd;
    padding: 0.2em;
    margin: 0 0.2em 0.5em 0.2em;
    border: solid 1px #faa;
    display: inline-block; }

@media (max-width: 58em) {
  .site__header-content, .site__body-content {
    width: 100%;   }
  .flash-message__content {
    width: 100%;   }
}
