:root{
    --header-height:70px;
    --subheader-height:60px;
    --footer-height:30px;
    --tab-margin:1.2rem;
}

html,
body {
    margin:0;padding:0;
    color:var(--char);
    background-color: var(--back);
    caret-color: transparent;
}
*, 
*::before, 
*::after {
    box-sizing: border-box;
}
*.hidden{
    visibility:hidden !important;
}
*.nodisp{
    display:none !important;
}

button,
input,
select,
textarea {
    font-family : inherit;
    font-size: 1rem;
    caret-color: var(--image-color);
}
input[type="text"],
input[type="password"]{
    outline:none;
    border:none;
    border-bottom:solid 1px var(--image-color-lean1);
}
select,
textarea{
    border:solid 1px var(--image-color-lean1);
}
input[type="date"]{
    width:150px;
}

*:hover,
*:active,
*:focus-visible{
    outline:none;
}

a,
*.psudo_a {
    color:var(--link);
    text-decoration: none;
}
a:visited{
    color:var(--link-visited);
}
a:active,
*.psudo_a:active{
    color:var(--link-active);
}
a:hover,
*.psudo_a:hover{
    color:var(--link-hover);
    text-decoration: underline;
}

table{
    border-collapse: collapse;
}
td{
    padding:0.2rem 0.4rem;
    vertical-align:top;
}

ul,
ol{
    text-align: left;
}

input.dummy{
    width: 1px !important;
    padding-left :0 !important;
    padding-right :0 !important;
    border-left :none !important;
    border-right :none !important;
    visibility: hidden !important;
}

span.dummybox{
    display: inline-block;
    width:4rem;
    margin:0.1rem 0.3rem;
    border:1px solid var(--table-border);
}

img.cmd{
    visibility: hidden;
}

/*
 * header
 */
header > table.pageTop{
    width:100%;
    height:var(--header-height);
    background-color: var(--image-color);
    color:var(--header-color);
}
 
header > table.pageTop th{
    padding:0.3rem;
    vertical-align: top;
}

header > table.pageTop th img,
header > table.pageTop th svg{
    width:2.8rem;
    height:2.8rem;
    transform:translateY(calc((var(--header-height) - 0.3rem - 0.3rem - 2.8rem - 0.1rem) / 2));
}

header > table.pageTop  th.iconBox{
    width:4rem;
}
header > table.pageTop  th.iconBox > a{
    display: block;
}
header > table.pageTop  th.iconBox svg path{
    fill:var(--header-color);
}

header > table.pageTop th.titleBox{
    font-weight: 800;
    width:calc(100% - 2.8rem - 2.8rem);
    text-align:left;
}
header > table.pageTop th.titleBox > h1{
    display: inline-block;
    font-size:1.4rem;
    /*transform: translateY(calc((var(--header-height) - 0.3rem - 0.3rem - 100% - 0.3rem) / 2));*/
}

header > table.pageTop th.idfBox {
    width:2.8rem;
}

header > table.pageTop th.titleBox > a{
    float:left;
    margin-left: 0.25rem;
    margin-right: 0.25rem;
}
header > table.pageTop th.titleBox > a.right{
    float:right;
}
header > table.pageTop th.titleBox > a > svg.cmd path,
header > table.pageTop th.titleBox > a > svg.cmd polygon,
header > table.pageTop th.titleBox > a > svg.cmd rect,
header > table.pageTop th.titleBox > a > svg.cmd ellipse{
    fill:var(--header-color);
}
header > table.pageTop th svg:hover path{
    text-shadow: var(--text-shadow);
}

div.prfBox{
    position: relative;
    z-index:4;
}
div.prfBox a > img{
    border-radius: 50%;
}
div.prfBox:empty{
    display:none;
}
div.prfBox > div.userboxouter{
    display: none;
    position: absolute;
    right: 0;
    top:0;
    padding:1rem;
}
div.prfBox > a:hover + div.userboxouter,
div.prfBox > div.userboxouter:hover{
    display: block;
}
div.prfBox > div.userboxouter > div.userboxinner{
    margin-top:3.2rem;
    background-color: var(--back);
    padding:0;
    box-shadow: var(--mordal-shadow);
    border-radius: 5px;
    min-width:350px;
}
div.userboxinner > div.username{
    padding:0.5rem;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    background-color: var(--image-color);
    color:var(--header-color);
    text-align: center;
    font-size: 1.2rem;
}
div.userboxinner > div.namecard{
    text-align:left;
}
div.userboxinner > div.namecard > *{
    display: inline-block;
}
div.userboxinner > div.namecard > div{
    width:calc(100px + 0.5rem + 0.5rem);
}
div.userboxinner > div.namecard > div > img{
    width:100px;
    height:100px;
    margin: 0.5rem;
    transform: none;
}
div.userboxinner > div.namecard > table {
    margin: 0.5rem 0;
}
div.userboxinner > div.namecard > table > tbody{
    height:100px;
}
div.userboxinner > div.namecard > table > tbody > tr > td{
    vertical-align: middle;
    text-align: center;
    width:220px;
}

header > div.subMenu{
    border-bottom:solid 1px var(--table-border-middle);
    background-color: var(--subheader-background);
}
header > div.subMenu > a {
    display: inline-block;
    padding:0.8rem 1.2rem;
    border-right:solid 1px var(--table-border-middle);
    text-align: center;
    text-decoration: none;
    font-size:1.1rem;
    margin-bottom: -1px;
    height:calc(var(--subheader-height) - 1px)
}
header > div.subMenu > a:before{
    content:"▼▼▼";
    color:var(--image-color);
    font-size: 1rem;
    display: block;
    margin-top: -1.25rem;
    margin-bottom:-0.1rem;
}
header > div.subMenu > a:not(.selected){
    border-bottom:solid 1px var(--table-border-middle);
    background-color: var(--subheader-background);
}
header > div.subMenu > a:not(.selected):before{
    opacity:0;
}
header > div.subMenu > a.selected{
    border-bottom:solid 1px var(--back);
    background-color: var(--back);
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
}

/*
 * section (main)
 */

section.main{
    background-color: var(--back);
}
header.menu + section.main{
    min-height: calc(100vh - var(--header-height) - var(--subheader-height) - var(--footer-height) - 0.2rem);
    overflow: auto;
}
header.plain + section.main{
    min-height: calc(100vh - var(--header-height) - var(--footer-height) - 0.2rem);
}

/*
 * footer
 */

 footer{
    height:var(--footer-height);
    text-align:right;
 }
footer.rich > div.footerMenu{
    background-color: var(--back);
}

footer address > img{
    height:87px;
    padding:10px;
    background-color: var(--back);
}

footer div.footerCommon > div{
    display:inline-block;
    font-size:0.9rem;
    padding:0.2rem 1rem;
}

/*
 * Under construction
 */
div.under_construction{
    position:absolute;
    top:calc((100vh - 20rem - 6rem) / 2);
    left:calc((100vw - 20rem) / 2);
    font-size:4rem;
    text-align: center;
}
div.under_construction > p{
    margin:0 auto;
    letter-spacing: 1rem;
}
div.under_construction > p > img {
    height:20rem;
    width:20rem;
}