/*** __action/common **/
html,body{width:100%;height:100%;}
html,body{margin:0;padding:0;}
*{box-sizing:border-box;}
body{display:flex;flex-direction:column;justify-content:space-between;}
a:link,a:active{text-decoration:none;color:inherit;}
a:hover{font-weight:bold;}
a,.selectable,.clickable,.selectable *,.clickable *{cursor:pointer;}
._mode_sketch{overflow: hidden;border: dotted 1px red;position:relative;}
._mode_sketch_description{position:absolute;top:0;left:0;font-size:2rem;color:#ccc;font-weight:bold;}
.inner{height:100%;width:100%;}
.esp-block-bar{display:flex;justify-content:space-between;align-items:center;margin:0;}
.esp-block-right-align {text-align:right;}
.esp-block-thin{height:2rem;}
.esp-block-thin h1{font-size:1rem;}
.esp-block-right-align {text-align:right;}
.esp-block-full-wide {width:100%;}
.esp-block-modest h2,.esp-block-modest h3,.esp-block-modest h4,.esp-block-modest h5,.esp-block-modest h6 {margin-top:0;margin-bottom:0;}
.esp-block-center{display:flex;justify-content:center;align-items:center;flex-direction:column;}
.esp-block-center-horizontal{display:flex;align-items:center;flex-direction:column;}
.preparing-target{position:relative;}
.preparing-cover{background-color:black;opacity:0.4;position:absolute;left:0;top:0;right:0;bottom:0;font-size:8rem;text-align:center;color:white;}
.preparing-cover span{position:absolute;top:50%;left:50%;transform: translateY(-50%) translateX(-50%);}

/***end of __action/common ***/

/*** __action/block **/
.esp-block-fixed{}
.notify{}
#error_box{}
#info_box{position:fixed;top:0;left:0;width:100%;height:1.5rem;background-color:yellow;opacity:0.3;color:#333;z-index:10000;}
#confirm_box{}
/***end of __action/block ***/

/*** __action/block/loading **/
.overlay {
  position:fixed;
  top:0;
  left:0;
  bottom:0;
  right:0;
  z-index:10000;
  background-color: white;
  background-image: url();
  background-repeat: no-repeat;
  background-position: center;
  display:flex;
  align-content: center;
  justify-content: center;
  align-items: center;
}
/***end of __action/block/loading ***/

/*** __action/block/lifestage **/
.esp-lifestage {
  position:fixed;
  top:0;
  left:0;
  bottom:0;
  right:0;
  z-index:-1;
  background-image: url(/_esp/img/underconst.png);
  opacity: 0.02;
}
/***end of __action/block/lifestage ***/

/*** __action/block/list/flex **/
.esp-list-flex>.inner{
  width:100%;
}
@media screen and (min-width:600px) {
  .esp-list-flex .body{
    display:table;
  }
  .esp-list-flex .body dl{
    display:table-row;
  }
  .esp-list-flex .body dt{
    display:none;
  }
  .esp-list-flex .body dd{
    display:table-cell;
    border:1px solid gray;
    margin-inline-start: 0px;
    padding: 5px;
  }
}
@media screen and (max-width:600px) {
  .esp-list-flex .body dl{
    display:flex;
    flex-direction:column;
    border:2px solid gray;
    margin: 5px;
  }
  .esp-list-flex .body dt{
    display:none;
  }
  .esp-list-flex .body dd{
    border:1px solid gray;
    margin-inline-start: 0px;
    padding: 5px;
  }
}

/***end of __action/block/list/flex ***/

/*** __action/block/esp/tools **/
#block_esp_tools {
    position: fixed;
    width:100%;
    height:fit-content;
    bottom:0;
    right:0;
    overflow:hidden;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    background-color: black;
}
#block_esp_tools>div.toggler {
    position:absolute;
    top:0;
    right:0;
    width: 20px;
    height: 20px;
    background-color:white;
    cursor:pointer;
    display:block;
    text-align: center;
    line-height: 1.1rem;
}
#block_esp_tools>div.general {
    width:100%;
    padding: 5px;
    font-size: 7pt;
    color: white;
    text-align: right;
}
#block_esp_tools>div.general a {
    color: white;
}
#block_esp_tools_blocks_css_uploader {
    width: fit-content;
    height: fit-content;
    padding: 5px 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}
#block_esp_tools_blocks_css_uploader>* {
    margin: 0 2px;
}
#block_esp_tools_blocks_css_uploader button {
    font-size: 7pt;
    border-radius: 5px;
    height: 14pt;
    width: 48pt;
}
#block_esp_tools_blocks_css_uploader input {
    width: 80px;
}
#block_esp_tools_blocks_css_uploader a {
    font-size: 7pt;
    color: white;
}
/***end of __action/block/esp/tools ***/

