html, body { width: 100%; height: 100%; margin: 0; } #app { width: 100%; height: 100%; background: #e0eae8; font-size: 20px; display: flex; justify-content: center; font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: #2c3e50; } .services { width: 60%; height: max-content; min-width: 17em; max-width: 22.5em; background: white; margin-top: 2em; box-shadow: 1px 1px 2px 2px #bbb; border-radius: 1.5em; } .services h3 { width: 100%; text-align: center; } .no-items { text-align: center; padding: 2em 1em; } .service { width: 100%; padding: 1em .5em; border-bottom: 1px solid #ccc; cursor: pointer; position: relative; } .service:first-child { border-radius: 1.5em 1.5em 0 0; } .service:last-child { border-radius: 0 0 1.5em 1.5em; } .service:hover { background: #bef6da; } .service .remove { position: absolute; right: 1.5em; } .service .remove img { width: 1.2em; height: 1.2em; } .name { font-weight: bold; } .add-btn { width: 2.5em; height: 2.5em; background: url('../icon/plus.svg'); position: fixed; bottom: 1em; right: 1em; cursor: pointer; } .add-btn:hover { opacity: .75; } /* Add host modal */ .add-modal-container { width: 100%; height: 100%; position: fixed; display: flex; justify-content: center; align-items: center; z-index: 2; } .add-modal-background { width: 100%; height: 100%; background: black; position: absolute; opacity: .87; } .add-modal { width: 80%; height: max-content; max-width: 22.5em; background: #f0f0f0; display: flex; flex-direction: column; font-size: 1.2em; padding: 1em; border-radius: 1em; z-index: 3; } .add-modal .header { display: flex; align-items: center; justify-content: center; padding-bottom: .5em; } .add-modal form, .add-modal form label { width: 100%; } .add-modal form input { border-radius: .25em; padding: .25em; } .add-modal form input[type=text], .add-modal form input[type=number] { width: 95%; font-size: 1.05em; margin-bottom: .5em; } .add-modal form input[type=submit] { font-size: 1.05em; } .add-modal .buttons { width: 100%; display: flex; align-items: center; } .add-modal .buttons .button { width: 50%; } /* Splash screen */ .splash { width: 100vw; height: 100vh; position: absolute; background: white; display: flex; flex-direction: column; justify-content: center; align-items: center; font-size: 1.2em; z-index: 1000; } .splash .icon { width: 150px; height: 150px; display: flex; margin-bottom: .5em; } .splash .icon img { width: 100%; height: 100%; } /* Fade in/out animations */ .fade-in { animation-duration: 0.5s; -webkit-animation-duration: 0.5s; animation-fill-mode: both; animation-name: fadeIn; -webkit-animation-name: fadeIn; } .fade-out { animation-duration: 0.5s; -webkit-animation-duration: 0.5s; animation-fill-mode: both; animation-name: fadeOut; -webkit-animation-name: fadeOut; } @keyframes fadeIn { 0% {opacity: 0;} 100% {opacity: 1;} } @keyframes fadeOut { 0% {opacity: 1;} 100% { opacity: 0; display: none; } } /* Loading animation */ .loading { display: flex; align-items: center; justify-content: center; font-size: 3em; position: absolute; top: 0; left: 0; width: 100vw; height: 100vh; background: #909090; opacity: 0.5; } .icon { display: inline-block; position: relative; width: 80px; height: 80px; } .icon div { position: absolute; top: 33px; width: 13px; height: 13px; border-radius: 50%; background: #fff; animation-timing-function: cubic-bezier(0, 1, 1, 0); } .icon div:nth-child(1) { left: 8px; animation: lds-ellipsis1 0.6s infinite; } .icon div:nth-child(2) { left: 8px; animation: lds-ellipsis2 0.6s infinite; } .icon div:nth-child(3) { left: 32px; animation: lds-ellipsis2 0.6s infinite; } .icon div:nth-child(4) { left: 56px; animation: lds-ellipsis3 0.6s infinite; } @keyframes lds-ellipsis1 { 0% { transform: scale(0); } 100% { transform: scale(1); } } @keyframes lds-ellipsis3 { 0% { transform: scale(1); } 100% { transform: scale(0); } } @keyframes lds-ellipsis2 { 0% { transform: translate(0, 0); } 100% { transform: translate(24px, 0); } }