@charset "utf-8";
#add_thread_dialog {
    display: none;
}
#append_thread {
    display: none;
}


body {
    margin: 0;
}

button {
    font-size: medium;
    border-radius: 4px;
    border-width: 1px;
    /* disableが自然なように、指定しないように */
    /*border-color: #888;*/
    /*color: black;*/
}
input, textarea {
    font-size: medium;
}

div#top_screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    height: 100svh;
    background-color: white;
    z-index: 100;
    transition: left .3s;
    overflow-x: hidden;
    overflow-y: scroll;
}

.in_room div#top_screen {
    left: -100vw;
}
#top_screen .header-top {
    display: flex;
    justify-content: right;
    gap: 8px;
    margin: 8px;
}

#top_screen #login {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: solid 1px #666;
    overflow: hidden;
    position: relative;
}

#top_screen #my_thumb {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

#top_screen #my_thumb_text {
    display: none;
    position: absolute;
    background-color: #2aa198;
    color: white;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    cursor: pointer;
    font-size: 15px;
    padding: 5px 0;
    box-sizing: border-box;
}


#top_screen #tools {
    width: 24px;
    display: none;
}
.logged_in #top_screen #tools {
    display: block;
}

#top_screen h1 img {
    width: 50%;
    max-width: 320px;
    display: block;
    margin: 0 auto;
}

#top_screen h1 {
    text-align: center;
    margin: 0;
}

#top_screen section {
    margin-top: 32px;
}

#top_screen p {
    margin: 0 0 8px;
    font-size: 12px;
    text-align: center;
    color: #666;
}

#top_screen ul {
    list-style-type: none;
    text-align: center;
    font-weight: bold;
    font-size: 14px;
    margin: 0;
    color: #666;
    padding: 0;
}

#top_screen ul + p {
    margin-bottom: 24px;
}

.by_room_id {
    margin: 32px 0;
    text-align: center;
}

.by_room_id input {
    font-size: 28px;
}

.by_room_id button {
    font-size: 24px;
}


#account {
    position: fixed;
    transition: bottom .3s;
    width: 100vw;
    height: 100vh;
    height: 100svh;
    box-sizing: border-box;
    bottom: -100vh;
    bottom: -100svh;
    background-color: #ddd;
    padding: 8px;
    text-align: center;
    overflow: scroll;
}

#account.open {
    bottom: 0;
}

.account_option {
    display:none;
}

#close_account {
    width: 48px;
    display: block;
    position: absolute;
    right: 32px;
}

#adhoc_settings {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #00000080;
    width: 100vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    display: none;
}
#adhoc_settings.open {
    display: block;
}
#adhoc_settings section {
    background-color: white;
    width: 70%;
    max-width: 480px;
    max-height: 80vh;
    overflow-y: scroll;
    padding: 20px;
    text-align: center;
}

#reg_required {
    margin: 20px 0;
    text-align: center;
    display: none;
}
#reg_required.open {
    display: block;
}

.logged_in #reg_required {
    display: none;
}

#top_screen #to_reg {
    background-color: blue;
    color: white;
    font-size: 20px;
    cursor: pointer;
}
.logged_in #room_button {
    background-color: blue;
}
.logged_in #room_button.disabled {
    background-color: #CCC;
}


#adhoc_settings .adhoc_prop {
    margin-top: 40px;
}

#go_anonymous {
    margin-top: 10px;
}

.after_login {
    display: none;
}
#to_login {
    text-align: center;
    margin-bottom: 24px;
}
.logged_in .before_login {
    display: none;
}
.logged_in .after_login {
    display: block;
}

.for_registered {
    display: none;
}

.registered .login_required{
    display: none;
}

.registered .for_registered {
    display: block;
}
#change_reg_photo {
    display: none;
}

.mod {
    display: none;
    font-size:10px;
}
.mod label {
    color: darkblue;
    cursor: pointer;
    font-weight: bold;
}
.modify_mode .mod {
    display: block;
}
.org {
    display: block;
}
.modify_mode .org {
    display: none;
}

#reg_box {
    max-width: 350px;
    width: 90%;
    margin: 0 auto;
    padding: 20px 0;
}
#reg_box.modify_mode  {
    background-color: #f0f0f0;
}

#reg_box dl {
    margin: 0;
}

.org p {
    font-size: 16px;
    color: #000;
}
#reg_box dt {
    font-size: 80%;
    color: #333;
}

#reg_box dd {
    margin: 0;
}

#set_mod_mode {
    cursor: pointer;
    color: darkblue;
    font-weight: bold;
}

#reg_thumb_box{
    position: relative;
    width: 80px;
    height: 80px;
    margin: 0 auto;
    border-radius: 20px;
    border: solid 1px #aaa;
    overflow: hidden;
}

#reg_thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#reg_thumb_text {
    display: none;
    position: absolute;
    background-color: #2aa198;
    color: white;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    font-size: 36px;
    padding: 12px 0;
    text-align: center;
    cursor: default;
    box-sizing: border-box;
}

button#modify_user_profile {
    margin-top: 32px;
}

#account_info {
    display: none;
}
#account_info.more {
    display: block;
}
#more_guide {
    color: red;
}

/*.auth_info {*/
/*    display: flex;*/
/*    align-items: start;*/
/*    gap: 24px;*/
/*}*/