/*** @@system/page **/
body>.esp-loading div{
    text-align: center;
    line-height: 6rem;
    font-size: 5vw;
    font-weight: bold;
    color: chocolate;
    text-shadow: 3px -2px pink;
/*    padding-top:200%;*/
}
#main .title {
    display: none;
}
#main {
    width: 100vw;
    padding: 0rem;
    margin: 0;
    height: calc(100% - 6rem);
    overflow: hidden;
    position: relative;
}
#main>.inner {
    position: relative;
    width: 200vw;
    height: 100%;
    left: -100vw;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
    align-items: center;
}
#one_theme {
    width: 100vw;
    height: 100%;
    display: flex;
    flex-direction: column;
}
#themes {
    width: 100vw;
    height: 100%;
}

@media screen and (min-width:420px) {
    #one_theme {
        flex-direction: row;
    }
    #result {
        overflow: auto;
    }
    #main #result div.rate p span {
        font-size: 7vw;
    }
    #main #result div.rate.sub p span {
        font-size: 6vw;
    }
}

/***end of @@system/page ***/

/*** header **/
#header {
    height: fit-content;
    width: 100%;
    white-space: nowrap;
    padding: 0px 0px 0px 8px;
    color: mediumblue;
    z-index: 10;
}
#header,
#header a {
    color: mediumblue;
}
#header .title {
    font-size: 1.2rem;
    display: inline-block;
    margin: 0;
    background-image:url(/img/graph01_circle.png);
    padding-left: 47px;
    padding-top: 9px;
    background-size: contain;
    background-repeat: no-repeat;
    height: 41px;
    margin-top: 5px;
}
#header span>a {
    margin: 0 10px;
    font-size: 0.9rem;
    color: mediumblue;
}
#header a:hover {
    color: blue;
}
@media screen and (max-width:680px) {
    #header span>a>label {
        display: none;
    }
    #header span.to_heroes>a::before {
        font-family:"Font Awesome 5 Free","Font Awesome 5 Brands";
        content: '\f6fa';
        font-weight: 900;
    }
    #header span.to_self>a::before {
        font-family:"Font Awesome 5 Free","Font Awesome 5 Brands";
        content: '\f0d0';
        font-weight: 900;
    }
    #header span.to_onemore>a::before {
        font-family:"Font Awesome 5 Free","Font Awesome 5 Brands";
        content: '\f4ce';
        font-weight: 900;
    }
}

/***end of header ***/

/*** main **/
#main .main-button {
    width: 90%;
    height: 30vh;
}
#main .main-button a {
    width: 100%;
    height: 100%;
    color: white;
    white-space: nowrap;
    font-size: 11vw;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: orange;
    border-radius: 39px;
}
#main .main-button a:hover {
    background-color: gold;
}
@media screen and (min-width:680px) {
    #main .main-button a {
        font-size: 4.6rem;
    }
}

/***end of main ***/

/*** result **/
#result {
    width: 100vw;
    height: auto;
    border-bottom:blue 1px solid;
}
#main #result>.title{
    display:block;
    background-color: lightgreen;
    margin: 2px 0;
    text-align: center;
}
#main #result p{
    margin:2px 0 2px 10px;
}
#main #result .date span,
#main #result .label span,
#main #result .rate span{
    font-weight: bold;
    font-size: 1rem;
}
#main #result div.rate p {
    text-align: center;
}
#main #result div.rate p span {
    font-size: 13vw;
}
#main #result div.rate.sub p span {
    font-size: 9vw;
}

/***end of result ***/

/*** profile **/
#profile{
    width: 100vw;
    height: auto;
    overflow: auto;
}
#profile>.inner {
    height: fit-content;
    padding-bottom: 20px;
}/*
#profile fieldset label{
    display: inline-block;
    white-space: nowrap;
    margin: 5px 10px;
}*/
#profile fieldset .field{
    margin: 10px 0;
}

#profile fieldset .radio {
    position: relative;
}

#profile fieldset input {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
}

#profile fieldset label {
    display: inline-block;
    padding: 0.5rem 1rem;
    margin-right: 18px;
    border-radius: 3px;
    transition: all .2s;
}

#profile fieldset input:checked + label {
    background: #B54A4A;
    color: #fff;
    text-shadow: 0 0 1px rgba(0,0,0,.7);
}

#profile fieldset input:focus + label {
    outline-color: #4D90FE;
    outline-offset: -2px;
    outline-style: auto;
    outline-width: 5px;
}

/***end of profile ***/

/*** footer **/
#footer {
    font-size: 0.6rem;
    height: 3.5rem;
    width: 100%;
    bottom: 0;
    left:0;
    position: fixed;
    background-color: aqua;
    white-space: nowrap;
    padding: 4px 0 4px 8px;
    color: mediumblue;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, .5);
}
#footer .title {
    display: none;
}
#footer label {
    color: mediumblue;
    font-size: 0.8rem;
}
#footer span {
    width: 30%;
    text-align: center;
}
#footer p {
    color: mediumblue;
}
@media screen and (max-width:400px) {
    #footer label {
        font-size: 0.6rem;
    }
}

/***end of footer ***/

