html {
  height: 100%;
  border: none;
  margin: 0;
  padding: 0;
}
body {
  background: #222;
  color: #f2f2f2;
  height: 100%;
  margin: 0;
}
.loading-mask {
  display: table;
  position: fixed;
  opacity: 1;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 99;
  background: rgba(0, 0, 0, 0.8);
  text-align: center;
  transition: all 0.2s;
}
.loading-mask span {
  display: table-cell;
  vertical-align: middle;
  color: #888;
  font-size: 16px;
  animation-name: breath;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}
@keyframes breath {
  from {
    color: #eee;
  }
  to {
    color: #444;
  }
}
.title {
  position: fixed;
  top: 0;
  margin: 0;
  z-index: 100;
  padding-top: 20px;
  width: 100%;
  text-align: center;
  color: #ddd;
  text-transform: Capitalize;
}
.title span {
  position: relative;
}
.title .github {
  position: absolute;
  top: 10px;
  right: -45px;
  width: 24px;
  height: 24px;
  opacity: 0.8;
  cursor: pointer;
  transition: opacity 0.2s;
}
.title .github:hover {
  opacity: 1;
}
.main {
  height: 100%;
}
.tooltip {
  position: fixed;
  top: 140px;
  left: 120px;
}
.tooltip div {
  height: 30px;
  width: 40px;
  position: relative;
  cursor: pointer;
}
.tooltip div::after {
  width: 100px;
  font-size: 14px;
  position: absolute;
  top: 16px;
  left: 50px;
  color: #444;
}
.tooltip div.active::after {
  color: #888;
}
.tooltip div:hover::after {
  color: #eee;
}
.tooltip .contain::after {
  content: '\300C\521B\5EFA\300D\5173\7CFB   ';
  font-size: 14px;
}
.tooltip .register::after {
  content: '\300C\6CE8\518C\300D\5173\7CFB   ';
  font-size: 14px;
}
.tooltip .call::after {
  content: '\300C\8C03\7528\300D\5173\7CFB   ';
  font-size: 14px;
}
.category {
  position: fixed;
  top: 80px;
  left: 120px;
}
.category div {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  position: relative;
}
.category div::after {
  font-size: 14px;
  position: absolute;
  top: -4px;
  left: 20px;
  width: 200px;
  color: #888;
}
.category .hook {
  margin-top: 15px;
}
.category .module::after {
  content: '\6A21\5757/\5185\90E8\63D2\4EF6';
}
.category .hook::after {
  content: 'webpack\94A9\5B50';
}
.operation {
  position: fixed;
  bottom: 20px;
  right: 27px;
}
.operation-btn {
  border: none;
  float: left;
  padding: 0 10px;
  margin-left: 10px;
  line-height: 22px;
  background: #D47272;
  color: #eee;
  font-size: 11px;
  transform: scale(0.9);
  cursor: pointer;
}
.operation-btn:hover {
  background: #e48585;
}
.operation-btn:focus {
  outline: none;
}
.info {
  position: fixed;
  border-radius: 5px;
  border: 1px dashed rgba(255, 255, 255, 0.2);
  bottom: 20px;
  left: 27px;
  margin: 0;
  padding: 10px;
  height: 250px;
  width: 250px;
  overflow-y: auto;
}
.info-name {
  word-wrap: break-word;
}
.info-title {
  border-left: 3px solid #444;
  margin: 20px 0 8px 0;
  padding: 0 5px;
  line-height: 1;
  font-size: 14px;
  color: #555;
}
.info-title:first-child {
  margin-top: 0;
}
.info-text {
  font-size: 12px;
  color: #888;
}


/* Restore a readable narrow-screen layout; preserve the original desktop view. */
@media(max-width:600px){
  body{position:relative;height:auto;min-height:100vh;padding-top:142px;box-sizing:border-box;overflow-x:hidden}
  .title{position:absolute;font-size:18px;line-height:1.4;padding:14px 44px 8px 12px;text-align:left;box-sizing:border-box;background:#222;z-index:3}
  .title span{position:static}
  .title .github{top:14px;right:14px;width:22px;height:22px}
  .category{position:absolute;top:61px;left:12px;right:12px;display:flex;gap:142px;height:22px;background:#222;z-index:3}
  .category div{width:10px;height:10px}
  .category .hook{margin-top:0}
  .category div::after{font-size:12px;top:-3px;left:16px;width:140px;color:#bbb}
  .tooltip{position:absolute;top:91px;left:12px;right:12px;display:flex;gap:10px;background:rgba(34,34,34,.96);z-index:3}
  .tooltip div{height:36px;flex:1;width:auto;min-width:0}
  .tooltip div::after{left:0;top:2px;font-size:12px;width:auto;white-space:nowrap}
  .tooltip div.active::after{color:#ccc}
  .main{height:max(280px,calc(100vh - 386px));height:max(280px,calc(100svh - 386px));overflow:hidden}
  .info{position:relative;left:auto;bottom:auto;box-sizing:border-box;margin:12px;width:calc(100% - 24px);height:164px;padding:12px;background:rgba(16,16,16,.96);border-color:rgba(255,255,255,.22)}
  .info-name{font-size:13px;color:#eee}
  .info-title{color:#bbb;margin:16px 0 6px;font-size:13px}
  .info-text{color:#ccc;line-height:1.6}
  .operation{position:relative;right:auto;bottom:auto;display:flex;justify-content:flex-end;margin:0 12px 12px;min-height:44px}
  .operation-btn{float:none;transform:none;min-height:44px;min-width:76px;margin-left:10px;font-size:14px}
}
