/*! Site Core CSS | Version 6.0.0 | Copyright (C) sdolphin.jp | License AGPL */

/******************************************************************************
* Site Base
******************************************************************************/

* {
  box-sizing: border-box
}
body {
  margin: 0px;
  min-width: 400px;
}
#app {
  display: flex;
  flex-flow: column nowrap;
  min-height: 100vh;
  min-height: 100dvh;
}

/******************************************************************************
* Site Header
******************************************************************************/

.site-header {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  min-block-size: 1.00em;
  overflow: hidden;
  padding: 4px 16px;
}
.site-header-nav {
  display: block;
  margin-left: auto;
}
.site-header-nav-items {
  align-items: center;
  display: flex;
  flex-flow: row nowrap;
  overflow: hidden;
  height: 100%;
  margin: 0px;
  padding: 0px;
}
.site-header-nav-item {
  margin: 0px;
  margin-left: 16px;
}

/******************************************************************************
* Site Contents
******************************************************************************/

.site-contents {
  flex: 1 0 auto;
  margin: 24px;
}
.contents {
  padding: 0px;
  margin: 0px;
  margin-bottom: 3.0em;
}
.contents-title {
  margin: 0px;
  margin-bottom: 1.0em;
  padding: 0px;
}
.contents-title.add-border {
  padding-bottom: 4px;
  padding-left: 16px;
}

/******************************************************************************
* Site Contents (Error Page)
******************************************************************************/

.site-contents.http-error {
  align-items: center;
  display: flex;
  justify-content: center;
}
.contents.http-error {
  margin: 0;
  text-align: center;
  width: 90%;
}

/******************************************************************************
* Site Footer
******************************************************************************/

.site-footer {
  flex: 0 0 auto;
  min-block-size: 1.00em;
  overflow: hidden;
  padding: 4px;
}
.site-footer-nav {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-around;
  margin: 0px;
  margin-bottom: 16px;
}
.site-footer-nav-items {
  display: flex;
  flex-flow: column nowrap;
  margin: 8px;
  overflow: hidden;
  padding: 0px;
}
.site-footer-nav-item {
  margin: 0px;
  margin-bottom: 4px;
}
.site-footer-nav-item-title {
  margin-bottom: 8px;
}

/******************************************************************************
* Utility
******************************************************************************/

/* Do not visible element */
.hidden { display: none; }
/* Do not selectable element */
.no-select { -webkit-user-select: none; user-select: none; }