#thumb_box {
    position: relative;
    width: 80px;
    margin: 0 auto;
}
.size0 img{
    opacity: 0.5;
}
.size0::after{
    content: url(../img/loading.gif);
    position: absolute;
    top: 0;
    left: 0;
}
.auth_info img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 50%;
    border: solid 1px #aaa;
}
.img_button {
    margin-bottom: 20px;
    cursor: pointer;
    color: darkblue;
}
#change_profile_photo {
    display: none;
}
.auth_info dl {
    margin: 0;
}
.auth_info p {
    margin-bottom: 20px;
}
.auth_info dt {
    font-weight: bold;
    color: #666;
    font-size: 80%;
}
.auth_info dd {
    margin: 0 0 2px;
    color: black;
}

#nickname, #input_nickname {
    width: 160px;
}
#email, #input_email {
    width: 300px;
}

.preset_room_id {
    display: none;
}

.key_box {
    /* inputだけを中央にするためにflexをやめる */
}

#room_key {
    text-align: center;
    width: 160px;
    height: 42px;
    box-sizing: border-box;
    border-radius: 0;
    font-family: monospace;
}

#room_button {
    height: 42px;
    padding: 4px;
    box-sizing: border-box;
    position: absolute; /*boxのみを中央寄せに　*/
    cursor: pointer;
}

#recent_rooms {
    display: none;
}
#recent_rooms.open {
    display: block;
}
#recent_rooms h2 {
    font-size: 20px;
    text-align: center;
}

#room_settings {
    position: fixed;
    top:0;
    left: -100vw;
    width: 100vw;
    height: 100vh;
    height: 100svh;
    background-color: #eee;
    box-sizing: border-box;
    padding: 20px;
    z-index: 200;
    transition: left .3s;
    overflow-y: scroll;
}

#room_settings.open {
    left:0;
}

#room_settings section {
    padding: 10px;
}

#room_settings h2 {
    font-size: 22px;
    font-weight: normal;
    border-bottom: solid 1px #aaa;
    margin: 0;
}

#room_settings dl{
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    max-width: 300px;
    margin: 8px 0;
}
#room_settings dt{
    width:70%;
    font-weight: bold;
}
#room_settings dd{
    text-align: right;
    width: 30%;
    margin: 0;
}

#room_settings ul{
    margin: 8px 0;
}
#room_settings .explain {
    margin: 0;
    color: #666;
    font-size: 14px;
}
ul#current_own, ul#history {
    margin: 12px 0;
    padding: 0 4px;
    list-style-type: none;
}
ul#current_own li,
ul#history li {
    background-color: #ccc;
    margin-bottom: 4px;
    padding: 4px;
    list-style-type: none;
}

#current_own a, #history a {
    margin: 0 14px;
}

.close_p {
    text-align: right;
    margin:0;
}
#close_settings {
    width: 46px;
    position: absolute;
    right: 5px;
    top: 5px;
}

#open_new_room {
    background: url(../img/plus.svg) no-repeat left 2px center;
    padding: 2px 6px 2px 18px;
    margin-right: 12px;
    border-radius: 4px;
}
#open_new_room.max {
    background-image: none;
    padding-left: 2px;
}

#room_limit {
    display: none;
    color: #600;
    font-size: 14px;
}

.max+#room_limit {
    display: block;
}

#about_room {
    display: none;
    position: fixed;
    width: 100vw;
    height: 100vh;
    height: 100svh;
    top: 0;
    left: 0;
    background-color: #000000aa;
    padding: 20% 20%;
}
#about_room.open {
    display: block;
}
#about_room section {
    width: 60%;
    max-height: 60vh;
    background-color: white;
}

#reg_room{
    display: none;
    border: solid 1px #888;
    padding: 20px;
    box-sizing: border-box;
    position: fixed;
    top: 0;
    left:0;
    width: 100vw;
    height: 100vh;
    height: 100svh; /* barで隠れないように */
    background-color: #00000088;
    justify-content: center;
    align-items: center;
    overflow-y: scroll;
}
#reg_room.open{
    display: flex;
}
#reg_room form{
    background-color: white;
    padding: 20px;
    width: 80vw;
    max-width: 600px;
    overflow-y: scroll;
    max-height: 90vh;
    max-height: 90svh;
    position: relative;
}
#reg_room_close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 32px;
}
img#owner_thumb {
    width: 48px;
    max-height: 48px;
    border-radius: 10px;
    border: solid 1px #888;
    object-fit: cover;
    /* margin-right: 10px; */
}

.owner_prof {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

p#owner_nickname {
    margin: 0;
}

p#owner_required {
    color: red;
    font-size: 14px;
}

p#owner_required.hide {
    display: none;
}

#reg_room p{
    margin: 0 0 10px;
}
#reg_room input[type="text"],
#reg_room textarea {
    width: 100%;
    box-sizing: border-box;
}

#reg_room input:disabled+span {
    color: #888;
}

#reg_room p.buttons{
    margin-top: 30px;
}

#reg_room h3 {
    margin: 0;
}

#reg_room .duration_setting p {
    margin: 8px 0;
}

#reg_room .mode_desc {
    color: #666;
    font-size: 14px;
}

#toggle_room_detail {
    background: url('../img/caret-bottom.svg') left no-repeat;
    padding-left: 20px;
    background-size: 16px;
    cursor: pointer;
}
#toggle_room_detail.open {
    background-image: url('../img/caret-top.svg');
}
#room_detail_settings {
    height: 0;
    overflow-y: hidden;
    background-color: #eee;
    box-sizing: border-box;
    transition: height .3s;
}
#toggle_room_detail.open+#room_detail_settings {
    height: 490px;
}
.exists+.no_current {
    display: none;
}

span.room_exp {
    margin: 0 20px;
    font-size: 14px;
}

p#account_msg {
    color: red;
}



